You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by li...@apache.org on 2013/07/04 08:29:03 UTC

[54/71] [abbrv] git commit: updated refs/heads/master to 26af71b

CLOUDSTACK-3258. In AWSAPI provide Tags support for resource 'security group'

Signed-off-by: Likitha Shetty <li...@citrix.com>


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

Branch: refs/heads/master
Commit: 3cfaa92917b888f59eacc0b632b0d7ba94c65613
Parents: 135b688
Author: Likitha Shetty <li...@citrix.com>
Authored: Thu Jun 27 16:57:27 2013 +0530
Committer: Likitha Shetty <li...@citrix.com>
Committed: Thu Jul 4 10:08:42 2013 +0530

----------------------------------------------------------------------
 .../bridge/service/EC2SoapServiceImpl.java      |  2 +
 .../bridge/service/core/ec2/EC2Engine.java      | 13 +++++-
 .../service/core/ec2/EC2GroupFilterSet.java     | 44 ++++++++++++++++++++
 .../service/core/ec2/EC2SecurityGroup.java      | 11 ++++-
 .../stack/models/CloudStackSecurityGroup.java   |  7 ++++
 5 files changed, 75 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3cfaa929/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java b/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java
index 3e3f578..0edb1fd 100644
--- a/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java
+++ b/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java
@@ -2127,6 +2127,8 @@ public class EC2SoapServiceImpl implements AmazonEC2SkeletonInterface  {
 				param4.addItem(param5);
 			}
 			param3.setIpPermissions(param4);
+            EC2TagKeyValue[] tags = group.getResourceTags();
+            param3.setTagSet(setResourceTags(tags));
 			param2.addItem(param3);
 		}
 		param1.setSecurityGroupInfo(param2);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3cfaa929/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java
index 9d569d4..cb13977 100644
--- a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java
+++ b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java
@@ -2062,7 +2062,14 @@ public class EC2Engine extends ManagerBase {
                     ec2Group.setDomainId(group.getDomainId());
                     ec2Group.setId(group.getId().toString());
                     toPermission(ec2Group, group);
-
+                    List<CloudStackKeyValue> resourceTags = group.getTags();
+                    for(CloudStackKeyValue resourceTag : resourceTags) {
+                        EC2TagKeyValue param = new EC2TagKeyValue();
+                             param.setKey(resourceTag.getKey());
+                        if (resourceTag.getValue() != null)
+                            param.setValue(resourceTag.getValue());
+                        ec2Group.addResourceTag(param);
+                    }
                     groupSet.addGroup(ec2Group);
                 }
             return groupSet;
@@ -2511,6 +2518,8 @@ public class EC2Engine extends ManagerBase {
             return("template");
         else if(resourceType.equalsIgnoreCase("instance"))
             return("userVm");
+        else if (resourceType.equalsIgnoreCase("security-group"))
+            return("securityGroup");
         else
             return resourceType;
     }
