Show full flavor with server
Change-Id: Idfac9ad7ada3b962bb68650e4f08d7c9f2e7046e
This commit is contained in:
parent
398e11dc71
commit
55cb393e1d
@ -42,7 +42,11 @@ def server_list(request):
|
||||
:return: A list of servers.
|
||||
"""
|
||||
server_manager = moganclient(request).server
|
||||
return server_manager.list(detailed=True, all_projects=False)
|
||||
servers = server_manager.list(detailed=True, all_projects=False)
|
||||
for server in servers:
|
||||
full_flavor = flavor_get(request, server.flavor_uuid)
|
||||
server.full_flavor = full_flavor
|
||||
return servers
|
||||
|
||||
|
||||
def server_create(request, name, image, flavor, nics, availability_zone,
|
||||
@ -69,7 +73,10 @@ def server_get(request, server_id):
|
||||
:return: Server object.
|
||||
"""
|
||||
server_manager = moganclient(request).server
|
||||
return server_manager.get(server_id)
|
||||
server = server_manager.get(server_id)
|
||||
full_flavor = flavor_get(request, server.flavor_uuid)
|
||||
server.full_flavor = full_flavor
|
||||
return server
|
||||
|
||||
|
||||
def server_delete(request, server_id):
|
||||
@ -185,3 +192,14 @@ def flavor_list(request):
|
||||
"""
|
||||
flavor_manager = moganclient(request).flavor
|
||||
return flavor_manager.list()
|
||||
|
||||
|
||||
def flavor_get(request, flavor_id):
|
||||
"""Get a flavor.
|
||||
|
||||
:param request: HTTP request.
|
||||
:param server_id: The uuid of the flavor.
|
||||
:return: Flavor object.
|
||||
"""
|
||||
flavor_manager = moganclient(request).flavor
|
||||
return flavor_manager.get(flavor_id)
|
||||
|
@ -25,6 +25,7 @@ from mogan_ui.api import mogan
|
||||
from mogan_ui import exceptions
|
||||
|
||||
from horizon import tables
|
||||
from horizon.templatetags import sizeformat
|
||||
from horizon.utils import filters
|
||||
|
||||
|
||||
@ -239,6 +240,40 @@ def get_ips(server):
|
||||
return template.loader.render_to_string(template_name, context)
|
||||
|
||||
|
||||
def get_flavor(server):
|
||||
if hasattr(server, "full_flavor"):
|
||||
template_name = 'project/servers/_server_flavor.html'
|
||||
full_flavor = server.full_flavor
|
||||
cpus = "%s %s cores" % (full_flavor.cpus['model'],
|
||||
full_flavor.cpus['cores'])
|
||||
size_ram = sizeformat.mb_float_format(full_flavor.memory['size_mb'])
|
||||
ram = "%s %s" % (size_ram, full_flavor.memory['type'])
|
||||
disks = ""
|
||||
for disk in full_flavor.disks:
|
||||
if disks != "":
|
||||
disks += "<br>"
|
||||
size_disk = sizeformat.diskgbformat(disk['size_gb'])
|
||||
disk = "%s %s" % (disk['type'], size_disk)
|
||||
disks += disk
|
||||
nics = ""
|
||||
for nic in full_flavor.nics:
|
||||
if nics != "":
|
||||
nics += "<br>"
|
||||
nic = "%s %s" % (nic['type'], nic['speed'])
|
||||
nics += nic
|
||||
context = {
|
||||
"name": server.full_flavor.name,
|
||||
"id": server.uuid,
|
||||
"disks": disks,
|
||||
"nics": nics,
|
||||
"cpus": cpus,
|
||||
"ram": ram,
|
||||
"flavor_id": server.full_flavor.uuid
|
||||
}
|
||||
return template.loader.render_to_string(template_name, context)
|
||||
return _("Not available")
|
||||
|
||||
|
||||
STATUS_DISPLAY_CHOICES = (
|
||||
("active", pgettext_lazy("Current status of a Server", u"Active")),
|
||||
("stopped", pgettext_lazy("Current status of a Server", u"Stopped")),
|
||||
@ -291,7 +326,7 @@ class ServersTable(tables.DataTable):
|
||||
ip = tables.Column(get_ips,
|
||||
verbose_name=_("IP Address"),
|
||||
attrs={'data-type': "ip"})
|
||||
flavor = tables.Column("flavor_uuid",
|
||||
flavor = tables.Column(get_flavor,
|
||||
sortable=False,
|
||||
verbose_name=_("Flavor"))
|
||||
status = tables.Column("status",
|
||||
|
@ -0,0 +1,18 @@
|
||||
{% load i18n %}
|
||||
<a href="#" id="flavor_details_{{ id }}" class="link-popover" rel="popover" tabindex="0" data-trigger="focus" data-content="
|
||||
<table class='table table-bordered'>
|
||||
<tr><th>{% trans 'ID' %}</th><td>{{ flavor_id }}</td></tr>
|
||||
<tr><th>{% trans 'CPUs' %}</th><td>{{ cpus }}</td></tr>
|
||||
<tr><th>{% trans 'RAM' %}</th><td>{{ ram }}</td></tr>
|
||||
<tr><th>{% trans 'NICs' %}</th><td>{{ nics }}</td></tr>
|
||||
<tr><th>{% trans 'DISKs' %}</th><td>{{ disks }}</td></tr>
|
||||
</table>
|
||||
" data-original-title="{% blocktrans %}Flavor Details: {{ name }}">{{ name }}{% endblocktrans %}</a>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
$(function () {
|
||||
var $flavor = $("#flavor_details_{{ id }}");
|
||||
if ( $flavor.popover ) {
|
||||
$flavor.popover({html:true});
|
||||
}
|
||||
});
|
||||
</script>
|
Loading…
x
Reference in New Issue
Block a user