Merge "api: Simplify servers views (3/3)"
This commit is contained in:
@@ -292,25 +292,24 @@ class ViewBuilder(common.ViewBuilder):
|
||||
|
||||
server = {
|
||||
"server": {
|
||||
"accessIPv4": str(ip_v4) if ip_v4 is not None else '',
|
||||
"accessIPv6": str(ip_v6) if ip_v6 is not None else '',
|
||||
"addresses": self._get_addresses(
|
||||
request, instance, extend_address),
|
||||
"created": utils.isotime(instance["created_at"]),
|
||||
"flavor": self._get_flavor(
|
||||
request, instance, show_extra_specs),
|
||||
"hostId": self._get_host_id(instance),
|
||||
"id": instance["uuid"],
|
||||
"image": self._get_image(request, instance),
|
||||
"links": self._get_links(
|
||||
request, instance["uuid"], self._collection_name),
|
||||
"metadata": self._get_metadata(instance),
|
||||
"name": instance["display_name"],
|
||||
"status": self._get_vm_status(instance),
|
||||
"tenant_id": instance.get("project_id") or "",
|
||||
"user_id": instance.get("user_id") or "",
|
||||
"metadata": self._get_metadata(instance),
|
||||
"hostId": self._get_host_id(instance),
|
||||
"image": self._get_image(request, instance),
|
||||
"flavor": self._get_flavor(request, instance,
|
||||
show_extra_specs),
|
||||
"created": utils.isotime(instance["created_at"]),
|
||||
"updated": utils.isotime(instance["updated_at"]),
|
||||
"addresses": self._get_addresses(request, instance,
|
||||
extend_address),
|
||||
"accessIPv4": str(ip_v4) if ip_v4 is not None else '',
|
||||
"accessIPv6": str(ip_v6) if ip_v6 is not None else '',
|
||||
"links": self._get_links(request,
|
||||
instance["uuid"],
|
||||
self._collection_name),
|
||||
# NOTE(sdague): historically this was the
|
||||
# os-disk-config extension, but now that extensions
|
||||
# are gone, we merge these attributes here.
|
||||
@@ -334,14 +333,6 @@ class ViewBuilder(common.ViewBuilder):
|
||||
# attributes after v2.1. They are only in v2.1 for backward compat
|
||||
# with v2.0.
|
||||
server["server"]["OS-EXT-AZ:availability_zone"] = az or ''
|
||||
if api_version_request.is_supported(request, '2.96'):
|
||||
pinned_az = self._get_pinned_az(context, instance, provided_az)
|
||||
server['server']['pinned_availability_zone'] = pinned_az
|
||||
|
||||
if api_version_request.is_supported(request, '2.100'):
|
||||
server['server']['scheduler_hints'] = (
|
||||
self._get_scheduler_hints(
|
||||
context, instance, provided_sched_hints))
|
||||
|
||||
if show_config_drive:
|
||||
server["server"]["config_drive"] = instance["config_drive"]
|
||||
@@ -416,6 +407,9 @@ class ViewBuilder(common.ViewBuilder):
|
||||
context, [instance["uuid"]])
|
||||
self._add_volumes_attachments(request, server["server"], bdms)
|
||||
|
||||
if api_version_request.is_supported(request, '2.9'):
|
||||
server["server"]["locked"] = bool(instance["locked_by"])
|
||||
|
||||
if api_version_request.is_supported(request, '2.16'):
|
||||
if show_host_status is None:
|
||||
unknown_only = self._get_host_status_unknown_only(
|
||||
@@ -435,22 +429,14 @@ class ViewBuilder(common.ViewBuilder):
|
||||
host_status == fields.HostStatus.UNKNOWN):
|
||||
server["server"]['host_status'] = host_status
|
||||
|
||||
if api_version_request.is_supported(request, "2.9"):
|
||||
server["server"]["locked"] = (True if instance["locked_by"]
|
||||
else False)
|
||||
|
||||
if api_version_request.is_supported(request, "2.73"):
|
||||
server["server"]["locked_reason"] = (instance.system_metadata.get(
|
||||
"locked_reason"))
|
||||
|
||||
if api_version_request.is_supported(request, "2.19"):
|
||||
if api_version_request.is_supported(request, '2.19'):
|
||||
server["server"]["description"] = instance.get(
|
||||
"display_description")
|
||||
"display_description")
|
||||
|
||||
if api_version_request.is_supported(request, "2.26"):
|
||||
if api_version_request.is_supported(request, '2.26'):
|
||||
server["server"]["tags"] = [t.tag for t in instance.tags]
|
||||
|
||||
if api_version_request.is_supported(request, "2.63"):
|
||||
if api_version_request.is_supported(request, '2.63'):
|
||||
trusted_certs = None
|
||||
if instance.trusted_certs:
|
||||
trusted_certs = instance.trusted_certs.ids
|
||||
@@ -461,14 +447,27 @@ class ViewBuilder(common.ViewBuilder):
|
||||
server['server']['server_groups'] = self._get_server_groups(
|
||||
context, instance)
|
||||
|
||||
if api_version_request.is_supported(request, '2.73'):
|
||||
server["server"]["locked_reason"] = (
|
||||
instance.system_metadata.get("locked_reason"))
|
||||
|
||||
# TODO(stephenfin): Remove this check once we remove the
|
||||
# OS-EXT-SRV-ATTR:hostname policy checks from the policy is Y or later
|
||||
if api_version_request.is_supported(request, '2.90'):
|
||||
# API 2.90 made this field visible to non-admins, but we only show
|
||||
# it if it's not already added
|
||||
if not show_extended_attr:
|
||||
server["server"]["OS-EXT-SRV-ATTR:hostname"] = \
|
||||
instance.hostname
|
||||
server["server"]["OS-EXT-SRV-ATTR:hostname"] = (
|
||||
instance.hostname)
|
||||
|
||||
if show_AZ:
|
||||
if api_version_request.is_supported(request, '2.96'):
|
||||
pinned_az = self._get_pinned_az(context, instance, provided_az)
|
||||
server['server']['pinned_availability_zone'] = pinned_az
|
||||
|
||||
if api_version_request.is_supported(request, '2.100'):
|
||||
server['server']['scheduler_hints'] = self._get_scheduler_hints(
|
||||
context, instance, provided_sched_hints)
|
||||
|
||||
return server
|
||||
|
||||
|
||||
Reference in New Issue
Block a user