Update the add application with network partitions uuid
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f002bf11 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f002bf11 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f002bf11 Branch: refs/heads/tenant-isolation Commit: f002bf11cae844c18a68bdba15b5d46154524b0c Parents: 0b9602e Author: Gayan Gunarathne <[email protected]> Authored: Tue Jul 7 22:05:20 2015 +0530 Committer: Gayan Gunarathne <[email protected]> Committed: Tue Jul 7 22:05:20 2015 +0530 ---------------------------------------------------------------------- .../policy/deployment/ApplicationPolicy.java | 9 + .../stratos/autoscaler/util/AutoscalerUtil.java | 4 +- .../deployment/ApplicationPolicyBean.java | 9 + .../rest/endpoint/api/StratosApiV41Utils.java | 20 +- .../src/main/resources/AutoscalerService.wsdl | 615 ++++++++++--------- 5 files changed, 346 insertions(+), 311 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/f002bf11/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ApplicationPolicy.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ApplicationPolicy.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ApplicationPolicy.java index 9dc33f0..f961e1c 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ApplicationPolicy.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ApplicationPolicy.java @@ -30,6 +30,7 @@ public class ApplicationPolicy implements Serializable { private int tenantId; private String algorithm; private String[] networkPartitions; + private String[] networkPartitionsUuid; private Properties properties; // if networkPartitionGroups property is set, we are populating following variable. private String[] networkPartitionGroups; @@ -89,4 +90,12 @@ public class ApplicationPolicy implements Serializable { public void setNetworkPartitionGroups(String[] networkPartitionGroups) { this.networkPartitionGroups = networkPartitionGroups; } + + public String[] getNetworkPartitionsUuid() { + return networkPartitionsUuid; + } + + public void setNetworkPartitionsUuid(String[] networkPartitionsUuid) { + this.networkPartitionsUuid = networkPartitionsUuid; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/f002bf11/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 155d687..0342a05 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 @@ -639,7 +639,7 @@ public class AutoscalerUtil { } // application policy should contain at least one network partition reference - String[] networkPartitionIds = applicationPolicy.getNetworkPartitions(); + String[] networkPartitionIds = applicationPolicy.getNetworkPartitionsUuid(); if (null == networkPartitionIds || networkPartitionIds.length == 0) { String msg = "Invalid Application Policy: " + "Application Policy is not containing any network partition reference"; @@ -661,7 +661,7 @@ public class AutoscalerUtil { // network partitions should be added already NetworkPartition networkPartition = CloudControllerServiceClient.getInstance() .getNetworkPartition(networkPartitionId); - if (null == networkPartition || (applicationPolicy.getTenantId() != networkPartition.getTenantId())) { + if (null == networkPartition) { String msg = String.format("Network partition not found: [network-partition-id] %s in " + "[application-policy-id] %s", networkPartitionId, applicationPolicy.getUuid()); log.error(msg); http://git-wip-us.apache.org/repos/asf/stratos/blob/f002bf11/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/ApplicationPolicyBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/ApplicationPolicyBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/ApplicationPolicyBean.java index e912227..7847df8 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/ApplicationPolicyBean.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/ApplicationPolicyBean.java @@ -32,6 +32,7 @@ public class ApplicationPolicyBean { private int tenantId; private String algorithm; String[] networkPartitions; + private String[] networkPartitionsUuid; List<PropertyBean> properties; public String getUuid() { @@ -81,4 +82,12 @@ public class ApplicationPolicyBean { public void setProperties(List<PropertyBean> properties) { this.properties = properties; } + + public String[] getNetworkPartitionsUuid() { + return networkPartitionsUuid; + } + + public void setNetworkPartitionsUuid(String[] networkPartitionsUuid) { + this.networkPartitionsUuid = networkPartitionsUuid; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/f002bf11/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 e31af5a..2b1c7b9 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 @@ -681,7 +681,7 @@ public class StratosApiV41Utils { log.error(msg); throw new ApplicationPolicyIsEmptyException(msg); } - + CloudControllerServiceClient cloudServiceClient=getCloudControllerServiceClient(); AutoscalerServiceClient serviceClient = getAutoscalerServiceClient(); try { ApplicationPolicy applicationPolicy = ObjectConverter.convertApplicationPolicyBeanToStubAppPolicy( @@ -691,7 +691,23 @@ public class StratosApiV41Utils { log.error(msg); throw new ApplicationPolicyIsEmptyException(msg); } - serviceClient.addApplicationPolicy(applicationPolicy); + + + NetworkPartition[] existingNetworkPartitions=cloudServiceClient.getNetworkPartitions(); + String[] networkPartitions= applicationPolicy.getNetworkPartitions(); + String[] networkPartitionsUuid=new String[applicationPolicy.getNetworkPartitions().length]; + for(int i=0;i< networkPartitions.length;i++) { + for (NetworkPartition networkPartition : existingNetworkPartitions) { + if (existingNetworkPartitions[i].getId().equals(networkPartition.getId())&&(existingNetworkPartitions[i].getTenantId()==networkPartition.getTenantId())) + { + networkPartitionsUuid[i] = networkPartition.getUuid(); + } + } + } + applicationPolicy.setNetworkPartitionsUuid(networkPartitionsUuid); + serviceClient.addApplicationPolicy(applicationPolicy); + + } catch (RemoteException e) { String msg = "Could not add application policy. " + e.getLocalizedMessage(); log.error(msg, e);
