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