From 13c601cc9c9ae0bd71e449eef77e95e1a7a15f16 Mon Sep 17 00:00:00 2001 From: Kiall Mac Innes Date: Sun, 30 Dec 2012 00:01:03 +0000 Subject: [PATCH] Depend on and update for requests>1.0 (Matching {keystone,cinder,nova}client) Change-Id: I17ca5e802108fcf6dc906ff23b6b61f53a25eac1 --- monikerclient/auth.py | 17 ----------------- monikerclient/v1/__init__.py | 25 +++++++++++-------------- monikerclient/v1/domains.py | 8 ++++---- monikerclient/v1/records.py | 8 ++++---- monikerclient/v1/servers.py | 8 ++++---- tools/pip-requires | 2 +- 6 files changed, 24 insertions(+), 44 deletions(-) diff --git a/monikerclient/auth.py b/monikerclient/auth.py index 36c7e3c..fe77015 100644 --- a/monikerclient/auth.py +++ b/monikerclient/auth.py @@ -75,20 +75,3 @@ class KeystoneAuth(AuthBase): ks = self.get_ksclient() self.token = ks.auth_token self.service_catalog = ks.service_catalog - - def args_hook(self, args): - url = urlparse(args['url']) - - if str(url.scheme) == '': - if not self.token: - self.refresh_token() - - endpoints = self.get_endpoints() - - if url.netloc in endpoints.keys(): - - args['url'] = '%s/%s?%s' % ( - self.get_url(), - url.path.lstrip('/'), - url.query - ) diff --git a/monikerclient/v1/__init__.py b/monikerclient/v1/__init__.py index 4c52804..1eda3f5 100644 --- a/monikerclient/v1/__init__.py +++ b/monikerclient/v1/__init__.py @@ -14,7 +14,6 @@ # License for the specific language governing permissions and limitations # under the License. import requests -from urlparse import urlparse from monikerclient import exceptions from monikerclient.auth import KeystoneAuth from monikerclient.v1 import domains @@ -42,25 +41,18 @@ class Client(object): if auth_url: auth = KeystoneAuth(auth_url, username, password, tenant_id, tenant_name, token, 'dns', endpoint_type) - endpoint = auth.get_url() + self.endpoint = auth.get_url() elif endpoint: auth = None + self.endpoint = endpoint else: raise ValueError('Either an endpoint or auth_url must be supplied') headers = {'Content-Type': 'application/json'} - def _ensure_url_hook(args): - url_ = urlparse(args['url']) - if not url_.scheme: - args['url'] = endpoint + url_.path - - hooks = {'args': _ensure_url_hook} - - self.requests = requests.session( - auth=auth, - headers=headers, - hooks=hooks) + self.requests = requests.Session() + self.requests.auth = auth + self.requests.headers.update(headers) self.domains = domains.DomainsController(client=self) self.records = records.RecordsController(client=self) @@ -72,10 +64,15 @@ class Client(object): :param func: The function to wrap """ + # Prepend the endpoint URI + args = list(args) + args[0] = '%s/%s' % (self.endpoint, args[0]) + + # Trigger the request response = func(*args, **kw) if response.status_code == 400: - raise exceptions.BadRequest(response.json['errors']) + raise exceptions.BadRequest(response.json()['errors']) elif response.status_code in (401, 403): raise exceptions.Forbidden() elif response.status_code == 404: diff --git a/monikerclient/v1/domains.py b/monikerclient/v1/domains.py index b555105..bba5b8d 100644 --- a/monikerclient/v1/domains.py +++ b/monikerclient/v1/domains.py @@ -31,7 +31,7 @@ class DomainsController(Controller): """ response = self.client.get('/domains') - return [Domain(i) for i in response.json['domains']] + return [Domain(i) for i in response.json()['domains']] def get(self, domain_id): """ @@ -42,7 +42,7 @@ class DomainsController(Controller): """ response = self.client.get('/domains/%s' % domain_id) - return Domain(response.json) + return Domain(response.json()) def create(self, domain): """ @@ -53,7 +53,7 @@ class DomainsController(Controller): """ response = self.client.post('/domains', data=json.dumps(domain)) - return Domain(response.json) + return Domain(response.json()) def update(self, domain): """ @@ -65,7 +65,7 @@ class DomainsController(Controller): response = self.client.put('/domains/%s' % domain.id, data=json.dumps(domain.changes)) - return Domain(response.json) + return Domain(response.json()) def delete(self, domain): """ diff --git a/monikerclient/v1/records.py b/monikerclient/v1/records.py index f9ab584..43ae854 100644 --- a/monikerclient/v1/records.py +++ b/monikerclient/v1/records.py @@ -37,7 +37,7 @@ class RecordsController(Controller): 'domain_id': domain_id }) - return [Record(i) for i in response.json['records']] + return [Record(i) for i in response.json()['records']] def get(self, domain, record_id): """ @@ -56,7 +56,7 @@ class RecordsController(Controller): response = self.client.get(uri) - return Record(response.json) + return Record(response.json()) def create(self, domain, record): """ @@ -74,7 +74,7 @@ class RecordsController(Controller): response = self.client.post(uri, data=json.dumps(record)) - return Record(response.json) + return Record(response.json()) def update(self, domain, record): """ @@ -93,7 +93,7 @@ class RecordsController(Controller): response = self.client.put(uri, data=json.dumps(record.changes)) - return Record(response.json) + return Record(response.json()) def delete(self, domain, record): """ diff --git a/monikerclient/v1/servers.py b/monikerclient/v1/servers.py index 9be9189..1794728 100644 --- a/monikerclient/v1/servers.py +++ b/monikerclient/v1/servers.py @@ -31,7 +31,7 @@ class ServersController(Controller): """ response = self.client.get('/servers') - return [Server(i) for i in response.json['servers']] + return [Server(i) for i in response.json()['servers']] def get(self, server_id): """ @@ -42,7 +42,7 @@ class ServersController(Controller): """ response = self.client.get('/servers/%s' % server_id) - return Server(response.json) + return Server(response.json()) def create(self, server): """ @@ -53,7 +53,7 @@ class ServersController(Controller): """ response = self.client.post('/servers', data=json.dumps(server)) - return Server(response.json) + return Server(response.json()) def update(self, server): """ @@ -65,7 +65,7 @@ class ServersController(Controller): response = self.client.put('/servers/%s' % server.id, data=json.dumps(server.changes)) - return Server(response.json) + return Server(response.json()) def delete(self, server): """ diff --git a/tools/pip-requires b/tools/pip-requires index d40549b..2b8b1d2 100644 --- a/tools/pip-requires +++ b/tools/pip-requires @@ -1,4 +1,4 @@ cliff>=1.2.1 jsonschema>=0.7 -requests +requests>1.0 python-keystoneclient>=0.2.0