Use http_client constants instead of hardcoding
This patch swaps use of hardcoded int and strings for known http status codes with the values from six.moves.http_client. Change-Id: Iab83af97920b950d075036ff1499f388299588a0
This commit is contained in:
parent
88de82e130
commit
af0b966af8
|
@ -16,6 +16,7 @@
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import six
|
import six
|
||||||
|
from six.moves import http_client
|
||||||
|
|
||||||
from keystone.catalog import schema
|
from keystone.catalog import schema
|
||||||
from keystone.common import controller
|
from keystone.common import controller
|
||||||
|
@ -231,7 +232,8 @@ class RegionV3(controller.V3Controller):
|
||||||
ref = self.catalog_api.create_region(ref, initiator)
|
ref = self.catalog_api.create_region(ref, initiator)
|
||||||
return wsgi.render_response(
|
return wsgi.render_response(
|
||||||
RegionV3.wrap_member(request.context_dict, ref),
|
RegionV3.wrap_member(request.context_dict, ref),
|
||||||
status=(201, 'Created'))
|
status=(http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED]))
|
||||||
|
|
||||||
@controller.filterprotected('parent_region_id')
|
@controller.filterprotected('parent_region_id')
|
||||||
def list_regions(self, request, filters):
|
def list_regions(self, request, filters):
|
||||||
|
|
|
@ -31,6 +31,7 @@ from oslo_utils import importutils
|
||||||
from oslo_utils import strutils
|
from oslo_utils import strutils
|
||||||
import routes.middleware
|
import routes.middleware
|
||||||
import six
|
import six
|
||||||
|
from six.moves import http_client
|
||||||
import webob.dec
|
import webob.dec
|
||||||
import webob.exc
|
import webob.exc
|
||||||
|
|
||||||
|
@ -245,7 +246,9 @@ class Application(BaseApplication):
|
||||||
user_locale=best_match_language(req))
|
user_locale=best_match_language(req))
|
||||||
|
|
||||||
if result is None:
|
if result is None:
|
||||||
return render_response(status=(204, 'No Content'))
|
return render_response(
|
||||||
|
status=(http_client.NO_CONTENT,
|
||||||
|
http_client.responses[http_client.NO_CONTENT]))
|
||||||
elif isinstance(result, six.string_types):
|
elif isinstance(result, six.string_types):
|
||||||
return result
|
return result
|
||||||
elif isinstance(result, webob.Response):
|
elif isinstance(result, webob.Response):
|
||||||
|
@ -263,7 +266,8 @@ class Application(BaseApplication):
|
||||||
controller = importutils.import_class('keystone.common.controller')
|
controller = importutils.import_class('keystone.common.controller')
|
||||||
code = None
|
code = None
|
||||||
if isinstance(self, controller.V3Controller) and req_method == 'POST':
|
if isinstance(self, controller.V3Controller) and req_method == 'POST':
|
||||||
code = (201, 'Created')
|
code = (http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED])
|
||||||
return code
|
return code
|
||||||
|
|
||||||
def _normalize_arg(self, arg):
|
def _normalize_arg(self, arg):
|
||||||
|
@ -695,7 +699,7 @@ class V3ExtensionRouter(ExtensionRouter, RoutersBase):
|
||||||
|
|
||||||
response = request.get_response(self.application)
|
response = request.get_response(self.application)
|
||||||
|
|
||||||
if response.status_code != 200:
|
if response.status_code != http_client.OK:
|
||||||
# The request failed, so don't update the response.
|
# The request failed, so don't update the response.
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
@ -721,7 +725,8 @@ def render_response(body=None, status=None, headers=None, method=None):
|
||||||
|
|
||||||
if body is None:
|
if body is None:
|
||||||
body = b''
|
body = b''
|
||||||
status = status or (204, 'No Content')
|
status = status or (http_client.NO_CONTENT,
|
||||||
|
http_client.responses[http_client.NO_CONTENT])
|
||||||
else:
|
else:
|
||||||
content_types = [v for h, v in headers if h == 'Content-Type']
|
content_types = [v for h, v in headers if h == 'Content-Type']
|
||||||
if content_types:
|
if content_types:
|
||||||
|
@ -733,7 +738,8 @@ def render_response(body=None, status=None, headers=None, method=None):
|
||||||
body = jsonutils.dump_as_bytes(body, cls=utils.SmarterEncoder)
|
body = jsonutils.dump_as_bytes(body, cls=utils.SmarterEncoder)
|
||||||
if content_type is None:
|
if content_type is None:
|
||||||
headers.append(('Content-Type', 'application/json'))
|
headers.append(('Content-Type', 'application/json'))
|
||||||
status = status or (200, 'OK')
|
status = status or (http_client.OK,
|
||||||
|
http_client.responses[http_client.OK])
|
||||||
|
|
||||||
# NOTE(davechen): `mod_wsgi` follows the standards from pep-3333 and
|
# NOTE(davechen): `mod_wsgi` follows the standards from pep-3333 and
|
||||||
# requires the value in response header to be binary type(str) on python2,
|
# requires the value in response header to be binary type(str) on python2,
|
||||||
|
|
|
@ -39,6 +39,7 @@ import uuid
|
||||||
from keystoneclient.contrib.ec2 import utils as ec2_utils
|
from keystoneclient.contrib.ec2 import utils as ec2_utils
|
||||||
from oslo_serialization import jsonutils
|
from oslo_serialization import jsonutils
|
||||||
import six
|
import six
|
||||||
|
from six.moves import http_client
|
||||||
|
|
||||||
from keystone.common import controller
|
from keystone.common import controller
|
||||||
from keystone.common import dependency
|
from keystone.common import dependency
|
||||||
|
@ -435,4 +436,6 @@ def render_token_data_response(token_id, token_data):
|
||||||
headers = [('X-Subject-Token', token_id)]
|
headers = [('X-Subject-Token', token_id)]
|
||||||
|
|
||||||
return wsgi.render_response(body=token_data,
|
return wsgi.render_response(body=token_data,
|
||||||
status=(200, 'OK'), headers=headers)
|
status=(http_client.OK,
|
||||||
|
http_client.responses[http_client.OK]),
|
||||||
|
headers=headers)
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
import string
|
import string
|
||||||
|
|
||||||
from oslo_log import log
|
from oslo_log import log
|
||||||
|
from six.moves import http_client
|
||||||
from six.moves import urllib
|
from six.moves import urllib
|
||||||
import webob
|
import webob
|
||||||
|
|
||||||
|
@ -96,7 +97,9 @@ class IdentityProvider(_ControllerBase):
|
||||||
identity_provider.setdefault('enabled', False)
|
identity_provider.setdefault('enabled', False)
|
||||||
idp_ref = self.federation_api.create_idp(idp_id, identity_provider)
|
idp_ref = self.federation_api.create_idp(idp_id, identity_provider)
|
||||||
response = IdentityProvider.wrap_member(request.context_dict, idp_ref)
|
response = IdentityProvider.wrap_member(request.context_dict, idp_ref)
|
||||||
return wsgi.render_response(body=response, status=(201, 'Created'))
|
return wsgi.render_response(
|
||||||
|
body=response, status=(http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED]))
|
||||||
|
|
||||||
@controller.filterprotected('id', 'enabled')
|
@controller.filterprotected('id', 'enabled')
|
||||||
def list_identity_providers(self, request, filters):
|
def list_identity_providers(self, request, filters):
|
||||||
|
@ -184,7 +187,9 @@ class FederationProtocol(_ControllerBase):
|
||||||
ref = self._normalize_dict(protocol)
|
ref = self._normalize_dict(protocol)
|
||||||
ref = self.federation_api.create_protocol(idp_id, protocol_id, ref)
|
ref = self.federation_api.create_protocol(idp_id, protocol_id, ref)
|
||||||
response = FederationProtocol.wrap_member(request.context_dict, ref)
|
response = FederationProtocol.wrap_member(request.context_dict, ref)
|
||||||
return wsgi.render_response(body=response, status=(201, 'Created'))
|
return wsgi.render_response(
|
||||||
|
body=response, status=(http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED]))
|
||||||
|
|
||||||
@controller.protected()
|
@controller.protected()
|
||||||
@validation.validated(schema.protocol_update, 'protocol')
|
@validation.validated(schema.protocol_update, 'protocol')
|
||||||
|
@ -223,7 +228,9 @@ class MappingController(_ControllerBase):
|
||||||
mapping_ref = self.federation_api.create_mapping(mapping_id, ref)
|
mapping_ref = self.federation_api.create_mapping(mapping_id, ref)
|
||||||
response = MappingController.wrap_member(request.context_dict,
|
response = MappingController.wrap_member(request.context_dict,
|
||||||
mapping_ref)
|
mapping_ref)
|
||||||
return wsgi.render_response(body=response, status=(201, 'Created'))
|
return wsgi.render_response(
|
||||||
|
body=response, status=(http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED]))
|
||||||
|
|
||||||
@controller.protected()
|
@controller.protected()
|
||||||
def list_mappings(self, request):
|
def list_mappings(self, request):
|
||||||
|
@ -395,9 +402,10 @@ class Auth(auth_controllers.Auth):
|
||||||
(response, service_provider) = t
|
(response, service_provider) = t
|
||||||
|
|
||||||
headers = self._build_response_headers(service_provider)
|
headers = self._build_response_headers(service_provider)
|
||||||
return wsgi.render_response(body=response.to_string(),
|
return wsgi.render_response(
|
||||||
status=(200, 'OK'),
|
body=response.to_string(),
|
||||||
headers=headers)
|
status=(http_client.OK, http_client.responses[http_client.OK]),
|
||||||
|
headers=headers)
|
||||||
|
|
||||||
@validation.validated(schema.saml_create, 'auth')
|
@validation.validated(schema.saml_create, 'auth')
|
||||||
def create_ecp_assertion(self, context, auth):
|
def create_ecp_assertion(self, context, auth):
|
||||||
|
@ -415,9 +423,10 @@ class Auth(auth_controllers.Auth):
|
||||||
relay_state_prefix)
|
relay_state_prefix)
|
||||||
|
|
||||||
headers = self._build_response_headers(service_provider)
|
headers = self._build_response_headers(service_provider)
|
||||||
return wsgi.render_response(body=ecp_assertion.to_string(),
|
return wsgi.render_response(
|
||||||
status=(200, 'OK'),
|
body=ecp_assertion.to_string(),
|
||||||
headers=headers)
|
status=(http_client.OK, http_client.responses[http_client.OK]),
|
||||||
|
headers=headers)
|
||||||
|
|
||||||
|
|
||||||
@dependency.requires('assignment_api', 'resource_api')
|
@dependency.requires('assignment_api', 'resource_api')
|
||||||
|
@ -494,7 +503,9 @@ class ServiceProvider(_ControllerBase):
|
||||||
CONF.saml.relay_state_prefix)
|
CONF.saml.relay_state_prefix)
|
||||||
sp_ref = self.federation_api.create_sp(sp_id, service_provider)
|
sp_ref = self.federation_api.create_sp(sp_id, service_provider)
|
||||||
response = ServiceProvider.wrap_member(request.context_dict, sp_ref)
|
response = ServiceProvider.wrap_member(request.context_dict, sp_ref)
|
||||||
return wsgi.render_response(body=response, status=(201, 'Created'))
|
return wsgi.render_response(
|
||||||
|
body=response, status=(http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED]))
|
||||||
|
|
||||||
@controller.filterprotected('id', 'enabled')
|
@controller.filterprotected('id', 'enabled')
|
||||||
def list_service_providers(self, request, filters):
|
def list_service_providers(self, request, filters):
|
||||||
|
@ -532,5 +543,7 @@ class SAMLMetadataV3(_ControllerBase):
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
# Raise HTTP 500 in case Metadata file cannot be read.
|
# Raise HTTP 500 in case Metadata file cannot be read.
|
||||||
raise exception.MetadataFileError(reason=e)
|
raise exception.MetadataFileError(reason=e)
|
||||||
return wsgi.render_response(body=metadata, status=(200, 'OK'),
|
return wsgi.render_response(
|
||||||
headers=[('Content-Type', 'text/xml')])
|
body=metadata, status=(http_client.OK,
|
||||||
|
http_client.responses[http_client.OK]),
|
||||||
|
headers=[('Content-Type', 'text/xml')])
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
from oslo_serialization import jsonutils
|
from oslo_serialization import jsonutils
|
||||||
from oslo_utils import timeutils
|
from oslo_utils import timeutils
|
||||||
|
from six.moves import http_client
|
||||||
|
|
||||||
from keystone.common import controller
|
from keystone.common import controller
|
||||||
from keystone.common import dependency
|
from keystone.common import dependency
|
||||||
|
@ -262,9 +263,11 @@ class OAuthControllerV3(controller.V3Controller):
|
||||||
result += expiry_bit
|
result += expiry_bit
|
||||||
|
|
||||||
headers = [('Content-Type', 'application/x-www-urlformencoded')]
|
headers = [('Content-Type', 'application/x-www-urlformencoded')]
|
||||||
response = wsgi.render_response(result,
|
response = wsgi.render_response(
|
||||||
status=(201, 'Created'),
|
result,
|
||||||
headers=headers)
|
status=(http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED]),
|
||||||
|
headers=headers)
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
@ -341,9 +344,11 @@ class OAuthControllerV3(controller.V3Controller):
|
||||||
result += expiry_bit
|
result += expiry_bit
|
||||||
|
|
||||||
headers = [('Content-Type', 'application/x-www-urlformencoded')]
|
headers = [('Content-Type', 'application/x-www-urlformencoded')]
|
||||||
response = wsgi.render_response(result,
|
response = wsgi.render_response(
|
||||||
status=(201, 'Created'),
|
result,
|
||||||
headers=headers)
|
status=(http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED]),
|
||||||
|
headers=headers)
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
from six.moves import http_client
|
||||||
|
|
||||||
from keystone.common import controller
|
from keystone.common import controller
|
||||||
from keystone.common import dependency
|
from keystone.common import dependency
|
||||||
|
@ -188,8 +189,10 @@ class DomainConfigV3(controller.V3Controller):
|
||||||
# Return status code 200, since config already existed
|
# Return status code 200, since config already existed
|
||||||
return wsgi.render_response(body={self.member_name: ref})
|
return wsgi.render_response(body={self.member_name: ref})
|
||||||
else:
|
else:
|
||||||
return wsgi.render_response(body={self.member_name: ref},
|
return wsgi.render_response(
|
||||||
status=(201, 'Created'))
|
body={self.member_name: ref},
|
||||||
|
status=(http_client.CREATED,
|
||||||
|
http_client.responses[http_client.CREATED]))
|
||||||
|
|
||||||
@controller.protected()
|
@controller.protected()
|
||||||
def get_domain_config(self, request, domain_id, group=None, option=None):
|
def get_domain_config(self, request, domain_id, group=None, option=None):
|
||||||
|
|
|
@ -107,7 +107,8 @@ class ApplicationTest(BaseWSGITest):
|
||||||
|
|
||||||
def test_render_response_custom_status(self):
|
def test_render_response_custom_status(self):
|
||||||
resp = wsgi.render_response(
|
resp = wsgi.render_response(
|
||||||
status=(http_client.NOT_IMPLEMENTED, 'Not Implemented'))
|
status=(http_client.NOT_IMPLEMENTED,
|
||||||
|
http_client.responses[http_client.NOT_IMPLEMENTED]))
|
||||||
self.assertEqual('501 Not Implemented', resp.status)
|
self.assertEqual('501 Not Implemented', resp.status)
|
||||||
self.assertEqual(http_client.NOT_IMPLEMENTED, resp.status_int)
|
self.assertEqual(http_client.NOT_IMPLEMENTED, resp.status_int)
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from oslo_serialization import jsonutils
|
from oslo_serialization import jsonutils
|
||||||
|
from six.moves import http_client
|
||||||
import webob
|
import webob
|
||||||
|
|
||||||
from keystone.common import extension
|
from keystone.common import extension
|
||||||
|
@ -169,11 +170,14 @@ class Version(wsgi.Application):
|
||||||
headers=(('Content-Type', MimeTypes.JSON_HOME),))
|
headers=(('Content-Type', MimeTypes.JSON_HOME),))
|
||||||
|
|
||||||
versions = self._get_versions_list(request.context_dict)
|
versions = self._get_versions_list(request.context_dict)
|
||||||
return wsgi.render_response(status=(300, 'Multiple Choices'), body={
|
return wsgi.render_response(
|
||||||
'versions': {
|
status=(http_client.MULTIPLE_CHOICES,
|
||||||
'values': list(versions.values())
|
http_client.responses[http_client.MULTIPLE_CHOICES]),
|
||||||
}
|
body={
|
||||||
})
|
'versions': {
|
||||||
|
'values': list(versions.values())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
def get_version_v2(self, request):
|
def get_version_v2(self, request):
|
||||||
versions = self._get_versions_list(request.context_dict)
|
versions = self._get_versions_list(request.context_dict)
|
||||||
|
|
Loading…
Reference in New Issue