Use is_supported() to check microversion
Method is_supported from api_version_request.py could be used in several places to check support of microversions. Change-Id: I1c72d924df3afac69d596e529570dc725faa8968
This commit is contained in:
parent
727656d2f5
commit
ced866c4c4
|
@ -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:
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue