From 28d3218d544b6f97dd53bbf58d382960df1b03a1 Mon Sep 17 00:00:00 2001 From: Zhenguo Niu Date: Tue, 9 May 2017 13:21:41 +0800 Subject: [PATCH] Add server ips column Change-Id: I42e50c77a784c43c53d4e835f2bf64b6c92b55fd --- mogan_ui/content/servers/tables.py | 25 +++++++++++++++++++ .../templates/servers/_server_ips.html | 19 ++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 mogan_ui/content/servers/templates/servers/_server_ips.html diff --git a/mogan_ui/content/servers/tables.py b/mogan_ui/content/servers/tables.py index 6462bfd..cafbd51 100644 --- a/mogan_ui/content/servers/tables.py +++ b/mogan_ui/content/servers/tables.py @@ -14,6 +14,7 @@ # limitations under the License. from django.http import HttpResponse +from django import template from django.template.defaultfilters import title from django.utils.translation import pgettext_lazy from django.utils.translation import ugettext_lazy as _ @@ -92,6 +93,27 @@ class UpdateRow(tables.Row): raise exceptions.NOT_FOUND +def get_ips(server): + template_name = 'project/servers/_server_ips.html' + ip_groups = {} + + for nic in server.nics: + net_id = nic['network_id'] + ip_groups[net_id] = {} + ip_groups[net_id]["floating"] = [] + ip_groups[net_id]["non_floating"] = [] + if nic.get('floating_ip'): + ip_groups[net_id]["floating"].append(nic.floating_ip) + + for ip in nic['fixed_ips']: + ip_groups[net_id]["non_floating"].append(ip['ip_address']) + + context = { + "ip_groups": ip_groups, + } + return template.loader.render_to_string(template_name, context) + + STATUS_DISPLAY_CHOICES = ( ("active", pgettext_lazy("Current status of a Server", u"Active")), ("stopped", pgettext_lazy("Current status of a Server", u"Stopped")), @@ -141,6 +163,9 @@ class ServersTable(tables.DataTable): verbose_name=_("Server Name")) image = tables.Column("image_uuid", verbose_name=_("Image")) + ip = tables.Column(get_ips, + verbose_name=_("IP Address"), + attrs={'data-type': "ip"}) flavor = tables.Column("flavor_uuid", sortable=False, verbose_name=_("Flavor")) diff --git a/mogan_ui/content/servers/templates/servers/_server_ips.html b/mogan_ui/content/servers/templates/servers/_server_ips.html new file mode 100644 index 0000000..97e0631 --- /dev/null +++ b/mogan_ui/content/servers/templates/servers/_server_ips.html @@ -0,0 +1,19 @@ +{% load i18n %} +{% for ip_group, ips in ip_groups.items %} + {% if ip_groups.keys|length > 1 %} +

{{ ip_group }}

+ {% endif %} + + {% if ips.floating|length > 0 %} +
{% trans 'Floating IPs:' %}
+ + {% endif %} +{% endfor %}