diff --git a/openstack/resource.py b/openstack/resource.py index d652b4d8..7e43f156 100644 --- a/openstack/resource.py +++ b/openstack/resource.py @@ -214,9 +214,10 @@ class Resource(collections.MutableMapping): if r_id: url = utils.urljoin(cls.base_path, r_id) - resp = session.put(cls.service, url, json=body).body + resp = session.put(url, service=cls.service, json=body).body else: - resp = session.post(cls.service, cls.base_path, json=body).body + resp = session.post(cls.base_path, service=cls.service, + json=body).body if cls.resource_key: resp = resp[cls.resource_key] @@ -234,7 +235,7 @@ class Resource(collections.MutableMapping): raise MethodNotSupported('retrieve') url = utils.urljoin(cls.base_path, r_id) - body = session.get(cls.service, url).body + body = session.get(url, service=cls.service).body if cls.resource_key: body = body[cls.resource_key] @@ -262,7 +263,7 @@ class Resource(collections.MutableMapping): body = attrs url = utils.urljoin(cls.base_path, r_id) - resp = session.patch(cls.service, url, json=body).body + resp = session.patch(url, service=cls.service, json=body).body if cls.resource_key: resp = resp[cls.resource_key] @@ -290,7 +291,7 @@ class Resource(collections.MutableMapping): if not cls.allow_delete: raise MethodNotSupported('delete') - session.delete(cls.service, utils.urljoin(cls.base_path, r_id), + session.delete(utils.urljoin(cls.base_path, r_id), service=cls.service, accept=None) def delete(self, session): @@ -314,7 +315,7 @@ class Resource(collections.MutableMapping): if filters: url = '%s?%s' % (url, url_parse.urlencode(filters)) - resp = session.get(cls.service, url).body + resp = session.get(url, service=cls.service).body if cls.resources_key: resp = resp[cls.resources_key] diff --git a/openstack/session.py b/openstack/session.py index ed1cd547..9634e474 100644 --- a/openstack/session.py +++ b/openstack/session.py @@ -32,16 +32,17 @@ class Session(object): self.transport = transport self.authenticator = authenticator - def _request(self, service, path, method, authenticate=True, **kwargs): + def _request(self, path, method, service=None, authenticate=True, + **kwargs): """Send an HTTP request with the specified characteristics. Handle a session level request. - :param ServiceFilter service: Object that identifies service to - the authenticator. - :type service: :class:`openstack.auth.service_filter.ServiceFilter` :param string path: Path relative to authentictor base url. :param string method: The http method to use. (eg. 'GET', 'POST'). + :param ServiceFilter service: Object that filters service to + the authenticator. + :type service: :class:`openstack.auth.service_filter.ServiceFilter` :param bool authenticate: True if a token should be attached :param kwargs: any other parameter that can be passed to transport and authenticator. @@ -60,20 +61,20 @@ class Session(object): return self.transport.request(method, url, **kwargs) - def head(self, service, path, **kwargs): - return self._request(service, path, 'HEAD', **kwargs) + def head(self, path, **kwargs): + return self._request(path, 'HEAD', **kwargs) - def get(self, service, path, **kwargs): - return self._request(service, path, 'GET', **kwargs) + def get(self, path, **kwargs): + return self._request(path, 'GET', **kwargs) - def post(self, service, path, **kwargs): - return self._request(service, path, 'POST', **kwargs) + def post(self, path, **kwargs): + return self._request(path, 'POST', **kwargs) - def put(self, service, path, **kwargs): - return self._request(service, path, 'PUT', **kwargs) + def put(self, path, **kwargs): + return self._request(path, 'PUT', **kwargs) - def delete(self, service, path, **kwargs): - return self._request(service, path, 'DELETE', **kwargs) + def delete(self, path, **kwargs): + return self._request(path, 'DELETE', **kwargs) - def patch(self, service, path, **kwargs): - return self._request(service, path, 'PATCH', **kwargs) + def patch(self, path, **kwargs): + return self._request(path, 'PATCH', **kwargs) diff --git a/openstack/tests/test_session.py b/openstack/tests/test_session.py index b3250440..bd223d23 100644 --- a/openstack/tests/test_session.py +++ b/openstack/tests/test_session.py @@ -29,7 +29,7 @@ class TestSession(base.TestCase): self.expected = {'headers': {'X-Auth-Token': self.auth.TOKEN}} def test_head(self): - resp = self.sess.head(self.serv, self.TEST_PATH) + resp = self.sess.head(self.TEST_PATH, service=self.serv) self.assertEqual(self.xport.RESPONSE, resp) self.auth.get_token.assert_called_with(self.xport) @@ -38,7 +38,7 @@ class TestSession(base.TestCase): self.xport.request.assert_called_with('HEAD', url, **self.expected) def test_get(self): - resp = self.sess.get(self.serv, self.TEST_PATH) + resp = self.sess.get(self.TEST_PATH, service=self.serv) self.assertEqual(self.xport.RESPONSE, resp) self.auth.get_token.assert_called_with(self.xport) @@ -47,7 +47,7 @@ class TestSession(base.TestCase): self.xport.request.assert_called_with('GET', url, **self.expected) def test_post(self): - resp = self.sess.post(self.serv, self.TEST_PATH) + resp = self.sess.post(self.TEST_PATH, service=self.serv) self.assertEqual(self.xport.RESPONSE, resp) self.auth.get_token.assert_called_with(self.xport) @@ -56,7 +56,7 @@ class TestSession(base.TestCase): self.xport.request.assert_called_with('POST', url, **self.expected) def test_put(self): - resp = self.sess.put(self.serv, self.TEST_PATH) + resp = self.sess.put(self.TEST_PATH, service=self.serv) self.assertEqual(self.xport.RESPONSE, resp) self.auth.get_token.assert_called_with(self.xport) @@ -65,7 +65,7 @@ class TestSession(base.TestCase): self.xport.request.assert_called_with('PUT', url, **self.expected) def test_delete(self): - resp = self.sess.delete(self.serv, self.TEST_PATH) + resp = self.sess.delete(self.TEST_PATH, service=self.serv) self.assertEqual(self.xport.RESPONSE, resp) self.auth.get_token.assert_called_with(self.xport) @@ -74,7 +74,7 @@ class TestSession(base.TestCase): self.xport.request.assert_called_with('DELETE', url, **self.expected) def test_patch(self): - resp = self.sess.patch(self.serv, self.TEST_PATH) + resp = self.sess.patch(self.TEST_PATH, service=self.serv) self.assertEqual(self.xport.RESPONSE, resp) self.auth.get_token.assert_called_with(self.xport)