Repository: incubator-stratos Updated Branches: refs/heads/master edd4054ab -> 9f6009c5c
Fix for STRATOS-565: Adding support for tags as key-pair values Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/424a6376 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/424a6376 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/424a6376 Branch: refs/heads/master Commit: 424a6376afd7af78bc4070b9428d114d9ff2b6d6 Parents: a0e97c1 Author: Lahiru Sandaruwan <[email protected]> Authored: Tue Apr 1 09:06:11 2014 -0700 Committer: Lahiru Sandaruwan <[email protected]> Committed: Tue Apr 1 09:06:11 2014 -0700 ---------------------------------------------------------------------- .../cloud/controller/iaases/AWSEC2Iaas.java | 17 +++++++++++++++++ .../controller/util/CloudControllerConstants.java | 1 + 2 files changed, 18 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/424a6376/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java index 56afc82..eafbade 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java @@ -182,7 +182,22 @@ public class AWSEC2Iaas extends Iaas { .split(CloudControllerConstants.ENTRY_SEPARATOR))); } + + // ability to define tags with Key-value pairs + Map<String, String> keyValuePairTagsMap = new HashMap<String, String>(); + + for (String propertyKey : iaasInfo.getProperties().keySet()){ + if(propertyKey.startsWith(CloudControllerConstants.TAGS_AS_KEY_VALUE_PAIRS_PREFIX)) { + keyValuePairTagsMap.put(propertyKey.substring(CloudControllerConstants.TAGS_AS_KEY_VALUE_PAIRS_PREFIX.length()), + iaasInfo.getProperties().get(propertyKey)); + template.getOptions() + .as(AWSEC2TemplateOptions.class) + .userMetadata(keyValuePairTagsMap); + } + + } + if (iaasInfo.getProperty(CloudControllerConstants.SECURITY_GROUP_IDS) != null) { template.getOptions() .as(AWSEC2TemplateOptions.class) @@ -197,6 +212,8 @@ public class AWSEC2Iaas extends Iaas { .keyPair(iaasInfo.getProperty(CloudControllerConstants.KEY_PAIR)); } + + if (iaasInfo.getNetworkInterfaces() != null) { List<String> networks = new ArrayList<String>(iaasInfo.getNetworkInterfaces().length); for (NetworkInterface ni:iaasInfo.getNetworkInterfaces()) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/424a6376/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java index c7c77a2..413d5e9 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java @@ -248,6 +248,7 @@ public final class CloudControllerConstants { public static final String SECURITY_GROUPS = "securityGroups"; public static final String SUBNET_ID = "subnetId"; public static final String TAGS = "tags"; + public static final String TAGS_AS_KEY_VALUE_PAIRS_PREFIX = "tag:"; public static final String AUTO_ASSIGN_IP = "autoAssignIp"; public static final String INSTANCE_TYPE = "instanceType"; public static final String ASSOCIATE_PUBLIC_IP_ADDRESS = "associatePublicIpAddress";
