You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/06/22 08:09:52 UTC

[4/4] stratos git commit: Adding force undeployment button for UI

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 <an...@gmail.com>
Authored: Wed Jun 17 19:34:47 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
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();
     }
 
     /**