You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2013/11/06 12:22:37 UTC
git commit: adding region and zone classes to CC
Updated Branches:
refs/heads/master e0bf6dc82 -> 6f095af61
adding region and zone classes to CC
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/6f095af6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/6f095af6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/6f095af6
Branch: refs/heads/master
Commit: 6f095af61ae560ef73686a760669f2b80b7bd939
Parents: e0bf6dc
Author: rekathiru <rt...@gmail.com>
Authored: Wed Nov 6 16:52:16 2013 +0530
Committer: rekathiru <rt...@gmail.com>
Committed: Wed Nov 6 16:52:16 2013 +0530
----------------------------------------------------------------------
.../controller/axiom/AxiomXpathParser.java | 4 +-
.../controller/topology/TopologyManager.java | 8 --
.../cloud/controller/util/IaasProvider.java | 33 +++--
.../stratos/cloud/controller/util/Region.java | 124 +++++++++++++++++++
.../stratos/cloud/controller/util/Zone.java | 46 +++++++
5 files changed, 186 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6f095af6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParser.java
index 035c74c..bd387d1 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParser.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParser.java
@@ -798,7 +798,7 @@ public class AxiomXpathParser {
}
- private void loadMaxInstanceLimit(IaasProvider iaas, final OMElement iaasElt) {
+ /*private void loadMaxInstanceLimit(IaasProvider iaas, final OMElement iaasElt) {
Iterator<?> it =
iaasElt.getChildrenWithName(new QName(
@@ -825,7 +825,7 @@ public class AxiomXpathParser {
" Elements other than the first will be neglected.");
}
- }
+ }*/
private void loadPayload(final List<OMNode> nodes, final ServiceContext serviceCtxt) {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6f095af6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
index e2fa512..41c60eb 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyManager.java
@@ -23,12 +23,10 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.exception.CloudControllerException;
import org.apache.stratos.cloud.controller.registry.RegistryManager;
-import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
import org.apache.stratos.messaging.domain.topology.Topology;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import javax.jms.TextMessage;
-import java.io.File;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -42,8 +40,6 @@ public class TopologyManager {
private volatile ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
private volatile ReentrantReadWriteLock.ReadLock readLock = lock.readLock();
private volatile ReentrantReadWriteLock.WriteLock writeLock = lock.writeLock();
- private File topologyFile = new File(CloudControllerConstants.TOPOLOGY_FILE_PATH);
- private File backup = new File(CloudControllerConstants.TOPOLOGY_FILE_PATH + ".back");
private volatile Topology topology;
private static TopologyManager instance;
private BlockingQueue<TextMessage> sharedTopologyDiffQueue = new LinkedBlockingQueue<TextMessage>();
@@ -108,10 +104,6 @@ public class TopologyManager {
}
}
- public void setTopology(Topology topology) {
- this.topology = topology;
- }
-
public String toJson() {
Gson gson = new Gson();
return gson.toJson(topology);
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6f095af6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/IaasProvider.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/IaasProvider.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/IaasProvider.java
index f724653..7f7de1f 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/IaasProvider.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/IaasProvider.java
@@ -25,6 +25,7 @@ import org.jclouds.compute.domain.Template;
import java.io.Serializable;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -40,10 +41,7 @@ public class IaasProvider implements Serializable{
*/
private String type;
- /**
- * Partition the IaaS using different region
- */
- private String region;
+ private List<Region> listOfRegions;
/**
* Fully qualified class name of an implementation of {@link org.apache.stratos.cloud.controller.interfaces.Iaas}
@@ -65,11 +63,7 @@ public class IaasProvider implements Serializable{
*/
private String image;
- /**
- * Max instance limit that an IaaS can spawn.
- */
- private int maxInstanceLimit = -1;
-
+
/**
* Scale up order and scale down order of the IaaS.
*/
@@ -105,7 +99,6 @@ public class IaasProvider implements Serializable{
this.template = anIaasProvider.getTemplate();
this.payload = anIaasProvider.getPayload();
this.iaas = anIaasProvider.getIaas();
- this.maxInstanceLimit = anIaasProvider.getMaxInstanceLimit();
}
public String getType() {
@@ -257,20 +250,22 @@ public class IaasProvider implements Serializable{
// toBeRemovedNodeIds = new ArrayList<String>();
}
- public int getMaxInstanceLimit() {
- return this.maxInstanceLimit;
+ /**
+ * Partition the IaaS using different region
+ */
+ public List<Region> getListOfRegions() {
+ return listOfRegions;
}
- public void setMaxInstanceLimit(int maxInstanceLimit) {
- this.maxInstanceLimit = maxInstanceLimit;
+ public void setListOfRegions(List<Region> listOfRegions) {
+ this.listOfRegions = listOfRegions;
}
-
- public String getRegion() {
- return region;
+ public void addRegion(Region region) {
+ this.listOfRegions.add(region);
}
- public void setRegion(String region) {
- this.region = region;
+ public void removeRegion(Region region) {
+ this.listOfRegions.remove(region);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6f095af6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Region.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Region.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Region.java
new file mode 100644
index 0000000..7606e2a
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Region.java
@@ -0,0 +1,124 @@
+package org.apache.stratos.cloud.controller.util;
+
+import org.jclouds.compute.ComputeService;
+import org.jclouds.compute.domain.Template;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class Region {
+ private String imageId;
+ private String provider;
+ private String identity;
+ private String credential;
+ private String id;
+ private String type;
+ private List<Zone> listOfZones;
+
+ private transient ComputeService computeService;
+
+ private transient Template template;
+
+ private Map<String, String> properties = new HashMap<String, String>();
+
+ public String getProperty(String key) {
+ return getProperties().get(key);
+ }
+
+ public Map<String, String> getProperties() {
+ return properties;
+ }
+
+ public void setProperty(String key, String value) {
+
+ if (key != null && value != null) {
+ getProperties().put(key, value);
+ }
+ }
+
+ public void setProperties(Map<String, String> properties) {
+ this.properties = properties;
+ }
+
+
+ public String getImageId() {
+ return imageId;
+ }
+
+ public void setImageId(String imageId) {
+ this.imageId = imageId;
+ }
+
+ public String getProvider() {
+ return provider;
+ }
+
+ public void setProvider(String provider) {
+ this.provider = provider;
+ }
+
+ public String getIdentity() {
+ return identity;
+ }
+
+ public void setIdentity(String identity) {
+ this.identity = identity;
+ }
+
+ public String getCredential() {
+ return credential;
+ }
+
+ public void setCredential(String credential) {
+ this.credential = credential;
+ }
+
+ public ComputeService getComputeService() {
+ return computeService;
+ }
+
+ public void setComputeService(ComputeService computeService) {
+ this.computeService = computeService;
+ }
+
+ public Template getTemplate() {
+ return template;
+ }
+
+ public void setTemplate(Template template) {
+ this.template = template;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public List<Zone> getListOfZones() {
+ return listOfZones;
+ }
+
+ public void setListOfZones(List<Zone> listOfZones) {
+ this.listOfZones = listOfZones;
+ }
+
+ public void addZone(Zone zone) {
+ this.listOfZones.add(zone);
+ }
+
+ public void removeZone(Zone zone) {
+ this.listOfZones.remove(zone);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6f095af6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Zone.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Zone.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Zone.java
new file mode 100644
index 0000000..41831cf
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Zone.java
@@ -0,0 +1,46 @@
+package org.apache.stratos.cloud.controller.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Zone {
+ private String id;
+ private String type;
+
+ private Map<String, String> properties = new HashMap<String, String>();
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public Map<String, String> getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Map<String, String> properties) {
+ this.properties = properties;
+ }
+
+ public void setProperty(String key, String value) {
+
+ if (key != null && value != null) {
+ getProperties().put(key, value);
+ }
+ }
+
+ public String getProperty(String key) {
+ return getProperties().get(key);
+ }
+}