Fixing https://issues.apache.org/jira/browse/STRATOS-756 for AWSEC2, Docker and 
OpenstackNova IaaSes.


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

Branch: refs/heads/4.0.0-grouping
Commit: 3d3db936afd9439c3956dfbd4683e63e53604164
Parents: bf9b999
Author: Nirmal Fernando <[email protected]>
Authored: Tue Aug 19 10:09:49 2014 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Tue Aug 19 10:09:49 2014 +0530

----------------------------------------------------------------------
 .../validate/AWSEC2PartitionValidator.java      | 11 +++----
 .../validate/DockerPartitionValidator.java      | 34 ++++++++++++++++++--
 .../OpenstackNovaPartitionValidator.java        | 28 +++++++++++++++-
 3 files changed, 64 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/3d3db936/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 28d92cf..675d68a 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
@@ -99,12 +99,11 @@ public class AWSEC2PartitionValidator implements 
PartitionValidator {
                        for (Object property : properties.keySet()) {
                                if (property instanceof String) {
                                        String key = (String) property;
-                                       if (!Scope.zone.toString().equals(key)) 
{
-                                               
updatedIaasProvider.setProperty(key,
-                                                               
properties.getProperty(key));
-                                               if (log.isDebugEnabled()) {
-                                                       log.debug("Added 
property "+key+ " to the IaasProvider.");
-                                               }
+                                       updatedIaasProvider.setProperty(key,
+                                                       
properties.getProperty(key));
+                                       if (log.isDebugEnabled()) {
+                                               log.debug("Added property " + 
key
+                                                               + " to the 
IaasProvider.");
                                        }
                                }
                        }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3d3db936/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/DockerPartitionValidator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/DockerPartitionValidator.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/DockerPartitionValidator.java
index 63df9b9..cb008e0 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/DockerPartitionValidator.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/DockerPartitionValidator.java
@@ -21,9 +21,12 @@ package org.apache.stratos.cloud.controller.validate;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import 
org.apache.stratos.cloud.controller.exception.InvalidIaasProviderException;
 import org.apache.stratos.cloud.controller.exception.InvalidPartitionException;
 import org.apache.stratos.cloud.controller.iaases.AWSEC2Iaas;
+import org.apache.stratos.cloud.controller.interfaces.Iaas;
 import org.apache.stratos.cloud.controller.pojo.IaasProvider;
+import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import 
org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator;
 
 import java.util.Properties;
@@ -43,7 +46,34 @@ public class DockerPartitionValidator implements 
PartitionValidator {
 
     @Override
     public IaasProvider validate(String partitionId, Properties properties) 
throws InvalidPartitionException {
-        log.warn("Not implemented: DockerPartitionValidator.validate()");
-        return iaasProvider;
+       // in Docker case currently we only update the custom properties passed 
via Partitions, and
+       // no validation done as of now.
+       IaasProvider updatedIaasProvider = new IaasProvider(iaasProvider);
+       updateOtherProperties(updatedIaasProvider, properties);
+        return updatedIaasProvider;
     }
+    
+    private void updateOtherProperties(IaasProvider updatedIaasProvider,
+                       Properties properties) {
+       Iaas updatedIaas;
+               try {
+                       updatedIaas = 
CloudControllerUtil.getIaas(updatedIaasProvider);
+
+                       for (Object property : properties.keySet()) {
+                               if (property instanceof String) {
+                                       String key = (String) property;
+                                       updatedIaasProvider.setProperty(key,
+                                                       
properties.getProperty(key));
+                                       if (log.isDebugEnabled()) {
+                                               log.debug("Added property " + 
key
+                                                               + " to the 
IaasProvider.");
+                                       }
+                               }
+                       }
+                       updatedIaas = 
CloudControllerUtil.getIaas(updatedIaasProvider);
+                       updatedIaas.setIaasProvider(updatedIaasProvider);
+               } catch (InvalidIaasProviderException ignore) {
+               }
+       
+       }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3d3db936/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 a6dfa56..ad05c8c 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
@@ -20,6 +20,7 @@ package org.apache.stratos.cloud.controller.validate;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import 
org.apache.stratos.cloud.controller.exception.InvalidIaasProviderException;
 import org.apache.stratos.cloud.controller.exception.InvalidPartitionException;
 import org.apache.stratos.cloud.controller.interfaces.Iaas;
 import org.apache.stratos.cloud.controller.pojo.IaasProvider;
@@ -73,8 +74,9 @@ public class OpenstackNovaPartitionValidator implements 
PartitionValidator {
                     updatedIaas.setIaasProvider(updatedIaasProvider);
                 } 
                 
-                return updatedIaasProvider;
+                updateOtherProperties(updatedIaasProvider, properties);
                 
+                return updatedIaasProvider;
                 
             } else {
 
@@ -86,6 +88,30 @@ public class OpenstackNovaPartitionValidator implements 
PartitionValidator {
             throw new InvalidPartitionException(msg, ex);
         }
     }
+    
+    private void updateOtherProperties(IaasProvider updatedIaasProvider,
+                       Properties properties) {
+       Iaas updatedIaas;
+               try {
+                       updatedIaas = 
CloudControllerUtil.getIaas(updatedIaasProvider);
+
+                       for (Object property : properties.keySet()) {
+                               if (property instanceof String) {
+                                       String key = (String) property;
+                                       updatedIaasProvider.setProperty(key,
+                                                       
properties.getProperty(key));
+                                       if (log.isDebugEnabled()) {
+                                               log.debug("Added property " + 
key
+                                                               + " to the 
IaasProvider.");
+                                       }
+                               }
+                       }
+                       updatedIaas = 
CloudControllerUtil.getIaas(updatedIaasProvider);
+                       updatedIaas.setIaasProvider(updatedIaasProvider);
+               } catch (InvalidIaasProviderException ignore) {
+               }
+       
+       }
 
     @Override
     public void setIaasProvider(IaasProvider iaas) {

Reply via email to