fixing application depolyment issues

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

Branch: refs/heads/tenant-isolation
Commit: 18f9fdee3eb4cf2661ff93504c6f6537b3ef90ab
Parents: 5176be8
Author: Dinithi <[email protected]>
Authored: Tue Jul 14 18:23:39 2015 +0530
Committer: Dinithi <[email protected]>
Committed: Tue Jul 14 18:23:39 2015 +0530

----------------------------------------------------------------------
 .../applications/pojo/GroupContext.java         |  10 +
 .../autoscaler/pojo/policy/PolicyManager.java   |   6 +-
 .../services/impl/AutoscalerServiceImpl.java    |   9 +-
 .../stratos/autoscaler/util/AutoscalerUtil.java |  47 +-
 .../util/converter/ObjectConverter.java         |   2 +-
 .../src/main/resources/AutoscalerService.wsdl   | 727 ++++++++++---------
 6 files changed, 407 insertions(+), 394 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/18f9fdee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
index 50e3dd6..83b7ac6 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/GroupContext.java
@@ -37,6 +37,8 @@ public class GroupContext implements Serializable {
 
     private String deploymentPolicy;
 
+    private String deploymentPolicyUuid;
+
     private CartridgeContext[] cartridgeContexts;
 
     private GroupContext[] groupContexts;
@@ -112,4 +114,12 @@ public class GroupContext implements Serializable {
     public void setDeploymentPolicy(String deploymentPolicy) {
         this.deploymentPolicy = deploymentPolicy;
     }
+
+    public String getDeploymentPolicyUuid() {
+        return deploymentPolicyUuid;
+    }
+
+    public void setDeploymentPolicyUuid(String deploymentPolicyUuid) {
+        this.deploymentPolicyUuid = deploymentPolicyUuid;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/18f9fdee/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 cc809d8..a0a567b 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
@@ -436,13 +436,13 @@ public class PolicyManager {
     /**
      * Returns the application policy to which the specified id is mapped or 
null
      *
-     * @param id Id of the deployment policy
+     * @param uuid Id of the deployment policy
      * @return
      */
-    public ApplicationPolicy getApplicationPolicyById(String id) {
+    public ApplicationPolicy getApplicationPolicyByUuid(String uuid) {
         ApplicationPolicy applicationPolicy = null;
         for (ApplicationPolicy applicationPolicy1 : getApplicationPolicies()) {
-            if (applicationPolicy1.getUuid().equals(id)) {
+            if (applicationPolicy1.getUuid().equals(uuid)) {
                 applicationPolicy = applicationPolicy1;
             }
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/18f9fdee/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 29e12d7..82723a9 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
@@ -930,10 +930,11 @@ public class AutoscalerServiceImpl implements 
AutoscalerService {
             throw new ApplicationPolicyAlreadyExistsException(message);
         }
 
-        String applicationPolicyId = applicationPolicy.getId();
-        if 
(PolicyManager.getInstance().getApplicationPolicyById(applicationPolicyId) != 
null && PolicyManager
-                
.getInstance().getApplicationPolicyById(applicationPolicyId).getTenantId() == 
applicationPolicy.getTenantId()) {
-            String message = "Application policy already exists: 
[application-policy-id] " + applicationPolicyId;
+        String applicationPolicyUuid1 = applicationPolicy.getUuid();
+        if 
(PolicyManager.getInstance().getApplicationPolicyByUuid(applicationPolicyUuid1) 
!= null && PolicyManager
+                
.getInstance().getApplicationPolicyByUuid(applicationPolicyUuid1).getTenantId() 
== applicationPolicy
+                .getTenantId()) {
+            String message = "Application policy already exists: 
[application-policy-uuid] " + applicationPolicyUuid1;
             log.error(message);
             throw new ApplicationPolicyAlreadyExistsException(message);
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/18f9fdee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index b9d5eb9..5f0d60c 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -420,16 +420,16 @@ public class AutoscalerUtil {
     /**
      * Get deployment policy ids referred in an application.
      *
-     * @param applicationId the application id
+     * @param applicationUuid the application uuid
      * @return list of deployment policy ids
      */
-    public static List<String> 
getDeploymentPolicyIdsReferredInApplication(String applicationId) {
+    public static List<String> 
getDeploymentPolicyIdsReferredInApplication(String applicationUuid) {
 
-        if (applicationId == null || StringUtils.isBlank(applicationId)) {
+        if (applicationUuid == null || StringUtils.isBlank(applicationUuid)) {
             return null;
         }
 
-        Application application = 
ApplicationHolder.getApplications().getApplication(applicationId);
+        Application application = 
ApplicationHolder.getApplications().getApplication(applicationUuid);
         if (application == null) {
             return null;
         }
@@ -539,16 +539,16 @@ public class AutoscalerUtil {
                         
getAliasToDeployloymentPolicyIdMapFromChildGroupContexts(aliasToDeploymentPolicyIdMap,
 groupContext.getGroupContexts());
                     } else {
                         // if group have a deployment policy, it is the same 
for all the children
-                        String deploymentPolicyId = 
groupContext.getDeploymentPolicy();
-                        
aliasToDeploymentPolicyIdMap.put(groupContext.getAlias(), deploymentPolicyId);
+                        String deploymentPolicyUuid = 
groupContext.getDeploymentPolicyUuid();
+                        
aliasToDeploymentPolicyIdMap.put(groupContext.getAlias(), deploymentPolicyUuid);
                         if (groupContext.getCartridgeContexts() != null && 
groupContext.getCartridgeContexts().length != 0) {
                             
setDeploymentPolicyIdToChildCartridgeContexts(aliasToDeploymentPolicyIdMap,
-                                    deploymentPolicyId,
+                                    deploymentPolicyUuid,
                                     groupContext.getCartridgeContexts());
                         }
                         if (groupContext.getGroupContexts() != null && 
groupContext.getGroupContexts().length != 0) {
                             
setDeploymentPolicyIdToChildGroupContexts(aliasToDeploymentPolicyIdMap,
-                                    deploymentPolicyId,
+                                    deploymentPolicyUuid,
                                     groupContext.getGroupContexts());
                         }
 
@@ -727,31 +727,32 @@ public class AutoscalerUtil {
     /**
      * Validates an application policy against the application
      *
-     * @param applicationId
-     * @param applicationPolicyId
+     * @param applicationUuid
+     * @param applicationPolicyUuid
      * @throws ApplicatioinPolicyNotExistsException
      * @throws InvalidApplicationPolicyException
      */
-    public static void validateApplicationPolicyAgainstApplication(String 
applicationId, String applicationPolicyId)
+    public static void validateApplicationPolicyAgainstApplication(String 
applicationUuid, String applicationPolicyUuid)
             throws ApplicatioinPolicyNotExistsException, 
InvalidApplicationPolicyException {
 
-        ApplicationPolicy applicationPolicy = 
PolicyManager.getInstance().getApplicationPolicyById(applicationPolicyId);
+        ApplicationPolicy applicationPolicy = 
PolicyManager.getInstance().getApplicationPolicyByUuid
+                (applicationPolicyUuid);
         if (applicationPolicy == null) {
-            String msg = String.format("Application Policy not exists for 
[application-policy-id] %s", applicationPolicyId);
+            String msg = String.format("Application Policy not exists for 
[application-policy-id] %s", applicationPolicyUuid);
             log.error(msg);
             throw new ApplicatioinPolicyNotExistsException(msg);
         }
 
-        String[] networkPartitionIds = 
applicationPolicy.getNetworkPartitionsUuid();
+        String[] networkPartitionUuids = 
applicationPolicy.getNetworkPartitionsUuid();
 
-        for (String applicationPolicyNetworkPartitionerence : 
networkPartitionIds) {
-            String networkPartitionId = 
applicationPolicyNetworkPartitionerence;
+        for (String applicationPolicyNetworkPartitionreference : 
networkPartitionUuids) {
+            String networkPartitionUuid = 
applicationPolicyNetworkPartitionreference;
             // validate application policy against the given application
-            if (!isAppUsingNetworkPartitionId(applicationId, 
networkPartitionId)) {
+            if (!isAppUsingNetworkPartitionId(applicationUuid, 
networkPartitionUuid)) {
                 String msg = String.format("Invalid Application Policy: "
                                 + "Network partition [network-partition-id] %s 
is not used in application [application-id] %s. "
                                 + "Hence application bursting will fail. 
Either remove %s from application policy or make all the cartridges available 
in %s",
-                        networkPartitionId, applicationId, networkPartitionId, 
networkPartitionId);
+                        networkPartitionUuid, applicationUuid, 
networkPartitionUuid, networkPartitionUuid);
                 log.error(msg);
                 throw new InvalidApplicationPolicyException(msg);
             }
@@ -761,12 +762,12 @@ public class AutoscalerUtil {
     /**
      * Validate whether all the deployment policies used in the application 
are using the same network partitions of Application policy
      */
-    private static boolean isAppUsingNetworkPartitionId(String applicationId, 
String networkPartitionId) {
-        if (applicationId == null || StringUtils.isBlank(applicationId)
-                || networkPartitionId == null || 
StringUtils.isBlank(networkPartitionId)) {
+    private static boolean isAppUsingNetworkPartitionId(String 
applicationUuid, String networkPartitionUuid) {
+        if (applicationUuid == null || StringUtils.isBlank(applicationUuid)
+                || networkPartitionUuid == null || 
StringUtils.isBlank(networkPartitionUuid)) {
             return false;
         }
-        List<String> deploymentPolicyIdsReferredInApplication = 
AutoscalerUtil.getDeploymentPolicyIdsReferredInApplication(applicationId);
+        List<String> deploymentPolicyIdsReferredInApplication = 
AutoscalerUtil.getDeploymentPolicyIdsReferredInApplication(applicationUuid);
         if (deploymentPolicyIdsReferredInApplication == null) {
             return false;
         }
@@ -779,7 +780,7 @@ public class AutoscalerUtil {
                     for (NetworkPartitionRef 
networkPartitionOfDeploymentPolicy : 
deploymentPolicyInApp.getNetworkPartitionRefs()) {
                         if (networkPartitionOfDeploymentPolicy != null) {
                             if (networkPartitionOfDeploymentPolicy != null && 
networkPartitionOfDeploymentPolicy.getUuid().
-                                    equals(networkPartitionId)) {
+                                    equals(networkPartitionUuid)) {
                                 referencesOfNetworkPartition++;
                             }
                         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/18f9fdee/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 6f6fa06..bcaac4f 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
@@ -1581,7 +1581,7 @@ public class ObjectConverter {
             
groupContext.setGroupMaxInstances(groupDefinition.getGroupMaxInstances());
             
groupContext.setGroupMinInstances(groupDefinition.getGroupMinInstances());
             
groupContext.setDeploymentPolicy(groupDefinition.getDeploymentPolicy());
-
+            groupContext.setDeploymentPolicyUuid(groupDefinition.getUuid());
             // Groups
             if (groupDefinition.getGroups() != null) {
                 
groupContext.setGroupContexts(convertGroupDefinitionsToStubGroupContexts(groupDefinition.getGroups(),

Reply via email to