diff --git a/openstack_dashboard/api/_nova.py b/openstack_dashboard/api/_nova.py index 2773446dc0..0c6779d5ac 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): @@ -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 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 55427f7d58..4033f23fbd 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 @@
{{ instance.created|parse_isotime }}
{% trans "Age" %}
{{ instance.created|parse_isotime|timesince }}
- {% if instance.host_server %} + {% if instance.has_extended_attrs %}
{% trans "Host" %}
-
{{ instance.host_server }}
+
{{ instance.host_server|default:_("-") }}
+
{% trans "Instance Name" %}
+
{{ instance.instance_name|default:_("-") }}
+
{% trans "Reservation ID" %}
+
{{ instance.reservation_id|default:_("-") }}
+
{% trans "Launch Index" %}
+
{{ instance.launch_index|default:_("-") }}
+
{% trans "Hostname" %}
+
{{ instance.hostname|default:_("-") }}
+
{% trans "Kernel ID" %}
+
{{ instance.kernel_id|default:_("-") }}
+
{% trans "Ramdisk ID" %}
+
{{ instance.ramdisk_id|default:_("-") }}
+
{% trans "Device Name" %}
+
{{ instance.root_device_name|default:_("-") }}
+
{% trans "User Data" %}
+
{{ instance.user_data|default:_("-") }}
{% endif %}