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);
+    }
+}