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(-)
----------------------------------------------------------------------