You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/02/07 11:39:37 UTC

[1/2] brooklyn-server git commit: Allow for different jclouds prefixes on different clouds.

Repository: brooklyn-server
Updated Branches:
  refs/heads/master dc04cbd4e -> 3f54a04ad


Allow for different jclouds prefixes on different clouds.

jclouds on AWS uses 'jclouds#' while on Openstack it is 'jclouds-'.
Also fix some incorrect log messages and add a bit of detail to them.


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/98f521b6
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/98f521b6
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/98f521b6

Branch: refs/heads/master
Commit: 98f521b6c3e2c9491d4bb284f3e318795d45bbc9
Parents: 68a07aa
Author: Geoff Macartney <ge...@cloudsoftcorp.com>
Authored: Fri Feb 3 16:11:24 2017 +0000
Committer: Geoff Macartney <ge...@cloudsoftcorp.com>
Committed: Tue Feb 7 10:19:20 2017 +0000

----------------------------------------------------------------------
 .../jclouds/networking/SecurityGroupEditor.java | 35 ++++++++++++++++----
 ...oudsLocationSecurityGroupCustomizerTest.java |  6 ++--
 2 files changed, 32 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/98f521b6/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/SecurityGroupEditor.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/SecurityGroupEditor.java b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/SecurityGroupEditor.java
index 29431e9..405f1c8 100644
--- a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/SecurityGroupEditor.java
+++ b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/SecurityGroupEditor.java
@@ -34,6 +34,7 @@ import org.slf4j.LoggerFactory;
 
 import java.util.Set;
 import java.util.concurrent.Callable;
+import java.util.regex.Pattern;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -43,7 +44,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 public class SecurityGroupEditor {
 
     private static final Logger LOG = LoggerFactory.getLogger(SecurityGroupEditor.class);
-    public static final java.lang.String JCLOUDS_PREFIX = "jclouds#";
+    public static final java.lang.String JCLOUDS_PREFIX_REGEX = "^jclouds[#-]";
 
     private final Location location;
     private final SecurityGroupExtension securityApi;
@@ -103,6 +104,11 @@ public class SecurityGroupEditor {
             public SecurityGroup call() throws Exception {
                 return securityApi.createSecurityGroup(name, location);
             }
+
+            @Override
+            public String toString() {
+                return "Create security group " + name;
+            }
         };
         return runOperationWithRetry(callable);
     }
@@ -120,7 +126,7 @@ public class SecurityGroupEditor {
     }
     /**
      * Removes a security group and its permissions.
-     * @param The jclouds id (provider id) of the group
+     * @param groupId The jclouds id (provider id) of the group (including region code)
      * @return true if the group was found and removed.
      */
     public boolean removeSecurityGroup(final String groupId) {
@@ -156,11 +162,11 @@ public class SecurityGroupEditor {
      * @throws AmbiguousGroupName in the unexpected case that the cloud returns more than one matching group.
      */
     public Optional<SecurityGroup> findSecurityGroupByName(final String name) {
-        final String query = name.startsWith(JCLOUDS_PREFIX) ? name : JCLOUDS_PREFIX + name;
         final Iterable<SecurityGroup> groupsMatching = findSecurityGroupsMatching(new Predicate<SecurityGroup>() {
+            final String rawName = name.replaceAll(JCLOUDS_PREFIX_REGEX, "");
             @Override
             public boolean apply(final SecurityGroup input) {
-                return input.getName().equals(query);
+                return input.getName().replaceAll(JCLOUDS_PREFIX_REGEX, "").equals(rawName);
             }
         });
         final ImmutableList<SecurityGroup> matches = ImmutableList.copyOf(groupsMatching);
@@ -211,6 +217,11 @@ public class SecurityGroupEditor {
                     throw Exceptions.propagate(e);
                 }
             }
+
+            @Override
+            public String toString() {
+                return "Add permission " + permission + " to security group " + group;
+            }
         };
         return runOperationWithRetry(callable);
     }
