[
https://issues.apache.org/jira/browse/JCLOUDS-1393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ignasi Barrera updated JCLOUDS-1393:
------------------------------------
Issue Type: Bug (was: New Feature)
> Error creating servers in Rackspace
> -----------------------------------
>
> Key: JCLOUDS-1393
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1393
> Project: jclouds
> Issue Type: Bug
> Components: jclouds-compute
> Affects Versions: 2.1.0
> Reporter: Ignasi Barrera
> Priority: Major
> Labels: rackspace-cloudnetworks-uk, rackspace-cloudnetworks-us,
> rackspace-cloudservers-uk, rackspace-cloudservers-us
>
> Deploying servers in Rackspace fails because jclouds attempts to use the Nova
> legacy API to create the related security groups, and the API is no longer
> available:
> {code:java}
> Caused by: java.lang.IllegalArgumentException: Security groups are required,
> but the extension is not available in region IAD!
> at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
> ~[guava-18.0.jar:na]
> at
> org.jclouds.openstack.nova.v2_0.compute.functions.CreateSecurityGroupIfNeeded.apply(CreateSecurityGroupIfNeeded.java:101)
> ~[openstack-nova-2.1.0.jar:2.1.0]
> at
> org.jclouds.openstack.nova.v2_0.compute.functions.CreateSecurityGroupIfNeeded.apply(CreateSecurityGroupIfNeeded.java:57)
> ~[openstack-nova-2.1.0.jar:2.1.0]
> at
> org.jclouds.openstack.nova.v2_0.compute.loaders.FindSecurityGroupOrCreate.createNewSecurityGroup(FindSecurityGroupOrCreate.java:52)
> ~[openstack-nova-2.1.0.jar:2.1.0]
> at
> org.jclouds.openstack.nova.v2_0.compute.loaders.FindSecurityGroupOrCreate.load(FindSecurityGroupOrCreate.java:43)
> ~[openstack-nova-2.1.0.jar:2.1.0]
> at
> org.jclouds.openstack.nova.v2_0.compute.loaders.FindSecurityGroupOrCreate.load(FindSecurityGroupOrCreate.java:31)
> ~[openstack-nova-2.1.0.jar:2.1.0]
> at
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
> ~[guava-18.0.jar:na]
> at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
> ~[guava-18.0.jar:na]
> at
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
> ~[guava-18.0.jar:na]
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
> ~[guava-18.0.jar:na]
> ... 35 common frames omitted{code}
> There is a workaround to configure it to internally use the Neutron API (see
> [this blog post|http://jclouds.apache.org/blog/2018/02/06/nova-neutron/] for
> details). It can be applied as follows when creating the Rackspace context:
> {code}
> Context neutronContext =
> ContextBuilder.newBuilder("rackspace-cloudnetworks-us")
> .credentials("username", "api-key")
> .overrides(<your custom properties>)
> .modules(<your cusrom modules>)
> .build();
> Module neutronLink = ContextLinking.linkContext("openstack-neutron",
> Suppliers.ofInstance(neutronContext));
> ComputeServiceContext rackspace =
> ContextBuilder.newBuilder("rackspace-cloudservers-us")
> .credentials("username", "api-key")
> .overrides(<your custom properties>)
> .modules(ImmutableSet.of(neutronLink, <your cusrom modules>))
> .buidView(ComputeServiceContext.class);
> {code}
> However, since the {{cloudservers}} and {{cloudnetworks}} providers will
> always have the same configuration, jclouds should configure it by default,
> transparently, when creating a {{cloudservers}} context.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)