Repository: jclouds
Updated Branches:
  refs/heads/master b77ea0695 -> 65ba26eca


JCLOUDS-1307: Invalidate SG on removal even if already externally deleted


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/65ba26ec
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/65ba26ec
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/65ba26ec

Branch: refs/heads/master
Commit: 65ba26eca7d63b6b7cef70386f00425438318825
Parents: b77ea06
Author: Svetoslav Neykov <[email protected]>
Authored: Fri Jun 9 12:41:16 2017 +0300
Committer: Svetoslav Neykov <[email protected]>
Committed: Tue Jun 27 13:26:51 2017 +0300

----------------------------------------------------------------------
 .../extensions/AWSEC2SecurityGroupExtension.java        | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/65ba26ec/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
----------------------------------------------------------------------
diff --git 
a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
 
b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
index db1e8f2..6c10493 100644
--- 
a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
+++ 
b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
@@ -24,6 +24,7 @@ import static com.google.common.collect.Iterables.transform;
 
 import javax.inject.Inject;
 import javax.inject.Named;
+import java.util.Map;
 import java.util.Set;
 
 import com.google.common.base.Function;
@@ -105,12 +106,17 @@ public class AWSEC2SecurityGroupExtension extends 
EC2SecurityGroupExtension {
 
       if (group != null) {
          
client.getSecurityGroupApi().get().deleteSecurityGroupInRegionById(region, 
groupId);
-         // TODO: test this clear happens
          groupCreator.invalidate(new RegionNameAndIngressRules(region, 
group.getName(), null, false, null));
          return true;
+      } else {
+         for (Map.Entry<RegionAndName, String> cachedSg : 
groupCreator.asMap().entrySet()) {
+            if (groupId.equals(cachedSg.getValue())) {
+               groupCreator.invalidate(cachedSg.getKey());
+               break;
+            }
+         }
+         return false;
       }
-
-      return false;
    }
 
    @Override

Reply via email to