Repository: stratos
Updated Branches:
  refs/heads/master 50214f8ae -> 2ec7fed1d


Adding application and child level network partitions


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

Branch: refs/heads/master
Commit: 2ec7fed1d1d8c572ab42c14f18633c0d681b9f29
Parents: 50214f8
Author: Lahiru Sandaruwan <[email protected]>
Authored: Fri Nov 28 19:55:49 2014 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Fri Nov 28 19:55:49 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/api/AutoScalerServiceImpl.java   | 19 +++--
 .../context/cluster/ClusterContextFactory.java  |  5 +-
 .../interfaces/AutoScalerServiceInterface.java  |  2 +-
 .../monitor/component/ApplicationMonitor.java   | 13 +--
 .../monitor/component/GroupMonitor.java         | 10 +--
 .../autoscaler/partition/PartitionManager.java  |  6 +-
 .../ApplicationLevelNetworkPartition.java       | 76 +++++++++++++++++
 .../network/ChildLevelNetworkPartition.java     | 88 ++++++++++++++++++++
 .../partition/network/NetworkPartition.java     | 25 ++----
 .../policy/model/DeploymentPolicy.java          | 32 ++++---
 10 files changed, 220 insertions(+), 56 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/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 38224ef..42a848f 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
@@ -37,6 +37,7 @@ import 
org.apache.stratos.autoscaler.exception.policy.InvalidPolicyException;
 import org.apache.stratos.autoscaler.interfaces.AutoScalerServiceInterface;
 import org.apache.stratos.autoscaler.kubernetes.KubernetesManager;
 import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
+import 
org.apache.stratos.autoscaler.partition.network.ApplicationLevelNetworkPartition;
 import org.apache.stratos.autoscaler.partition.network.NetworkPartition;
 import org.apache.stratos.autoscaler.partition.PartitionManager;
 import org.apache.stratos.autoscaler.pojo.Dependencies;
@@ -144,8 +145,8 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
     }
 
     @Override
