Modifying the application context with UUID

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

Branch: refs/heads/tenant-isolation
Commit: a5e75b4190c10c406a06c7a7549eead7a895fa17
Parents: eac4c96
Author: Dinithi <[email protected]>
Authored: Thu Jul 9 14:31:54 2015 +0530
Committer: Dinithi <[email protected]>
Committed: Thu Jul 9 14:31:54 2015 +0530

----------------------------------------------------------------------
 .../autoscaler/context/AutoscalerContext.java   |  11 +
 .../autoscaler/pojo/policy/PolicyManager.java   |   2 +-
 .../autoscaler/services/AutoscalerService.java  |   8 +
 .../services/impl/AutoscalerServiceImpl.java    |   5 +
 .../common/client/AutoscalerServiceClient.java  |   4 +
 .../domain/application/Application.java         |  21 +-
 .../rest/endpoint/api/StratosApiV41Utils.java   |  10 +-
 .../util/converter/ObjectConverter.java         |   6 +-
 .../src/main/resources/AutoscalerService.wsdl   | 779 ++++++++++---------
 9 files changed, 471 insertions(+), 375 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/a5e75b41/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/AutoscalerContext.java
----------------------------------------------------------------------
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 8fd106f..8ad6c27 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 class AutoscalerContext {
         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<ApplicationContext> getApplicationContexts() {
         return applicationContextMap.values();
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a5e75b41/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
----------------------------------------------------------------------
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 07cde0d..a5070b8 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 class PolicyManager {
     }
 
     /**
-     * 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

http://git-wip-us.apache.org/repos/asf/stratos/blob/a5e75b41/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
----------------------------------------------------------------------
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 c7e2264..eee9cc7 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
@@ -116,6 +116,14 @@ public interface AutoscalerService {
     public ApplicationContext getApplication(String applicationId);
 
     /**
+     * Get an application
+     *
+     * @param applicationId
+     * @param tenantId
+     */
+    public ApplicationContext getApplicationByTenant(String applicationId, int 
tenantId);
+
+    /**
      * Check if the application exists
      *
      * @param applicationId

http://git-wip-us.apache.org/repos/asf/stratos/blob/a5e75b41/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 c568a32..cb266d7 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
@@ -298,6 +298,11 @@ public class AutoscalerServiceImpl implements 
AutoscalerService {
     }
 
     @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;
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a5e75b41/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
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 4911fd4..4922cea 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 class AutoscalerServiceClient {
         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);
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a5e75b41/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Application.java
----------------------------------------------------------------------
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 0a0cb67..a3f09d2 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<ApplicationInstance> {
     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<ApplicationInstance> {
     // Life cycle state manager
     //protected LifeCycleStateManager<ApplicationStatus> 
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<String, 
ApplicationInstance>());
         //this.applicationStateManager =
         //new 
LifeCycleStateManager<ApplicationStatus>(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 class Application extends 
ParentComponent<ApplicationInstance> {
         }
 
         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) 
{

http://git-wip-us.apache.org/repos/asf/stratos/blob/a5e75b41/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 de8b826..6d64759 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 class StratosApiV41Utils {
                 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 class StratosApiV41Utils {
             }
 
             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 class StratosApiV41Utils {
      */
     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);

http://git-wip-us.apache.org/repos/asf/stratos/blob/a5e75b41/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------
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 8322457..e7523cd 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 class ObjectConverter {
 
         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 class ObjectConverter {
         }
 
         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());

Reply via email to