diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
index d8a226e6fb1..75da7e8ece4 100644
--- a/client/WEB-INF/classes/resources/messages.properties
+++ b/client/WEB-INF/classes/resources/messages.properties
@@ -1,4 +1,7 @@
#New - Add all new parameters here.
+label.action.destroy.systemvm=Destroy System VM
+label.action.destroy.systemvm.processing=Destroying System VM....
+message.action.destroy.systemvm=Please confirm you want to destroy System VM
label.numretries = Number of Retries
label.timeout.in.second = Timeout(seconds)
diff --git a/ui/jsp/systemvm.jsp b/ui/jsp/systemvm.jsp
index 1376b5e6ac7..d71de926173 100644
--- a/ui/jsp/systemvm.jsp
+++ b/ui/jsp/systemvm.jsp
@@ -15,7 +15,10 @@ dictionary = {
'message.action.stop.systemvm' : '',
'label.action.reboot.systemvm' : '',
'label.action.reboot.systemvm.processing' : '',
- 'message.action.reboot.systemvm' : ''
+ 'message.action.reboot.systemvm' : '',
+ 'label.action.destroy.systemvm': '',
+ 'label.action.destroy.systemvm.processing': '',
+ 'message.action.destroy.systemvm': ''
};
diff --git a/ui/scripts/cloud.core.instance.js b/ui/scripts/cloud.core.instance.js
index 9ae2215ace9..ff0ab0da102 100644
--- a/ui/scripts/cloud.core.instance.js
+++ b/ui/scripts/cloud.core.instance.js
@@ -1753,6 +1753,10 @@ function vmJsonToDetailsTab(){
buildActionLinkForTab("label.action.change.service", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
noAvailableActions = false;
}
+ else if (jsonObj.state == 'Error') {
+ buildActionLinkForTab("label.action.destroy.instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
+ noAvailableActions = false;
+ }
// no available actions
if(noAvailableActions == true) {
diff --git a/ui/scripts/cloud.core.systemvm.js b/ui/scripts/cloud.core.systemvm.js
index 061eae25e26..9d14eae6500 100644
--- a/ui/scripts/cloud.core.systemvm.js
+++ b/ui/scripts/cloud.core.systemvm.js
@@ -122,14 +122,28 @@ function systemvmJsonToDetailsTab() {
});
var $actionMenu = $actionLink.find("#action_menu");
$actionMenu.find("#action_list").empty();
+ var noAvailableActions = true;
- if (jsonObj.state == 'Running') { //Show "Stop System VM", "Reboot System VM"
+ if (jsonObj.state == 'Running') {
buildActionLinkForTab("label.action.stop.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab);
- buildActionLinkForTab("label.action.reboot.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab);
+ buildActionLinkForTab("label.action.reboot.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab);
+ buildActionLinkForTab("label.action.destroy.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab);
+ noAvailableActions = false;
}
- else if (jsonObj.state == 'Stopped') { //show "Start System VM"
+ else if (jsonObj.state == 'Stopped') {
buildActionLinkForTab("label.action.start.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab);
- }
+ buildActionLinkForTab("label.action.destroy.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab);
+ noAvailableActions = false;
+ }
+ else if (jsonObj.state == 'Error') {
+ buildActionLinkForTab("label.action.destroy.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab);
+ noAvailableActions = false;
+ }
+
+ // no available actions
+ if(noAvailableActions == true) {
+ $actionMenu.find("#action_list").append($("#no_available_actions").clone().show());
+ }
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
@@ -197,6 +211,17 @@ var systemVmActionMap = {
var jsonObj = json.queryasyncjobresultresponse.jobresult.systemvm;
systemvmToMidmenu(jsonObj, $midmenuItem1);
}
+ },
+ "label.action.destroy.systemvm": {
+ isAsyncJob: true,
+ asyncJobResponse: "destroysystemvmresponse",
+ dialogBeforeActionFn : doDestroySystemVM,
+ inProcessText: "label.action.destroy.systemvm.processing",
+ afterActionSeccessFn: function(json, $midmenuItem1, id) {
+ $midmenuItem1.slideUp("slow", function() {
+
+ });
+ }
}
}
@@ -257,3 +282,20 @@ function doRebootSystemVM($actionLink, $detailsTab, $midmenuItem1) {
}).dialog("open");
}
+function doDestroySystemVM($actionLink, $detailsTab, $midmenuItem1) {
+ var jsonObj = $midmenuItem1.data("jsonObj");
+ var id = jsonObj.id;
+
+ $("#dialog_confirmation")
+ .text(dictionary["message.action.destroy.systemvm"])
+ .dialog('option', 'buttons', {
+ "Confirm": function() {
+ $(this).dialog("close");
+ var apiCommand = "command=destroySystemVm&id="+id;
+ doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
+ },
+ "Cancel": function() {
+ $(this).dialog("close");
+ }
+ }).dialog("open");
+}