You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2017/08/09 10:26:12 UTC
[2/2] jclouds git commit: JCLOUDS-1323: use security group names in
openstack nova options
JCLOUDS-1323: use security group names in openstack nova options
- fix NovaComputeServiceExpectTest
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/7c58f9d7
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/7c58f9d7
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/7c58f9d7
Branch: refs/heads/master
Commit: 7c58f9d77d048442ede9e3f52c1af18cde5e1696
Parents: c61fa9d
Author: Andrea Turli <an...@gmail.com>
Authored: Sun Aug 6 16:57:09 2017 +0200
Committer: Andrea Turli <an...@gmail.com>
Committed: Wed Aug 9 12:25:53 2017 +0200
----------------------------------------------------------------------
...eNodesWithGroupEncodedIntoNameThenAddToSet.java | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/7c58f9d7/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
index 673781c..5f747e6 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/strategy/ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
@@ -18,6 +18,7 @@ package org.jclouds.openstack.nova.v2_0.compute.strategy;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
import java.util.List;
import java.util.Map;
@@ -43,6 +44,7 @@ import org.jclouds.openstack.nova.v2_0.compute.functions.AllocateAndAddFloatingI
import org.jclouds.openstack.nova.v2_0.compute.options.NodeAndNovaTemplateOptions;
import org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions;
import org.jclouds.openstack.nova.v2_0.domain.KeyPair;
+import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup;
import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndName;
import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionSecurityGroupNameAndPorts;
import org.jclouds.openstack.nova.v2_0.domain.regionscoped.SecurityGroupInRegion;
@@ -52,6 +54,7 @@ import com.google.common.base.Strings;
import com.google.common.base.Throwables;
import com.google.common.cache.LoadingCache;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Multimap;
import com.google.common.primitives.Ints;
import com.google.common.util.concurrent.Atomics;
@@ -92,7 +95,7 @@ public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddT
Map<NodeMetadata, Exception> badNodes, Multimap<NodeMetadata, CustomizationResponse> customizationResponses) {
NovaTemplateOptions templateOptions = NovaTemplateOptions.class.cast(template.getOptions());
- String region = template.getLocation().getId();
+ final String region = template.getLocation().getId();
if (templateOptions.shouldAutoAssignFloatingIp()) {
checkArgument(novaApi.getFloatingIPApi(region).isPresent(),
@@ -104,7 +107,7 @@ public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddT
"Key Pairs are required by options, but the extension is not available! options: %s", templateOptions);
}
- List<Integer> inboundPorts = Ints.asList(templateOptions.getInboundPorts());
+ final List<Integer> inboundPorts = Ints.asList(templateOptions.getInboundPorts());
if (!templateOptions.getGroups().isEmpty() || !inboundPorts.isEmpty()) {
checkArgument(novaApi.getSecurityGroupApi(region).isPresent(),
"Security groups are required by options, but the extension is not available! options: %s",
@@ -129,8 +132,16 @@ public class ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddT
ImmutableList.Builder<String> tagsBuilder = ImmutableList.builder();
if (!templateOptions.getGroups().isEmpty()) {
+ Set<String> securityGroupNames = novaApi.getSecurityGroupApi(region).get().list()
+ .transform(new Function<SecurityGroup, String>() {
+ @Override
+ public String apply(SecurityGroup input) {
+ return input.getName();
+ }
+ })
+ .toSet();
for (String securityGroupName : templateOptions.getGroups()) {
- checkNotNull(novaApi.getSecurityGroupApi(region).get().get(securityGroupName), "security group %s doesn't exist", securityGroupName);
+ checkState(securityGroupNames.contains(securityGroupName), "Cannot find security group with name " + securityGroupName + ". \nSecurity groups available are: \n" + Iterables.toString(securityGroupNames)); // {
}
}
else if (!inboundPorts.isEmpty()) {