summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kolodyazhny <e0ne@e0ne.info>2020-04-22 17:41:13 +0300
committerAkihiro Motoki <amotoki@gmail.com>2020-09-24 18:48:15 +0900
commitd403b31d70e06d784bc644c525e89a7e1b0b549d (patch)
tree2f72c3ebd0264097492175f0c254708dd71143ca
parent79e505520fc307eeedc1f5c81fb516e9638ebd72 (diff)
downloadhorizon-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.py54
-rw-r--r--openstack_dashboard/dashboards/project/instances/templates/instances/_detail_overview.html20
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>