mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-22 18:50:08 +03:00
(cherry picked from commit 29947011f2cf0cb39fbb45156c9e86b090763b8b)
This commit is contained in:
parent
083f4fa7b2
commit
50bdb4ad89
@ -22,9 +22,11 @@ define(function(require) {
|
||||
var Locale = require('utils/locale');
|
||||
var Tips = require('utils/tips');
|
||||
var OpenNebulaRole = require('opennebula/role');
|
||||
var roles_buttons = require('./roles/roles-buttons');
|
||||
var roles_vm_buttons = require('./roles/roles-vm-buttons');
|
||||
var OpenNebulaVM = require("opennebula/vm");
|
||||
var RolesButtons = require('./roles/roles-buttons');
|
||||
var RolesVmButtons = require('./roles/roles-vm-buttons');
|
||||
var StateRolesButtons = require('./roles/state-roles-buttons');
|
||||
var StateRolesVmButtons = require('./roles/state-roles-vm-buttons');
|
||||
var Sunstone = require('sunstone');
|
||||
var DomDataTable = require('utils/dom-datatable');
|
||||
var VMRemoteActions = require('utils/remote-actions');
|
||||
@ -53,6 +55,8 @@ define(function(require) {
|
||||
var XML_ROOT = "DOCUMENT";
|
||||
var RESOURCE = "Service";
|
||||
|
||||
var lastRoleIndexSelected = undefined;
|
||||
|
||||
/*
|
||||
CONSTRUCTOR
|
||||
*/
|
||||
@ -153,12 +157,10 @@ define(function(require) {
|
||||
|
||||
function _setup(context) {
|
||||
var that = this;
|
||||
var roles = this.roles = that.element.TEMPLATE.BODY.roles;
|
||||
|
||||
Tips.setup(context);
|
||||
|
||||
var lastRoleIndexSelected = undefined
|
||||
var roles = that.element.TEMPLATE.BODY.roles;
|
||||
|
||||
if (roles && roles.length) {
|
||||
that.servicerolesDataTable = new DomDataTable(
|
||||
'datatable_roles_'+this.panelId,
|
||||
@ -170,24 +172,27 @@ define(function(require) {
|
||||
customTrListener: function(tableObj, tr){
|
||||
var rowData = tableObj.dataTable.fnGetData(tr);
|
||||
var roleName = $(rowData[0]).data().name
|
||||
|
||||
|
||||
var roleIndexSelected = roles.findIndex(function(role) {
|
||||
return role.name === roleName
|
||||
})
|
||||
|
||||
if (lastRoleIndexSelected !== roleIndexSelected) {
|
||||
var roleSelected = roles[roleIndexSelected];
|
||||
var isEqualLastIndex = lastRoleIndexSelected === roleIndexSelected;
|
||||
|
||||
StateRolesButtons.enableStateActions(roleSelected.state);
|
||||
|
||||
if (!isEqualLastIndex) {
|
||||
lastRoleIndexSelected = roleIndexSelected
|
||||
|
||||
var roleSelected = roles[roleIndexSelected];
|
||||
|
||||
StateRolesButtons.enableStateActions(roleSelected.state);
|
||||
|
||||
$("#roles_extended_info", context).fadeOut('slow', function() {
|
||||
$(this).html(that.roleHTML(context, roleSelected))
|
||||
that.roleSetup($(this), roleSelected)
|
||||
}).fadeIn('slow');
|
||||
}
|
||||
|
||||
$('#roles_extended_info, context')
|
||||
.fadeOut(isEqualLastIndex ? 0 : 'slow', function() {
|
||||
$(this).html(that.roleHTML(context, roleSelected));
|
||||
that.roleSetup($(this), roleSelected);
|
||||
})
|
||||
.fadeIn(isEqualLastIndex ? 0 : 'slow');
|
||||
|
||||
// The info listener is triggered instead of
|
||||
// the row selection. So we click the check input to select
|
||||
// the row also
|
||||
@ -200,12 +205,12 @@ define(function(require) {
|
||||
|
||||
this.servicerolesDataTable.initialize();
|
||||
|
||||
Sunstone.insertButtonsInTab(TAB_ID, "service_roles_tab", roles_buttons, $('#role_actions', context));
|
||||
Sunstone.insertButtonsInTab(TAB_ID, "service_roles_tab", RolesButtons, $('#role_actions', context));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function _roleHTML(context, role) {
|
||||
function _roleHTML(context, role, callback) {
|
||||
var that = this;
|
||||
var ready_status_gate = that.element.TEMPLATE.BODY.ready_status_gate;
|
||||
var promises = [];
|
||||
@ -236,7 +241,7 @@ define(function(require) {
|
||||
actions = VMRemoteActions.renderActionsHtml(data);
|
||||
}
|
||||
|
||||
roleVms[index] = rowInfoRoleVm(ready, id, name, uname, gname, ips, actions);
|
||||
roleVms[index] = rowInfoRoleVm(ready, id, name, uname, gname, ips, actions, data.STATE, data.LCM_STATE);
|
||||
}
|
||||
|
||||
promises.push(OpenNebulaVM.promiseGetVm({ id, success: successCallback }))
|
||||
@ -249,7 +254,11 @@ define(function(require) {
|
||||
UtilsFoundation.update(context);
|
||||
VMRemoteActions.bindActionsToContext(context)
|
||||
}
|
||||
|
||||
|
||||
if (callback && typeof callback === 'function') {
|
||||
callback();
|
||||
}
|
||||
|
||||
Tips.setup(context);
|
||||
});
|
||||
|
||||
@ -270,11 +279,17 @@ define(function(require) {
|
||||
});
|
||||
}
|
||||
|
||||
function rowInfoRoleVm(ready, id, name = "", uname = "", gname = "", ips = "", actions = "") {
|
||||
function rowInfoRoleVm(ready, id, name = "", uname = "", gname = "", ips = "", actions = "", state, lcm_state) {
|
||||
return [
|
||||
ready,
|
||||
'<input class="check_item" style="vertical-align: inherit;" type="checkbox" '+
|
||||
'id="vm_' + id + '" name="selected_items" value="' + id + '"/>',
|
||||
'<input class="check_item" ' +
|
||||
'style="vertical-align: inherit;" ' +
|
||||
'type="checkbox" ' +
|
||||
'id="vm_' + id + '" ' +
|
||||
'name="selected_items" ' +
|
||||
'value="' + id + '" ' +
|
||||
'state="' + state + '" ' +
|
||||
'lcm_state="' + lcm_state + '" />',
|
||||
'<a href="/#vms-tab/' + id + '">'+ id +'</a>',
|
||||
name,
|
||||
uname,
|
||||
@ -285,7 +300,7 @@ define(function(require) {
|
||||
}
|
||||
|
||||
function _roleSetup(context, role) {
|
||||
var that = this
|
||||
var that = this;
|
||||
|
||||
if(that.servicePanel) {
|
||||
that.serviceroleVMsDataTable = new DomDataTable(
|
||||
@ -302,15 +317,51 @@ define(function(require) {
|
||||
{"bSortable": false, "aTargets": ["check", 5, 6]}
|
||||
]
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
that.serviceroleVMsDataTable.initialize();
|
||||
|
||||
that.serviceroleVMsDataTable.initialize();
|
||||
Sunstone.insertButtonsInTab(
|
||||
TAB_ID,
|
||||
"service_roles_tab",
|
||||
roles_vm_buttons,
|
||||
RolesVmButtons,
|
||||
$('div#role_vms_actions', context)
|
||||
);
|
||||
|
||||
$("#role_vms_actionsrefresh_buttons", context).on('click', function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
var prevRowsSelected = $(".check_item:checked", that.serviceroleVMsDataTable.dataTable);
|
||||
var prevIdsSelected = $.map(prevRowsSelected, function(row) {
|
||||
return $(row).attr('id');
|
||||
});
|
||||
|
||||
var roleSelected = that.roles[lastRoleIndexSelected];
|
||||
|
||||
that.roleHTML(context, roleSelected, function() {
|
||||
// for each previous selected vms
|
||||
$.each(prevIdsSelected, function(_, id) {
|
||||
// if exists yet, check it
|
||||
var currentRow = $("input#" + id, that.serviceroleVMsDataTable.dataTable);
|
||||
currentRow.length && currentRow.trigger("click");
|
||||
});
|
||||
});
|
||||
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
$("#" + that.serviceroleVMsDataTable.dataTableId).on("change", "tbody input.check_item", function() {
|
||||
StateRolesVmButtons.disableAllStateActions();
|
||||
|
||||
// Enable actions available to any of the selected VMs
|
||||
var nodes = $("tr", that.serviceroleVMsDataTable.dataTable); //visible nodes only
|
||||
$.each($("input.check_item:checked", nodes), function() {
|
||||
StateRolesVmButtons.enableStateActions($(this).attr("state"), $(this).attr("lcm_state"));
|
||||
});
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -15,24 +15,24 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
define(function(require) {
|
||||
var Locale = require('utils/locale');
|
||||
var VMButtons = require('tabs/vms-tab/buttons');
|
||||
|
||||
var Buttons = {
|
||||
"RoleVM.hold" : VMButtons["VM.hold"],
|
||||
"RoleVM.poweroff_hard" : VMButtons["VM.poweroff_hard"],
|
||||
"RoleVM.poweroff" : VMButtons["VM.poweroff"],
|
||||
"RoleVM.reboot_hard" : VMButtons["VM.reboot_hard"],
|
||||
"RoleVM.reboot" : VMButtons["VM.reboot"],
|
||||
"RoleVM.refresh" : VMButtons["VM.refresh"],
|
||||
"RoleVM.release" : VMButtons["VM.release"],
|
||||
"RoleVM.suspend" : VMButtons["VM.suspend"],
|
||||
"RoleVM.resched" : VMButtons["VM.resched"],
|
||||
"RoleVM.resume" : VMButtons["VM.resume"],
|
||||
"RoleVM.stop" : VMButtons["VM.stop"],
|
||||
"RoleVM.reboot" : VMButtons["VM.reboot"],
|
||||
"RoleVM.reboot_hard" : VMButtons["VM.reboot_hard"],
|
||||
"RoleVM.poweroff" : VMButtons["VM.poweroff"],
|
||||
"RoleVM.poweroff_hard" : VMButtons["VM.poweroff_hard"],
|
||||
"RoleVM.undeploy" : VMButtons["VM.undeploy"],
|
||||
"RoleVM.undeploy_hard" : VMButtons["VM.undeploy_hard"],
|
||||
"RoleVM.terminate" : VMButtons["VM.terminate"],
|
||||
"RoleVM.suspend" : VMButtons["VM.suspend"],
|
||||
"RoleVM.terminate_hard" : VMButtons["VM.terminate_hard"],
|
||||
"RoleVM.resched" : VMButtons["VM.resched"],
|
||||
"RoleVM.terminate" : VMButtons["VM.terminate"],
|
||||
"RoleVM.undeploy_hard" : VMButtons["VM.undeploy_hard"],
|
||||
"RoleVM.undeploy" : VMButtons["VM.undeploy"],
|
||||
"RoleVM.unresched" : VMButtons["VM.unresched"]
|
||||
};
|
||||
|
||||
|
@ -0,0 +1,241 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* Copyright 2002-2021, 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) {
|
||||
var OpenNebulaVM = require('opennebula/vm');
|
||||
var Buttons = require('./roles-vm-buttons');
|
||||
|
||||
var ALL_ACTION_BUTTONS = $.map(Buttons, function(_, action) {
|
||||
return [action]
|
||||
});
|
||||
|
||||
var STATE_ACTIONS = {};
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.INIT] = ["RoleVM.terminate_hard"];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.PENDING] = ["RoleVM.hold", "RoleVM.terminate_hard", ];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.HOLD] = ["RoleVM.release", "RoleVM.terminate_hard", ];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.ACTIVE] = [];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.STOPPED] = ["RoleVM.resume", "RoleVM.terminate_hard"];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.SUSPENDED] = ["RoleVM.resume", "RoleVM.stop", "RoleVM.terminate_hard"];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.DONE] = [];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.FAILED] = [];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.POWEROFF] =
|
||||
["RoleVM.resched", "RoleVM.resume", "RoleVM.undeploy", "RoleVM.undeploy_hard", "RoleVM.terminate_hard"];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.UNDEPLOYED] = ["RoleVM.resume", "RoleVM.terminate_hard"];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.CLONING] = ["RoleVM.terminate_hard"];
|
||||
|
||||
STATE_ACTIONS[OpenNebulaVM.STATES.CLONING_FAILURE] = ["RoleVM.terminate_hard"];
|
||||
|
||||
|
||||
var LCM_STATE_ACTIONS = {};
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.LCM_INIT] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.RUNNING ] =
|
||||
["RoleVM.poweroff_hard", "RoleVM.poweroff", "RoleVM.reboot_hard", "RoleVM.reboot", "RoleVM.resched", "RoleVM.stop", "RoleVM.suspend", "RoleVM.terminate_hard", "RoleVM.terminate", "RoleVM.undeploy_hard", "RoleVM.undeploy", "RoleVM.unresched"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.MIGRATE] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.SAVE_STOP] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.SAVE_SUSPEND] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.SAVE_MIGRATE] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_MIGRATE] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_RESUME] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.EPILOG_STOP] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.EPILOG] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.SHUTDOWN] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.CANCEL] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.CLEANUP_RESUBMIT] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.UNKNOWN ] =
|
||||
["RoleVM.poweroff_hard", "RoleVM.poweroff", "RoleVM.resched", "RoleVM.resume", "RoleVM.terminate_hard", "RoleVM.terminate", "RoleVM.undeploy_hard", "RoleVM.undeploy", "RoleVM.unresched"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.SHUTDOWN_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_UNKNOWN] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_SUSPENDED] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_STOPPED] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.CLEANUP_DELETE] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_SNAPSHOT] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_NIC] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_NIC_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_SAVEAS] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_SAVEAS_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_SAVEAS_SUSPENDED] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.SHUTDOWN_UNDEPLOY] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.EPILOG_UNDEPLOY] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_UNDEPLOY] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_UNDEPLOY] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_PROLOG_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_EPILOG_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_MIGRATE] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_MIGRATE_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_MIGRATE_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.EPILOG_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.EPILOG_STOP_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.EPILOG_UNDEPLOY_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_MIGRATE_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_MIGRATE_POWEROFF_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_MIGRATE_SUSPEND] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_MIGRATE_SUSPEND_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_UNDEPLOY_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.BOOT_STOPPED_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_RESUME_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_UNDEPLOY_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT_REVERT_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT_DELETE_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT_SUSPENDED] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT_REVERT_SUSPENDED] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT_DELETE_SUSPENDED] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT_REVERT] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_SNAPSHOT_DELETE] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_MIGRATE_UNKNOWN] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.PROLOG_MIGRATE_UNKNOWN_FAILURE] = ["RoleVM.terminate"];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_RESIZE] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_RESIZE_POWEROFF] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.DISK_RESIZE_UNDEPLOYED] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_RESIZE] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_SAVEAS_UNDEPLOYED] = [];
|
||||
|
||||
LCM_STATE_ACTIONS[OpenNebulaVM.LCM_STATES.HOTPLUG_SAVEAS_STOPPED] = [];
|
||||
|
||||
|
||||
return {
|
||||
'disableAllStateActions': disableAllStateActions,
|
||||
'disableStateButton': disableStateButton,
|
||||
'enableStateButton': enableStateButton,
|
||||
'enableStateActions': enableStateActions
|
||||
};
|
||||
|
||||
function disableStateButton(action) {
|
||||
$(".state-dependent[href='" + action + "']", $('#role_vms_actions'))
|
||||
.prop("disabled", true)
|
||||
.removeClass("action-enabled")
|
||||
.addClass("action-disabled")
|
||||
.on("click.stateaction", function() { return false; });
|
||||
}
|
||||
|
||||
function enableStateButton(action) {
|
||||
$(".state-dependent[href='" + action + "']", $('#role_vms_actions'))
|
||||
.removeAttr("disabled")
|
||||
.addClass("action-enabled")
|
||||
.removeClass("action-disabled")
|
||||
.off("click.stateaction")
|
||||
}
|
||||
|
||||
function enableStateActions(state, lcm_state) {
|
||||
state = parseInt(state);
|
||||
lcm_state = parseInt(lcm_state);
|
||||
|
||||
var isActiveState = state === OpenNebulaVM.STATES.ACTIVE
|
||||
|
||||
var actionsAvailable = isActiveState
|
||||
? LCM_STATE_ACTIONS[lcm_state]
|
||||
: STATE_ACTIONS[state];
|
||||
|
||||
if (actionsAvailable === undefined) return;
|
||||
|
||||
$.each(actionsAvailable, function(_, action) {
|
||||
enableStateButton(action);
|
||||
});
|
||||
}
|
||||
|
||||
function disableAllStateActions() {
|
||||
$.each(ALL_ACTION_BUTTONS, function(_, action) {
|
||||
disableStateButton(action);
|
||||
});
|
||||
}
|
||||
});
|
@ -20,8 +20,6 @@ define(function(require) {
|
||||
*/
|
||||
|
||||
var TabDataTable = require('utils/tab-datatable');
|
||||
var SunstoneConfig = require('sunstone-config');
|
||||
var Locale = require('utils/locale');
|
||||
|
||||
/*
|
||||
CONSTRUCTOR
|
||||
|
Loading…
x
Reference in New Issue
Block a user