@@ -2526,6 +2535,8 @@ public class EC2Engine extends ManagerBase {
             return("image");
         else if(resourceType.equalsIgnoreCase("userVm"))
             return("instance");
+        else if(resourceType.equalsIgnoreCase("securityGroup"))
+            return("security-group");
         else
             return (resourceType.toLowerCase());
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3cfaa929/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java
index bd79041..c5b985a 100644
--- a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java
+++ b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java
@@ -45,6 +45,8 @@ public class EC2GroupFilterSet {
         filterTypes.put( "ip-permission.group-name","string" );
         filterTypes.put( "ip-permission.user-id",   "string" );
 		filterTypes.put( "owner-id",                "string" );
+        filterTypes.put( "tag-key",                 "string" );
+        filterTypes.put( "tag-value",               "string" );
 	}
 
 
@@ -119,6 +121,42 @@ public class EC2GroupFilterSet {
 			String owner = new String( sg.getDomainId() + ":" + sg.getAccountName()); 
 			return containsString( owner, valueSet );	
 		}
+        else if (filterName.equalsIgnoreCase("tag-key"))
+        {
+            EC2TagKeyValue[] tagSet = sg.getResourceTags();
+            for (EC2TagKeyValue tag : tagSet)
+                if (containsString(tag.getKey(), valueSet)) return true;
+            return false;
+        }
+        else if (filterName.equalsIgnoreCase("tag-value"))
+        {
+            EC2TagKeyValue[] tagSet = sg.getResourceTags();
+            for (EC2TagKeyValue tag : tagSet){
+                if (tag.getValue() == null) {
+                    if (containsEmptyValue(valueSet)) return true;
+                }
+                else {
+                    if (containsString(tag.getValue(), valueSet)) return true;
+                }
+            }
+            return false;
+        }
+        else if (filterName.startsWith("tag:"))
+        {
+            String key = filterName.split(":")[1];
+            EC2TagKeyValue[] tagSet = sg.getResourceTags();
+            for (EC2TagKeyValue tag : tagSet){
+                if (tag.getKey().equalsIgnoreCase(key)) {
+                    if (tag.getValue() == null) {
+                        if (containsEmptyValue(valueSet)) return true;
+                    }
+                    else {
+                        if (containsString(tag.getValue(), valueSet)) return true;
+                    }
+                }
+            }
+            return false;
+        }
 		else return false;
 	}
 
@@ -182,4 +220,10 @@ public class EC2GroupFilterSet {
 		return false;
 	}
 
+    private boolean containsEmptyValue( String[] set ) {
+        for( int i=0; i < set.length; i++ )
+            if (set[i].isEmpty()) return true;
+        return false;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3cfaa929/awsapi/src/com/cloud/bridge/service/core/ec2/EC2SecurityGroup.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2SecurityGroup.java b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2SecurityGroup.java
index 468c3cc..3aeb064 100644
--- a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2SecurityGroup.java
+++ b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2SecurityGroup.java
@@ -27,6 +27,7 @@ public class EC2SecurityGroup {
 	private String accountName;
 	private String domainId;
 	private List<EC2IpPermission> permissionSet = new ArrayList<EC2IpPermission>();    
+    private List<EC2TagKeyValue> tagsSet = new ArrayList<EC2TagKeyValue>();
 
 	public EC2SecurityGroup() {
 		id          = null;
@@ -91,5 +92,13 @@ public class EC2SecurityGroup {
 	public void setDomainId(String domainId) {
 		this.domainId = domainId;
 	}
-	
+
+    public void addResourceTag( EC2TagKeyValue param ) {
+        tagsSet.add( param );
+    }
+
+    public EC2TagKeyValue[] getResourceTags() {
+        return tagsSet.toArray(new EC2TagKeyValue[0]);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3cfaa929/awsapi/src/com/cloud/stack/models/CloudStackSecurityGroup.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/stack/models/CloudStackSecurityGroup.java b/awsapi/src/com/cloud/stack/models/CloudStackSecurityGroup.java
index 72ba552..e2211f2 100644
--- a/awsapi/src/com/cloud/stack/models/CloudStackSecurityGroup.java
+++ b/awsapi/src/com/cloud/stack/models/CloudStackSecurityGroup.java
@@ -39,6 +39,8 @@ public class CloudStackSecurityGroup {
     private String name;
     @SerializedName(ApiConstants.INGRESS_RULE)
     private List<CloudStackIngressRule> ingressRules;
+    @SerializedName(ApiConstants.TAGS)
+    private List<CloudStackKeyValue> tags;
 
     
     public CloudStackSecurityGroup() {
@@ -79,4 +81,9 @@ public class CloudStackSecurityGroup {
 	public List<CloudStackIngressRule> getIngressRules() {
 		return ingressRules;
 	}
+
+    public List<CloudStackKeyValue> getTags() {
+        return tags;
+    }
+
 }