Help compiling OpenStack example with maven

663 views
Skip to first unread message

Leander

unread,
Aug 28, 2012, 10:44:51 AM8/28/12
to jcl...@googlegroups.com
Hello,

I'm having some trouble compiling the OpenStack example.

This is my source file:
package jcloud_test.jcloud_test;

import static org.jclouds.openstack.nova.options.CreateServerOptions.Builder.withFile;
import static org.jclouds.openstack.nova.options.ListOptions.Builder.*;
import org.jclouds.Constants;

/**
 * Hello world!
 *
 */
public class App
{
        public static void main( String[] args )
        {
                Properties overrides = new Properties();
                //point the JClouds to the Openstack v 1.1 API endpoint URL
                //for swift version 1.4.4 the URL is of the form: http(s)://ip:port/auth
                overrides.setProperty(Constants.PROPERTY_ENDPOINT, "https://127.0.0.1:35357/v2.0/");

                // get a context with nova that offers the portable ComputeService api
                ComputeServiceContext context = new ComputeServiceContextFactory().createContext("nova", "admin", "nova",
                                ImmutableSet.<Module> of(new JschSshClientModule()),
                                overrides);

                // when you need access to nova-specific features, use the provider-specific context
                NovaClient novaClient = NovaClient.class.cast(context.getProviderSpecificContext()
                                .getApi());

                // list the id and name of images I have access to, starting at index 200 limited to 100 results.
                List<Image> images = novaClient.listImages(startAt(0).maxResults(100));

                for (Image i : images) {
                        System.out.println(i);
                }

                context.close();

        }
}


This is my pom.xml file:
  <modelVersion>4.0.0</modelVersion>

  <groupId>jcloud-test</groupId>
  <artifactId>jcloud-test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>jcloud-test</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.jclouds</groupId>
        <artifactId>jclouds-allcompute</artifactId>
        <version>1.5.0-alpha.1</version>
   </dependency>
   <dependency>
       <groupId>org.jclouds</groupId>
       <artifactId>jclouds-allblobstore</artifactId>
       <version>1.5.0-alpha.1</version>
   </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

And these are the errors produced with mvn compile:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project jcloud-test: Compilation failure: Compilation failure:
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[15,2] cannot find symbol
[ERROR] symbol  : class Properties
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[15,29] cannot find symbol
[ERROR] symbol  : class Properties
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[21,2] cannot find symbol
[ERROR] symbol  : class ComputeServiceContext
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[22,33] cannot find symbol
[ERROR] symbol  : class JschSshClientModule
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[22,18] cannot find symbol
[ERROR] symbol  : class Module
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[22,4] cannot find symbol
[ERROR] symbol  : variable ImmutableSet
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[21,38] cannot find symbol
[ERROR] symbol  : class ComputeServiceContextFactory
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[26,2] cannot find symbol
[ERROR] symbol  : class NovaClient
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[26,26] cannot find symbol
[ERROR] symbol  : class NovaClient
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[30,2] cannot find symbol
[ERROR] symbol  : class List
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[30,7] cannot find symbol
[ERROR] symbol  : class Image
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[32,7] cannot find symbol
[ERROR] symbol  : class Image
[ERROR] location: class jcloud_test.jcloud_test.App


Any ideas? I'm not very acquainted with the maven build tools, so i'm not sure what's missing here.

Everett Toews

unread,
Aug 28, 2012, 11:54:21 AM8/28/12
to jcl...@googlegroups.com
It looks like you're missing a lot of dependencies. Have a look at http://www.jclouds.org/documentation/userguide/installation-guide/ to get everything installed properly. You'll also want to use "-beta.11" everywhere instead of "-alpha.1". beta.11 is the latest and greatest.

If that doesn't work for you, you might want to give my blog post http://blog.phymata.com/2012/08/15/getting-started-with-jclouds/ a try but substitute your own Properties as your "provider".

Hope this helps,
Everett

--
You received this message because you are subscribed to the Google Groups "jclouds" group.
To view this discussion on the web visit https://groups.google.com/d/msg/jclouds/-/0bkrVynxJj0J.
To post to this group, send email to jcl...@googlegroups.com.
To unsubscribe from this group, send email to jclouds+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/jclouds?hl=en.

Andrew Phillips

unread,
Aug 28, 2012, 12:59:01 PM8/28/12
to jcl...@googlegroups.com
Do you remember where you get this example code from? OpenStack
support has had a lot of work since 1.5.0-alpha.1, so I'm not sure
what that code is doing is very current any more.

You may be better off starting out with the OpenStack Nova invocation
of the compute-basics example [1].

Hope this helps!

ap

[1] https://github.com/jclouds/jclouds-examples/tree/master/compute-basics

Leander Bessa Beernaert

unread,
Aug 29, 2012, 8:16:16 AM8/29/12
to jcl...@googlegroups.com
I got the code from http://www.jclouds.org/documentation/quickstart/openstack/. I'll look into the example you supplied. I keep getting the same errors with manual compilation and with maven.

--
You received this message because you are subscribed to the Google Groups "jclouds" group.
To post to this group, send email to jcl...@googlegroups.com.
To unsubscribe from this group, send email to jclouds+unsubscribe@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/jclouds?hl=en.




--
Cumprimentos / Regards,
Leander

Leander Bessa Beernaert

unread,
Aug 29, 2012, 8:48:06 AM8/29/12
to jcl...@googlegroups.com
So i have updated my dependencies to the latest beta based on the pom.xml from the example code. I'm just missing a few imports which i can't seem to be able to find:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project jcloud-test: Compilation failure: Compilation failure:
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[55,38] cannot find symbol
[ERROR] symbol  : class ComputeServiceContextFactory
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[60,2] cannot find symbol
[ERROR] symbol  : class NovaClient
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[60,26] cannot find symbol
[ERROR] symbol  : class NovaClient
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[64,7] cannot find symbol
[ERROR] symbol  : class Image
[ERROR] location: class jcloud_test.jcloud_test.App
[ERROR] /home/gsd/jcloud-test/src/main/java/jcloud_test/jcloud_test/App.java:[66,7] cannot find symbol
[ERROR] symbol  : class Image
[ERROR] location: class jcloud_test.jcloud_test.App

Any ideas?

Andrew Phillips

unread,
Aug 29, 2012, 9:04:12 AM8/29/12
to jcl...@googlegroups.com
> I got the code from
> http://www.jclouds.org/documentation/quickstart/openstack/. I'll look into
> the example you supplied. I keep getting the same errors with manual
> compilation and with maven.

As that page warns, "This page is a work in progress", so I think you
might be using an outdated sample there :-( And in any case, that is a
code snippet and not a full class - as Everett pointed out, there are
many imports missing.

Can you try Everett's sample [1] or the jclouds-examples code [2] instead?

Thanks!

ap

[1] http://blog.phymata.com/2012/08/15/getting-started-with-jclouds/
[2] https://github.com/jclouds/jclouds-examples/tree/master/compute-basics

Leander Bessa Beernaert

unread,
Aug 29, 2012, 9:19:44 AM8/29/12
to jcl...@googlegroups.com
I can compile Everett's sample. However, i'm not sure how i can adapt it to my OpenStack installation.

--
You received this message because you are subscribed to the Google Groups "jclouds" group.
To post to this group, send email to jcl...@googlegroups.com.
To unsubscribe from this group, send email to jclouds+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/jclouds?hl=en.

Everett Toews

unread,
Aug 29, 2012, 9:29:45 AM8/29/12
to jcl...@googlegroups.com
In the line

ComputeServiceContext context = ContextBuilder.newBuilder(provider)
  .credentials(identity, apiKey)
  .buildView(ComputeServiceContext.class);

Add your overrides like so,

ComputeServiceContext context = ContextBuilder.newBuilder(provider)
  .credentials(identity, apiKey)
  .overrides(overrides)
  .buildView(ComputeServiceContext.class);

I haven't actually tried this yet so you may have to fiddle with the settings a bit. Please let us know how it turns out!

Everett

From: Leander Bessa Beernaert <lean...@gmail.com>
Reply-To: "jcl...@googlegroups.com" <jcl...@googlegroups.com>
Date: Wednesday, August 29, 2012 8:19 AM
To: "jcl...@googlegroups.com" <jcl...@googlegroups.com>
To unsubscribe from this group, send email to jclouds+u...@googlegroups.com.

Leander Bessa Beernaert

unread,
Aug 29, 2012, 9:30:35 AM8/29/12
to jcl...@googlegroups.com
I think i figured out how to proceed. I made these changes to the init method of Everett's sample:

private void init() {
                Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
                        public void uncaughtException(Thread t, Throwable e) {
                                e.printStackTrace();
                                System.exit(1);
                        }
                });

                String provider = "nova";
                String identity = "admin";
                String apiKey = "nova";

                ComputeServiceContext context = ContextBuilder.newBuilder(provider)
                        .credentials(identity, apiKey)
                        .endpoint("http://127.0.0.1:35357/v2.0/")
                        .buildView(ComputeServiceContext.class);
                compute = context.getComputeService();
        }

When i run the jar, the output produced is this:
Calling listNodes...
Total Number of Nodes = 0

If i'm not mistaken, a Node is the equivalent of a virtual instance. However, i have 5 instances running at the moment in my OpenStack setup. Did i do something wrong?

Leander Bessa Beernaert

unread,
Aug 29, 2012, 9:36:12 AM8/29/12
to jcl...@googlegroups.com
I tried setting the provider according to Everett's example again and this time i get this output:

Calling listNodes...
Aug 29, 2012 1:35:14 PM org.jclouds.logging.jdk.JDKLogger logError
SEVERE: Cannot retry after server error, command has exceeded retry limit 5: [method=CloudIdentityAuthenticationAsyncApi.authenticateWithTenantNameAndCredentials, request=POST http://192.168.111.220:35357/v2.0/tokens HTTP/1.1]
com.google.common.util.concurrent.UncheckedExecutionException: org.jclouds.http.HttpResponseException: command: POST http://192.168.111.220:35357/v2.0/tokens HTTP/1.1 failed with response: HTTP/1.1 500 Internal Server Error; content: [{"error": {"message": "An unexpected error prevented the server from fulfilling your request. local variable 'metadata_ref' referenced before assignment", "code": 500, "title": "Internal Server Error"}}]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:206)
at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:202)
at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:63)
at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:42)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:91)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:72)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:140)
at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:48)
at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:36)
at org.jclouds.util.Suppliers2$SupplierComposition.get(Suppliers2.java:160)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:91)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:72)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:140)
at org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter.listNodes(NovaComputeServiceAdapter.java:196)
at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listDetailsOnNodesMatching(AdaptingComputeServiceStrategies.java:115)
at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listNodes(AdaptingComputeServiceStrategies.java:110)
at org.jclouds.compute.internal.BaseComputeService.listNodes(BaseComputeService.java:342)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
at $Proxy71.listNodes(Unknown Source)
at JCloudsTest.listServers(JCloudsTest.java:22)
at JCloudsTest.main(JCloudsTest.java:15)
Caused by: org.jclouds.http.HttpResponseException: command: POST http://192.168.111.220:35357/v2.0/tokens HTTP/1.1 failed with response: HTTP/1.1 500 Internal Server Error; content: [{"error": {"message": "An unexpected error prevented the server from fulfilling your request. local variable 'metadata_ref' referenced before assignment", "code": 500, "title": "Internal Server Error"}}]
at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:48)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:71)
at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.shouldContinue(BaseHttpCommandExecutorService.java:197)
at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:167)
at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:135)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at org.jclouds.concurrent.config.DescribingExecutorService.submit(DescribingExecutorService.java:89)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.submit(BaseHttpCommandExecutorService.java:132)
at org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.submit(TransformingHttpCommandExecutorServiceImpl.java:54)
at org.jclouds.http.TransformingHttpCommandImpl.execute(TransformingHttpCommandImpl.java:73)
at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFutureForHttpRequestMappedToMethodAndArgs(AsyncRestClientProxy.java:248)
at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:148)
at $Proxy57.authenticateWithTenantNameAndCredentials(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:164)
at $Proxy58.authenticateWithTenantNameAndCredentials(Unknown Source)
at org.jclouds.rackspace.cloudidentity.v2_0.functions.AuthenticateApiKeyCredentials.authenticateWithTenantName(AuthenticateApiKeyCredentials.java:51)
at org.jclouds.rackspace.cloudidentity.v2_0.functions.AuthenticateApiKeyCredentials.authenticateWithTenantName(AuthenticateApiKeyCredentials.java:39)
at org.jclouds.openstack.keystone.v2_0.functions.internal.BaseAuthenticator.apply(BaseAuthenticator.java:81)
at org.jclouds.openstack.keystone.v2_0.functions.internal.BaseAuthenticator.apply(BaseAuthenticator.java:36)
at org.jclouds.concurrent.RetryOnTimeOutExceptionFunction.apply(RetryOnTimeOutExceptionFunction.java:49)
at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:146)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:206)
at org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule$2.get(KeystoneAuthenticationModule.java:202)
at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:63)
at org.jclouds.openstack.keystone.v2_0.suppliers.LocationIdToURIFromAccessForTypeAndVersion.get(LocationIdToURIFromAccessForTypeAndVersion.java:42)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:91)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:72)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:140)
at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:48)
at org.jclouds.location.suppliers.derived.ZoneIdsFromZoneIdToURIKeySet.get(ZoneIdsFromZoneIdToURIKeySet.java:36)
at org.jclouds.util.Suppliers2$SupplierComposition.get(Suppliers2.java:160)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:91)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier$SetAndThrowAuthorizationExceptionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:72)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.java:140)
at org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter.listNodes(NovaComputeServiceAdapter.java:196)
at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listDetailsOnNodesMatching(AdaptingComputeServiceStrategies.java:115)
at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.listNodes(AdaptingComputeServiceStrategies.java:110)
at org.jclouds.compute.internal.BaseComputeService.listNodes(BaseComputeService.java:342)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
at $Proxy71.listNodes(Unknown Source)
at JCloudsTest.listServers(JCloudsTest.java:22)
at JCloudsTest.main(JCloudsTest.java:15)
at org.jclouds.concurrent.config.DescribingExecutorService.submit(DescribingExecutorService.java:89)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.submit(BaseHttpCommandExecutorService.java:132)
at org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.submit(TransformingHttpCommandExecutorServiceImpl.java:54)
at org.jclouds.http.TransformingHttpCommandImpl.execute(TransformingHttpCommandImpl.java:73)
at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFutureForHttpRequestMappedToMethodAndArgs(AsyncRestClientProxy.java:248)
at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:148)
at $Proxy57.authenticateWithTenantNameAndCredentials(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:164)
at $Proxy58.authenticateWithTenantNameAndCredentials(Unknown Source)
at org.jclouds.rackspace.cloudidentity.v2_0.functions.AuthenticateApiKeyCredentials.authenticateWithTenantName(AuthenticateApiKeyCredentials.java:51)
at org.jclouds.rackspace.cloudidentity.v2_0.functions.AuthenticateApiKeyCredentials.authenticateWithTenantName(AuthenticateApiKeyCredentials.java:39)
at org.jclouds.openstack.keystone.v2_0.functions.internal.BaseAuthenticator.apply(BaseAuthenticator.java:81)
at org.jclouds.openstack.keystone.v2_0.functions.internal.BaseAuthenticator.apply(BaseAuthenticator.java:36)
at org.jclouds.concurrent.RetryOnTimeOutExceptionFunction.apply(RetryOnTimeOutExceptionFunction.java:49)
at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:146)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)

Everett Toews

unread,
Aug 29, 2012, 9:47:25 AM8/29/12
to jcl...@googlegroups.com
Are you saying that you set 

String provider = "rackspace-cloudservers-us";
String identity = "admin";
String apiKey = "nova";

But you still have the context

ComputeServiceContext context = ContextBuilder.newBuilder(provider)
  .credentials(identity, apiKey)
  .buildView(ComputeServiceContext.class);
compute = context.getComputeService();

That setup wouldn't work.

Can you please create a public gist at https://gist.github.com/ so we can see your complete code?

Thanks,
Everett
 

From: Leander Bessa Beernaert <lean...@gmail.com>
Reply-To: "jcl...@googlegroups.com" <jcl...@googlegroups.com>
Date: Wednesday, August 29, 2012 8:36 AM
To: "jcl...@googlegroups.com" <jcl...@googlegroups.com>
Subject: Re: Help compiling OpenStack example with maven

To unsubscribe from this group, send email to jclouds+u...@googlegroups.com.

Leander Bessa Beernaert

unread,
Aug 29, 2012, 9:50:32 AM8/29/12
to jcl...@googlegroups.com

Everett Toews

unread,
Aug 29, 2012, 10:18:10 AM8/29/12
to jcl...@googlegroups.com
Yep. As I suspect you've got

String provider = "rackspace-cloudservers-us";

along with


This wouldn't work because you're effectively telling jclouds to use the Rackspace public cloud but with a local private endpoint.

Try this

String provider = "openstack-nova";

and keep your endpoint the same. Hopefully that will display the servers you have running in your local private cloud.

Leander Bessa Beernaert

unread,
Aug 29, 2012, 10:30:58 AM8/29/12
to jcl...@googlegroups.com
Where can i set the tenant name. Should i use the Properties object?

