1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-23 22:50:09 +03:00

F #3045: Add QoS attributes in sunstone

This commit is contained in:
Carlos Martín 2016-09-23 16:46:27 +02:00
parent e1e6a8bfaf
commit d936cab66a
5 changed files with 195 additions and 5 deletions

View File

@ -127,6 +127,52 @@
</div>
</div>
</fieldset>
<fieldset>
<legend>{{tr "Override Network Inbound Traffic QoS"}}</legend>
<div class="row">
<div class="medium-4 columns">
<label>
{{tr "Average bandwidth (KBytes/s)"}}
<input type="number" wizard_field="INBOUND_AVG_BW"/>
</label>
</div>
<div class="medium-4 columns">
<label>
{{tr "Peak bandwidth (KBytes/s)"}}
<input type="number" wizard_field="INBOUND_PEAK_BW"/>
</label>
</div>
<div class="medium-4 columns">
<label>
{{tr "Peak burst (KBytes)"}}
<input type="number" wizard_field="INBOUND_PEAK_KB"/>
</label>
</div>
</div>
</fieldset>
<fieldset>
<legend>{{tr "Override Network Outbound Traffic QoS"}}</legend>
<div class="row">
<div class="medium-4 columns">
<label>
{{tr "Average bandwidth (KBytes/s)"}}
<input type="number" wizard_field="OUTBOUND_AVG_BW"/>
</label>
</div>
<div class="medium-4 columns">
<label>
{{tr "Peak bandwidth (KBytes/s)"}}
<input type="number" wizard_field="OUTBOUND_PEAK_BW"/>
</label>
</div>
<div class="medium-4 columns">
<label>
{{tr "Peak burst (KBytes)"}}
<input type="number" wizard_field="OUTBOUND_PEAK_KB"/>
</label>
</div>
</div>
</fieldset>
<fieldset>
<legend>{{tr "Hardware"}}</legend>
<div class="row">

View File

@ -260,6 +260,7 @@ define(function(require) {
$.extend(network_json, WizardFields.retrieve($("#vnetCreateGeneralTab", context)));
$.extend(network_json, WizardFields.retrieve($("#vnetCreateBridgeTab", context)));
$.extend(network_json, WizardFields.retrieve($("#vnetCreateQoSTab", context)));
$.extend(network_json, WizardFields.retrieve($("#vnetCreateContextTab", context)));
var secgroups = this.securityGroupsTable.retrieveResourceTableSelect();
@ -349,6 +350,7 @@ define(function(require) {
WizardFields.fill($("#vnetCreateGeneralTab", context), element.TEMPLATE);
WizardFields.fill($("#vnetCreateBridgeTab", context), element.TEMPLATE);
WizardFields.fill($("#vnetCreateQoSTab", context), element.TEMPLATE);
WizardFields.fill($("#vnetCreateContextTab", context), element.TEMPLATE);
if ($('#network_mode', context).val() == undefined){

View File

@ -33,6 +33,11 @@
<i class="fa fa-shield"></i>
<br>{{tr "Security"}}</a>
</dd>
<dd class="tabs-title">
<a href="#vnetCreateQoSTab">
<i class="fa fa-wrench"></i>
<br>{{tr "QoS"}}</a>
</dd>
<dd class="tabs-title">
<a href="#vnetCreateContextTab">
<i class="fa fa-folder"></i>
@ -194,6 +199,61 @@
</div>
</div>
</div>
<div class="tabs-panel" id="vnetCreateQoSTab">
<fieldset>
<legend>{{tr "Inbound traffic"}}</legend>
<div class="row">
<div class="medium-4 columns">
<label>
{{tr "Average bandwidth (KBytes/s)"}}
<input type="number" wizard_field="INBOUND_AVG_BW"/>
</label>
</div>
<div class="medium-4 columns">
<label>
{{tr "Peak bandwidth (KBytes/s)"}}
<input type="number" wizard_field="INBOUND_PEAK_BW"/>
</label>
</div>
<div class="medium-4 columns">
<label>
{{tr "Peak burst (KBytes)"}}
<input type="number" wizard_field="INBOUND_PEAK_KB"/>
</label>
</div>
</div>
</fieldset>
<fieldset>
<legend>{{tr "Outbound traffic"}}</legend>
<div class="row">
<div class="medium-4 columns">
<label>
{{tr "Average bandwidth (KBytes/s)"}}
<input type="number" wizard_field="OUTBOUND_AVG_BW"/>
</label>
</div>
<div class="medium-4 columns">
<label>
{{tr "Peak bandwidth (KBytes/s)"}}
<input type="number" wizard_field="OUTBOUND_PEAK_BW"/>
</label>
</div>
<div class="medium-4 columns">
<label>
{{tr "Peak burst (KBytes)"}}
<input type="number" wizard_field="OUTBOUND_PEAK_KB"/>
</label>
</div>
</div>
</fieldset>
<div class="row">
<div class="large-12 columns">
<span class="radius secondary label">
<i class="fa fa-info-circle"/> {{tr "These values apply to each VM interface individually, they are not global values for the Virtual Network"}}
</span>
</div>
</div>
</div>
<div class="tabs-panel" id="vnetCreateContextTab">
<div class="row">
<div class="medium-6 columns">

View File

@ -68,8 +68,20 @@ define(function(require) {
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
// TODO: simplify interface?
var hiddenKeys = [
"SECURITY_GROUPS",
"INBOUND_AVG_BW",
"INBOUND_PEAK_BW",
"INBOUND_PEAK_KB",
"OUTBOUNDD_AVG_BW",
"OUTBOUND_PEAK_BW",
"OUTBOUND_PEAK_KB" ];
var strippedTemplate = $.extend({}, this.element.TEMPLATE);
delete strippedTemplate["SECURITY_GROUPS"];
$.each(hiddenKeys, function(i, key){
delete strippedTemplate[key];
});
var templateTableHTML = TemplateTable.html(strippedTemplate, RESOURCE,
Locale.tr("Attributes"));
@ -106,18 +118,34 @@ define(function(require) {
}
function _setup(context) {
var that = this;
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);
// TODO: simplify interface?
var hiddenKeys = [
"SECURITY_GROUPS",
"INBOUND_AVG_BW",
"INBOUND_PEAK_BW",
"INBOUND_PEAK_KB",
"OUTBOUNDD_AVG_BW",
"OUTBOUND_PEAK_BW",
"OUTBOUND_PEAK_KB" ];
var strippedTemplate = $.extend({}, this.element.TEMPLATE);
delete strippedTemplate["SECURITY_GROUPS"];
$.each(hiddenKeys, function(i, key){
delete strippedTemplate[key];
});
var hiddenValues = {};
if (this.element.TEMPLATE.SECURITY_GROUPS != undefined){
hiddenValues.SECURITY_GROUPS = this.element.TEMPLATE.SECURITY_GROUPS;
}
$.each(hiddenKeys, function(i, key){
if (that.element.TEMPLATE[key] != undefined){
hiddenValues[key] = that.element.TEMPLATE[key];
}
});
TemplateTable.setup(strippedTemplate, RESOURCE, this.element.ID, context, hiddenValues);
//===

View File

@ -42,6 +42,60 @@
{{{permissionsTableHTML}}}
</div>
</div>
<div class="row">
<div class="medium-6 columns">
<table class="dataTable">
<thead>
<tr>
<th colspan="3">{{tr "Inbound QoS"}}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="key_td">{{tr "Average bandwidth"}}</td>
<td class="value_td">{{valOrDefault element.TEMPLATE.INBOUND_AVG_BW "--"}}
<td class="value_td">{{tr "KBytes/s"}}</td>
</tr>
<tr>
<td class="key_td">{{tr "Peak bandwidth"}}</td>
<td class="value_td">{{valOrDefault element.TEMPLATE.INBOUND_PEAK_BW "--"}}
<td class="value_td">{{tr "KBytes/s"}}</td>
</tr>
<tr>
<td class="key_td">{{tr "Peak burst"}}</td>
<td class="value_td">{{valOrDefault element.TEMPLATE.INBOUND_PEAK_KB "--"}}
<td class="value_td">{{tr "KBytes"}}</td>
</tr>
<tbody>
</table>
</div>
<div class="medium-6 columns">
<table class="dataTable">
<thead>
<tr>
<th colspan="3">{{tr "Outbound QoS"}}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="key_td">{{tr "Average bandwidth"}}</td>
<td class="value_td">{{valOrDefault element.TEMPLATE.OUTBOUNDD_AVG_BW "--"}}
<td class="value_td">{{tr "KBytes/s"}}</td>
</tr>
<tr>
<td class="key_td">{{tr "Peak bandwidth"}}</td>
<td class="value_td">{{valOrDefault element.TEMPLATE.OUTBOUND_PEAK_BW "--"}}
<td class="value_td">{{tr "KBytes/s"}}</td>
</tr>
<tr>
<td class="key_td">{{tr "Peak burst"}}</td>
<td class="value_td">{{valOrDefault element.TEMPLATE.OUTBOUND_PEAK_KB "--"}}
<td class="value_td">{{tr "KBytes/s"}}</td>
</tr>
<tbody>
</table>
</div>
</div>
<div class="row">
<div class="large-9 columns">
{{{templateTableHTML}}}