From ce8ade8fccb876ac5136eb6539c5fb2f12d29619 Mon Sep 17 00:00:00 2001 From: Daira Hopwood <daira@jacaranda.org> Date: Mon, 18 Feb 2013 22:33:30 +0000 Subject: [PATCH] openstack_container.py: factor out HTTP response code checking. Signed-off-by: David-Sarah Hopwood <david-sarah@jacaranda.org> --- .../cloud/openstack/openstack_container.py | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/allmydata/storage/backends/cloud/openstack/openstack_container.py b/src/allmydata/storage/backends/cloud/openstack/openstack_container.py index b1b40052..d40fc3d1 100644 --- a/src/allmydata/storage/backends/cloud/openstack/openstack_container.py +++ b/src/allmydata/storage/backends/cloud/openstack/openstack_container.py @@ -58,6 +58,13 @@ class AuthenticationInfo(object): self.auth_token = auth_token +def _check_response_code(response): + # "any 2xx response is a good response" + if response.code < 200 or response.code >= 300: + raise CloudServiceError("unexpected response code %r %s" % (response.code, response.phrase), + response.code, response.headers) + + class AuthenticationClient(object): """ I implement a client for the Rackspace authentication service. @@ -112,10 +119,7 @@ class AuthenticationClient(object): def _got_response(response): log.msg(format="OpenStack auth response: %(code)d %(phrase)s", code=response.code, phrase=response.phrase, level=log.OPERATIONAL) - # "any 2xx response is a good response" - if response.code < 200 or response.code >= 300: - raise UnexpectedAuthenticationResponse("unexpected response code %r %s" % (response.code, response.phrase), - response.code, response.headers) + _check_response_code(response) def _get_header(name): hs = response.headers.getRawHeaders(name) @@ -228,9 +232,7 @@ class OpenStackContainer(ContainerRetryMixin): def _got_list_response(response): log.msg(format="OpenStack list GET response: %(code)d %(phrase)s", code=response.code, phrase=response.phrase, level=log.OPERATIONAL) - if response.code < 200 or response.code >= 300: - raise self.ServiceError("unexpected response code %r %s" % (response.code, response.phrase), - response.code, response.headers) + _check_response_code(response) collector = DataCollector() response.deliverBody(collector) @@ -281,9 +283,8 @@ class OpenStackContainer(ContainerRetryMixin): def _got_put_response(response): log.msg(format="OpenStack PUT response: %(code)d %(phrase)s", code=response.code, phrase=response.phrase, level=log.OPERATIONAL) - if response.code < 200 or response.code >= 300: - raise self.ServiceError("unexpected response code %r %s" % (response.code, response.phrase), - response.code, response.headers) + _check_response_code(response) + response.deliverBody(Discard()) d.addCallback(_got_put_response) return d @@ -305,9 +306,7 @@ class OpenStackContainer(ContainerRetryMixin): def _got_get_response(response): log.msg(format="OpenStack GET response: %(code)d %(phrase)s", code=response.code, phrase=response.phrase, level=log.OPERATIONAL) - if response.code < 200 or response.code >= 300: - raise self.ServiceError("unexpected response code %r %s" % (response.code, response.phrase), - response.code, response.headers) + _check_response_code(response) collector = DataCollector() response.deliverBody(collector) @@ -339,9 +338,8 @@ class OpenStackContainer(ContainerRetryMixin): def _got_delete_response(response): log.msg(format="OpenStack DELETE response: %(code)d %(phrase)s", code=response.code, phrase=response.phrase, level=log.OPERATIONAL) - if response.code < 200 or response.code >= 300: - raise self.ServiceError("unexpected response code %r %s" % (response.code, response.phrase), - response.code, response.headers) + _check_response_code(response) + response.deliverBody(Discard()) d.addCallback(_got_delete_response) return d -- 2.45.2