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

Reply via email to