mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
parent
69b3e4d9b1
commit
dda3ceaad4
@ -116,6 +116,10 @@ define(function(require) {
|
||||
});
|
||||
},
|
||||
|
||||
"cache": function(resource) {
|
||||
return listCache[resource];
|
||||
},
|
||||
|
||||
"list": function(params, resource, path, process) {
|
||||
var callback = params.success;
|
||||
var callbackError = params.error;
|
||||
|
@ -81,6 +81,7 @@ define(function(require) {
|
||||
'html': require('hbs!./dashboard-tab/hosts'),
|
||||
'onShow': function() {
|
||||
Sunstone.runAction("Host.list");
|
||||
Sunstone.runAction("Cluster.list");
|
||||
}
|
||||
},
|
||||
'vms': {
|
||||
|
@ -19,15 +19,18 @@ define(function(require) {
|
||||
DEPENDENCIES
|
||||
*/
|
||||
|
||||
var TabDataTable = require('utils/tab-datatable');
|
||||
var SunstoneConfig = require('sunstone-config');
|
||||
var Locale = require('utils/locale');
|
||||
var Humanize = require('utils/humanize');
|
||||
var CPUBars = require('./utils/cpu-bars');
|
||||
var MemoryBars = require('./utils/memory-bars');
|
||||
var OpenNebulaHost = require('opennebula/host');
|
||||
var LabelsUtils = require('utils/labels/utils');
|
||||
var SearchDropdown = require('hbs!./datatable/search');
|
||||
var TabDataTable = require("utils/tab-datatable");
|
||||
var SunstoneConfig = require("sunstone-config");
|
||||
var Locale = require("utils/locale");
|
||||
var Humanize = require("utils/humanize");
|
||||
var CPUBars = require("./utils/cpu-bars");
|
||||
var MemoryBars = require("./utils/memory-bars");
|
||||
var Reserved = require("./utils/reserved");
|
||||
var OpenNebulaHost = require("opennebula/host");
|
||||
var LabelsUtils = require("utils/labels/utils");
|
||||
var SearchDropdown = require("hbs!./datatable/search");
|
||||
var OpenNebulaAction = require("opennebula/action");
|
||||
var Sunstone = require("sunstone");
|
||||
|
||||
|
||||
/*
|
||||
@ -36,10 +39,10 @@ define(function(require) {
|
||||
|
||||
var RESOURCE = "Host";
|
||||
var XML_ROOT = "HOST";
|
||||
var TAB_NAME = require('./tabId');
|
||||
var TAB_NAME = require("./tabId");
|
||||
var LABELS_COLUMN = 13;
|
||||
var SEARCH_COLUMN = 14;
|
||||
var TEMPLATE_ATTR = 'TEMPLATE';
|
||||
var TEMPLATE_ATTR = "TEMPLATE";
|
||||
|
||||
/*
|
||||
CONSTRUCTOR
|
||||
@ -62,10 +65,10 @@ define(function(require) {
|
||||
{"sWidth": "35px", "aTargets": [0]},
|
||||
{"sWidth": "155px", "aTargets": [6, 8]},
|
||||
{"bVisible": true, "aTargets": SunstoneConfig.tabTableColumns(TAB_NAME)},
|
||||
{"bVisible": false, "aTargets": ['_all']},
|
||||
{"bVisible": false, "aTargets": ["_all"]},
|
||||
{"sType": "num", "aTargets": [1, 4]}
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
this.columns = [
|
||||
Locale.tr("ID") ,
|
||||
@ -123,10 +126,15 @@ define(function(require) {
|
||||
*/
|
||||
|
||||
function _elementArray(element_json) {
|
||||
var cache = OpenNebulaAction.cache("CLUSTER");
|
||||
if (!cache){
|
||||
Sunstone.runAction("Cluster.list");
|
||||
cache = OpenNebulaAction.cache("CLUSTER");
|
||||
}
|
||||
var element = element_json.HOST;
|
||||
|
||||
var cpuBars = CPUBars.html(element);
|
||||
var memoryBars = MemoryBars.html(element);
|
||||
var elementAux = Reserved.updateHostTemplate(cache, element);
|
||||
var cpuBars = CPUBars.html(elementAux);
|
||||
var memoryBars = MemoryBars.html(elementAux);
|
||||
|
||||
this.totalHosts++;
|
||||
|
||||
@ -168,9 +176,9 @@ define(function(require) {
|
||||
}
|
||||
|
||||
return [
|
||||
'<input class="check_item" type="checkbox" id="' + RESOURCE.toLowerCase() + '_' +
|
||||
element.ID + '" name="selected_items" value="' +
|
||||
element.ID + '"/>',
|
||||
"<input class=\"check_item\" type=\"checkbox\" id=\"" + RESOURCE.toLowerCase() + "_" +
|
||||
element.ID + "\" name=\"selected_items\" value=\"" +
|
||||
element.ID + "\"/>",
|
||||
element.ID,
|
||||
element.NAME,
|
||||
element.CLUSTER.length ? element.CLUSTER : "-",
|
||||
@ -183,7 +191,7 @@ define(function(require) {
|
||||
element.IM_MAD,
|
||||
element.VM_MAD,
|
||||
Humanize.prettyTime(element.LAST_MON_TIME),
|
||||
(LabelsUtils.labelsStr(element[TEMPLATE_ATTR])||''),
|
||||
(LabelsUtils.labelsStr(element[TEMPLATE_ATTR])||""),
|
||||
btoa(unescape(encodeURIComponent(JSON.stringify(search))))
|
||||
];
|
||||
}
|
||||
@ -210,7 +218,7 @@ define(function(require) {
|
||||
var ratio_allocated_cpu = 0;
|
||||
if (this.maxCPU > 0) {
|
||||
ratio_allocated_cpu = Math.round((this.allocatedCPU / this.maxCPU) * 100);
|
||||
info_str = this.allocatedCPU + ' / ' + this.maxCPU ;
|
||||
info_str = this.allocatedCPU + " / " + this.maxCPU ;
|
||||
} else {
|
||||
info_str = "- / -";
|
||||
}
|
||||
@ -228,7 +236,7 @@ define(function(require) {
|
||||
var ratio_real_cpu = 0;
|
||||
if (this.maxCPU > 0) {
|
||||
ratio_real_cpu = Math.round((this.realCPU / this.maxCPU) * 100);
|
||||
info_str = this.realCPU + ' / ' + this.maxCPU;
|
||||
info_str = this.realCPU + " / " + this.maxCPU;
|
||||
} else {
|
||||
info_str = "- / -";
|
||||
}
|
||||
@ -244,9 +252,9 @@ define(function(require) {
|
||||
var ratio_allocated_mem = 0;
|
||||
if (this.maxMemory > 0) {
|
||||
ratio_allocated_mem = Math.round((this.allocatedMemory / this.maxMemory) * 100);
|
||||
info_str = Humanize.size(this.allocatedMemory) + ' / ' + Humanize.size(this.maxMemory);
|
||||
info_str = Humanize.size(this.allocatedMemory) + " / " + Humanize.size(this.maxMemory);
|
||||
} else {
|
||||
info_str = Humanize.size(this.allocatedMemory) + ' / -';
|
||||
info_str = Humanize.size(this.allocatedMemory) + " / -";
|
||||
}
|
||||
|
||||
$("#dashboard_host_allocated_mem").html(quotaDashboard(
|
||||
@ -260,9 +268,9 @@ define(function(require) {
|
||||
var ratio_real_mem = 0;
|
||||
if (this.maxMemory > 0) {
|
||||
ratio_real_mem = Math.round((this.realMemory / this.maxMemory) * 100);
|
||||
info_str = Humanize.size(this.realMemory) + ' / ' + Humanize.size(this.maxMemory);
|
||||
info_str = Humanize.size(this.realMemory) + " / " + Humanize.size(this.maxMemory);
|
||||
} else {
|
||||
info_str = Humanize.size(this.realMemory) + ' / -';
|
||||
info_str = Humanize.size(this.realMemory) + " / -";
|
||||
}
|
||||
|
||||
$("#dashboard_host_real_mem").html(quotaDashboard(
|
||||
@ -278,20 +286,20 @@ define(function(require) {
|
||||
function quotaDashboard(html_tag, legend, font_large_size, font_small_size, quota) {
|
||||
var percentage = quota.percentage > 100 ? 100 : quota.percentage;
|
||||
|
||||
return '<div class="row">' +
|
||||
'<div class="large-12 columns">' +
|
||||
'<span>' + legend + '</span>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="row">' +
|
||||
'<div class="large-12 columns">' +
|
||||
' <meter id="' + html_tag + '_meter" min="0" low="33" high="66" optimum="0" max="100" value="' + percentage + '"></meter>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="row">' +
|
||||
'<div class="large-12 columns">' +
|
||||
'<span id="' + html_tag + '_str" class="right">' + quota.str + '</span>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
return "<div class=\"row\">" +
|
||||
"<div class=\"large-12 columns\">" +
|
||||
"<span>" + legend + "</span>" +
|
||||
"</div>" +
|
||||
"</div>" +
|
||||
"<div class=\"row\">" +
|
||||
"<div class=\"large-12 columns\">" +
|
||||
" <meter id=\"" + html_tag + "_meter\" min=\"0\" low=\"33\" high=\"66\" optimum=\"0\" max=\"100\" value=\"" + percentage + "\"></meter>" +
|
||||
"</div>" +
|
||||
"</div>" +
|
||||
"<div class=\"row\">" +
|
||||
"<div class=\"large-12 columns\">" +
|
||||
"<span id=\"" + html_tag + "_str\" class=\"right\">" + quota.str + "</span>" +
|
||||
"</div>" +
|
||||
"</div>";
|
||||
}
|
||||
});
|
||||
|
@ -17,40 +17,42 @@ define(function(require) {
|
||||
/*
|
||||
DEPENDENCIES
|
||||
*/
|
||||
require('foundation');
|
||||
var Locale = require('utils/locale');
|
||||
var Humanize = require('utils/humanize');
|
||||
var RenameTr = require('utils/panel/rename-tr');
|
||||
var TemplateTable = require('utils/panel/template-table');
|
||||
var TemplateTableVcenter = require('utils/panel/template-table');
|
||||
var PermissionsTable = require('utils/panel/permissions-table');
|
||||
var ClusterTr = require('utils/panel/cluster-tr');
|
||||
var OpenNebulaHost = require('opennebula/host');
|
||||
var CPUBars = require('../utils/cpu-bars');
|
||||
var MemoryBars = require('../utils/memory-bars');
|
||||
var DatastoresCapacityTable = require('../utils/datastores-capacity-table');
|
||||
var CanImportWilds = require('../utils/can-import-wilds');
|
||||
var Sunstone = require('sunstone');
|
||||
var TemplateUtils = require('utils/template-utils');
|
||||
var CapacityTable = require('utils/custom-tags-table');
|
||||
var EC2Tr = require('utils/panel/ec2-tr');
|
||||
require("foundation");
|
||||
var Locale = require("utils/locale");
|
||||
var Humanize = require("utils/humanize");
|
||||
var RenameTr = require("utils/panel/rename-tr");
|
||||
var TemplateTable = require("utils/panel/template-table");
|
||||
var TemplateTableVcenter = require("utils/panel/template-table");
|
||||
var PermissionsTable = require("utils/panel/permissions-table");
|
||||
var ClusterTr = require("utils/panel/cluster-tr");
|
||||
var OpenNebulaHost = require("opennebula/host");
|
||||
var CPUBars = require("../utils/cpu-bars");
|
||||
var MemoryBars = require("../utils/memory-bars");
|
||||
var Reserved = require("../utils/reserved");
|
||||
var DatastoresCapacityTable = require("../utils/datastores-capacity-table");
|
||||
var CanImportWilds = require("../utils/can-import-wilds");
|
||||
var Sunstone = require("sunstone");
|
||||
var TemplateUtils = require("utils/template-utils");
|
||||
var CapacityTable = require("utils/custom-tags-table");
|
||||
var EC2Tr = require("utils/panel/ec2-tr");
|
||||
var OpenNebulaAction = require("opennebula/action");
|
||||
|
||||
/*
|
||||
TEMPLATES
|
||||
*/
|
||||
|
||||
var TemplateInfo = require('hbs!./info/html');
|
||||
var TemplateInfo = require("hbs!./info/html");
|
||||
|
||||
/*
|
||||
CONSTANTS
|
||||
*/
|
||||
|
||||
var TAB_ID = require('../tabId');
|
||||
var PANEL_ID = require('./info/panelId');
|
||||
var TAB_ID = require("../tabId");
|
||||
var PANEL_ID = require("./info/panelId");
|
||||
var RESOURCE = "Host";
|
||||
var XML_ROOT = "HOST";
|
||||
|
||||
var OVERCOMMIT_DIALOG_ID = require('utils/dialogs/overcommit/dialogId');
|
||||
var OVERCOMMIT_DIALOG_ID = require("utils/dialogs/overcommit/dialogId");
|
||||
|
||||
/*
|
||||
CONSTRUCTOR
|
||||
@ -70,7 +72,7 @@ define(function(require) {
|
||||
that.unshownTemplate = {};
|
||||
that.strippedTemplateVcenter = {};
|
||||
that.strippedTemplate = {};
|
||||
var unshownKeys = ['HOST', 'VM', 'WILDS', 'ZOMBIES', 'RESERVED_CPU', 'RESERVED_MEM', "EC2_ACCESS", "EC2_SECRET", "CAPACITY", "REGION_NAME"];
|
||||
var unshownKeys = ["HOST", "VM", "WILDS", "ZOMBIES", "RESERVED_CPU", "RESERVED_MEM", "EC2_ACCESS", "EC2_SECRET", "CAPACITY", "REGION_NAME"];
|
||||
$.each(that.element.TEMPLATE, function(key, value) {
|
||||
if ($.inArray(key, unshownKeys) > -1) {
|
||||
that.unshownTemplate[key] = value;
|
||||
@ -96,6 +98,13 @@ define(function(require) {
|
||||
FUNCTION DEFINITIONS
|
||||
*/
|
||||
function _html() {
|
||||
var cache = OpenNebulaAction.cache("CLUSTER");
|
||||
if (!cache){
|
||||
Sunstone.runAction("Cluster.list");
|
||||
cache = OpenNebulaAction.cache("CLUSTER");
|
||||
}
|
||||
var elementAux = Reserved.updateHostTemplate(cache, this.element);
|
||||
|
||||
var templateTableHTML = TemplateTable.html(
|
||||
this.strippedTemplate,
|
||||
RESOURCE,
|
||||
@ -107,30 +116,30 @@ define(function(require) {
|
||||
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
|
||||
var clusterTrHTML = ClusterTr.html(this.element.CLUSTER);
|
||||
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
|
||||
var cpuBars = CPUBars.html(this.element);
|
||||
var memoryBars = MemoryBars.html(this.element);
|
||||
var cpuBars = CPUBars.html(elementAux);
|
||||
var memoryBars = MemoryBars.html(elementAux);
|
||||
var datastoresCapacityTableHTML = DatastoresCapacityTable.html(this.element);
|
||||
var realCPU = parseInt(this.element.HOST_SHARE.TOTAL_CPU);
|
||||
var realMEM = parseInt(this.element.HOST_SHARE.TOTAL_MEM);
|
||||
|
||||
return TemplateInfo({
|
||||
'element': this.element,
|
||||
'renameTrHTML': renameTrHTML,
|
||||
'clusterTrHTML': clusterTrHTML,
|
||||
'templateTableHTML': templateTableHTML,
|
||||
'templateTableVcenterHTML': templateTableVcenterHTML,
|
||||
'permissionsTableHTML': permissionsTableHTML,
|
||||
'cpuBars': cpuBars,
|
||||
'memoryBars': memoryBars,
|
||||
'stateStr': OpenNebulaHost.stateStr(this.element.STATE),
|
||||
'datastoresCapacityTableHTML': datastoresCapacityTableHTML,
|
||||
'maxReservedMEM': realMEM * 2,
|
||||
'maxReservedCPU': realCPU * 2,
|
||||
'realCPU': realCPU,
|
||||
'realMEM': Humanize.size(realMEM),
|
||||
'virtualMEMInput': Humanize.size(this.element.HOST_SHARE.MAX_MEM),
|
||||
'ec2_tr': EC2Tr.html(RESOURCE, this.element.TEMPLATE),
|
||||
'capacityTableHTML': CapacityTable.html()
|
||||
"element": this.element,
|
||||
"renameTrHTML": renameTrHTML,
|
||||
"clusterTrHTML": clusterTrHTML,
|
||||
"templateTableHTML": templateTableHTML,
|
||||
"templateTableVcenterHTML": templateTableVcenterHTML,
|
||||
"permissionsTableHTML": permissionsTableHTML,
|
||||
"cpuBars": cpuBars,
|
||||
"memoryBars": memoryBars,
|
||||
"stateStr": OpenNebulaHost.stateStr(this.element.STATE),
|
||||
"datastoresCapacityTableHTML": datastoresCapacityTableHTML,
|
||||
"maxReservedMEM": realMEM * 2,
|
||||
"maxReservedCPU": realCPU * 2,
|
||||
"realCPU": realCPU,
|
||||
"realMEM": Humanize.size(realMEM),
|
||||
"virtualMEMInput": Humanize.size(this.element.HOST_SHARE.MAX_MEM),
|
||||
"ec2_tr": EC2Tr.html(RESOURCE, this.element.TEMPLATE),
|
||||
"capacityTableHTML": CapacityTable.html()
|
||||
});
|
||||
}
|
||||
|
||||
@ -180,7 +189,7 @@ define(function(require) {
|
||||
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);
|
||||
|
||||
if($.isEmptyObject(this.strippedTemplateVcenter)){
|
||||
$('.vcenter', context).hide();
|
||||
$(".vcenter", context).hide();
|
||||
}
|
||||
|
||||
//.off and .on prevent multiple clicks events
|
||||
|
44
src/sunstone/public/app/tabs/hosts-tab/utils/reserved.js
Normal file
44
src/sunstone/public/app/tabs/hosts-tab/utils/reserved.js
Normal file
@ -0,0 +1,44 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* Copyright 2002-2017, OpenNebula Project, OpenNebula Systems */
|
||||
/* */
|
||||
/* Licensed under the Apache License, Version 2.0 (the "License"); you may */
|
||||
/* not use this file except in compliance with the License. You may obtain */
|
||||
/* a copy of the License at */
|
||||
/* */
|
||||
/* http://www.apache.org/licenses/LICENSE-2.0 */
|
||||
/* */
|
||||
/* Unless required by applicable law or agreed to in writing, software */
|
||||
/* distributed under the License is distributed on an "AS IS" BASIS, */
|
||||
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
|
||||
/* See the License for the specific language governing permissions and */
|
||||
/* limitations under the License. */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
define(function(require) {
|
||||
|
||||
function _updateHostTemplate(cache, element) {
|
||||
var elementAux = $.extend(true, {}, element);
|
||||
if (cache && (elementAux.TEMPLATE.RESERVED_CPU === "" || elementAux.TEMPLATE.RESERVED_MEM === "")) {
|
||||
$.each(cache.data, function(key, value){
|
||||
if (value.CLUSTER.ID === elementAux.CLUSTER_ID){
|
||||
if (elementAux.TEMPLATE.RESERVED_CPU === ""){
|
||||
var cpuPercentage = value.CLUSTER.TEMPLATE.RESERVED_CPU.split("%")[0];
|
||||
var cpu = cpuPercentage / 100 * elementAux.HOST_SHARE.MAX_CPU;
|
||||
elementAux.HOST_SHARE.MAX_CPU = (elementAux.HOST_SHARE.MAX_CPU - cpu).toString();
|
||||
}
|
||||
if (elementAux.TEMPLATE.RESERVED_MEM === ""){
|
||||
var memPercentage = value.CLUSTER.TEMPLATE.RESERVED_MEM.split("%")[0];
|
||||
var mem = memPercentage / 100 * elementAux.HOST_SHARE.MAX_MEM;
|
||||
elementAux.HOST_SHARE.MAX_MEM = (elementAux.HOST_SHARE.MAX_MEM - mem).toString();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return elementAux;
|
||||
}
|
||||
|
||||
return {
|
||||
"updateHostTemplate": _updateHostTemplate
|
||||
};
|
||||
|
||||
});
|
@ -16,12 +16,12 @@
|
||||
|
||||
define(function(require) {
|
||||
|
||||
var Locale = require('utils/locale');
|
||||
var TemplateUtils = require('utils/template-utils');
|
||||
var Humanize = require('utils/humanize');
|
||||
var Locale = require("utils/locale");
|
||||
var TemplateUtils = require("utils/template-utils");
|
||||
var Humanize = require("utils/humanize");
|
||||
|
||||
function _fromJSONtoActionsTable(actions_array) {
|
||||
var str = ""
|
||||
var str = "";
|
||||
|
||||
if (!actions_array) {
|
||||
return "";
|
||||
@ -48,28 +48,26 @@ define(function(require) {
|
||||
var time_str = Humanize.prettyTime(scheduling_action.TIME);
|
||||
|
||||
var str = "";
|
||||
str += '<tr class="tr_action">\
|
||||
<td class="action_row">' + TemplateUtils.htmlEncode(scheduling_action.ACTION) + '</td>\
|
||||
<td nowrap class="time_row">' + time_str + '</td>\
|
||||
str += "<tr class=\"tr_action\">\
|
||||
<td class=\"action_row\">" + TemplateUtils.htmlEncode(scheduling_action.ACTION) + "</td>\
|
||||
<td nowrap class=\"time_row\">" + time_str + "</td>\
|
||||
<td>\
|
||||
<div>\
|
||||
<a id="minus" class="remove_action_x" href="#"><i class="fa fa-trash-o"/></a>\
|
||||
<a id=\"minus\" class=\"remove_action_x\" href=\"#\"><i class=\"fa fa-trash-o\"/></a>\
|
||||
</div>\
|
||||
</td>\
|
||||
</tr>';
|
||||
</tr>";
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
function _convertDate(date_string){
|
||||
date_string = date_string.split('/');
|
||||
date_string = date_string.split("/");
|
||||
return date_string[2] + "-" + date_string[1] + "-" + date_string[0];
|
||||
}
|
||||
|
||||
return {
|
||||
'fromJSONtoActionsTable': _fromJSONtoActionsTable,
|
||||
'convertDate': _convertDate
|
||||
"fromJSONtoActionsTable": _fromJSONtoActionsTable,
|
||||
"convertDate": _convertDate
|
||||
};
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user