Adding force undeployment button for UI
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/efbd8652 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/efbd8652 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/efbd8652 Branch: refs/heads/master Commit: efbd86522d71355c3e9d8864ab006a25e590dfa2 Parents: 444954e Author: anuruddhal <[email protected]> Authored: Wed Jun 17 19:34:47 2015 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Mon Jun 22 11:39:42 2015 +0530 ---------------------------------------------------------------------- .../applications/pojo/ApplicationContext.java | 1 + .../services/impl/AutoscalerServiceImpl.java | 2 +- .../console/applications_form.jag | 1 + .../applications/application_requests.jag | 3 ++ .../console/controllers/rest/rest_calls.jag | 4 ++ .../console/themes/theme0/css/custom.css | 4 ++ .../theme0/partials/applications_form.hbs | 52 +++++++++++++------- .../theme0/partials/applications_topology.hbs | 52 ++++++++++++++++++++ .../theme0/renderers/applications_form.js | 1 + .../rest/endpoint/api/StratosApiV41.java | 2 +- 10 files changed, 102 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java index 7ab87ce..ec79fcf 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ApplicationContext.java @@ -29,6 +29,7 @@ public class ApplicationContext implements Serializable { public static final String STATUS_CREATED = "Created"; public static final String STATUS_DEPLOYED = "Deployed"; + public static final String STATUS_UNDEPLOYING = "Undeploying"; private String applicationId; private String alias; http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java index bcf4763..e6baf1e 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java @@ -554,7 +554,7 @@ public class AutoscalerServiceImpl implements AutoscalerService { log.error(message); throw new RuntimeException(message); } - + applicationContext.setStatus(ApplicationContext.STATUS_UNDEPLOYING); // Remove application signup(s) in stratos manager removeApplicationSignUp(applicationContext); http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.manager.console/console/applications_form.jag ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/applications_form.jag b/components/org.apache.stratos.manager.console/console/applications_form.jag index 0c52785..ad1745c 100644 --- a/components/org.apache.stratos.manager.console/console/applications_form.jag +++ b/components/org.apache.stratos.manager.console/console/applications_form.jag @@ -123,6 +123,7 @@ var caramelData = { applicationAlias:applicationAlias, applicationName:applicationName, applicationJSON:JSON.stringify(applicationJSON), + applicationStatus: applicationJSON.status, formTitle: formTitle, formDataRaw: JSON.stringify(formDataRaw), formtype:elements.formtype, http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.manager.console/console/controllers/applications/application_requests.jag ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/controllers/applications/application_requests.jag b/components/org.apache.stratos.manager.console/console/controllers/applications/application_requests.jag index 7867505..2e51c7b 100644 --- a/components/org.apache.stratos.manager.console/console/controllers/applications/application_requests.jag +++ b/components/org.apache.stratos.manager.console/console/controllers/applications/application_requests.jag @@ -43,6 +43,9 @@ try { case "undeployapplication": formSubmit = util.RESTCalls.undeployApplication(applicationId); break; + case "forceundeployapplication": + formSubmit = util.RESTCalls.forceUndeployApplication(applicationId); + break; default: session.put("deploy-status", { "message": "Sorry Endpoint Error", "status": "error" }); http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.manager.console/console/controllers/rest/rest_calls.jag ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/controllers/rest/rest_calls.jag b/components/org.apache.stratos.manager.console/console/controllers/rest/rest_calls.jag index ed5d42a..7b020fa 100644 --- a/components/org.apache.stratos.manager.console/console/controllers/rest/rest_calls.jag +++ b/components/org.apache.stratos.manager.console/console/controllers/rest/rest_calls.jag @@ -140,6 +140,10 @@ RESTCalls = new function(){ return this.send("POST","/applications/"+applicationId+"/undeploy",{}); }; + this.forceUndeployApplication = function(applicationId){ + return this.send("POST","/applications/"+applicationId+"/undeploy?force=true",{}); + }; + this.deleteGroup = function(groupName){ return this.send("DELETE","/cartridgeGroups/" + groupName,{}); }; http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom.css ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom.css b/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom.css index 10d3788..a8b1b3a 100644 --- a/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom.css +++ b/components/org.apache.stratos.manager.console/console/themes/theme0/css/custom.css @@ -218,6 +218,10 @@ button.hover-undeploy{ margin-top: .7em; } +button.hover-force-undeploy{ + margin-top: .7em; +} + div#textform>div>h3 { display: none; } http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_form.hbs ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_form.hbs b/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_form.hbs index 0042071..0c72fb9 100644 --- a/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_form.hbs +++ b/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_form.hbs @@ -115,25 +115,41 @@ <div class="toggle-menu-description">{{description}} {{status}}</div> {{#ifCond status "!=" "Created"}} - <div class="list-button" style="display: none;"> - <button class="btn btn-danger btn-lg hover-undeploy" type="button" - id="{{applicationId}}"> Undeploy</button> - <button class="btn btn-info btn-lg hover-details" type="button" - id="details_list_{{applicationId}}" - data-url="{{url ""}}/applications/{{applicationId}}/" > View - </button> - </div> - <div class="bottom-bar-wrapper"> - <div class="bottom-bar"> - <button class="btn btn-danger btn-lg hover-undeploy" type="button" - id="{{applicationId}}"> Undeploy</button> - <button class="btn btn-info btn-lg hover-details" type="button" - id="details_{{applicationId}}" - data-url="{{url ""}}/applications/{{applicationId}}/" > View - </button> - + {{#ifCond status "==" "Deployed"}} + <div class="list-button" style="display: none;"> + <button class="btn btn-danger btn-lg hover-undeploy" type="button" + id="{{applicationId}}"> Undeploy</button> + <button class="btn btn-info btn-lg hover-details" type="button" + id="details_list_{{applicationId}}" + data-url="{{url ""}}/applications/{{applicationId}}/" > View + </button> + </div> + <div class="bottom-bar-wrapper"> + <div class="bottom-bar"> + <button class="btn btn-danger btn-lg hover-undeploy" type="button" + id="{{applicationId}}"> Undeploy</button> + <button class="btn btn-info btn-lg hover-details" type="button" + id="details_{{applicationId}}" + data-url="{{url ""}}/applications/{{applicationId}}/" > View + </button> + + </div> + {{else}} + <div class="list-button" style="display: none;"> + <button class="btn btn-info btn-lg hover-details" type="button" + id="details_list_{{applicationId}}" + data-url="{{url ""}}/applications/{{applicationId}}/" > View + </button> + </div> + <div class="bottom-bar-wrapper"> + <div class="bottom-bar"> + <button class="btn btn-info btn-lg hover-details" type="button" + id="details_{{applicationId}}" + data-url="{{url ""}}/applications/{{applicationId}}/" > View + </button> + </div> + {{/ifCond}} </div> - </div> {{else}} <div class="list-button" style="display: none;"> <button class="btn btn-danger btn-lg hover-delete" type="button" http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_topology.hbs ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_topology.hbs b/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_topology.hbs index 3627b31..0deb7c9 100644 --- a/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_topology.hbs +++ b/components/org.apache.stratos.manager.console/console/themes/theme0/partials/applications_topology.hbs @@ -32,7 +32,13 @@ <div class='col-md-1'> <button class='btn btn-default btn-lg' type='button' style="margin-left: -15px; " onclick='window.location.replace(document.referrer)'> Back</button> + </div> + {{#ifCond applicationStatus "==" "Undeploying"}} + <div class='col-md-1'> + <button class="btn btn-danger btn-lg" type="button" style="..." + value="{{appName}}" id="force_undeploy">Force Undeploy</button> </div> + {{/ifCond}} </div> </div> <!-- Nav tabs --> @@ -142,6 +148,52 @@ $(window).load(function() { downloadCanvas(this, 'canvasOriginal', '{{{appName}}}.png'); }); +$( "#force_undeploy" ).click(function() { +var payload =$(this).attr("value"); + noty({ + layout: 'bottomRight', + type: 'warning', + text: 'Are you sure you want to <strong>forcefully undeploy</strong> application: <strong>' + +$(this).attr("value") + "</strong> ?", + buttons: [ + {addClass: 'btn btn-primary', text: 'Yes', onClick: function($noty) { + var formtype = 'forceundeployapplication'; + $noty.close(); + + $.ajax({ + type: "POST", + url: caramel.context + "/controllers/applications/application_requests.jag", + dataType: 'json', + data: { "applicationId": payload, "formtype": formtype }, + success: function (data) { + if (data.status == 'error') { + var n = noty({text: data.message, layout: 'bottomRight', type: 'error'}); + } else if (data.status == 'warning') { + var n = noty({text: data.message, layout: 'bottomRight', type: 'warning'}); + } else { + var n = noty({text: data.message, layout: 'bottomRight', type: 'success'}); + } + window.setTimeout(function(){ + location.reload(); + }, 1000); + } + }).always(function () { + + }); + } + }, + {addClass: 'btn btn-danger', text: 'No', onClick: function($noty) { + $noty.close(); + } + } + ] + }); + }); }); + + + + + </script> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.manager.console/console/themes/theme0/renderers/applications_form.js ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/themes/theme0/renderers/applications_form.js b/components/org.apache.stratos.manager.console/console/themes/theme0/renderers/applications_form.js index 85bac5e..80d9dad 100644 --- a/components/org.apache.stratos.manager.console/console/themes/theme0/renderers/applications_form.js +++ b/components/org.apache.stratos.manager.console/console/themes/theme0/renderers/applications_form.js @@ -135,6 +135,7 @@ var render = function (theme, data, meta, require) { appName: data.appName, topologyData: data.topologyData, applicationJSON:data.applicationJSON, + applicationStatus: data.applicationStatus, form_action: data.form_action, formHtml: data.formHtml, formData: data.formData, http://git-wip-us.apache.org/repos/asf/stratos/blob/efbd8652/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java index c319873..11ecb30 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java @@ -1254,7 +1254,7 @@ public class StratosApiV41 extends AbstractApi { } StratosApiV41Utils.undeployApplication(applicationId, force); return Response.accepted().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, - String.format("Application undeployed successfully: [application-id] %s", applicationId))).build(); + String.format("Application undeploy process started successfully: [application-id] %s", applicationId))).build(); } /**
