diff options
author | Ivan Kolodyazhny <e0ne@e0ne.info> | 2020-04-22 17:41:13 +0300 |
---|---|---|
committer | Akihiro Motoki <amotoki@gmail.com> | 2020-09-24 18:48:15 +0900 |
commit | d403b31d70e06d784bc644c525e89a7e1b0b549d (patch) | |
tree | 2f72c3ebd0264097492175f0c254708dd71143ca | |
parent | 79e505520fc307eeedc1f5c81fb516e9638ebd72 (diff) | |
download | horizon-d403b31d70e06d784bc644c525e89a7e1b0b549d.tar.gz |
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
-rw-r--r-- | openstack_dashboard/api/_nova.py | 54 | ||||
-rw-r--r-- | openstack_dashboard/dashboards/project/instances/templates/instances/_detail_overview.html | 20 |
2 files changed, 68 insertions, 6 deletions
diff --git a/openstack_dashboard/api/_nova.py b/openstack_dashboard/api/_nova.py index 2773446dc..0c6779d5a 100644 --- a/openstack_dashboard/api/_nova.py +++ b/openstack_dashboard/api/_nova.py @@ -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): @@ -76,16 +80,58 @@ class Server(base.APIResourceWrapper): return None @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 availability_zone(self): - return getattr(self, 'OS-EXT-AZ:availability_zone', "") + def host_server(self): + return getattr(self, 'OS-EXT-SRV-ATTR:host', "") @property - def host_server(self): - return getattr(self, 'OS-EXT-SRV-ATTR:host', '') + 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 diff --git a/openstack_dashboard/dashboards/project/instances/templates/instances/_detail_overview.html b/openstack_dashboard/dashboards/project/instances/templates/instances/_detail_overview.html index 55427f7d5..4033f23fb 100644 --- a/openstack_dashboard/dashboards/project/instances/templates/instances/_detail_overview.html +++ b/openstack_dashboard/dashboards/project/instances/templates/instances/_detail_overview.html @@ -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> |