mirror of
https://github.com/OpenNebula/one.git
synced 2025-02-04 17:47:00 +03:00
Feature #4215: Show VR nics in a nice table
This commit is contained in:
parent
603c726a18
commit
e3ffbd2409
@ -108,6 +108,80 @@ class OneVirtualRouterHelper < OpenNebulaHelper::OneHelper
|
||||
|
||||
puts str % [e, mask]
|
||||
}
|
||||
|
||||
if obj.has_elements?("/VROUTER/TEMPLATE/NIC")
|
||||
puts
|
||||
CLIHelper.print_header(str_h1 % "VIRTUAL ROUTER NICS",false)
|
||||
|
||||
nic_default = {"NETWORK" => "-",
|
||||
"IP" => "-"}
|
||||
|
||||
shown_ips = []
|
||||
|
||||
array_id = 0
|
||||
vm_nics = [obj.to_hash['VROUTER']['TEMPLATE']['NIC']].flatten.compact
|
||||
vm_nics.each {|nic|
|
||||
|
||||
next if nic.has_key?("CLI_DONE")
|
||||
|
||||
if nic.has_key?("IP6_LINK")
|
||||
shown_ips << nic["IP6_LINK"]
|
||||
|
||||
ip6_link = {"IP" => nic.delete("IP6_LINK"),
|
||||
"CLI_DONE" => true,
|
||||
"DOUBLE_ENTRY" => true}
|
||||
vm_nics.insert(array_id+1,ip6_link)
|
||||
|
||||
array_id += 1
|
||||
end
|
||||
|
||||
if nic.has_key?("IP6_ULA")
|
||||
shown_ips << nic["IP6_ULA"]
|
||||
|
||||
ip6_link = {"IP" => nic.delete("IP6_ULA"),
|
||||
"CLI_DONE" => true,
|
||||
"DOUBLE_ENTRY" => true}
|
||||
vm_nics.insert(array_id+1,ip6_link)
|
||||
|
||||
array_id += 1
|
||||
end
|
||||
|
||||
if nic.has_key?("IP6_GLOBAL")
|
||||
shown_ips << nic["IP6_GLOBAL"]
|
||||
|
||||
ip6_link = {"IP" => nic.delete("IP6_GLOBAL"),
|
||||
"CLI_DONE" => true,
|
||||
"DOUBLE_ENTRY" => true}
|
||||
vm_nics.insert(array_id+1,ip6_link)
|
||||
|
||||
array_id += 1
|
||||
end
|
||||
|
||||
shown_ips << nic["IP"] if nic.has_key?("IP")
|
||||
|
||||
nic.merge!(nic_default) {|k,v1,v2| v1}
|
||||
array_id += 1
|
||||
}
|
||||
|
||||
CLIHelper::ShowTable.new(nil, self) do
|
||||
column :NETWORK, "", :left, :size=>20 do |d|
|
||||
if d["DOUBLE_ENTRY"]
|
||||
""
|
||||
else
|
||||
d["NETWORK"]
|
||||
end
|
||||
end
|
||||
|
||||
column :IP, "",:left, :donottruncate, :size=>15 do |d|
|
||||
d["IP"]
|
||||
end
|
||||
end.show(vm_nics,{})
|
||||
end
|
||||
|
||||
while obj.has_elements?("/VROUTER/TEMPLATE/NIC")
|
||||
obj.delete_element("/VROUTER/TEMPLATE/NIC")
|
||||
end
|
||||
|
||||
puts
|
||||
|
||||
CLIHelper.print_header(str_h1 % "TEMPLATE CONTENTS",false)
|
||||
|
@ -31,6 +31,7 @@ define(function(require) {
|
||||
var TemplatesTable = require('tabs/templates-tab/datatable');
|
||||
var OpenNebulaVirtualRouter = require('opennebula/virtualrouter');
|
||||
var OpenNebulaTemplate = require('opennebula/template');
|
||||
var OpenNebulaAction = require('opennebula/action');
|
||||
var Notifier = require('utils/notifier');
|
||||
|
||||
/*
|
||||
@ -147,6 +148,8 @@ define(function(require) {
|
||||
virtual_router_json.NIC = nics;
|
||||
}
|
||||
|
||||
delete virtual_router_json["FLOATING_IP"];
|
||||
|
||||
var tmplId = this.templatesTable.retrieveResourceTableSelect();
|
||||
|
||||
if (this.action == "create") {
|
||||
@ -197,6 +200,9 @@ define(function(require) {
|
||||
extra_param: extra_info
|
||||
},
|
||||
timeout: true,
|
||||
success: function(request, response){
|
||||
OpenNebulaAction.clear_cache("VM");
|
||||
},
|
||||
error: Notifier.onError
|
||||
});
|
||||
}
|
||||
|
@ -70,9 +70,17 @@ define(function(require) {
|
||||
|
||||
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
|
||||
|
||||
var nics = [];
|
||||
|
||||
if ($.isArray(this.element.TEMPLATE.NIC)){
|
||||
nics = this.element.TEMPLATE.NIC;
|
||||
} else if (!$.isEmptyObject(this.element.TEMPLATE.NIC)){
|
||||
nics = [this.element.TEMPLATE.NIC];
|
||||
}
|
||||
|
||||
// TODO: simplify interface?
|
||||
var strippedTemplate = $.extend({}, this.element.TEMPLATE);
|
||||
//delete strippedTemplate[""];
|
||||
delete strippedTemplate["NIC"];
|
||||
|
||||
var templateTableHTML = TemplateTable.html(strippedTemplate, RESOURCE,
|
||||
Locale.tr("Attributes"));
|
||||
@ -82,6 +90,7 @@ define(function(require) {
|
||||
'element': this.element,
|
||||
'renameTrHTML': renameTrHTML,
|
||||
'permissionsTableHTML': permissionsTableHTML,
|
||||
'nics': nics,
|
||||
'templateTableHTML': templateTableHTML
|
||||
});
|
||||
}
|
||||
@ -101,9 +110,13 @@ define(function(require) {
|
||||
|
||||
// TODO: simplify interface?
|
||||
var strippedTemplate = $.extend({}, this.element.TEMPLATE);
|
||||
//delete strippedTemplate[""];
|
||||
delete strippedTemplate["NIC"];
|
||||
|
||||
var hiddenValues = {RULE: this.element.TEMPLATE.RULE};
|
||||
var hiddenValues = {};
|
||||
|
||||
if (this.element.TEMPLATE.NIC != undefined){
|
||||
hiddenValues.NIC = this.element.TEMPLATE.NIC;
|
||||
}
|
||||
|
||||
TemplateTable.setup(strippedTemplate, RESOURCE, this.element.ID, context, hiddenValues);
|
||||
//===
|
||||
|
@ -35,6 +35,30 @@
|
||||
{{{permissionsTableHTML}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="large-9 columns">
|
||||
<table class="dataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{tr "Network"}}</th>
|
||||
<th>{{tr "Floating IP"}}</th>
|
||||
<th>{{tr "Floating IPv6 ULA"}}</th>
|
||||
<th>{{tr "Floating IPv6 Global"}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each nics}}
|
||||
<tr>
|
||||
<td>{{NETWORK}}</td>
|
||||
<td>{{valOrDefault IP "--"}}</td>
|
||||
<td>{{valOrDefault IP6_ULA "--"}}</td>
|
||||
<td>{{valOrDefault IP6_GLOBAL "--"}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="large-9 columns">
|
||||
{{{templateTableHTML}}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user