@@ -240,6 +251,11 @@ public class SecurityGroupEditor {
             public SecurityGroup call() throws Exception {
                 return securityApi.removeIpPermission(permission, group);
             }
+
+            @Override
+            public String toString() {
+                return "Remove permission " + permission + " from security group " + group;
+            }
         };
         return runOperationWithRetry(callable);
     }
@@ -258,13 +274,14 @@ public class SecurityGroupEditor {
     protected <T> T runOperationWithRetry(Callable<T> operation) {
         int backoff = 64;
         Exception lastException = null;
+        LOG.debug("Running operation {}", operation);
         for (int retries = 0; retries < 12; retries++) { // 12 = keep trying for about 5 minutes
             try {
                 return operation.call();
             } catch (Exception e) {
                 lastException = e;
                 if (isExceptionRetryable.apply(e)) {
-                    LOG.debug("Attempt #{} failed to add security group: {}", retries + 1, e.getMessage());
+                    LOG.debug("Attempt #{} failed to run operation, due to: {}", retries + 1, e.getMessage());
                     try {
                         Thread.sleep(backoff);
                     } catch (InterruptedException e1) {
@@ -277,7 +294,8 @@ public class SecurityGroupEditor {
             }
         }
 
-        throw new RuntimeException("Unable to add security group rule; repeated errors from provider", lastException);
+        throw new RuntimeException("Unable to run operation '" + operation + "'; repeated errors from provider",
+            lastException);
     }
 
     @Override
@@ -298,5 +316,10 @@ public class SecurityGroupEditor {
         public Boolean call() throws Exception {
             return securityApi.removeSecurityGroup(groupId);
         }
+
+        @Override
+        public String toString() {
+            return "Remove security group " + groupId;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/98f521b6/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/JcloudsLocationSecurityGroupCustomizerTest.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/JcloudsLocationSecurityGroupCustomizerTest.java b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/JcloudsLocationSecurityGroupCustomizerTest.java
index de0f02d..4333359 100644
--- a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/JcloudsLocationSecurityGroupCustomizerTest.java
+++ b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/JcloudsLocationSecurityGroupCustomizerTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.brooklyn.location.jclouds.networking;
 
-import static org.apache.brooklyn.location.jclouds.networking.SecurityGroupEditor.JCLOUDS_PREFIX;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
@@ -66,6 +65,7 @@ import org.apache.brooklyn.util.net.Cidr;
 
 public class JcloudsLocationSecurityGroupCustomizerTest {
 
+    private static final String JCLOUDS_PREFIX_AWS = "jclouds#";
     JcloudsLocationSecurityGroupCustomizer customizer;
     @Mock(answer = Answers.RETURNS_DEEP_STUBS) ComputeService computeService;
     @Mock(answer = Answers.RETURNS_SMART_NULLS) Location location;
@@ -363,8 +363,8 @@ public class JcloudsLocationSecurityGroupCustomizerTest {
 
     private SecurityGroup newGroup(String name, Set<IpPermission> ipPermissions) {
         String id = name;
-        if (!name.startsWith(JCLOUDS_PREFIX)) {
-            id = JCLOUDS_PREFIX + name;
+        if (!name.startsWith(JCLOUDS_PREFIX_AWS)) {
+            id = JCLOUDS_PREFIX_AWS + name;
         }
         URI uri = null;
         String ownerId = null;


[2/2] brooklyn-server git commit: This closes #549

Posted by dr...@apache.org.
This closes #549


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

Branch: refs/heads/master
Commit: 3f54a04ad5e14ec298e880f7c63fea2b0975a6cc
Parents: dc04cbd 98f521b
Author: Duncan Godwin <dr...@googlemail.com>
Authored: Tue Feb 7 11:39:07 2017 +0000
Committer: Duncan Godwin <dr...@googlemail.com>
Committed: Tue Feb 7 11:39:07 2017 +0000

----------------------------------------------------------------------
 .../jclouds/networking/SecurityGroupEditor.java | 35 ++++++++++++++++----
 ...oudsLocationSecurityGroupCustomizerTest.java |  6 ++--
 2 files changed, 32 insertions(+), 9 deletions(-)
----------------------------------------------------------------------