Updated Branches:
  refs/heads/master 8b81d3c2f -> 328350095

setting IaaS after creating a copy


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

Branch: refs/heads/master
Commit: 328350095e2e655811bda4c02e13f3e9dc82b963
Parents: 8b81d3c
Author: Nirmal Fernando <[email protected]>
Authored: Sat Feb 8 10:50:30 2014 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Sat Feb 8 10:50:30 2014 +0530

----------------------------------------------------------------------
 .../impl/CloudControllerServiceImpl.java        | 37 +++-----------------
 .../controller/util/CloudControllerUtil.java    | 30 ++++++++++++++++
 .../validate/AWSEC2PartitionValidator.java      |  4 ++-
 .../OpenstackNovaPartitionValidator.java        |  3 +-
 4 files changed, 40 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/32835009/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
index 906fbdc..86e4ed8 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
@@ -139,7 +139,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
         }
         
         for (IaasProvider iaasProvider : iaases) {
-            setIaas(iaasProvider);
+            CloudControllerUtil.setIaas(iaasProvider);
         }
         
         // TODO transaction begins
@@ -164,33 +164,6 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
         log.info("Successfully deployed the Cartridge definition: " + 
cartridgeType);
     }
 
-       private Iaas setIaas(IaasProvider iaasProvider) throws 
InvalidIaasProviderException {
-
-               Iaas iaas;
-               try {
-                       Constructor<?> c = 
Class.forName(iaasProvider.getClassName())
-                                       .getConstructor(IaasProvider.class);
-                       iaas = (Iaas) c.newInstance(iaasProvider);
-               } catch (Exception e) {
-                       String msg = "Class [" + iaasProvider.getClassName()
-                                       + "] which represents the iaas of type: 
["
-                                       + iaasProvider.getType() + "] has 
failed to instantiate.";
-                       log.error(msg, e);
-                       throw new InvalidIaasProviderException(msg, e);
-               }
-
-               try {
-                       iaas.buildComputeServiceAndTemplate();
-                       iaasProvider.setIaas(iaas);
-                       return iaas;
-               } catch (Exception e) {
-                       String msg = "Unable to build the jclouds object for 
iaas "
-                                       + "of type: " + iaasProvider.getType();
-                       log.error(msg, e);
-                       throw new InvalidIaasProviderException(msg, e);
-               }
-       }
-
     public void undeployCartridgeDefinition(String cartridgeType) {
 
         Cartridge cartridge = null;
@@ -289,7 +262,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
                     log.debug("Iaas is null of Iaas Provider: "+type+". Trying 
to build IaaS...");
                 }
                 try {
-                    iaas = setIaas(iaasProvider);
+                    iaas = CloudControllerUtil.setIaas(iaasProvider);
                 } catch (InvalidIaasProviderException e) {
                     String msg ="Instance start up failed. 
"+memberContext.toString()+
                             "Unable to build Iaas of this IaasProvider 
[Provider] : " + type;
@@ -789,7 +762,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
            if (iaas == null) {
                
                try {
-                   iaas = setIaas(iaasProvider);
+                   iaas = CloudControllerUtil.setIaas(iaasProvider);
                } catch (InvalidIaasProviderException e) {
                    String msg =
                            "Instance termination failed. " +ctxt.toString()  +
@@ -965,7 +938,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
             if (iaas == null) {
                 
                 try {
-                    iaas = setIaas(iaasProvider);
+                    iaas = CloudControllerUtil.setIaas(iaasProvider);
                 } catch (InvalidIaasProviderException e) {
                     String msg =
                             "Invalid Partition - " + partition.toString() +
@@ -1022,7 +995,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
         if (iaas == null) {
             
                try {
-                iaas = setIaas(iaasProvider);
+                iaas = CloudControllerUtil.setIaas(iaasProvider);
             } catch (InvalidIaasProviderException e) {
                 String msg =
                         "Invalid Partition - " + partition.toString() +

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/32835009/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
index 7381ed7..580b9a9 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
@@ -22,6 +22,8 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.deployment.partition.Partition;
 import org.apache.stratos.cloud.controller.exception.CloudControllerException;
+import 
org.apache.stratos.cloud.controller.exception.InvalidIaasProviderException;
+import org.apache.stratos.cloud.controller.interfaces.Iaas;
 import org.apache.stratos.cloud.controller.persist.Deserializer;
 import org.apache.stratos.cloud.controller.pojo.AppType;
 import org.apache.stratos.cloud.controller.pojo.Cartridge;
@@ -36,6 +38,7 @@ import 
org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
 import org.apache.stratos.messaging.domain.topology.Topology;
 import org.wso2.carbon.registry.core.exceptions.RegistryException;
 
+import java.lang.reflect.Constructor;
 import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -197,6 +200,33 @@ public class CloudControllerUtil {
 
                return carInfo;
        }
+    
+    public static Iaas setIaas(IaasProvider iaasProvider) throws 
InvalidIaasProviderException {
+
+               Iaas iaas;
+               try {
+                       Constructor<?> c = 
Class.forName(iaasProvider.getClassName())
+                                       .getConstructor(IaasProvider.class);
+                       iaas = (Iaas) c.newInstance(iaasProvider);
+               } catch (Exception e) {
+                       String msg = "Class [" + iaasProvider.getClassName()
+                                       + "] which represents the iaas of type: 
["
+                                       + iaasProvider.getType() + "] has 
failed to instantiate.";
+                       log.error(msg, e);
+                       throw new InvalidIaasProviderException(msg, e);
+               }
+
+               try {
+                       iaas.buildComputeServiceAndTemplate();
+                       iaasProvider.setIaas(iaas);
+                       return iaas;
+               } catch (Exception e) {
+                       String msg = "Unable to build the jclouds object for 
iaas "
+                                       + "of type: " + iaasProvider.getType();
+                       log.error(msg, e);
+                       throw new InvalidIaasProviderException(msg, e);
+               }
+       }
        
        public static List<Object> getKeysFromValue(Map<?, ?> hm, Object value) 
{
                List<Object> list = new ArrayList<Object>();

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/32835009/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/AWSEC2PartitionValidator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/AWSEC2PartitionValidator.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/AWSEC2PartitionValidator.java
index 19c7d55..8360f45 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/AWSEC2PartitionValidator.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/AWSEC2PartitionValidator.java
@@ -26,6 +26,7 @@ import 
org.apache.stratos.cloud.controller.exception.InvalidPartitionException;
 import org.apache.stratos.cloud.controller.interfaces.Iaas;
 import org.apache.stratos.cloud.controller.pojo.IaasProvider;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
+import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import 
org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator;
 import org.apache.stratos.messaging.domain.topology.Scope;
 
@@ -60,7 +61,8 @@ public class AWSEC2PartitionValidator implements 
PartitionValidator {
                 iaas.isValidRegion(region);
                 
                 IaasProvider updatedIaasProvider = new 
IaasProvider(iaasProvider);
-                Iaas updatedIaas = updatedIaasProvider.getIaas();
+                
+                Iaas updatedIaas = 
CloudControllerUtil.setIaas(updatedIaasProvider);
                 updatedIaas.setIaasProvider(updatedIaasProvider);
                 
                 if (properties.containsKey(Scope.zone.toString())) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/32835009/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java
index 60c3044..f2b9c54 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java
@@ -26,6 +26,7 @@ import 
org.apache.stratos.cloud.controller.exception.InvalidPartitionException;
 import org.apache.stratos.cloud.controller.interfaces.Iaas;
 import org.apache.stratos.cloud.controller.pojo.IaasProvider;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
+import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import 
org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator;
 import org.apache.stratos.messaging.domain.topology.Scope;
 
@@ -60,7 +61,7 @@ public class OpenstackNovaPartitionValidator implements 
PartitionValidator {
                 iaas.isValidRegion(region);
                 
                 IaasProvider updatedIaasProvider = new 
IaasProvider(iaasProvider);
-                Iaas updatedIaas = updatedIaasProvider.getIaas();
+                Iaas updatedIaas = 
CloudControllerUtil.setIaas(updatedIaasProvider);
                 updatedIaas.setIaasProvider(updatedIaasProvider);
                 
                 if (properties.containsKey(Scope.host.toString())) {

Reply via email to