diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java index 8fd106f23c..8ad6c276fc 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java @@ -181,6 +181,17 @@ public ApplicationContext getApplicationContext(String applicationId) { return applicationContextMap.get(applicationId); } + public ApplicationContext getApplicationContextByTenant(String applicationId, int tenantId) { + ApplicationContext applicationContext = null; + for (ApplicationContext applicationContext1 : getApplicationContexts()) { + if (applicationContext1.getTenantId() == tenantId && applicationContext1.getApplicationId().equals + (applicationId)) { + applicationContext = applicationContext1; + } + } + return applicationContext; + } + public Collection getApplicationContexts() { return applicationContextMap.values(); } diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java index 07cde0d60c..a5070b894d 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java @@ -434,7 +434,7 @@ public ApplicationPolicy getApplicationPolicy(String applicationPolicyId) { } /** - * Returns the deployment policy to which the specified id is mapped or null + * Returns the application policy to which the specified id is mapped or null * * @param id Id of the deployment policy * @return diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java index c7e2264bc7..eee9cc70eb 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java @@ -115,6 +115,14 @@ public boolean updateApplication(ApplicationContext applicationContext) */ public ApplicationContext getApplication(String applicationId); + /** + * Get an application + * + * @param applicationId + * @param tenantId + */ + public ApplicationContext getApplicationByTenant(String applicationId, int tenantId); + /** * Check if the application exists * 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 c568a3236f..cb266d7832 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 @@ -297,6 +297,11 @@ public ApplicationContext getApplication(String applicationId) { return AutoscalerContext.getInstance().getApplicationContext(applicationId); } + @Override + public ApplicationContext getApplicationByTenant(String applicationId, int tenantId) { + return AutoscalerContext.getInstance().getApplicationContextByTenant(applicationId, tenantId); + } + @Override public boolean existApplication(String applicationId) { return AutoscalerContext.getInstance().getApplicationContext(applicationId) != null; diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java index 4911fd4ab3..4922cea196 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java @@ -113,6 +113,10 @@ public ApplicationContext getApplication(String applicationId) throws RemoteExce return stub.getApplication(applicationId); } + public ApplicationContext getApplicationByTenant(String applicationId, int tenantId) throws RemoteException { + return stub.getApplicationByTenant(applicationId, tenantId); + } + public boolean existApplication(String applicationId) throws RemoteException { return stub.existApplication(applicationId); } diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Application.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Application.java index 0a0cb67669..a3f09d2fc1 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Application.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Application.java @@ -35,6 +35,7 @@ public class Application extends ParentComponent { private static final long serialVersionUID = -5092959597171649688L; // Unique id for the Application, defined in Application Definition + private String uuid; private String id; private String name; private String description; @@ -49,22 +50,30 @@ public class Application extends ParentComponent { // Life cycle state manager //protected LifeCycleStateManager applicationStateManager; - // application policy id + // application policy uuid private String applicationPolicyId; - public Application(String id) { + public Application(String uuid) { super(); - this.id = id; + this.uuid = uuid; this.key = RandomStringUtils.randomAlphanumeric(16); this.setInstanceIdToInstanceContextMap(new HashMap()); //this.applicationStateManager = //new LifeCycleStateManager(ApplicationStatus.Created, id); } - public String getUniqueIdentifier() { + public String getId() { return id; } + public void setId(String id) { + this.id = id; + } + + public String getUniqueIdentifier() { + return uuid; + } + public String getKey() { return key; } @@ -134,11 +143,11 @@ public boolean equals(Object other) { } Application that = (Application) other; - return this.id.equals(that.id); + return this.uuid.equals(that.uuid); } public int hashCode() { - return id.hashCode(); + return uuid.hashCode(); } public Instance getInstanceByNetworkPartitionId(String networkPartitionId) { 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 de8b826731..6d64759461 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 @@ -1774,8 +1774,11 @@ public static void deployApplication(String applicationId, String applicationPol log.info(String.format("Starting to deploy application: [application-id] %s", applicationId)); } + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + int tenantId = carbonContext.getTenantId(); + AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); - ApplicationContext application = autoscalerServiceClient.getApplication(applicationId); + ApplicationContext application = autoscalerServiceClient.getApplicationByTenant(applicationId, tenantId); if (application == null) { String message = String.format("Application not found: [application-id] %s", applicationId); @@ -1804,7 +1807,7 @@ public static void deployApplication(String applicationId, String applicationPol } ApplicationBean applicationBean = getApplication(applicationId); - int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); + //int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); if (applicationBean.isMultiTenant() && (tenantId != -1234)) { String message = String.format( "Multi-tenant applications can only be deployed by super tenant: [application-id] %s", @@ -1898,8 +1901,9 @@ public static void removeApplication(String applicationId) throws RestAPIExcepti */ public static ApplicationBean getApplication(String applicationId) throws RestAPIException { try { + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); return ObjectConverter.convertStubApplicationContextToApplicationDefinition( - AutoscalerServiceClient.getInstance().getApplication(applicationId)); + AutoscalerServiceClient.getInstance().getApplicationByTenant(applicationId, carbonContext.getTenantId())); } catch (RemoteException e) { String message = "Could not read application: [application-id] " + applicationId; log.error(message, e); diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java index 8322457135..e7523cd6dd 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java @@ -1111,7 +1111,8 @@ public static ApplicationContext convertApplicationDefinitionToStubApplicationCo org.apache.stratos.autoscaler.stub.pojo.ApplicationContext applicationContext = new org.apache.stratos.autoscaler.stub.pojo.ApplicationContext(); - applicationContext.setApplicationId(applicationDefinition.getApplicationUuid()); + applicationContext.setApplicationUuid(applicationDefinition.getApplicationUuid()); + applicationContext.setApplicationId(applicationDefinition.getApplicationId()); applicationContext.setAlias(applicationDefinition.getAlias()); applicationContext.setMultiTenant(applicationDefinition.isMultiTenant()); applicationContext.setName(applicationDefinition.getName()); @@ -1151,7 +1152,8 @@ public static ApplicationBean convertStubApplicationContextToApplicationDefiniti } ApplicationBean applicationDefinition = new ApplicationBean(); - applicationDefinition.setApplicationUuid(applicationContext.getApplicationId()); + applicationDefinition.setApplicationUuid(applicationContext.getApplicationUuid()); + applicationDefinition.setApplicationId(applicationContext.getApplicationId()); applicationDefinition.setAlias(applicationContext.getAlias()); applicationDefinition.setMultiTenant(applicationContext.getMultiTenant()); applicationDefinition.setName(applicationContext.getName()); diff --git a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl index f16d14dd7e..6c30d648a0 100644 --- a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl +++ b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl @@ -1,10 +1,10 @@ - + - + - + @@ -21,7 +21,7 @@ - + @@ -34,17 +34,18 @@ - + - + + - + @@ -53,10 +54,10 @@ - - - - + + + + @@ -67,8 +68,8 @@ - - + + @@ -76,7 +77,7 @@ - + @@ -95,14 +96,14 @@ - + - + @@ -110,8 +111,8 @@ - - + + @@ -133,9 +134,9 @@ - + - + @@ -146,8 +147,8 @@ - - + + @@ -161,651 +162,666 @@ - - + - - - - + + + + - + + - + - + - + - + - + - + - + - + - - + - + - + - + - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - + - + + - + - + - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - - + - + - - - + - + - + - + - + - + - + - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + - + - + - + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - + - + + + + + + - + - + - + - + - + - + - + + - + - + + + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + + + - + - + - + - + - + + + + + + - + - + - + - + + + + + + + + - + - + - + @@ -817,19 +833,19 @@ - + - + - + @@ -839,7 +855,7 @@ - + @@ -863,7 +879,7 @@ - + @@ -873,33 +889,23 @@ - + - + - - - - - - - - + - + - - - @@ -913,23 +919,23 @@ - - - + - - - + - + - + + + + + @@ -945,28 +951,26 @@ + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + - - + + @@ -974,12 +978,6 @@ - - - - - - @@ -1001,6 +999,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -1094,18 +1116,18 @@ - - - - - - + + + + + + @@ -1208,37 +1230,27 @@ - - - - - - + + + + + + - - - - - - - - - - @@ -1250,6 +1262,20 @@ + + + + + + + + + + + + + + @@ -1310,14 +1336,14 @@ - - - - + + + + @@ -1390,10 +1416,6 @@ - - - - @@ -1401,6 +1423,10 @@ + + + + @@ -1422,21 +1448,6 @@ - - - - - - - - - - - - - - - @@ -1464,6 +1475,21 @@ + + + + + + + + + + + + + + + @@ -1473,6 +1499,15 @@ + + + + + + + + + @@ -1617,8 +1652,8 @@ - - + + @@ -1626,8 +1661,8 @@ - - + + @@ -1809,6 +1844,15 @@ + + + + + + + + + @@ -1827,15 +1871,6 @@ - - - - - - - - - @@ -1857,21 +1892,6 @@ - - - - - - - - - - - - - - - @@ -1899,6 +1919,21 @@ + + + + + + + + + + + + + + + @@ -1908,6 +1943,15 @@ + + + + + + + + + @@ -2052,8 +2096,8 @@ - - + + @@ -2061,8 +2105,8 @@ - - + + @@ -2244,6 +2288,15 @@ + + + + + + + + + @@ -2262,15 +2315,6 @@ - - - - - - - - - @@ -2292,8 +2336,8 @@ - - + + @@ -2301,8 +2345,8 @@ - - + + @@ -2310,8 +2354,8 @@ - - + + @@ -2328,6 +2372,15 @@ + + + + + + + + + @@ -2436,8 +2489,8 @@ - - + + @@ -2445,8 +2498,8 @@ - - + + @@ -2580,8 +2633,8 @@ - - + + @@ -2589,8 +2642,8 @@ - - + +