mirror of https://github.com/apache/cloudstack.git
bug 11481: cloudStack 2.2 - router page - add "Migration System VM" action.
This commit is contained in:
parent
cd02613173
commit
18cd05a6a2
|
|
@ -4,9 +4,14 @@
|
|||
|
||||
|
||||
#Labels
|
||||
label.action.migrate.router=Migrate Router
|
||||
label.action.migrate.router.processing=Migrating Router....
|
||||
message.migrate.router.confirm=Please confirm the host you wish to migrate the router to:
|
||||
label.migrate.router.to=Migrate Router to
|
||||
|
||||
label.action.migrate.systemvm=Migrate System VM
|
||||
label.action.migrate.systemvm.processing=Migrating System VM....
|
||||
message.migrate.systemvm.confirm=Please confirm the host you wish to migrate the System VM to:
|
||||
message.migrate.systemvm.confirm=Please confirm the host you wish to migrate the system VM to:
|
||||
label.migrate.systemvm.to=Migrate System VM to
|
||||
|
||||
mode=Mode
|
||||
|
|
|
|||
|
|
@ -19,6 +19,11 @@ dictionary = {
|
|||
'label.action.change.service': '<fmt:message key="label.action.change.service"/>',
|
||||
'label.action.change.service.processing': '<fmt:message key="label.action.change.service.processing"/>',
|
||||
'message.action.change.service.warning.for.router': '<fmt:message key="message.action.change.service.warning.for.router"/>',
|
||||
'message.migrate.router.confirm' : '<fmt:message key="message.migrate.router.confirm"/>',
|
||||
'label.action.migrate.router': '<fmt:message key="label.action.migrate.router"/>',
|
||||
'label.action.migrate.router.processing': '<fmt:message key="label.action.migrate.router.processing"/>',
|
||||
'label.full': '<fmt:message key="label.full"/>',
|
||||
'label.available': '<fmt:message key="label.available"/>'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
@ -226,6 +231,27 @@ dictionary = {
|
|||
</div>
|
||||
<!-- router detail panel (end) -->
|
||||
|
||||
<!-- Migrate router dialog -->
|
||||
<div id="dialog_migrate_router" title='<fmt:message key="label.action.migrate.router" />' style="display: none">
|
||||
<p>
|
||||
<fmt:message key="message.migrate.router.confirm" />
|
||||
</p>
|
||||
<div class="dialog_formcontent">
|
||||
<form action="#" method="post" id="form_acquire">
|
||||
<ol>
|
||||
<li>
|
||||
<label>
|
||||
<fmt:message key="label.migrate.router.to" />:</label>
|
||||
<select class="select" id="host_select">
|
||||
</select>
|
||||
<div id="host_select_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- view console template (begin) -->
|
||||
<div id="view_console_template" style="display:none">
|
||||
<div class="vm_consolebox" id="box0">
|
||||
|
|
|
|||
|
|
@ -220,9 +220,9 @@ dictionary = {
|
|||
<li>
|
||||
<label>
|
||||
<fmt:message key="label.migrate.systemvm.to" />:</label>
|
||||
<select class="select" id="migrate_instance_hosts">
|
||||
<select class="select" id="host_select">
|
||||
</select>
|
||||
<div id="migrate_vm_hosts_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
|
||||
<div id="host_select_errormsg" class="dialog_formcontent_errormsg" style="display: none;">
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
|
|
|
|||
|
|
@ -76,7 +76,8 @@ function routerGetSearchParams() {
|
|||
|
||||
function afterLoadRouterJSP() {
|
||||
// dialogs
|
||||
initDialog("dialog_change_system_service_offering", 600);
|
||||
initDialog("dialog_change_system_service_offering", 600);
|
||||
initDialog("dialog_migrate_router", 600);
|
||||
}
|
||||
|
||||
function routerToMidmenu(jsonObj, $midmenuItem1) {
|
||||
|
|
@ -207,7 +208,11 @@ function routerBuildActionMenu(jsonObj, $thisTab, $midmenuItem1) {
|
|||
if (jsonObj.state == 'Running') {
|
||||
buildActionLinkForTab("label.action.stop.router", routerActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
buildActionLinkForTab("label.action.reboot.router", routerActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
buildActionLinkForTab("label.action.change.service", routerActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
buildActionLinkForTab("label.action.change.service", routerActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
if (isAdmin())
|
||||
{
|
||||
buildActionLinkForTab("label.action.migrate.router", routerActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
}
|
||||
noAvailableActions = false;
|
||||
}
|
||||
else if (jsonObj.state == 'Stopped') {
|
||||
|
|
@ -364,6 +369,59 @@ function doChangeSystemServiceOffering($actionLink, $detailsTab, $midmenuItem1)
|
|||
}).dialog("open");
|
||||
}
|
||||
|
||||
function doMigrateRouter($actionLink, $detailsTab, $midmenuItem1) {
|
||||
var jsonObj = $midmenuItem1.data("jsonObj");
|
||||
var id = jsonObj.id;
|
||||
$.ajax({
|
||||
data: createURL("command=listHosts&VirtualMachineId="+id),
|
||||
//data: createURL("command=listHosts"), //for testing, comment it out before checking in.
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success: function(json) {
|
||||
var hosts = json.listhostsresponse.host;
|
||||
var hostSelect = $("#dialog_migrate_router #host_select").empty();
|
||||
|
||||
if (hosts != null && hosts.length > 0) {
|
||||
for (var i = 0; i < hosts.length; i++) {
|
||||
var option = $("<option value='" + hosts[i].id + "'>" + fromdb(hosts[i].name) + ": " +((hosts[i].hasEnoughCapacity) ? dictionary["label.available"] : dictionary["label.full"]) + "</option>").data("name", fromdb(hosts[i].name));
|
||||
hostSelect.append(option);
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function(XMLHttpResponse) {
|
||||
handleError(XMLHttpResponse, function() {
|
||||
$("#dialog_migrate_router #host_select").empty();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$("#dialog_migrate_router")
|
||||
.dialog('option', 'buttons', {
|
||||
"OK": function() {
|
||||
var $thisDialog = $(this);
|
||||
|
||||
var isValid = true;
|
||||
isValid &= validateDropDownBox("Host", $thisDialog.find("#host_select"), $thisDialog.find("#host_select_errormsg"));
|
||||
if (!isValid)
|
||||
return;
|
||||
|
||||
$thisDialog.dialog("close");
|
||||
var hostId = $thisDialog.find("#host_select").val();
|
||||
/*
|
||||
if(jsonObj.state != "Stopped") {
|
||||
$midmenuItem1.find("#info_icon").addClass("error").show();
|
||||
$midmenuItem1.data("afterActionInfo", ($actionLink.data("label") + " action failed. Reason: virtual instance needs to be stopped before you can change its service."));
|
||||
}
|
||||
*/
|
||||
var apiCommand = "command=migrateSystemVm&hostid="+hostId+"&virtualmachineid="+id;
|
||||
doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
|
||||
},
|
||||
"Cancel": function() {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}).dialog("open");
|
||||
}
|
||||
|
||||
var routerActionMap = {
|
||||
"label.action.start.router": {
|
||||
isAsyncJob: true,
|
||||
|
|
@ -403,5 +461,26 @@ var routerActionMap = {
|
|||
var jsonObj = json.changeserviceforrouterresponse.domainrouter;
|
||||
vmToMidmenu(jsonObj, $midmenuItem1);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"label.action.migrate.router": {
|
||||
isAsyncJob: true,
|
||||
asyncJobResponse: "migratesystemvmresponse",
|
||||
inProcessText: "label.action.migrate.router.processing",
|
||||
dialogBeforeActionFn : doMigrateRouter,
|
||||
afterActionSeccessFn: function(json, $midmenuItem1, id) {
|
||||
//var jsonObj = json.queryasyncjobresultresponse.jobresult.systemvminstance; //not all properties returned in systemvminstance
|
||||
$.ajax({
|
||||
data: createURL("command=listRouters&id="+id),
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success: function(json) {
|
||||
var items = json.listroutersresponse.router;
|
||||
if(items != null && items.length > 0) {
|
||||
jsonObj = items[0];
|
||||
routerToMidmenu(jsonObj, $midmenuItem1);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -389,7 +389,7 @@ function doMigrateSystemVM($actionLink, $detailsTab, $midmenuItem1) {
|
|||
async: false,
|
||||
success: function(json) {
|
||||
var hosts = json.listhostsresponse.host;
|
||||
var hostSelect = $("#dialog_migrate_systemvm #migrate_instance_hosts").empty();
|
||||
var hostSelect = $("#dialog_migrate_systemvm #host_select").empty();
|
||||
|
||||
if (hosts != null && hosts.length > 0) {
|
||||
for (var i = 0; i < hosts.length; i++) {
|
||||
|
|
@ -400,7 +400,7 @@ function doMigrateSystemVM($actionLink, $detailsTab, $midmenuItem1) {
|
|||
},
|
||||
error: function(XMLHttpResponse) {
|
||||
handleError(XMLHttpResponse, function() {
|
||||
$("#dialog_migrate_systemvm #migrate_instance_hosts").empty();
|
||||
$("#dialog_migrate_systemvm #host_select").empty();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -411,12 +411,12 @@ function doMigrateSystemVM($actionLink, $detailsTab, $midmenuItem1) {
|
|||
var $thisDialog = $(this);
|
||||
|
||||
var isValid = true;
|
||||
isValid &= validateDropDownBox("Host", $thisDialog.find("#migrate_instance_hosts"), $thisDialog.find("#migrate_instance_errormsg"));
|
||||
isValid &= validateDropDownBox("Host", $thisDialog.find("#host_select"), $thisDialog.find("#host_select_errormsg"));
|
||||
if (!isValid)
|
||||
return;
|
||||
|
||||
$thisDialog.dialog("close");
|
||||
var hostId = $thisDialog.find("#migrate_instance_hosts").val();
|
||||
var hostId = $thisDialog.find("#host_select").val();
|
||||
/*
|
||||
if(jsonObj.state != "Stopped") {
|
||||
$midmenuItem1.find("#info_icon").addClass("error").show();
|
||||
|
|
|
|||
Loading…
Reference in New Issue