com.google.common.util.concurrent.UncheckedExecutionException: java.lang.NullPointerException: tenant
Caused by: java.lang.NullPointerException: tenant
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:208)
at org.jclouds.openstack.keystone.v2_0.domain.Token.<init>(Token.java:112)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeWithParameterizedConstructorSerializeWithDelegate.newInstance(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:219)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeWithParameterizedConstructorSerializeWithDelegate.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:198)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$ParameterReader.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:245)
at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory$DeserializeWithParameterizedConstructorSerializeWithDelegate.read(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:181)
at com.google.gson.Gson.fromJson(Gson.java:791)
at org.jclouds.http.functions.ParseFirstJsonValueNamed.apply(ParseFirstJsonValueNamed.java:81)
at org.jclouds.http.functions.ParseFirstJsonValueNamed.apply(ParseFirstJsonValueNamed.java:48)
at com.google.common.util.concurrent.Futures$3.apply(Futures.java:376)
at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:518)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Everett Toews

unread,
Aug 29, 2012, 10:48:16 AM8/29/12
to jcl...@googlegroups.com
That's kind of a tricky one. Looking at 

Ex. for your own OpenStack Nova

from


It looks like you would do something like,

String identity = "<your-tenantId>:<your-user>";

Note that it's your tenant ID, not your tenant name (but if tenant ID doesn't work, try tenant name anyway ;). Also note the : between the tenant  and user. Give that a try.

Leander Bessa Beernaert

unread,
Aug 29, 2012, 10:51:46 AM8/29/12
to jcl...@googlegroups.com
Ok. I've managed to get it working identity should be "[user]:[tenant name]".

Thanks for the help.

Adrian Cole

unread,
Aug 29, 2012, 11:28:25 AM8/29/12
to jcl...@googlegroups.com

Guys, technically it is tenantname:username :)

Hopefully, a doc update is on the way.

Ttfn,
-A

Andrew Phillips

unread,
Aug 29, 2012, 11:34:20 AM8/29/12
to jcl...@googlegroups.com
Quoting Leander Bessa Beernaert <lean...@gmail.com>:

> I can compile Everett's sample. However, i'm not sure how i can adapt it to
> my OpenStack installation.

The first thing you will need to do is set the

String provider = "rackspace-cloudservers-us";
String identity = "my-username";
String apiKey = "my-api-key";

variables to match your installation. If you're using Nova, the
provider will be "nova", if I recall correctly (someone will hopefully
correct me if I'm wrong).

If you're not using a public provider, you'll probably also need to
set some additional properties:

Properties overrides = new Properties();
overrides.setProperty(Constants.PROPERTY_ENDPOINT, endPoint);
overrides.setProperty(PROPERTY_API_VERSION, "1.1");
// you might need these too
overrides.setProperty(Constants.PROPERTY_TRUST_ALL_CERTS, "true");
overrides.setProperty(Constants.PROPERTY_RELAX_HOSTNAME, "true");

You can then pass the overrides to the context builder [1] - note that
you can also set the endpoint and API version on the builder without
needing overrides.

Hope this will get you a step further. Also, could you provide some
details about your OpenStack installation, such as which version(s)
you are running?

Thanks

ap

[1]
http://javadocs.jclouds.cloudbees.net/org/jclouds/ContextBuilder.html#overrides(java.util.Properties)

Adrian Cole

unread,
Aug 29, 2012, 11:36:28 AM8/29/12
to jcl...@googlegroups.com

Hey, Andrew.

"nova" is pre-keystone, so a dwindling number of folks will use that.  "openstack-"X is the latest convention.  Ex. openstack-nova

-A

Andrew Phillips

unread,
Aug 29, 2012, 5:11:25 PM8/29/12
to jcl...@googlegroups.com
Thanks for the correction! I knew The Community would come to the rescue ;-)

ap

Everett Toews

unread,
Sep 3, 2012, 10:18:40 PM9/3/12
to jcl...@googlegroups.com
To summarize all of the fun we had, I wrote this up in a blog post at


If I made any errors, please let me know!

Everett
Thanks for the help.

Adrian Cole

unread,
Sep 4, 2012, 11:01:05 AM9/4/12
to jcl...@googlegroups.com

Thanks! Tweeted it.

-A

To view this discussion on the web visit https://groups.google.com/d/msg/jclouds/-/Fum0ndqMb3cJ.
Reply all
Reply to author
Forward
0 new messages