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) {
