You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2013/11/30 10:19:48 UTC
[3/9] git commit: Commiting partition deployer
Commiting partition deployer
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/dca46e39
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/dca46e39
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/dca46e39
Branch: refs/heads/master
Commit: dca46e39ff818bea1d8c074ae36f18effab5ee89
Parents: 1747003
Author: Udara Liyanage <ud...@wso2.com>
Authored: Fri Nov 29 09:02:31 2013 -0500
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Fri Nov 29 11:06:18 2013 -0500
----------------------------------------------------------------------
.../org.apache.stratos.autoscaler/pom.xml | 47 +-----
.../stratos/autoscaler/ClusterContext.java | 24 +---
.../autoscaler/algorithm/OneAfterAnother.java | 4 +-
.../autoscaler/algorithm/RoundRobin.java | 4 +-
.../exception/InvalidPartitionException.java | 40 ++++++
.../partition/deployers/PartitionDeployer.java | 103 +++++++++++++
.../partition/deployers/PartitionReader.java | 144 +++++++++++++++++++
.../policy/InvalidPolicyException.java | 4 +-
.../autoscaler/util/AutoScalerConstants.java | 30 ++++
.../stratos/autoscaler/util/AutoscalerUtil.java | 12 +-
.../src/main/resources/META-INF/component.xml | 5 +
.../messaging/domain/topology/Cluster.java | 27 ++--
.../messaging/domain/topology/Topology.java | 4 +
.../pom.xml | 13 +-
products/pom.xml | 4 +-
15 files changed, 373 insertions(+), 92 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/pom.xml b/components/org.apache.stratos.autoscaler/pom.xml
index b92fc94..7d898d7 100644
--- a/components/org.apache.stratos.autoscaler/pom.xml
+++ b/components/org.apache.stratos.autoscaler/pom.xml
@@ -36,15 +36,11 @@
<dependencies>
<dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-core</artifactId>
- <version>${drools.version}</version>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-compiler</artifactId>
- <version>${drools.version}</version>
- </dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>knowledge-api</artifactId>
+ <version>${drools.version}</version>
+ </dependency>
+
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
@@ -61,11 +57,6 @@
<version>3.3</version>
</dependency>
<dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-decisiontables</artifactId>
- <version>${drools.version}</version>
- </dependency>
- <dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
<version>3.3</version>
@@ -76,21 +67,6 @@
<version>3.2.1</version>
</dependency>
<dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-jsr94</artifactId>
- <version>${drools.version}</version>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>knowledge-internal-api</artifactId>
- <version>${drools.version}</version>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>knowledge-api</artifactId>
- <version>${drools.version}</version>
- </dependency>
- <dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
<version>2.1.3.Final</version>
@@ -106,16 +82,6 @@
<version>1.6.4</version>
</dependency-->
<dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-verifier</artifactId>
- <version>${drools.version}</version>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-templates</artifactId>
- <version>${drools.version}</version>
- </dependency>
- <dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>3.5.1</version>
@@ -185,8 +151,9 @@
*;resolution:=optional
</Import-Package>
<DynamicImport-Package>*</DynamicImport-Package>
- <Axis2Deployer>AutoscalerPolicyDeployer</Axis2Deployer>
<Axis2Deployer>DeploymentPolicyDeployer</Axis2Deployer>
+ <Axis2Deployer>AutoscalerPolicyDeployer</Axis2Deployer>
+ <Axis2Deployer>PartitionDeployer</Axis2Deployer>
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<Embed-Directory>lib</Embed-Directory>
</instructions>
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
index 10e09f7..c28a237 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterContext.java
@@ -65,12 +65,10 @@ public class ClusterContext {
}
public Properties getProperties() {
-
return properties;
}
public void setProperties(Properties properties) {
-
this.properties = properties;
}
@@ -79,27 +77,22 @@ public class ClusterContext {
}
public void setAverageRequestsInFlight(float averageRequestsInFlight) {
-
this.averageRequestsInFlight = averageRequestsInFlight;
}
public float getRequestsInFlightSecondDerivative() {
-
return requestsInFlightSecondDerivative;
}
public void setRequestsInFlightSecondDerivative(float requestsInFlightSecondDerivative) {
-
this.requestsInFlightSecondDerivative = requestsInFlightSecondDerivative;
}
public float getRequestsInFlightGradient() {
-
return requestsInFlightGradient;
}
public void setRequestsInFlightGradient(float requestsInFlightGradient) {
-
this.requestsInFlightGradient = requestsInFlightGradient;
}
@@ -108,7 +101,6 @@ public class ClusterContext {
* @param memberContext will be added to map
*/
public void addMemberContext(MemberContext memberContext) {
-
memberContextMap.put(memberContext.getMemberId(), memberContext);
}
@@ -117,27 +109,23 @@ public class ClusterContext {
* @param memberId
*/
public void removeMemberContext(String memberId){
-
memberContextMap.remove(memberId);
}
public void increaseMemberCount(int count){
memberCount += count;
-
}
+
public void decreaseMemberCount(){
memberCount --;
-
}
- public void increaseMemberCountInPartitionBy(String partitionId, int count){
-
- partitionCountMap.put(partitionId, getMemberCount(partitionId) + count);
+ public void increaseMemberCountInPartitionBy(String partitionId, int count){
+ partitionCountMap.put(partitionId, getMemberCountInPartition(partitionId) + count);
}
public void decreaseMemberCountInPartitionBy(String partitionId, int count){
-
- partitionCountMap.put(partitionId, getMemberCount(partitionId) - count);
+ partitionCountMap.put(partitionId, getMemberCountInPartition(partitionId) - count);
}
public void addPartitionCount(String partitionId, int count){
@@ -145,7 +133,6 @@ public class ClusterContext {
}
public void removePartitionCount(String partitionId){
-
partitionCountMap.remove(partitionId);
}
@@ -153,7 +140,7 @@ public class ClusterContext {
return partitionCountMap.containsKey(partitionId);
}
- public int getMemberCount(String partitionId){
+ public int getMemberCountInPartition(String partitionId){
if(partitionCountMap.containsKey(partitionId)) {
return partitionCountMap.get(partitionId);
}
@@ -161,7 +148,6 @@ public class ClusterContext {
}
public void setMemberContextMap(Map<String, MemberContext> memberContextMap) {
-
this.memberContextMap = memberContextMap;
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
index 3c06c13..71f3180 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java
@@ -52,7 +52,7 @@ public class OneAfterAnother implements AutoscaleAlgorithm {
clusterContext.addPartitionCount(currentPartitionId, 0);
}
- if(clusterContext.getMemberCount(currentPartitionId) < currentPartition.getPartitionMembersMax()){
+ if(clusterContext.getMemberCountInPartition(currentPartitionId) < currentPartition.getPartitionMembersMax()){
// current partition is free
clusterContext.increaseMemberCountInPartitionBy(currentPartitionId, 1);
if(log.isDebugEnabled())
@@ -91,7 +91,7 @@ public class OneAfterAnother implements AutoscaleAlgorithm {
String currentPartitionId = currentPartition.getId();
// has more than minimum instances.
- if(clusterContext.getMemberCount(currentPartitionId) > currentPartition.getPartitionMembersMin()){
+ if(clusterContext.getMemberCountInPartition(currentPartitionId) > currentPartition.getPartitionMembersMin()){
// current partition is free
clusterContext.decreaseMemberCountInPartitionBy(currentPartitionId, 1);
if(log.isDebugEnabled())
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
index d75f11a..f925b47 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java
@@ -55,7 +55,7 @@ public class RoundRobin implements AutoscaleAlgorithm{
if(!clusterContext.partitionCountExists(currentPartitionId))
AutoscalerContext.getInstance().getClusterContext(clusterId).addPartitionCount(currentPartitionId, 0);
- if(clusterContext.getMemberCount(currentPartitionId) < currentPartition.getPartitionMembersMax()){
+ if(clusterContext.getMemberCountInPartition(currentPartitionId) < currentPartition.getPartitionMembersMax()){
// current partition is free
clusterContext.increaseMemberCountInPartitionBy(currentPartitionId, 1);
if(log.isDebugEnabled())
@@ -102,7 +102,7 @@ public class RoundRobin implements AutoscaleAlgorithm{
if(!clusterContext.partitionCountExists(currentPartitionId))
AutoscalerContext.getInstance().getClusterContext(clusterId).addPartitionCount(currentPartitionId, 0);
// has more than minimum instances.
- if(clusterContext.getMemberCount(currentPartitionId) > currentPartition.getPartitionMembersMin()){
+ if(clusterContext.getMemberCountInPartition(currentPartitionId) > currentPartition.getPartitionMembersMin()){
// current partition is free
clusterContext.decreaseMemberCountInPartitionBy(currentPartitionId, 1);
if(log.isDebugEnabled())
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/InvalidPartitionException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/InvalidPartitionException.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/InvalidPartitionException.java
new file mode 100644
index 0000000..c02824d
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/InvalidPartitionException.java
@@ -0,0 +1,40 @@
+/*
+ * 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.exception;
+
+public class InvalidPartitionException extends Exception {
+
+ private static final long serialVersionUID = -4914522749282514366L;
+
+ public InvalidPartitionException(String message) {
+ super(message);
+ }
+
+ public InvalidPartitionException(String message,Throwable e) {
+ super(message,e);
+ }
+
+ public InvalidPartitionException(Throwable e) {
+ super(e);
+ }
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
new file mode 100644
index 0000000..6bba10e
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionDeployer.java
@@ -0,0 +1,103 @@
+/*
+ * 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.deployers;
+
+import java.io.File;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.deployment.AbstractDeployer;
+import org.apache.axis2.deployment.DeploymentException;
+import org.apache.axis2.deployment.repository.util.DeploymentFileData;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * The Axis2 deployer class for party definitions definitions.
+ */
+public class PartitionDeployer extends AbstractDeployer {
+
+ private static final Log log = LogFactory.getLog(PartitionDeployer.class);
+
+ private static String fileExt="xml"; //default
+ private static String deployDirectory=null;
+
+ @Override
+ public void init(ConfigurationContext context) {
+ System.out.println("********Deploying init");
+ if(deployDirectory!=null){
+ File deployDir = new File(new File(context.getAxisConfiguration().getRepository().getPath()),deployDirectory);
+ if(!deployDir.exists()){
+ //create policies deployment directory if not exist
+ try {
+ deployDir.mkdirs();
+ } catch (Exception e) {
+ log.error("Unable to create policies deployment directory", e);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void setDirectory(String dir) {
+ deployDirectory = dir;
+ }
+
+ @Override
+ public void setExtension(String ext) {
+ fileExt = ext;
+ }
+
+ @Override
+ public void deploy(DeploymentFileData deploymentFileData) throws DeploymentException {
+
+ File partitionFile = deploymentFileData.getFile();
+ log.debug("Started to deploy the policy: " + partitionFile);
+ System.out.println("********Deploying stated " + partitionFile);
+
+ try {
+ /*
+ PartitionReader reader = new PartitionReader(partitionFile);
+
+ List<Partition> partitionList = reader.getPartitionList();
+
+
+ log.info("Successfully deployed the partition specified at "
+ + deploymentFileData.getAbsolutePath());
+ */
+ } catch (Exception e) {
+ String msg = "Invalid partition artifact at " + deploymentFileData.getAbsolutePath();
+ // back up the file
+ File fileToBeRenamed = partitionFile;
+ fileToBeRenamed.renameTo(new File(deploymentFileData.getAbsolutePath() + ".back"));
+ log.error(msg, e);
+ throw new DeploymentException(msg, e);
+ }
+ }
+
+ @Override
+ public void undeploy(String fileName) throws DeploymentException {
+ System.out.println("****************************************************");
+
+ }
+
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java
new file mode 100644
index 0000000..a6c45f1
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/deployers/PartitionReader.java
@@ -0,0 +1,144 @@
+/*
+ * 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.deployers;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.xpath.AXIOMXPath;
+import org.apache.axis2.deployment.DeploymentException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.exception.InvalidPartitionException;
+import org.apache.stratos.autoscaler.policy.InvalidPolicyException;
+import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
+import org.apache.stratos.autoscaler.policy.model.Partition;
+import org.apache.stratos.autoscaler.util.AutoScalerConstants;
+import org.jaxen.JaxenException;
+
+/**
+ *
+ * The Reader class for Deployment-policy definitions.
+ */
+public class PartitionReader{
+
+ private static final Log log = LogFactory.getLog(PartitionReader.class);
+ private static OMElement documentElement;
+ private File partitionFIle;
+
+ public PartitionReader(File partitionFile){
+ this.partitionFIle = partitionFile;
+ }
+
+ public List<Partition> getPartitionList() throws InvalidPartitionException{
+ this.parse(this.partitionFIle);
+ List<OMNode> partitionXMLNodes = getMatchingNodes("/partitions/partition");
+ Iterator<OMNode> itr = partitionXMLNodes.iterator();
+ List<Partition> partitonList = new ArrayList<Partition>();
+ while(itr.hasNext()){
+ OMNode node = itr.next();
+ //System.out.println("node " + node);
+ partitonList.add(this.getPartition(node));
+ }
+ return partitonList;
+ }
+
+ private Partition getPartition(final OMNode item) {
+ Partition partition = null;
+ String id = null;
+
+ if (item.getType() == OMNode.ELEMENT_NODE) {
+
+ OMElement iaasElt = (OMElement) item;
+ Iterator<?> it =
+ iaasElt.getChildrenWithName(new QName(AutoScalerConstants.ID_ELEMENT));
+
+ if (it.hasNext()) {
+ OMElement providerElt = (OMElement) it.next();
+ id = providerElt.getText();
+ }
+
+ if (it.hasNext()) {
+ log.warn( " contains more than one " + AutoScalerConstants.ID_ELEMENT +
+ " elements!" + " Elements other than the first will be neglected.");
+ }
+
+ if (id == null) {
+ String msg ="Essential " + AutoScalerConstants.ID_ELEMENT + "element " +
+ "has not specified in ";
+ // handleException(msg);
+ }
+ //boolean partitionExist = TopologyManager.getInstance().getTopology().partitionExist(id);
+ boolean partitionExist =false;
+ if(!partitionExist){
+ partition = new Partition();
+ partition.setId(id);
+ //loadProperties(iaasElt, partition.getProperties());
+ //handle partition created event
+ //TopologyBuilder.handlePartitionCreated(partition);
+ }
+ }
+ return partition;
+ }
+
+ public void parse(File xmlSource) {
+
+ if (xmlSource.exists()) {
+ try {
+ documentElement = new StAXOMBuilder(xmlSource.getPath()).getDocumentElement();
+
+ } catch (Exception ex) {
+ String msg = "Error occurred when parsing the " + xmlSource.getPath() + ".";
+ //handleException(msg, ex);
+ }
+ } else {
+ String msg = "Configuration file cannot be found : " + xmlSource.getPath();
+ //handleException(msg);
+ }
+ }
+ /**
+ * @param xpath XPATH expression to be read.
+ * @return List matching OMNode list
+ */
+ @SuppressWarnings("unchecked")
+ public static List<OMNode> getMatchingNodes(final String xpath) {
+
+ AXIOMXPath axiomXpath;
+ List<OMNode> nodeList = null;
+ try {
+ axiomXpath = new AXIOMXPath(xpath);
+ nodeList = axiomXpath.selectNodes(documentElement);
+ } catch (JaxenException e) {
+ String msg = "Error occurred while reading the Xpath (" + xpath + ")";
+ //log.error(msg, e);
+ //throw new CloudControllerException(msg, e);
+ }
+
+ return nodeList;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/InvalidPolicyException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/InvalidPolicyException.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/InvalidPolicyException.java
index 5df3b24..9b73179 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/InvalidPolicyException.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/InvalidPolicyException.java
@@ -21,8 +21,8 @@ package org.apache.stratos.autoscaler.policy;
public class InvalidPolicyException extends Exception {
- private static final long serialVersionUID = -4914522749282514366L;
-
+ private static final long serialVersionUID = 1L;
+
public InvalidPolicyException(String message) {
super(message);
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
new file mode 100644
index 0000000..b1fd9c5
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoScalerConstants.java
@@ -0,0 +1,30 @@
+/*
+ * 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.util;
+
+public final class AutoScalerConstants {
+
+ /**
+ * Constant values for Auto Scaler
+ */
+ public static final String ID_ELEMENT = "id";
+ public static final String PARTITION_ELEMENT = "partition";
+ public static final String PARTITIONS_ELEMENT = "partitions";
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index 16143f9..10c6a9e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -60,19 +60,9 @@ public class AutoscalerUtil {
float gradientLimit = loadThresholds.getRequestsInFlight().getGradient();
float secondDerivative = loadThresholds.getRequestsInFlight().getSecondDerivative();
-
clusterContext.setRequestsInFlightGradient(gradientLimit);
clusterContext.setRequestsInFlightSecondDerivative(secondDerivative);
- clusterContext.setAverageRequestsInFlight(averageLimit);
- DeploymentPolicy deploymentPolicy = PolicyManager.getInstance().getDeploymentPolicy(cluster.getDeploymentPolicyName());
- if(deploymentPolicy!=null){
- for(PartitionGroup group :deploymentPolicy.getPartitionGroups()){
- for (Partition partition : group.getPartitions()) {
- clusterContext.addPartitionCount(partition.getId(), 0);
- }
- }
- }
-
+ clusterContext.setAverageRequestsInFlight(averageLimit);
}
context.addClusterContext(clusterContext);
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml b/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml
index cbab84f..ba5fc5a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml
+++ b/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml
@@ -28,5 +28,10 @@
<extension>xml</extension>
<class>org.apache.stratos.autoscaler.policy.deployers.DeploymentPolicyDeployer</class>
</deployer>
+ <deployer>
+ <directory>partitions</directory>
+ <extension>xml</extension>
+ <class>org.apache.stratos.autoscaler.partition.deployers.PartitionDeployer</class>
+ </deployer>
</deployers>
</component>
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
index a3fd9e8..209d1a4 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
@@ -42,9 +42,12 @@ public class Cluster implements Serializable {
private Region region;
private Zone zone;
- // Key: Member.memberId
+ // Key- Member.memberId, Value- Member
private Map<String, Member> memberMap;
+
private Properties properties;
+
+ // Key- IAAS node id, Value- Member
private Map<String, Member> membertoNodeIdMap;
public Cluster(String serviceName, String clusterId, String autoscalePolicyName) {
@@ -141,20 +144,20 @@ public class Cluster implements Serializable {
}
public void addMemberToIaasNodeId(Member member) {
- membertoNodeIdMap.put(member.getIaasNodeId(), member);
- }
+ membertoNodeIdMap.put(member.getIaasNodeId(), member);
+ }
- public void removeMemberFromIaasNodeId(Member member) {
- membertoNodeIdMap.remove(member.getIaasNodeId());
- }
+ public void removeMemberFromIaasNodeId(Member member) {
+ membertoNodeIdMap.remove(member.getIaasNodeId());
+ }
- public Member getMemberFromIaasNodeId(String iaasNodeId) {
- return membertoNodeIdMap.get(iaasNodeId);
- }
+ public Member getMemberFromIaasNodeId(String iaasNodeId) {
+ return membertoNodeIdMap.get(iaasNodeId);
+ }
- public boolean memberExistsFromIaasNodeId(String iaasNodeId) {
- return this.membertoNodeIdMap.containsKey(iaasNodeId);
- }
+ public boolean memberExistsFromIaasNodeId(String iaasNodeId) {
+ return this.membertoNodeIdMap.containsKey(iaasNodeId);
+ }
public String getDeploymentPolicyName() {
return deploymentPolicyName;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
index 2b93188..5f5da7b 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
@@ -78,6 +78,10 @@ public class Topology implements Serializable {
public Partition getPartition(String id) {
return this.partitionMap.get(id);
}
+
+ public boolean partitionExist(String id) {
+ return null != this.partitionMap.get(id);
+ }
public void setPartitionMap(Map<String, Partition> partitionMap) {
this.partitionMap = partitionMap;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml b/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml
index 7ed781f..270b3e2 100644
--- a/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml
+++ b/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml
@@ -40,6 +40,12 @@
<artifactId>org.apache.stratos.autoscaler</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>knowledge-api</artifactId>
+ <version>${drools.version}</version>
+ </dependency>
+
</dependencies>
<build>
<plugins>
@@ -65,7 +71,8 @@
</adviceFile>
<bundles>
<bundleDef>org.apache.stratos:org.apache.stratos.autoscaler:${project.version}</bundleDef>
- <bundleDef>org.apache.stratos:org.apache.stratos.cloud.controller.service.stub:${project.version}</bundleDef>
+ <bundleDef>org.apache.stratos:org.apache.stratos.cloud.controller.service.stub:${project.version}</bundleDef>
+ <bundleDef>org.drools:knowledge-api:${drools.version}</bundleDef>
</bundles>
<importFeatures>
<importFeatureDef>org.wso2.carbon.core.server:${wso2carbon.version}</importFeatureDef>
@@ -76,6 +83,8 @@
</plugin>
</plugins>
</build>
-
+ <properties>
+ <drools.version>5.5.0.Final</drools.version>
+ </properties>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/dca46e39/products/pom.xml
----------------------------------------------------------------------
diff --git a/products/pom.xml b/products/pom.xml
index 5deef6d..b4700ec 100644
--- a/products/pom.xml
+++ b/products/pom.xml
@@ -36,11 +36,11 @@
<modules>
<module>autoscaler</module>
- <module>cloud-controller</module>
+ <!--<module>cloud-controller</module>
<module>load-balancer</module>
<module>stratos-cli</module>
<module>stratos-controller</module>
- <module>cartridge-agent</module>
+ <module>cartridge-agent</module>-->
</modules>
</project>