Show all os-extended-server-attributes

Patch I0cfe9090e8263f983fa5f42f42616a26407be47a adds hypervisor hostname
to the instance details view. This patch adds the rest of instance
attributes allowed by 'os_compute_api:os-extended-server-attributes'
policy.

Change-Id: Id39ee14e3054422a96248f8cdd0a5bf07c27f2fc
Closes-Bug: #1874273
This commit is contained in:
Ivan Kolodyazhny
2020-04-22 17:41:13 +03:00
committed by Akihiro Motoki
parent 79e505520f
commit d403b31d70
2 changed files with 69 additions and 7 deletions

View File

@@ -50,6 +50,10 @@ class Server(base.APIResourceWrapper):
'tenant_id', 'user_id', 'created', 'locked',
'OS-EXT-STS:power_state', 'OS-EXT-STS:task_state',
'OS-EXT-SRV-ATTR:instance_name', 'OS-EXT-SRV-ATTR:host',
'OS-EXT-SRV-ATTR:hostname', 'OS-EXT-SRV-ATTR:kernel_id',
'OS-EXT-SRV-ATTR:ramdisk_id', 'OS-EXT-SRV-ATTR:root_device_name',
'OS-EXT-SRV-ATTR:root_device_name', 'OS-EXT-SRV-ATTR:user_data',
'OS-EXT-SRV-ATTR:reservation_id', 'OS-EXT-SRV-ATTR:launch_index',
'OS-EXT-AZ:availability_zone', 'OS-DCF:diskConfig']
def __init__(self, apiresource, request):
@@ -75,17 +79,59 @@ class Server(base.APIResourceWrapper):
self.image['name'] = None
return None
@property
def internal_name(self):
return getattr(self, 'OS-EXT-SRV-ATTR:instance_name', "")
@property
def availability_zone(self):
return getattr(self, 'OS-EXT-AZ:availability_zone', "")
@property
def has_extended_attrs(self):
return any(getattr(self, attr) for attr in [
'OS-EXT-SRV-ATTR:instance_name', 'OS-EXT-SRV-ATTR:host',
'OS-EXT-SRV-ATTR:hostname', 'OS-EXT-SRV-ATTR:kernel_id',
'OS-EXT-SRV-ATTR:ramdisk_id', 'OS-EXT-SRV-ATTR:root_device_name',
'OS-EXT-SRV-ATTR:root_device_name', 'OS-EXT-SRV-ATTR:user_data',
'OS-EXT-SRV-ATTR:reservation_id', 'OS-EXT-SRV-ATTR:launch_index',
])
@property
def internal_name(self):
return getattr(self, 'OS-EXT-SRV-ATTR:instance_name', "")
@property
def host_server(self):
return getattr(self, 'OS-EXT-SRV-ATTR:host', '')
return getattr(self, 'OS-EXT-SRV-ATTR:host', "")
@property
def instance_name(self):
return getattr(self, 'OS-EXT-SRV-ATTR:instance_name', "")
@property
def reservation_id(self):
return getattr(self, 'OS-EXT-SRV-ATTR:reservation_id', "")
@property
def launch_index(self):
return getattr(self, 'OS-EXT-SRV-ATTR:launch_index', "")
@property
def hostname(self):
return getattr(self, 'OS-EXT-SRV-ATTR:hostname', "")
@property
def kernel_id(self):
return getattr(self, 'OS-EXT-SRV-ATTR:kernel_id', "")
@property
def ramdisk_id(self):
return getattr(self, 'OS-EXT-SRV-ATTR:ramdisk_id', "")
@property
def root_device_name(self):
return getattr(self, 'OS-EXT-SRV-ATTR:root_device_name', "")
@property
def user_data(self):
return getattr(self, 'OS-EXT-SRV-ATTR:user_data', "")
@memoized.memoized

View File

@@ -22,9 +22,25 @@
<dd>{{ instance.created|parse_isotime }}</dd>
<dt>{% trans "Age" %}</dt>
<dd>{{ instance.created|parse_isotime|timesince }}</dd>
{% if instance.host_server %}
{% if instance.has_extended_attrs %}
<dt>{% trans "Host" %}</dt>
<dd>{{ instance.host_server }}</dd>
<dd>{{ instance.host_server|default:_("-") }}</dd>
<dt>{% trans "Instance Name" %}</dt>
<dd>{{ instance.instance_name|default:_("-") }}</dd>
<dt>{% trans "Reservation ID" %}</dt>
<dd>{{ instance.reservation_id|default:_("-") }}</dd>
<dt>{% trans "Launch Index" %}</dt>
<dd>{{ instance.launch_index|default:_("-") }}</dd>
<dt>{% trans "Hostname" %}</dt>
<dd>{{ instance.hostname|default:_("-") }}</dd>
<dt>{% trans "Kernel ID" %}</dt>
<dd>{{ instance.kernel_id|default:_("-") }}</dd>
<dt>{% trans "Ramdisk ID" %}</dt>
<dd>{{ instance.ramdisk_id|default:_("-") }}</dd>
<dt>{% trans "Device Name" %}</dt>
<dd>{{ instance.root_device_name|default:_("-") }}</dd>
<dt>{% trans "User Data" %}</dt>
<dd>{{ instance.user_data|default:_("-") }}</dd>
{% endif %}
</dl>