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 <[email protected]> Authored: Mon Jun 22 19:27:15 2015 +0530 Committer: reka <[email protected]> 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; }
