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(),
