Repository: libcloud
Updated Branches:
  refs/heads/trunk 31897dd69 -> 82df6e961


Fix a missing / in requests made by the DockerContainerDriver 

Following the examples provided by the documentation would result in a "400 Bad 
Request" error due to the fact that the requests didn't begin with a '/' for 
example:

GET v1.24/images/json HTTP/1.1

would result in a 400 Bad Request error, but:

GET /v1.24/images/json HTTP/1.1

does not.

Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/66fa5e31
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/66fa5e31
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/66fa5e31

Branch: refs/heads/trunk
Commit: 66fa5e31604f782000d0096704f51ff20798fbf1
Parents: 2d4a6d3
Author: Jamie Hankins <jam...@users.noreply.github.com>
Authored: Tue Aug 9 20:44:32 2016 +0100
Committer: GitHub <nore...@github.com>
Committed: Tue Aug 9 20:44:32 2016 +0100

----------------------------------------------------------------------
 libcloud/container/drivers/docker.py | 32 +++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/66fa5e31/libcloud/container/drivers/docker.py
----------------------------------------------------------------------
diff --git a/libcloud/container/drivers/docker.py 
b/libcloud/container/drivers/docker.py
index 880618b..6b6839e 100644
--- a/libcloud/container/drivers/docker.py
+++ b/libcloud/container/drivers/docker.py
@@ -205,7 +205,7 @@ class DockerContainerDriver(ContainerDriver):
         }
         data = json.dumps(payload)
 
-        result = self.connection.request('v%s/images/create?fromImage=%s' %
+        result = self.connection.request('/v%s/images/create?fromImage=%s' %
                                          (self.version, path), data=data,
                                          method='POST')
         if "errorDetail" in result.body:
@@ -235,7 +235,7 @@ class DockerContainerDriver(ContainerDriver):
 
         :rtype: ``list`` of :class:`libcloud.container.base.ContainerImage`
         """
-        result = self.connection.request('v%s/images/json' %
+        result = self.connection.request('/v%s/images/json' %
                                          (self.version)).object
         images = []
         for image in result:
@@ -276,7 +276,7 @@ class DockerContainerDriver(ContainerDriver):
             ex = ''
         try:
             result = self.connection.request(
-                "v%s/containers/json%s" % (self.version, ex)).object
+                "/v%s/containers/json%s" % (self.version, ex)).object
         except Exception as exc:
             errno = getattr(exc, 'errno', None)
             if errno == 111:
@@ -355,7 +355,7 @@ class DockerContainerDriver(ContainerDriver):
 
         data = json.dumps(payload)
         try:
-            result = self.connection.request('v%s/containers/create'
+            result = self.connection.request('/v%s/containers/create'
                                              % (self.version),
                                              data=data,
                                              params=params, method='POST')
@@ -377,7 +377,7 @@ class DockerContainerDriver(ContainerDriver):
         data = json.dumps(payload)
         if start:
             result = self.connection.request(
-                'v%s/containers/%s/start' %
+                '/v%s/containers/%s/start' %
                 (self.version, id_), data=data,
                 method='POST')
 
@@ -392,7 +392,7 @@ class DockerContainerDriver(ContainerDriver):
 
         :rtype: :class:`libcloud.container.base.Container`
         """
-        result = self.connection.request("v%s/containers/%s/json" %
+        result = self.connection.request("/v%s/containers/%s/json" %
                                          (self.version, id)).object
 
         return self._to_container(result)
@@ -413,7 +413,7 @@ class DockerContainerDriver(ContainerDriver):
         }
         data = json.dumps(payload)
         result = self.connection.request(
-            'v%s/containers/%s/start' %
+            '/v%s/containers/%s/start' %
             (self.version, container.id),
             method='POST', data=data)
         if result.status in VALID_RESPONSE_CODES:
@@ -432,7 +432,7 @@ class DockerContainerDriver(ContainerDriver):
         :return: The container refreshed with current data
         :rtype: :class:`libcloud.container.base.Container`
         """
-        result = self.connection.request('v%s/containers/%s/stop' %
+        result = self.connection.request('/v%s/containers/%s/stop' %
                                          (self.version, container.id),
                                          method='POST')
         if result.status in VALID_RESPONSE_CODES:
@@ -453,7 +453,7 @@ class DockerContainerDriver(ContainerDriver):
         """
         data = json.dumps({'t': 10})
         # number of seconds to wait before killing the container
-        result = self.connection.request('v%s/containers/%s/restart' %
+        result = self.connection.request('/v%s/containers/%s/restart' %
                                          (self.version, container.id),
                                          data=data, method='POST')
         if result.status in VALID_RESPONSE_CODES:
@@ -472,7 +472,7 @@ class DockerContainerDriver(ContainerDriver):
         :return: True if the destroy was successful, False otherwise.
         :rtype: ``bool``
         """
-        result = self.connection.request('v%s/containers/%s' % (self.version,
+        result = self.connection.request('/v%s/containers/%s' % (self.version,
                                                                 container.id),
                                          method='DELETE')
         return result.status in VALID_RESPONSE_CODES
@@ -486,7 +486,7 @@ class DockerContainerDriver(ContainerDriver):
 
         :rtype: ``str``
         """
-        result = self.connection.request("v%s/containers/%s/top" %
+        result = self.connection.request("/v%s/containers/%s/top" %
                                          (self.version, container.id)).object
 
         return result
@@ -503,7 +503,7 @@ class DockerContainerDriver(ContainerDriver):
 
         :rtype: :class:`libcloud.container.base.Container`
         """
-        result = self.connection.request('v%s/containers/%s/rename?name=%s'
+        result = self.connection.request('/v%s/containers/%s/rename?name=%s'
                                          % (self.version, container.id, name),
                                          method='POST')
         if result.status in VALID_RESPONSE_CODES:
@@ -530,12 +530,12 @@ class DockerContainerDriver(ContainerDriver):
 
         if float(self._get_api_version()) > 1.10:
             result = self.connection.request(
-                "v%s/containers/%s/logs?follow=%s&stdout=1&stderr=1" %
+                "/v%s/containers/%s/logs?follow=%s&stdout=1&stderr=1" %
                 (self.version, container.id, str(stream))).object
             logs = result
         else:
             result = self.connection.request(
-                "v%s/containers/%s/attach?logs=1&stream=%s&stdout=1&stderr=1" %
+                "/v%s/containers/%s/attach?logs=1&stream=%s&stdout=1&stderr=1" 
%
                 (self.version, container.id, str(stream)),
                 method='POST',
                 data=data)
@@ -560,7 +560,7 @@ class DockerContainerDriver(ContainerDriver):
         """
 
         term = term.replace(' ', '+')
-        result = self.connection.request('v%s/images/search?term=%s' %
+        result = self.connection.request('/v%s/images/search?term=%s' %
                                          (self.version, term)).object
         images = []
         for image in result:
@@ -591,7 +591,7 @@ class DockerContainerDriver(ContainerDriver):
 
         :rtype: ``bool``
         """
-        result = self.connection.request('v%s/images/%s' % (self.version,
+        result = self.connection.request('/v%s/images/%s' % (self.version,
                                                             image.name),
                                          method='DELETE')
         return result.status in VALID_RESPONSE_CODES

Reply via email to