-    public NetworkPartition[] getNetworkPartitions(String deploymentPolicyId) {
-        return 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getNetworkPartitions();
+    public ApplicationLevelNetworkPartition[] getNetworkPartitions(String 
deploymentPolicyId) {
+        return 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getApplicationLevelNetworkPartitions();
     }
 
     public Partition[] getPartitionsOfDeploymentPolicy(String 
deploymentPolicyId) {
@@ -218,7 +219,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
             return null;
         }
 
-        NetworkPartition group = depPol.getNetworkPartition(groupId);
+        ApplicationLevelNetworkPartition group = 
depPol.getApplicationLevelNetworkPartition(groupId);
 
         if (group == null) {
             return null;
@@ -230,7 +231,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
 //    public void checkLBExistenceAgainstPolicy(String lbClusterId, String 
deploymentPolicyId) throws NonExistingLBException {
 //
 //        boolean exist = false;
-//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getNetworkPartitions())
 {
+//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getApplicationLevelNetworkPartitions())
 {
 //
 //            NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(networkPartition.getId());
 //
@@ -250,7 +251,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
 
 //    public boolean checkDefaultLBExistenceAgainstPolicy(String 
deploymentPolicyId) {
 //
-//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getNetworkPartitions())
 {
+//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getApplicationLevelNetworkPartitions())
 {
 //
 //            NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(networkPartition.getId());
 //
@@ -274,7 +275,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
 //        if (log.isDebugEnabled()) {
 //            log.debug("Default LB Cluster Id for Deployment Policy [" + 
deploymentPolicyName + "] ");
 //        }
-//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyName).getNetworkPartitions())
 {
+//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyName).getApplicationLevelNetworkPartitions())
 {
 //
 //            NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(networkPartition.getId());
 //
@@ -313,7 +314,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
 
 //    public boolean checkServiceLBExistenceAgainstPolicy(String serviceName, 
String deploymentPolicyId) {
 //
-//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getNetworkPartitions())
 {
+//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getApplicationLevelNetworkPartitions())
 {
 //
 //            NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(networkPartition.getId());
 //
@@ -335,7 +336,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
 //
 //    public String getServiceLBClusterId(String serviceType, String 
deploymentPolicyName) {
 //
-//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyName).getNetworkPartitions())
 {
+//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyName).getApplicationLevelNetworkPartitions())
 {
 //
 //            NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(networkPartition.getId());
 //
@@ -356,7 +357,7 @@ public class AutoScalerServiceImpl implements 
AutoScalerServiceInterface {
 
 //    public boolean checkClusterLBExistenceAgainstPolicy(String clusterId, 
String deploymentPolicyId) {
 //
-//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getNetworkPartitions())
 {
+//        for (NetworkPartition networkPartition : 
PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId).getApplicationLevelNetworkPartitions())
 {
 //
 //            NetworkPartitionLbHolder nwPartitionLbHolder = 
partitionManager.getNetworkPartitionLbHolder(networkPartition.getId());
 //

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/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 2ea242d..a6d026e 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
@@ -27,6 +27,7 @@ import 
org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetwo
 import 
org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
 import 
org.apache.stratos.autoscaler.exception.partition.PartitionValidationException;
 import 
org.apache.stratos.autoscaler.exception.policy.PolicyValidationException;
+import 
org.apache.stratos.autoscaler.partition.network.ChildLevelNetworkPartition;
 import org.apache.stratos.autoscaler.partition.network.NetworkPartition;
 //import org.apache.stratos.autoscaler.partition.PartitionManager;
 import org.apache.stratos.autoscaler.policy.PolicyManager;
@@ -90,7 +91,7 @@ public class ClusterContextFactory {
 
         Map<String, ClusterLevelNetworkPartitionContext> 
networkPartitionContextMap = new HashMap<String, 
ClusterLevelNetworkPartitionContext>();
 
-        for (NetworkPartition networkPartition : 
deploymentPolicy.getNetworkPartitions()) {
+        for (ChildLevelNetworkPartition networkPartition : 
deploymentPolicy.getChildLevelNetworkPartitions()) {
 
             String networkPartitionId = networkPartition.getId();
             ClusterLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext = new 
ClusterLevelNetworkPartitionContext(networkPartitionId,
@@ -192,7 +193,7 @@ public class ClusterContextFactory {
         Map<String, ClusterLevelNetworkPartitionContext> 
networkPartitionContextMap = new HashMap<String, 
ClusterLevelNetworkPartitionContext>();
 
         // partition group = network partition context
-        for (NetworkPartition networkPartition : 
deploymentPolicy.getNetworkPartitions()) {
+        for (ChildLevelNetworkPartition networkPartition : 
deploymentPolicy.getChildLevelNetworkPartitions()) {
 
             String networkPartitionId = networkPartition.getId();
 //            NetworkPartitionLbHolder networkPartitionLbHolder =

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
index 564ca6a..d3ba99b 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
@@ -63,7 +63,7 @@ public interface AutoScalerServiceInterface {
 
     public AutoscalePolicy getAutoscalingPolicy(String autoscalingPolicyId);
 
-    public NetworkPartition[] getNetworkPartitions(String deploymentPolicyId);
+    public 
org.apache.stratos.autoscaler.partition.network.ApplicationLevelNetworkPartition[]
 getNetworkPartitions(String deploymentPolicyId);
 
     public Partition[] getPartitionsOfGroup(String deploymentPolicyId, String 
partitionGroup);
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
index 3cff7fd..a8e0ca8 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
@@ -32,6 +32,7 @@ import 
org.apache.stratos.autoscaler.monitor.events.builder.MonitorStatusEventBu
 import org.apache.stratos.autoscaler.monitor.events.ApplicationStatusEvent;
 import org.apache.stratos.autoscaler.monitor.events.MonitorScalingEvent;
 import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
+import 
org.apache.stratos.autoscaler.partition.network.ApplicationLevelNetworkPartition;
 import org.apache.stratos.autoscaler.partition.network.NetworkPartition;
 import org.apache.stratos.autoscaler.policy.PolicyManager;
 import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
@@ -197,7 +198,7 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
         List<String> instanceIds = new ArrayList<String>();
         DeploymentPolicy deploymentPolicy = getDeploymentPolicy(application);
         String instanceId;
-        for (NetworkPartition networkPartition : 
deploymentPolicy.getNetworkPartitions()) {
+        for (ApplicationLevelNetworkPartition networkPartition : 
deploymentPolicy.getApplicationLevelNetworkPartitions()) {
             if(networkPartition.isActiveByDefault()) {
                 ApplicationLevelNetworkPartitionContext context =
                         new 
ApplicationLevelNetworkPartitionContext(networkPartition.getId());
@@ -228,7 +229,7 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
         String instanceId = null;
         //Find out the inActive network partition
         boolean burstNPFound = false;
-        for (NetworkPartition networkPartition : 
deploymentPolicy.getNetworkPartitions()) {
+        for (ApplicationLevelNetworkPartition networkPartition : 
deploymentPolicy.getApplicationLevelNetworkPartitions()) {
             if(!networkPartition.isActiveByDefault()) {
                 
if(!this.networkPartitionCtxts.containsKey(networkPartition.getId())) {
                     ApplicationLevelNetworkPartitionContext context =
@@ -278,15 +279,15 @@ public class ApplicationMonitor extends 
ParentComponentMonitor {
         return instanceId;
     }
 
-    public Map<String, ApplicationLevelNetworkPartitionContext> 
getNetworkPartitionCtxts() {
+    public Map<String, ApplicationLevelNetworkPartitionContext> 
getApplicationLevelNetworkPartitionCtxts() {
         return networkPartitionCtxts;
     }
 
-    public void setNetworkPartitionCtxts(Map<String, 
ApplicationLevelNetworkPartitionContext> networkPartitionCtxts) {
+    public void setApplicationLevelNetworkPartitionCtxts(Map<String, 
ApplicationLevelNetworkPartitionContext> networkPartitionCtxts) {
         this.networkPartitionCtxts = networkPartitionCtxts;
     }
 
-    public void 
addNetworkPartitionContext(ApplicationLevelNetworkPartitionContext 
clusterLevelNetworkPartitionContext) {
-        
this.networkPartitionCtxts.put(clusterLevelNetworkPartitionContext.getId(), 
clusterLevelNetworkPartitionContext);
+    public void 
addApplicationLevelNetworkPartitionContext(ApplicationLevelNetworkPartitionContext
 applicationLevelNetworkPartitionContext) {
+        
this.networkPartitionCtxts.put(applicationLevelNetworkPartitionContext.getId(), 
applicationLevelNetworkPartitionContext);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index 496e143..cbc9366 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -36,7 +36,7 @@ import 
org.apache.stratos.autoscaler.monitor.events.GroupStatusEvent;
 import org.apache.stratos.autoscaler.monitor.events.MonitorScalingEvent;
 import org.apache.stratos.autoscaler.monitor.events.MonitorStatusEvent;
 import 
org.apache.stratos.autoscaler.monitor.events.builder.MonitorStatusEventBuilder;
-import org.apache.stratos.autoscaler.partition.network.NetworkPartition;
+import 
org.apache.stratos.autoscaler.partition.network.ChildLevelNetworkPartition;
 import org.apache.stratos.autoscaler.policy.PolicyManager;
 import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
 import org.apache.stratos.messaging.domain.applications.Application;
@@ -307,8 +307,8 @@ public class GroupMonitor extends ParentComponentMonitor 
implements EventHandler
             if (deploymentPolicyName != null) {
                 DeploymentPolicy deploymentPolicy = PolicyManager.getInstance()
                         .getDeploymentPolicy(deploymentPolicyName);
-                NetworkPartition networkPartition = deploymentPolicy.
-                        
getNetworkPartition(parentInstanceContext.getNetworkPartitionId());
+                ChildLevelNetworkPartition networkPartition = deploymentPolicy.
+                        
getChildLevelNetworkPartition(parentInstanceContext.getNetworkPartitionId());
 
                 AutoscaleAlgorithm algorithm = 
this.getAutoscaleAlgorithm(networkPartition.getPartitionAlgo());
                 //Partition partition = 
algorithm.getNextScaleUpPartition(groupLevelNetworkPartitionContext, this.id);
@@ -349,8 +349,8 @@ public class GroupMonitor extends ParentComponentMonitor 
implements EventHandler
         if (deploymentPolicyName != null) {
             DeploymentPolicy deploymentPolicy = PolicyManager.getInstance()
                     .getDeploymentPolicy(deploymentPolicyName);
-            NetworkPartition networkPartition = deploymentPolicy.
-                    
getNetworkPartition(parentInstanceContext.getNetworkPartitionId());
+            ChildLevelNetworkPartition networkPartition = deploymentPolicy.
+                    
getChildLevelNetworkPartition(parentInstanceContext.getNetworkPartitionId());
 
             AutoscaleAlgorithm algorithm = 
this.getAutoscaleAlgorithm(networkPartition.getPartitionAlgo());
             //Partition partition = 
algorithm.getNextScaleUpPartition(groupLevelNetworkPartitionContext, this.id);

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
index c5cf18d..f4ed76c 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
@@ -125,7 +125,7 @@ public class PartitionManager {
 
 //    public List<NetworkPartitionLbHolder> 
getNetworkPartitionLbHolders(DeploymentPolicy depPolicy) {
 //        List<NetworkPartitionLbHolder> lbHolders = new 
ArrayList<NetworkPartitionLbHolder>();
-//        for (NetworkPartition networkPartition : 
depPolicy.getNetworkPartitions()) {
+//        for (NetworkPartition networkPartition : 
depPolicy.getApplicationLevelNetworkPartitions()) {
 //            String id = networkPartition.getId();
 //            NetworkPartitionLbHolder entry = 
networkPartitionLbHolders.get(id);
 //            if (entry != null) {
@@ -136,7 +136,7 @@ public class PartitionManager {
 //    }
 
 //    public void deployNewNetworkPartitions(DeploymentPolicy depPolicy) {
-//        for (NetworkPartition networkPartition : 
depPolicy.getNetworkPartitions()) {
+//        for (NetworkPartition networkPartition : 
depPolicy.getApplicationLevelNetworkPartitions()) {
 //            String id = networkPartition.getId();
 //            if (!networkPartitionLbHolders.containsKey(id)) {
 //                NetworkPartitionLbHolder networkPartitionLbHolder =
@@ -149,7 +149,7 @@ public class PartitionManager {
 //    }
 
 //    public void undeployNetworkPartitions(DeploymentPolicy depPolicy) {
-//        for (NetworkPartition networkPartition : 
depPolicy.getNetworkPartitions()) {
+//        for (NetworkPartition networkPartition : 
depPolicy.getApplicationLevelNetworkPartitions()) {
 //            String id = networkPartition.getId();
 //            if (networkPartitionLbHolders.containsKey(id)) {
 //                NetworkPartitionLbHolder netPartCtx = 
this.getNetworkPartitionLbHolder(id);

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/ApplicationLevelNetworkPartition.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/ApplicationLevelNetworkPartition.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/ApplicationLevelNetworkPartition.java
new file mode 100644
index 0000000..f243ee5
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/ApplicationLevelNetworkPartition.java
@@ -0,0 +1,76 @@
+/*
+* 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.partition.network;
+
+import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
+
+import java.io.Serializable;
+import java.util.Arrays;
+
+/**
+* The model class for NetworkPartition definition.
+*/
+public class ApplicationLevelNetworkPartition implements Serializable{
+
+    private static final long serialVersionUID = -8043298009352097370L;
+    private String id;
+    private boolean activeByDefault;
+    private Partition[] partitions;
+
+    public void setPartitions(Partition[] partitions) {
+        if(partitions == null) {
+            this.partitions = partitions;
+        } else {
+            this.partitions = Arrays.copyOf(partitions, partitions.length);
+        }
+    }
+
+    /**
+     * Gets the value of the partitions.
+     */
+    public Partition[] getPartitions() {
+        if (partitions == null) {
+            partitions = new Partition[0];
+        }
+        return this.partitions;
+    }
+
+    /**
+     * Gets the value of the id.
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * sets the value of the id.
+     */
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public boolean isActiveByDefault() {
+        return activeByDefault;
+    }
+
+    public void setActiveByDefault(boolean activeByDefault) {
+        this.activeByDefault = activeByDefault;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/ChildLevelNetworkPartition.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/ChildLevelNetworkPartition.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/ChildLevelNetworkPartition.java
new file mode 100644
index 0000000..cebea73
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/ChildLevelNetworkPartition.java
@@ -0,0 +1,88 @@
+/*
+* 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.partition.network;
+
+import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
+
+import java.io.Serializable;
+import java.util.Arrays;
+
+/**
+* The model class for NetworkPartition definition.
+*/
+public class ChildLevelNetworkPartition implements Serializable {
+
+    private static final long serialVersionUID = -8043298009352097370L;
+    private String id;
+    private String partitionAlgo;
+    private Partition[] partitions;
+
+    /**
+     * Gets the value of the partitionAlgo property.
+     *
+     * @return possible object is
+     * {@link String }
+     */
+    public String getPartitionAlgo() {
+        return partitionAlgo;
+    }
+
+    /**
+     * Sets the value of the partitionAlgo property.
+     *
+     * @param value allowed object is
+     *              {@link String }
+     */
+    public void setPartitionAlgo(String value) {
+        this.partitionAlgo = value;
+    }
+
+    public void setPartitions(Partition[] partitions) {
+        if (partitions == null) {
+            this.partitions = partitions;
+        } else {
+            this.partitions = Arrays.copyOf(partitions, partitions.length);
+        }
+    }
+
+    /**
+     * Gets the value of the partitions.
+     */
+    public Partition[] getPartitions() {
+        if (partitions == null) {
+            partitions = new Partition[0];
+        }
+        return this.partitions;
+    }
+
+    /**
+     * Gets the value of the id.
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * sets the value of the id.
+     */
+    public void setId(String id) {
+        this.id = id;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/NetworkPartition.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/NetworkPartition.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/NetworkPartition.java
index 7e9bc62..466253b 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/NetworkPartition.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/network/NetworkPartition.java
@@ -27,21 +27,18 @@ import 
org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
 /**
 * The model class for NetworkPartition definition.
 */
-public class NetworkPartition implements Serializable{
+public class NetworkPartition implements Serializable {
 
     private static final long serialVersionUID = -8043298009352097370L;
     private String id;
-    private boolean activeByDefault;
     private String partitionAlgo;
     private Partition[] partitions;
 
     /**
      * Gets the value of the partitionAlgo property.
      *
-     * @return
-     *     possible object is
-     *     {@link String }
-     *
+     * @return possible object is
+     * {@link String }
      */
     public String getPartitionAlgo() {
         return partitionAlgo;
@@ -50,17 +47,15 @@ public class NetworkPartition implements Serializable{
     /**
      * Sets the value of the partitionAlgo property.
      *
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *
+     * @param value allowed object is
+     *              {@link String }
      */
     public void setPartitionAlgo(String value) {
         this.partitionAlgo = value;
     }
 
     public void setPartitions(Partition[] partitions) {
-        if(partitions == null) {
+        if (partitions == null) {
             this.partitions = partitions;
         } else {
             this.partitions = Arrays.copyOf(partitions, partitions.length);
@@ -90,12 +85,4 @@ public class NetworkPartition implements Serializable{
     public void setId(String id) {
         this.id = id;
     }
-
-    public boolean isActiveByDefault() {
-        return activeByDefault;
-    }
-
-    public void setActiveByDefault(boolean activeByDefault) {
-        this.activeByDefault = activeByDefault;
-    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ec7fed1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
index 1f312e7..6130ab1 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
@@ -19,7 +19,8 @@
 
 package org.apache.stratos.autoscaler.policy.model;
 
-import org.apache.stratos.autoscaler.partition.network.NetworkPartition;
+import 
org.apache.stratos.autoscaler.partition.network.ApplicationLevelNetworkPartition;
+import 
org.apache.stratos.autoscaler.partition.network.ChildLevelNetworkPartition;
 import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
 
 import java.io.Serializable;
@@ -35,7 +36,7 @@ public class DeploymentPolicy implements Serializable{
     private String id;
     private String description;
     private boolean isPublic;
-    private NetworkPartition[] networkPartitions;
+    private ApplicationLevelNetworkPartition[] 
applicationLevelNetworkPartitions;
     private int tenantId;
 
     /**
@@ -126,17 +127,17 @@ public class DeploymentPolicy implements Serializable{
                this.tenantId = tenantId;
        }
     
-    public void setNetworkPartitions(NetworkPartition[] networkPartitions) {
-        if(networkPartitions == null) {
-            this.networkPartitions = new NetworkPartition[0];
+    public void 
setApplicationLevelNetworkPartitions(ApplicationLevelNetworkPartition[] 
applicationLevelNetworkPartitions) {
+        if(applicationLevelNetworkPartitions == null) {
+            this.applicationLevelNetworkPartitions = new 
ApplicationLevelNetworkPartition[0];
         } else {
-            this.networkPartitions = Arrays.copyOf(networkPartitions, 
networkPartitions.length);
+            this.applicationLevelNetworkPartitions = 
Arrays.copyOf(applicationLevelNetworkPartitions, 
applicationLevelNetworkPartitions.length);
         }
     }
     
     public Partition[] getAllPartitions() {
        ArrayList<Partition> partitionsList = new ArrayList<Partition>();
-       for (NetworkPartition networkPartition : this.getNetworkPartitions()) {
+       for (ApplicationLevelNetworkPartition networkPartition : 
this.getApplicationLevelNetworkPartitions()) {
             Partition[] partitions = networkPartition.getPartitions();
             if(partitions != null) {
                partitionsList.addAll(Arrays.asList(partitions));
@@ -156,13 +157,13 @@ public class DeploymentPolicy implements Serializable{
     /**
      * Gets the value of the partition-groups.
      */
-    public NetworkPartition[] getNetworkPartitions() {
+    public ApplicationLevelNetworkPartition[] 
getApplicationLevelNetworkPartitions() {
         
-        return this.networkPartitions;
+        return this.applicationLevelNetworkPartitions;
     }
     
-    public NetworkPartition getNetworkPartition(String partitionGrpId){
-       for(NetworkPartition parGrp : this.getNetworkPartitions()){
+    public ApplicationLevelNetworkPartition 
getApplicationLevelNetworkPartition(String partitionGrpId){
+       for(ApplicationLevelNetworkPartition parGrp : 
this.getApplicationLevelNetworkPartitions()){
                if(parGrp.getId().equals(partitionGrpId))
                        return parGrp;
                
@@ -176,4 +177,13 @@ public class DeploymentPolicy implements Serializable{
                        +" [partitions] " + 
Arrays.toString(this.getAllPartitions());
     }
 
+    public ChildLevelNetworkPartition getChildLevelNetworkPartition(String 
networkPartitionId) {
+        //TODO create a map of child level network partition context and 
return correct one
+        return null;
+    }
+
+    public ChildLevelNetworkPartition[] getChildLevelNetworkPartitions() {
+        //TODO create a map of child level network partition context and 
return correct one
+        return new ChildLevelNetworkPartition[0];
+    }
 }

Reply via email to