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

stratos git commit: fixing non exisiting application runtime issue

Repository: stratos
Updated Branches:
  refs/heads/master aa3bc711b -> 0a969200d


fixing non exisiting application runtime issue


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/0a969200
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/0a969200
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/0a969200

Branch: refs/heads/master
Commit: 0a969200d11228158606f011ca7e5e795f336d92
Parents: aa3bc71
Author: reka <rt...@gmail.com>
Authored: Mon Jun 22 19:27:15 2015 +0530
Committer: reka <rt...@gmail.com>
Committed: Mon Jun 22 19:33:05 2015 +0530

----------------------------------------------------------------------
 .../rest/endpoint/api/StratosApiV41.java        |  2 +
 .../rest/endpoint/api/StratosApiV41Utils.java   | 44 ++++++++++++++------
 2 files changed, 34 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/0a969200/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 6f8bcc6..9712980 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
@@ -1272,6 +1272,8 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/admin/stratos/applications/view")
     public Response getApplicationRuntime(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
+
+
         ApplicationInfoBean applicationRuntime = StratosApiV41Utils.getApplicationRuntime(applicationId);
         if (applicationRuntime == null) {
             return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(

http://git-wip-us.apache.org/repos/asf/stratos/blob/0a969200/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index c8928f9..ea24d09 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -1875,21 +1875,41 @@ public class StratosApiV41Utils {
      * @param applicationId Application Id
      * @return ApplicationInfoBean
      */
-    public static ApplicationInfoBean getApplicationRuntime(String applicationId) {
+    public static ApplicationInfoBean getApplicationRuntime(String applicationId)
+            throws RestAPIException {
         ApplicationInfoBean applicationBean = null;
+        ApplicationContext applicationContext = null;
+        //Checking whether application is in deployed mode
         try {
-            ApplicationManager.acquireReadLockForApplication(applicationId);
-            Application application = ApplicationManager.getApplications().getApplication(applicationId);
-            if (application == null) {
-                return null;
-            }
-            applicationBean = ObjectConverter.convertApplicationToApplicationInstanceBean(application);
-            for (ApplicationInstanceBean instanceBean : applicationBean.getApplicationInstances()) {
-                addClustersInstancesToApplicationInstanceBean(instanceBean, application);
-                addGroupsInstancesToApplicationInstanceBean(instanceBean, application);
+            applicationContext = getAutoscalerServiceClient().
+                    getApplication(applicationId);
+        } catch (RemoteException e) {
+            String message = "Could not get application definition: [application-id] " + applicationId;
+            log.error(message, e);
+            throw new RestAPIException(message, e);
+
+        } catch (RestAPIException e) {
+            String message = "Could not get application definition: [application-id] " + applicationId;
+            log.error(message, e);
+            throw new RestAPIException(message, e);
+
+        }
+
+        if(applicationContext != null && applicationContext.getStatus().equals("Deployed")) {
+            try {
+                ApplicationManager.acquireReadLockForApplication(applicationId);
+                Application application = ApplicationManager.getApplications().getApplication(applicationId);
+                if (application == null) {
+                    return null;
+                }
+                applicationBean = ObjectConverter.convertApplicationToApplicationInstanceBean(application);
+                for (ApplicationInstanceBean instanceBean : applicationBean.getApplicationInstances()) {
+                    addClustersInstancesToApplicationInstanceBean(instanceBean, application);
+                    addGroupsInstancesToApplicationInstanceBean(instanceBean, application);
+                }
+            } finally {
+                ApplicationManager.releaseReadLockForApplication(applicationId);
             }
-        } finally {
-            ApplicationManager.releaseReadLockForApplication(applicationId);
         }
         return applicationBean;
     }