adding support to deploy global deployment policy
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/dee7291c Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/dee7291c Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/dee7291c Branch: refs/heads/master Commit: dee7291cfb423351f4c87a1f674677e491e1ed6b Parents: d45642c Author: reka <[email protected]> Authored: Mon Dec 1 14:40:54 2014 +0530 Committer: reka <[email protected]> Committed: Mon Dec 1 14:44:12 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/api/AutoScalerServiceImpl.java | 6 +- .../client/CloudControllerClient.java | 32 +- .../context/cluster/ClusterContextFactory.java | 3 - .../context/cluster/ClusterInstanceContext.java | 3 +- .../context/cluster/VMClusterContext.java | 20 +- .../partition/ClusterLevelPartitionContext.java | 2 +- .../partition/GroupLevelPartitionContext.java | 2 +- .../context/partition/PartitionContext.java | 2 +- .../pojo/policy/deployment/ChildPolicy.java | 46 + .../policy/deployment/DeploymentPolicy.java | 34 +- .../partition/ChildLevelPartition.java | 25 - .../ApplicationLevelNetworkPartition.java | 2 - .../network/ChildLevelNetworkPartition.java | 2 - .../partition/network/ChildLevelPartition.java | 44 + .../deployment/partition/network/Partition.java | 139 ++ .../ClusterStatusTerminatedProcessor.java | 3 +- .../stratos/autoscaler/TestRulesPackaged.java | 9 +- .../rest/endpoint/api/StratosApiV40.java | 6 +- .../rest/endpoint/api/StratosApiV40Utils.java | 25 +- .../rest/endpoint/api/StratosApiV41.java | 8 +- .../rest/endpoint/api/StratosApiV41Utils.java | 35 +- .../ApplicationLevelNetworkPartition.java | 34 + .../partition/ChildLevelNetworkPartition.java | 33 + .../partition/ChildLevelPartition.java | 28 + .../autoscaler/partition/NetworkPartition.java | 36 - .../policy/deployment/ApplicationPolicy.java | 34 + .../policy/deployment/ChildPolicy.java | 31 + .../policy/deployment/DeploymentPolicy.java | 54 +- .../bean/util/converter/PojoConverter.java | 218 ++- .../stratos/rest/endpoint/mock/MockContext.java | 24 +- .../rest/endpoint/mock/StratosApiV40Mock.java | 4 +- .../src/main/webapp/api/WEB-INF/cxf-servlet.xml | 5 + .../src/main/resources/AutoScalerService.wsdl | 1550 +++++++++--------- 33 files changed, 1457 insertions(+), 1042 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java index d740605..84705f8 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java @@ -43,8 +43,8 @@ import org.apache.stratos.autoscaler.pojo.ServiceGroup; import org.apache.stratos.autoscaler.pojo.policy.PolicyManager; import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy; import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition; import org.apache.stratos.autoscaler.registry.RegistryManager; -import org.apache.stratos.cloud.controller.stub.domain.Partition; import org.apache.stratos.common.Properties; import org.apache.stratos.common.Property; import org.apache.stratos.common.kubernetes.KubernetesGroup; @@ -147,14 +147,14 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface { return PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getApplicationLevelNetworkPartitions(); } - public Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId) { + /*public Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId) { DeploymentPolicy depPol = this.getDeploymentPolicy(deploymentPolicyId); if (null == depPol) { return null; } return depPol.getAllPartitions(); - } + }*/ @Override public KubernetesGroup[] getAllKubernetesGroups() { http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java index ba31970..963c661 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java @@ -32,9 +32,11 @@ import org.apache.stratos.autoscaler.exception.kubernetes.NonExistingKubernetesG import org.apache.stratos.autoscaler.exception.partition.PartitionValidationException; import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy; import org.apache.stratos.autoscaler.kubernetes.KubernetesManager; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.*; import org.apache.stratos.autoscaler.util.ConfUtil; import org.apache.stratos.cloud.controller.stub.*; import org.apache.stratos.cloud.controller.stub.domain.*; +import org.apache.stratos.cloud.controller.stub.domain.Partition; import org.apache.stratos.common.Properties; import org.apache.stratos.common.Property; import org.apache.stratos.common.constants.StratosConstants; @@ -43,6 +45,7 @@ import org.apache.stratos.common.kubernetes.KubernetesMaster; import java.rmi.RemoteException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Set; @@ -91,7 +94,8 @@ public class CloudControllerClient { log.info(String.format("Validating partitions of policy via cloud controller: [id] %s", deploymentPolicy.getId())); } long startTime = System.currentTimeMillis(); - boolean result = stub.validateDeploymentPolicy(cartridgeType, deploymentPolicy.getAllPartitions()); + boolean result = stub.validateDeploymentPolicy(cartridgeType, getAllCCPartitions(deploymentPolicy. + getAllPartitions())); if (log.isDebugEnabled()) { long endTime = System.currentTimeMillis(); log.debug(String.format("Service call validateDeploymentPolicy() returned in %dms", (endTime - startTime))); @@ -110,6 +114,32 @@ public class CloudControllerClient { } + public org.apache.stratos.cloud.controller.stub.domain.Partition[] + getAllCCPartitions(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition[] partitions) { + + org.apache.stratos.cloud.controller.stub.domain.Partition[] partitions1 = + new org.apache.stratos.cloud.controller.stub.domain.Partition[partitions.length]; + + for(int i = 0; i < partitions.length; i++) { + partitions1[i] = convertTOCCPartition(partitions[i]); + } + return partitions1; + } + + private org.apache.stratos.cloud.controller.stub.domain.Partition convertTOCCPartition(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition) { + org.apache.stratos.cloud.controller.stub.domain.Partition partition1 = new + org.apache.stratos.cloud.controller.stub.domain.Partition(); + + partition1.setId(partition.getId()); + partition1.setProvider(partition.getProvider()); + partition1.setProperties(partition.getProperties()); + + return partition1; + } + + + + /* * Calls the CC to validate the partition. */ http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java index c98501d..3c60432 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterContextFactory.java @@ -25,13 +25,10 @@ import org.apache.stratos.autoscaler.applications.ApplicationHolder; import org.apache.stratos.autoscaler.context.member.MemberStatsContext; import org.apache.stratos.autoscaler.exception.partition.PartitionValidationException; import org.apache.stratos.autoscaler.exception.policy.PolicyValidationException; -import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition; -import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition; //import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.PartitionManager; import org.apache.stratos.autoscaler.pojo.policy.PolicyManager; import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy; import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy; -import org.apache.stratos.cloud.controller.stub.domain.Partition; import org.apache.stratos.cloud.controller.stub.domain.MemberContext; import org.apache.stratos.common.Properties; import org.apache.stratos.common.Property; http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java index 4d1818e..ff2aaf3 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/ClusterInstanceContext.java @@ -25,8 +25,7 @@ import org.apache.stratos.autoscaler.context.partition.PartitionContext; import org.apache.stratos.autoscaler.pojo.policy.autoscale.LoadAverage; import org.apache.stratos.autoscaler.pojo.policy.autoscale.MemoryConsumption; import org.apache.stratos.autoscaler.pojo.policy.autoscale.RequestsInFlight; -import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition; -import org.apache.stratos.cloud.controller.stub.domain.Partition; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition; import org.apache.stratos.messaging.domain.topology.Member; import java.util.HashMap; http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java index 39303dd..d250fc3 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/cluster/VMClusterContext.java @@ -28,9 +28,10 @@ import org.apache.stratos.autoscaler.exception.partition.PartitionValidationExce import org.apache.stratos.autoscaler.exception.policy.PolicyValidationException; import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy; import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy; -import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition; import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition; -import org.apache.stratos.cloud.controller.stub.domain.*; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition; +import org.apache.stratos.cloud.controller.stub.domain.MemberContext; import org.apache.stratos.messaging.domain.instance.ClusterInstance; import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.domain.topology.Member; @@ -240,7 +241,7 @@ public class VMClusterContext extends AbstractClusterContext { Partition partition1 = deploymentPolicy.getApplicationLevelNetworkPartition(networkPartition.getId()). getPartition(partition.getPartitionId()); - CloudControllerClient.getInstance().validatePartition(partition1); + CloudControllerClient.getInstance().validatePartition(convertTOCCPartition(partition1)); if (clusterLevelNetworkPartitionContext == null) { clusterLevelNetworkPartitionContext = new ClusterLevelNetworkPartitionContext(clusterInstance.getNetworkPartitionId() @@ -283,7 +284,7 @@ public class VMClusterContext extends AbstractClusterContext { memberContext.setClusterId(member.getClusterId()); memberContext.setMemberId(memberId); memberContext.setInitTime(member.getInitTime()); - memberContext.setPartition(partition); + memberContext.setPartition(convertTOCCPartition(partition)); //FIXME********memberContext.setProperties(convertMemberPropsToMemberContextProps(member.getProperties())); if (MemberStatus.Activated.equals(member.getStatus())) { @@ -315,6 +316,17 @@ public class VMClusterContext extends AbstractClusterContext { } } + private org.apache.stratos.cloud.controller.stub.domain.Partition convertTOCCPartition(Partition partition) { + org.apache.stratos.cloud.controller.stub.domain.Partition partition1 = new + org.apache.stratos.cloud.controller.stub.domain.Partition(); + + partition1.setId(partition.getId()); + partition1.setProvider(partition.getProvider()); + partition1.setProperties(partition.getProperties()); + + return partition1; + } + //FIXME********** /*private org.apache.stratos.cloud.controller.stub.pojo.Properties convertMemberPropsToMemberContextProps( java.util.Properties properties) { http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java index 19a20cb..1a6736e 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/ClusterLevelPartitionContext.java @@ -22,7 +22,7 @@ import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.context.member.MemberStatsContext; -import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition; import org.apache.stratos.autoscaler.util.ConfUtil; import org.apache.stratos.cloud.controller.stub.domain.Partition; import org.apache.stratos.cloud.controller.stub.domain.MemberContext; http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java index a53284b..6b7f23a 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/GroupLevelPartitionContext.java @@ -22,7 +22,7 @@ import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.context.member.MemberStatsContext; -import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition; import org.apache.stratos.autoscaler.util.ConfUtil; import org.apache.stratos.cloud.controller.stub.domain.Partition; import org.apache.stratos.common.constants.StratosConstants; http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java index d33933a..856b582 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/context/partition/PartitionContext.java @@ -20,7 +20,7 @@ package org.apache.stratos.autoscaler.context.partition; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelPartition; import org.apache.stratos.cloud.controller.stub.domain.Partition; import java.io.Serializable; import java.util.*; http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ChildPolicy.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ChildPolicy.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ChildPolicy.java new file mode 100644 index 0000000..04f7d9f --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/ChildPolicy.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.autoscaler.pojo.policy.deployment; + +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition; + +/** + * Created by reka on 12/1/14. + */ +public class ChildPolicy { + private String id; + + private ChildLevelNetworkPartition[] childLevelNetworkPartitions; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ChildLevelNetworkPartition[] getChildLevelNetworkPartitions() { + return childLevelNetworkPartitions; + } + + public void setChildLevelNetworkPartitions(ChildLevelNetworkPartition[] childLevelNetworkPartitions) { + this.childLevelNetworkPartitions = childLevelNetworkPartitions; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java index 1aac09f..d451124 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java @@ -22,7 +22,7 @@ package org.apache.stratos.autoscaler.pojo.policy.deployment; import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ApplicationLevelNetworkPartition; import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition; import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildPolicyHolder; -import org.apache.stratos.cloud.controller.stub.domain.Partition; +import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition; import java.io.Serializable; import java.util.ArrayList; @@ -39,6 +39,7 @@ public class DeploymentPolicy implements Serializable{ private boolean isPublic; private ApplicationLevelNetworkPartition[] applicationLevelNetworkPartitions; private ChildPolicyHolder childPolicyHolder; + private ChildPolicy[] childPolicies; private int tenantId; /** @@ -138,15 +139,26 @@ public class DeploymentPolicy implements Serializable{ } public Partition[] getAllPartitions() { - ArrayList<Partition> partitionsList = new ArrayList<Partition>(); - for (ApplicationLevelNetworkPartition networkPartition : this.getApplicationLevelNetworkPartitions()) { + ArrayList<Partition> partitionsList = new ArrayList<Partition>(); + for (ApplicationLevelNetworkPartition networkPartition : this.getApplicationLevelNetworkPartitions()) { Partition[] partitions = networkPartition.getPartitions(); - if(partitions != null) { - partitionsList.addAll(Arrays.asList(partitions)); + if (partitions != null) { + partitionsList.addAll(Arrays.asList(partitions)); } } return partitionsList.toArray(new Partition[partitionsList.size()]); } + + private org.apache.stratos.cloud.controller.stub.domain.Partition convertTOCCPartition(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition) { + org.apache.stratos.cloud.controller.stub.domain.Partition partition1 = new + org.apache.stratos.cloud.controller.stub.domain.Partition(); + + partition1.setId(partition.getId()); + partition1.setProvider(partition.getProvider()); + partition1.setProperties(partition.getProperties()); + + return partition1; + } public Partition getPartitionById(String id){ for(Partition p : this.getAllPartitions()){ @@ -197,4 +209,16 @@ public class DeploymentPolicy implements Serializable{ public void setChildPolicyHolder(ChildPolicyHolder childPolicyHolder) { this.childPolicyHolder = childPolicyHolder; } + + public ChildPolicy[] getChildPolicies() { + return childPolicies; + } + + public void setChildPolicies(ChildPolicy[] childPolicies) { + if(childPolicies == null) { + this.childPolicies = new ChildPolicy[0]; + } else { + this.childPolicies = Arrays.copyOf(childPolicies, childPolicies.length); + } + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/ChildLevelPartition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/ChildLevelPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/ChildLevelPartition.java deleted file mode 100644 index e6515c4..0000000 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/ChildLevelPartition.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.apache.stratos.autoscaler.pojo.policy.deployment.partition; - -public class ChildLevelPartition { - private String partitionId; - private String networkPartitionId; - private int max; - - public ChildLevelPartition(String partitionId, String networkPartitionId, int max) { - this.partitionId = partitionId; - this.networkPartitionId = networkPartitionId; - this.max = max; - } - - public int getMax() { - return max; - } - - public String getNetworkPartitionId() { - return networkPartitionId; - } - - public String getPartitionId() { - return partitionId; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java index 84d56f1..91e2748 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java @@ -22,8 +22,6 @@ package org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network; import java.io.Serializable; import java.util.Arrays; -import org.apache.stratos.cloud.controller.stub.domain.Partition; - /** * The model class for NetworkPartition definition. */ http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java index ea27163..0f99c04 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java @@ -19,9 +19,7 @@ package org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network; -import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.ChildLevelPartition; import java.io.Serializable; -import java.util.Map; /** * The model class for NetworkPartition definition at child level. http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java new file mode 100644 index 0000000..691cb07 --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java @@ -0,0 +1,44 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +package org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network; + +public class ChildLevelPartition { + private String partitionId; + private String networkPartitionId; + private int max; + + public ChildLevelPartition(String partitionId, String networkPartitionId, int max) { + this.partitionId = partitionId; + this.networkPartitionId = networkPartitionId; + this.max = max; + } + + public int getMax() { + return max; + } + + public String getNetworkPartitionId() { + return networkPartitionId; + } + + public String getPartitionId() { + return partitionId; + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java new file mode 100644 index 0000000..8dba5a6 --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java @@ -0,0 +1,139 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network; + +import org.apache.stratos.common.Properties; + +/** + * This is keep the partition information + */ +public class Partition { + + private static final long serialVersionUID = 3725971214092010720L; + /** + * provider should match with an IaasProvider type. + */ + private String provider; + private Properties properties = new Properties(); + private String id; + private String description; + private boolean isPublic; + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param id + * allowed object is + * {@link String } + * + */ + public void setId(String id) { + this.id = id; + } + + /** + * Gets the value of the description property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescription() { + return description; + } + + /** + * Sets the value of the description property. + * + * @param description + * allowed object is + * {@link String } + * + */ + public void setDescription(String description) { + this.description = description; + } + + /** + * Sets the value of the isPublic property. + * + * @param isPublic + * allowed object is boolean + * + */ + public void setIsPublic(boolean isPublic) { + this.isPublic = isPublic; + } + + /** + * Gets the value of the isPublic property. + * + */ + public boolean getIsPublic() { + return isPublic; + } + + public Properties getProperties() { + return properties; + } + + public void setProperties(Properties properties) { + this.properties = properties; + } + + public String getProvider() { + return provider; + } + + public void setProvider(String provider) { + this.provider = provider; + } + + @Override + public String toString() { + return "Partition [id=" + id + ", description=" + description + ", isPublic=" + isPublic + + ", provider=" + provider + ", properties=" + properties + "]"; + } + + public boolean equals(Object obj) { + if(obj != null && obj instanceof Partition) { + return this.id.equals(((Partition) obj).getId()); + } + return false; + + } + + @Override + public int hashCode() { + return this.id.hashCode(); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java index ec3528f..45a8b5f 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/cluster/ClusterStatusTerminatedProcessor.java @@ -121,7 +121,8 @@ public class ClusterStatusTerminatedProcessor extends ClusterStatusProcessor { */ private boolean clusterMonitorHasMembers(VMClusterMonitor monitor) { boolean hasMember = false; - for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext : monitor.getAllNetworkPartitionCtxts().values()) { + for (ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext : + monitor.getAllNetworkPartitionCtxts().values()) { //minimum check per partition for(ClusterInstanceContext clusterInstanceContext : clusterLevelNetworkPartitionContext.getClusterInstanceContextMap().values()) { http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java index 6cf886a..f93d31d 100644 --- a/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java +++ b/components/org.apache.stratos.autoscaler/src/test/java/org/apache/stratos/autoscaler/TestRulesPackaged.java @@ -44,16 +44,17 @@ public class TestRulesPackaged { parseDroolsFile(minCheckDrlFilePath); } - @Test - public void testScalingDroolsFile() { - parseDroolsFile(scalingDrlFilePath); - } //FIXME add this when dependent scaling file is completed // @Test // public void testDependentScalingDroolsFile() { // parseDroolsFile(dependentScalingDrlFilePath); // } + /*@Test + public void testScalingDroolsFile() { + parseDroolsFile(scalingDrlFilePath); + }*/ + @Test public void testTerminateAllDroolsFile() { parseDroolsFile(terminateAllDrlFilePath); http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java index 98243cd..674fa28 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java @@ -34,8 +34,8 @@ import org.apache.stratos.rest.endpoint.annotation.SuperTenantService; import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean; import org.apache.stratos.rest.endpoint.bean.StratosApiResponse; import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest; +import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; -import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.NetworkPartition; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; @@ -197,7 +197,7 @@ public class StratosApiV40 extends AbstractApi { @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public NetworkPartition[] getPartitionGroups (@PathParam("deploymentPolicyId") String deploymentPolicyId) + public ApplicationLevelNetworkPartition[] getPartitionGroups (@PathParam("deploymentPolicyId") String deploymentPolicyId) throws RestAPIException { return StratosApiV40Utils.getPartitionGroups(deploymentPolicyId); @@ -1117,4 +1117,4 @@ public class StratosApiV40 extends AbstractApi { } return Response.status(Response.Status.NOT_FOUND).build(); } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java index e0f1413..3379d94 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java @@ -23,7 +23,6 @@ import org.apache.axis2.context.ConfigurationContext; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition; import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy; import org.apache.stratos.cloud.controller.stub.domain.CartridgeConfig; import org.apache.stratos.cloud.controller.stub.domain.CartridgeInfo; @@ -51,8 +50,8 @@ import org.apache.stratos.messaging.domain.topology.MemberStatus; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; import org.apache.stratos.rest.endpoint.bean.StratosApiResponse; import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest; +import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; -import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.NetworkPartition; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean; @@ -176,8 +175,8 @@ public class StratosApiV40Utils { AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); if (autoscalerServiceClient != null) { - org.apache.stratos.cloud.controller.stub.domain.Partition partition = - PojoConverter.convertToCCPartitionPojo(partitionBean); + /* FIXME add 4040 org.apache.stratos.cloud.controller.stub.domain.Partition partition = + PojoConverter.convertToCCPartitionPojo(partitionBean);*/ // try { // autoscalerServiceClient.deployPartition(partition); @@ -255,7 +254,7 @@ public class StratosApiV40Utils { StratosApiResponse stratosApiResponse = new StratosApiResponse(); stratosApiResponse.setMessage("Successfully deployed deployment policy definition with type " - + deploymentPolicyBean.getId()); + + deploymentPolicyBean.id); return stratosApiResponse; } @@ -278,10 +277,10 @@ public class StratosApiV40Utils { AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); if (autoscalerServiceClient != null) { // try { -// partitions = autoscalerServiceClient.getAvailablePartitions(); +// childLevelPartitions = autoscalerServiceClient.getAvailablePartitions(); // // } catch (RemoteException e) { -// String errorMsg = "Error while getting available partitions. Cause : " + e.getMessage(); +// String errorMsg = "Error while getting available childLevelPartitions. Cause : " + e.getMessage(); // log.error(errorMsg, e); // throw new RestAPIException(errorMsg, e); // } @@ -297,11 +296,11 @@ public class StratosApiV40Utils { AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); // if (autoscalerServiceClient != null) { // try { -// partitions = +// childLevelPartitions = // autoscalerServiceClient.getPartitionsOfDeploymentPolicy(deploymentPolicyId); // // } catch (RemoteException e) { -// String errorMsg = "Error while getting available partitions for deployment policy id " + +// String errorMsg = "Error while getting available childLevelPartitions for deployment policy id " + // deploymentPolicyId+". Cause: "+e.getMessage(); // log.error(errorMsg, e); // throw new RestAPIException(errorMsg, e); @@ -318,11 +317,11 @@ public class StratosApiV40Utils { AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); // if (autoscalerServiceClient != null) { // try { -// partitions = +// childLevelPartitions = // autoscalerServiceClient.getPartitionsOfGroup(deploymentPolicyId, groupId); // // } catch (RemoteException e) { -// String errorMsg = "Error while getting available partitions for deployment policy id " + deploymentPolicyId + +// String errorMsg = "Error while getting available childLevelPartitions for deployment policy id " + deploymentPolicyId + // ", group id " + groupId+". Cause: "+e.getMessage(); // log.error(errorMsg, e); // throw new RestAPIException(errorMsg, e); @@ -471,10 +470,10 @@ public class StratosApiV40Utils { return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy); } - public static NetworkPartition[] getPartitionGroups (String deploymentPolicyId) + public static ApplicationLevelNetworkPartition[] getPartitionGroups (String deploymentPolicyId) throws RestAPIException{ - ApplicationLevelNetworkPartition[] applicationLevelNetworkPartitions = null; + org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] applicationLevelNetworkPartitions = null; AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); if (autoscalerServiceClient != null) { try { http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java index 9dd2725..bbe281f 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java @@ -282,7 +282,7 @@ public class StratosApiV41 extends AbstractApi { } // @GET -// @Path("/partitions") +// @Path("/childLevelPartitions") // @Produces("application/json") // @Consumes("application/json") // @AuthorizationAction("/permission/admin/manage/view/partition") @@ -291,7 +291,7 @@ public class StratosApiV41 extends AbstractApi { // } // @POST -// @Path("/partitions") +// @Path("/childLevelPartitions") // @Produces("application/json") // @Consumes("application/json") // @AuthorizationAction("/permission/admin/manage/add/partition") @@ -304,7 +304,7 @@ public class StratosApiV41 extends AbstractApi { // } // // @GET -// @Path("/partitions/{partitionId}") +// @Path("/childLevelPartitions/{partitionId}") // @Produces("application/json") // @Consumes("application/json") // @AuthorizationAction("/permission/admin/manage/view/partition") @@ -321,7 +321,7 @@ public class StratosApiV41 extends AbstractApi { throws RestAPIException { StratosApiV41Utils.deployDeploymentPolicy(deploymentPolicy); - URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicy.getId()).build(); + URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicy.id).build(); return Response.created(url).build(); } http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/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 9f74872..7322165 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 @@ -23,7 +23,6 @@ import org.apache.axis2.context.ConfigurationContext; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition; import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext; import org.apache.stratos.autoscaler.stub.*; import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy; @@ -66,7 +65,7 @@ import org.apache.stratos.rest.endpoint.bean.ApplicationBean; import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean; import org.apache.stratos.rest.endpoint.bean.GroupBean; import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest; -import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.NetworkPartition; +import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PersistenceBean; @@ -392,7 +391,7 @@ public class StratosApiV41Utils { org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean) throws RestAPIException { - log.info(String.format("Deploying deployment policy: [id] %s", deploymentPolicyBean.getId())); + log.info(String.format("Deploying deployment policy: [id] %s", deploymentPolicyBean.id)); AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); if (autoscalerServiceClient != null) { @@ -418,7 +417,7 @@ public class StratosApiV41Utils { org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean) throws RestAPIException { - log.info(String.format("Updating deployment policy: [id] %s", deploymentPolicyBean.getId())); + log.info(String.format("Updating deployment policy: [id] %s", deploymentPolicyBean.id)); AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); if (autoscalerServiceClient != null) { @@ -455,62 +454,62 @@ public class StratosApiV41Utils { // public static Partition[] getAvailablePartitions() throws RestAPIException { // -// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null; +// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] childLevelPartitions = null; // AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); // if (autoscalerServiceClient != null) { // try { -// partitions = autoscalerServiceClient.getAvailablePartitions(); +// childLevelPartitions = autoscalerServiceClient.getAvailablePartitions(); // // } catch (RemoteException e) { -// String errorMsg = "Error while getting available partitions. Cause : " + e.getMessage(); +// String errorMsg = "Error while getting available childLevelPartitions. Cause : " + e.getMessage(); // log.error(errorMsg, e); // throw new RestAPIException(errorMsg, e); // } // } // -// return PojoConverter.populatePartitionPojos(partitions); +// return PojoConverter.populatePartitionPojos(childLevelPartitions); // } // // public static Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId) // throws RestAPIException { // -// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null; +// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] childLevelPartitions = null; // AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); // if (autoscalerServiceClient != null) { // try { -// partitions = +// childLevelPartitions = // autoscalerServiceClient.getPartitionsOfDeploymentPolicy(deploymentPolicyId); // // } catch (RemoteException e) { -// String errorMsg = "Error while getting available partitions for deployment policy id " + +// String errorMsg = "Error while getting available childLevelPartitions for deployment policy id " + // deploymentPolicyId + ". Cause: " + e.getMessage(); // log.error(errorMsg, e); // throw new RestAPIException(errorMsg, e); // } // } // -// return PojoConverter.populatePartitionPojos(partitions); +// return PojoConverter.populatePartitionPojos(childLevelPartitions); // } // // public static Partition[] // getPartitionsOfGroup(String deploymentPolicyId, String groupId) throws RestAPIException { // -// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null; +// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] childLevelPartitions = null; // AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); // if (autoscalerServiceClient != null) { // try { -// partitions = +// childLevelPartitions = // autoscalerServiceClient.getPartitionsOfGroup(deploymentPolicyId, groupId); // // } catch (RemoteException e) { -// String errorMsg = "Error while getting available partitions for deployment policy id " + deploymentPolicyId + +// String errorMsg = "Error while getting available childLevelPartitions for deployment policy id " + deploymentPolicyId + // ", group id " + groupId + ". Cause: " + e.getMessage(); // log.error(errorMsg, e); // throw new RestAPIException(errorMsg, e); // } // } // -// return PojoConverter.populatePartitionPojos(partitions); +// return PojoConverter.populatePartitionPojos(childLevelPartitions); // } // // public static Partition getPartition(String partitionId) throws RestAPIException { @@ -651,10 +650,10 @@ public class StratosApiV41Utils { return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy); } - public static NetworkPartition[] getPartitionGroups(String deploymentPolicyId) + public static ApplicationLevelNetworkPartition[] getPartitionGroups(String deploymentPolicyId) throws RestAPIException { - ApplicationLevelNetworkPartition[] partitionGroups = null; + org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] partitionGroups = null; AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); if (autoscalerServiceClient != null) { try { http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ApplicationLevelNetworkPartition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ApplicationLevelNetworkPartition.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ApplicationLevelNetworkPartition.java new file mode 100644 index 0000000..819eec6 --- /dev/null +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ApplicationLevelNetworkPartition.java @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.stratos.rest.endpoint.bean.autoscaler.partition; + +import javax.xml.bind.annotation.XmlRootElement; +import java.util.List; + +@XmlRootElement +public class ApplicationLevelNetworkPartition { + + public String id; + + public boolean activeByDefault; + + //partition Ids + public List<Partition> partitions; +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelNetworkPartition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelNetworkPartition.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelNetworkPartition.java new file mode 100644 index 0000000..7e2d14b --- /dev/null +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelNetworkPartition.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.rest.endpoint.bean.autoscaler.partition; + +import javax.xml.bind.annotation.XmlRootElement; +import java.util.List; + +@XmlRootElement +public class ChildLevelNetworkPartition { + public String id; + + public String partitionAlgo; + + public int min; + + public List<ChildLevelPartition> childLevelPartitions; +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelPartition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelPartition.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelPartition.java new file mode 100644 index 0000000..9afd69b --- /dev/null +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/ChildLevelPartition.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.rest.endpoint.bean.autoscaler.partition; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class ChildLevelPartition { + public String id; + + public int max; +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/NetworkPartition.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/NetworkPartition.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/NetworkPartition.java deleted file mode 100644 index 0950baa..0000000 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/NetworkPartition.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.stratos.rest.endpoint.bean.autoscaler.partition; - -import javax.xml.bind.annotation.XmlRootElement; -import java.util.List; - -@XmlRootElement -public class NetworkPartition { - - public String id; - - public String partitionAlgo; - - public boolean activeByDefault; - - //partition Ids - public List<Partition> partition; -} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ApplicationPolicy.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ApplicationPolicy.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ApplicationPolicy.java new file mode 100644 index 0000000..ac33546 --- /dev/null +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ApplicationPolicy.java @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment; + +import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition; + +import javax.xml.bind.annotation.XmlRootElement; +import java.util.List; + +@XmlRootElement +public class ApplicationPolicy { + //partition groups + public String applicationId; + + public List<ApplicationLevelNetworkPartition> networkPartition; + + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ChildPolicy.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ChildPolicy.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ChildPolicy.java new file mode 100644 index 0000000..56e7dd3 --- /dev/null +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/ChildPolicy.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment; + +import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ChildLevelNetworkPartition; + +import javax.xml.bind.annotation.XmlRootElement; +import java.util.List; + +@XmlRootElement +public class ChildPolicy { + public String childId; + + public List<ChildLevelNetworkPartition> childLevelNetworkPartition; +} http://git-wip-us.apache.org/repos/asf/stratos/blob/dee7291c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java index 20cd3e9..c16671d 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java @@ -20,8 +20,8 @@ package org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment; +import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.ApplicationLevelNetworkPartition; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; -import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.NetworkPartition; import javax.xml.bind.annotation.XmlRootElement; import java.util.List; @@ -29,55 +29,13 @@ import java.util.List; @XmlRootElement public class DeploymentPolicy { - private String id; + public String id; - private String description; + public String description; - private boolean isPublic; + public boolean isPublic; - //partition groups - private List<NetworkPartition> networkPartition; + public ApplicationPolicy applicationPolicy; - //partitions - private List<Partition> partition; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public boolean isPublic() { - return isPublic; - } - - public void setPublic(boolean isPublic) { - this.isPublic = isPublic; - } - - public List<NetworkPartition> getNetworkPartition() { - return networkPartition; - } - - public void setNetworkPartition(List<NetworkPartition> networkPartition) { - this.networkPartition = networkPartition; - } - - public List<Partition> getPartition() { - return partition; - } - - public void setPartition(List<Partition> partition) { - this.partition = partition; - } + public List<ChildPolicy> childPolicies; }
