diff --git a/nova/api/openstack/compute/evacuate.py b/nova/api/openstack/compute/evacuate.py index f18ecace15e7..322032e40e1a 100644 --- a/nova/api/openstack/compute/evacuate.py +++ b/nova/api/openstack/compute/evacuate.py @@ -43,11 +43,10 @@ class EvacuateController(wsgi.Controller): self.host_api = compute.HostAPI() def _get_on_shared_storage(self, req, evacuate_body): - if (req.api_version_request < - api_version_request.APIVersionRequest("2.14")): - return strutils.bool_from_string(evacuate_body["onSharedStorage"]) - else: + if api_version_request.is_supported(req, min_version='2.14'): return None + else: + return strutils.bool_from_string(evacuate_body["onSharedStorage"]) def _get_password(self, req, evacuate_body, on_shared_storage): password = None @@ -91,12 +90,11 @@ class EvacuateController(wsgi.Controller): on_shared_storage = self._get_on_shared_storage(req, evacuate_body) - if (req.api_version_request < - api_version_request.APIVersionRequest("2.14")): + if api_version_request.is_supported(req, min_version='2.14'): + password = self._get_password_v214(req, evacuate_body) + else: password = self._get_password(req, evacuate_body, on_shared_storage) - else: - password = self._get_password_v214(req, evacuate_body) if host is not None: try: @@ -121,8 +119,7 @@ class EvacuateController(wsgi.Controller): except exception.ComputeServiceInUse as e: raise exc.HTTPBadRequest(explanation=e.format_message()) - if (req.api_version_request < - api_version_request.APIVersionRequest("2.14") and + if (not api_version_request.is_supported(req, min_version='2.14') and CONF.enable_instance_password): return {'adminPass': password} else: diff --git a/nova/api/openstack/compute/server_groups.py b/nova/api/openstack/compute/server_groups.py index 72406ae83830..ca5d72aae2f1 100644 --- a/nova/api/openstack/compute/server_groups.py +++ b/nova/api/openstack/compute/server_groups.py @@ -47,7 +47,7 @@ def _authorize_context(req): class ServerGroupController(wsgi.Controller): """The Server group API controller for the OpenStack API.""" - def _format_server_group(self, context, group, req_ver): + def _format_server_group(self, context, group, req): # the id field has its value as the uuid of the server group # There is no 'uuid' key in server_group seen by clients. # In addition, clients see policies as a ["policy-name"] list; @@ -69,7 +69,7 @@ class ServerGroupController(wsgi.Controller): server_group['members'] = members # Add project id information to the response data for # API version v2.13 - if req_ver >= api_version_request.APIVersionRequest("2.13"): + if api_version_request.is_supported(req, min_version="2.13"): server_group['project_id'] = group.project_id server_group['user_id'] = group.user_id return server_group @@ -77,15 +77,12 @@ class ServerGroupController(wsgi.Controller): @extensions.expected_errors(404) def show(self, req, id): """Return data about the given server group.""" - req_ver = req.api_version_request - context = _authorize_context(req) try: sg = objects.InstanceGroup.get_by_uuid(context, id) except nova.exception.InstanceGroupNotFound as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) - return {'server_group': self._format_server_group( - context, sg, req_ver)} + return {'server_group': self._format_server_group(context, sg, req)} @wsgi.response(204) @extensions.expected_errors(404) @@ -122,8 +119,6 @@ class ServerGroupController(wsgi.Controller): @extensions.expected_errors(()) def index(self, req): """Returns a list of server groups.""" - req_ver = req.api_version_request - context = _authorize_context(req) project_id = context.project_id if 'all_projects' in req.GET and context.is_admin: @@ -132,7 +127,7 @@ class ServerGroupController(wsgi.Controller): sgs = objects.InstanceGroupList.get_by_project_id( context, project_id) limited_list = common.limited(sgs.objects, req) - result = [self._format_server_group(context, group, req_ver) + result = [self._format_server_group(context, group, req) for group in limited_list] return {'server_groups': result} @@ -140,8 +135,6 @@ class ServerGroupController(wsgi.Controller): @validation.schema(schema.create) def create(self, req, body): """Creates a new server group.""" - req_ver = req.api_version_request - context = _authorize_context(req) quotas = objects.Quotas(context=context) @@ -165,8 +158,7 @@ class ServerGroupController(wsgi.Controller): raise exc.HTTPBadRequest(explanation=e) quotas.commit() - return {'server_group': self._format_server_group(context, sg, - req_ver)} + return {'server_group': self._format_server_group(context, sg, req)} class ServerGroups(extensions.V21APIExtensionBase): diff --git a/nova/api/openstack/compute/views/servers.py b/nova/api/openstack/compute/views/servers.py index 1ce83f55bc6f..7d72cbc7ae56 100644 --- a/nova/api/openstack/compute/views/servers.py +++ b/nova/api/openstack/compute/views/servers.py @@ -305,8 +305,7 @@ class ViewBuilderV21(ViewBuilder): if server["server"]["status"] in self._progress_statuses: server["server"]["progress"] = instance.get("progress", 0) - if (request.api_version_request >= - api_version_request.APIVersionRequest("2.9")): + if api_version_request.is_supported(request, min_version="2.9"): server["server"]["locked"] = (True if instance["locked_by"] else False)