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";

Reply via email to