Message from discussion
Exposing/Extending an OpenStack specific command
Received: by 10.50.213.99 with SMTP id nr3mr6510170igc.2.1352743888845;
Mon, 12 Nov 2012 10:11:28 -0800 (PST)
X-BeenThere: jclouds-dev@googlegroups.com
Received: by 10.42.51.79 with SMTP id d15ls14692790icg.9.gmail; Mon, 12 Nov
2012 10:11:27 -0800 (PST)
Received: by 10.43.84.4 with SMTP id ai4mr1281538icc.22.1352743887935;
Mon, 12 Nov 2012 10:11:27 -0800 (PST)
Received: by 10.43.84.4 with SMTP id ai4mr1281536icc.22.1352743887916;
Mon, 12 Nov 2012 10:11:27 -0800 (PST)
Return-Path: <fernc...@gmail.com>
Received: from mail-ob0-f173.google.com (mail-ob0-f173.google.com [209.85.214.173])
by gmr-mx.google.com with ESMTPS id wu4si1230456igb.3.2012.11.12.10.11.27
(version=TLSv1/SSLv3 cipher=OTHER);
Mon, 12 Nov 2012 10:11:27 -0800 (PST)
Received-SPF: pass (google.com: domain of fernc...@gmail.com designates 209.85.214.173 as permitted sender) client-ip=209.85.214.173;
Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of fernc...@gmail.com designates 209.85.214.173 as permitted sender) smtp.mail=fernc...@gmail.com; dkim=pass header...@gmail.com
Received: by mail-ob0-f173.google.com with SMTP id x4so704262obh.32
for <jclouds-dev@googlegroups.com>; Mon, 12 Nov 2012 10:11:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:sender:in-reply-to:references:date
:x-google-sender-auth:message-id:subject:from:to:content-type
:content-transfer-encoding;
bh=QApplQ11ZT0h6VjkhJ9o60fUgP8k22gkhAmFoJnr6cM=;
b=tiVj9rxJOSESHzNWCrsjq+p0XefzYb/vqU6lH1F/+Q6ZR2AMAE5nqXzQ7QDo0ag5DY
QQDYAM3r1jjcph/7AmPY9gjxJ8t1cMKaPWxsAtYIZO8ci618vaKC7L8cHL8huoYw90Xp
K1oX82p7Ut96gjJYmz1Iz/z++Ndq9wCMLBZnHQ7s5ta6+VQLpVHdw3r7J3VFyU3Hvas8
YPvoaaFrXwJbf6MrvbW92DBkDFdTpnCj5N7yaVSngjYc5hWomYkGftiOcKaWnfv0cQyE
+J8xMzxC2px70pIMYmFQzgIxm9I8nSf2TO/ZLsaLZl31OMRTwcuiwS6+yy2xm96q44NX
6AoQ==
MIME-Version: 1.0
Received: by 10.60.172.148 with SMTP id bc20mr15039270oec.141.1352743887437;
Mon, 12 Nov 2012 10:11:27 -0800 (PST)
Sender: fernc...@gmail.com
Received: by 10.76.172.169 with HTTP; Mon, 12 Nov 2012 10:11:27 -0800 (PST)
In-Reply-To: <CAO0GxJuFEL6iQzsrzyQvDs10rDE_zEonRttbx49V=heZhg9...@mail.gmail.com>
References: <e5ba8aa9-2ed2-4d32-ad38-bf9e16266e3f@googlegroups.com>
<CAARMrHWqaqKG-QHun9aQGpJs-NF4Ymt5aTH1DGTSXzQaL6N...@mail.gmail.com>
<CAO0GxJthWcLcNioo9=1JovvsG2BCuBWER2g8TjyosZT66rf...@mail.gmail.com>
<CAARMrHWnjcAO_4xQm6AGnvYkspfixY-akJyYQ9Sajg3-6zm...@mail.gmail.com>
<3f88066f-7cd5-4d20-ba30-1c269bfda2e4@googlegroups.com>
<CAO0GxJuf1MOVh-7K-Rq-3ysmCqMw7Oe5p3ZaahEbS_=q+WE...@mail.gmail.com>
<CAE77fP2Fjvybzmtz6B-zXHWO+Zx0uSNq1eyDOw_WiEb2uM4...@mail.gmail.com>
<CAO0GxJv-omNUGj5QDj4-+NzpJk6O_X40nV1+HKGOKHzh9H0...@mail.gmail.com>
<CAE77fP0qKZye9xBmNc3t+wdDC3xG-VgNiSYca_fj1-r0O4j...@mail.gmail.com>
<CAO0GxJsKEKtb=x+p0_zOBanV2uKnXkaWC5OUXR87kBH92g9...@mail.gmail.com>
<CAO0GxJtCsDmMMy-VA6Mz92-+7NeHZic5ZUquU+xfaZtYjBY...@mail.gmail.com>
<c7d07dad-bdf4-44db-9a03-87cd299f6099@googlegroups.com>
<CAARMrHVnOwiuVoeKBpfzMFcN5ZO+b=v8LDvPt6OGuGHc32Z...@mail.gmail.com>
<CAO0GxJtz-34A+BU6ruekppqJqq82RCN+ryi5Y4r8qvsq+TM...@mail.gmail.com>
<CAARMrHXen59oWN3DV1+eNxSG+haCY4ZkpDmZRRq30YJs33o...@mail.gmail.com>
<CAO0GxJuFzz+mwT_jZu5XLap6Upo5iFqSE4WgryFApU3Txhv...@mail.gmail.com>
<CAARMrHV7+Z2YA6BROMSAHPZgo_Gxevp+a4J15fvyj1+BbC8...@mail.gmail.com>
<CAO0GxJuMvSdNLta+VEy7xo-xnw1NK36QimiwdJZSDZMs=VE...@mail.gmail.com>
<CAARMrHUtjVzj8H_X8=xyOAnSQkWUBytp-c1FPdF0apNoz0h...@mail.gmail.com>
<CAO0GxJuFEL6iQzsrzyQvDs10rDE_zEonRttbx49V=heZhg9...@mail.gmail.com>
Date: Mon, 12 Nov 2012 10:11:27 -0800
Message-ID: <CAARMrHU1t4JVi2Lz-ZruQoO+B6xWTTtcTR4DkrPK5484rKr...@mail.gmail.com>
Subject: Re: Exposing/Extending an OpenStack specific command
From: Adrian Cole <adrian.f.c...@gmail.com>
To: jclouds-dev@googlegroups.com
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
ok. will look out for you then, dude.
On Mon, Nov 12, 2012 at 9:44 AM, Leander Bessa Beernaert
<leande...@gmail.com> wrote:
> I tried to running the test on the compute-nova only, however I can't fin=
d
> the describe file in the target directory. Is that file generated only wh=
en
> global project is built?
>
> I still haven't made any test methods, I wast just testing it out in some
> existing code. I'll see if I can prep a test method tomorrow.
>
>
> On Mon, Nov 12, 2012 at 5:35 PM, Adrian Cole <adrian.f.c...@gmail.com>
> wrote:
>>
>> If you run the live test for the method you just created in your ide
>> (eclipse or whatever) then it will create the jclouds-wire.log which wil=
l
>> show details that will help isolate the problem.
>>
>> -A
>>
>> On Nov 12, 2012 9:23 AM, "Leander Bessa Beernaert" <leande...@gmail.com>
>> wrote:
>>>
>>> Very well, anything I can do about the problem with the new method in t=
he
>>> mean time?
>>>
>>>
>>> On Mon, Nov 12, 2012 at 5:21 PM, Adrian Cole <adrian.f.c...@gmail.com>
>>> wrote:
>>>>
>>>> P.s. I verified same failure as you had on my mac using jdk 7. Skip
>>>> tests for now, and will fix in the next day or two.
>>>>
>>>> On Nov 12, 2012 9:16 AM, "Leander Bessa Beernaert" <leande...@gmail.co=
m>
>>>> wrote:
>>>>>
>>>>> This is what happend after trying mvn install with jdk 1.6 :/
>>>>>
>>>>> ests run: 341, Failures: 4, Errors: 0, Skipped: 0, Time elapsed: 32.6=
15
>>>>> sec <<< FAILURE!
>>>>>
>>>>> testGetExtensionByAliasWhenResponseIs2xx(org.jclouds.openstack.nova.v=
2_0.features.ExtensionApiExpectTest)
>>>>> Time elapsed: 0.115 sec <<< FAILURE!
>>>>> java.lang.RuntimeException: Uncompilable source code - Erroneous tree
>>>>> type: <any>
>>>>> at
>>>>> org.jclouds.openstack.nova.v2_0.features.ExtensionApiExpectTest.testG=
etExtensionByAliasWhenResponseIs2xx(ExtensionApiExpectTest.java:95)
>>>>>
>>>>>
>>>>> testGetExtensionByAliasWhenResponseIs404(org.jclouds.openstack.nova.v=
2_0.features.ExtensionApiExpectTest)
>>>>> Time elapsed: 0.184 sec <<< FAILURE!
>>>>> java.lang.RuntimeException: Uncompilable source code - Erroneous tree
>>>>> type: <any>
>>>>> at
>>>>> org.jclouds.openstack.nova.v2_0.features.ExtensionApiExpectTest.testG=
etExtensionByAliasWhenResponseIs404(ExtensionApiExpectTest.java:113)
>>>>>
>>>>>
>>>>> testListExtensionsWhenResponseIs2xx(org.jclouds.openstack.nova.v2_0.f=
eatures.ExtensionApiExpectTest)
>>>>> Time elapsed: 0.184 sec <<< FAILURE!
>>>>> java.lang.RuntimeException: Uncompilable source code - Erroneous tree
>>>>> type: <any>
>>>>> at
>>>>> org.jclouds.openstack.nova.v2_0.features.ExtensionApiExpectTest.testL=
istExtensionsWhenResponseIs2xx(ExtensionApiExpectTest.java:59)
>>>>>
>>>>>
>>>>> testListExtensionsWhenReponseIs404IsEmpty(org.jclouds.openstack.nova.=
v2_0.features.ExtensionApiExpectTest)
>>>>> Time elapsed: 0.19 sec <<< FAILURE!
>>>>> java.lang.RuntimeException: Uncompilable source code - Erroneous tree
>>>>> type: <any>
>>>>> at
>>>>> org.jclouds.openstack.nova.v2_0.features.ExtensionApiExpectTest.testL=
istExtensionsWhenReponseIs404IsEmpty(ExtensionApiExpectTest.java:76)
>>>>>
>>>>>
>>>>> Results :
>>>>>
>>>>> Failed tests:
>>>>> testGetExtensionByAliasWhenResponseIs2xx(org.jclouds.openstack.nova.v=
2_0.features.ExtensionApiExpectTest):
>>>>> Uncompilable source code - Erroneous tree type: <any>
>>>>>
>>>>> testGetExtensionByAliasWhenResponseIs404(org.jclouds.openstack.nova.v=
2_0.features.ExtensionApiExpectTest):
>>>>> Uncompilable source code - Erroneous tree type: <any>
>>>>>
>>>>> testListExtensionsWhenResponseIs2xx(org.jclouds.openstack.nova.v2_0.f=
eatures.ExtensionApiExpectTest):
>>>>> Uncompilable source code - Erroneous tree type: <any>
>>>>>
>>>>> testListExtensionsWhenReponseIs404IsEmpty(org.jclouds.openstack.nova.=
v2_0.features.ExtensionApiExpectTest):
>>>>> Uncompilable source code - Erroneous tree type: <any>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Nov 12, 2012 at 4:55 PM, Adrian Cole <adrian.f.c...@gmail.com=
>
>>>>> wrote:
>>>>>>
>>>>>> Hi, Leander.
>>>>>>
>>>>>> Switch your java home to 1.6 and see if you still get build fail.
>>>>>>
>>>>>> When you run live test, you should see the following log:
>>>>>>
>>>>>> target/test-data/jclouds-wire.log
>>>>>>
>>>>>> You only need to send the relevant section with diagnostics in it.
>>>>>>
>>>>>> Cheers,
>>>>>> -A
>>>>>> p.s. I'm not on freenode #jclouds now, but others might be
>>>>>>
>>>>>> On Nov 12, 2012 8:21 AM, "Leander Bessa Beernaert"
>>>>>> <leande...@gmail.com> wrote:
>>>>>>>
>>>>>>> mvn version:
>>>>>>>
>>>>>>> Apache Maven 3.0.3 (r1075438; 2011-02-28 17:31:09+0000)
>>>>>>> Maven home: /usr/share/maven
>>>>>>> Java version: 1.7.0_07, vendor: Oracle Corporation
>>>>>>> Java home:
>>>>>>> /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre
>>>>>>> Default locale: en_US, platform encoding: UTF-8
>>>>>>> OS name: "mac os x", version: "10.7.5", arch: "x86_64", family: "ma=
c"
>>>>>>>
>>>>>>>
>>>>>>> Where can I find those files?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Nov 12, 2012 at 4:17 PM, Adrian Cole
>>>>>>> <adrian.f.c...@gmail.com> wrote:
>>>>>>>>
>>>>>>>> Hi, there.
>>>>>>>>
>>>>>>>> Can you send us the output of 'jclouds.headers' and 'jclouds.wire'
>>>>>>>> log categories set to debug?
>>>>>>>>
>>>>>>>> This will help us understand why you always get null.
>>>>>>>>
>>>>>>>> -A
>>>>>>>>
>>>>>>>> On Nov 12, 2012 8:07 AM, "Leander" <leande...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> I've managed to install it while disable test execution. Now I'm
>>>>>>>>> trying to get the diagnostics call to work.
>>>>>>>>>
>>>>>>>>> So far I have the following:
>>>>>>>>>
>>>>>>>>> in org.jclouds.openstack.nova.v2_0.features.ServerAsyncApi:
>>>>>>>>> @GET
>>>>>>>>> @Path("/servers/{id}/diagnostics")
>>>>>>>>> @Produces(MediaType.APPLICATION_JSON)
>>>>>>>>> @ResponseParser(DiagnosticsOrNull.class)
>>>>>>>>> @ExceptionParser(ReturnNullOnNotFoundOr404.class)
>>>>>>>>> ListenableFuture<String> getDiagnostics(@PathParam("id") Strin=
g
>>>>>>>>> id);
>>>>>>>>>
>>>>>>>>> In org.jclouds.openstack.nova.v2_0.features.ServerApi:
>>>>>>>>> String getDiagnostics(String id);
>>>>>>>>>
>>>>>>>>> And
>>>>>>>>> org.jclouds.openstack.nova.v2_0.functions.internal.DiagnosticsOrN=
ull:
>>>>>>>>> @Singleton
>>>>>>>>> public class DiagnosticsOrNull implements Function<HttpResponse,
>>>>>>>>> String> {
>>>>>>>>>
>>>>>>>>> @Override
>>>>>>>>> public String apply(HttpResponse f) {
>>>>>>>>> System.out.println("DiagnosticsOrNull:" +f);
>>>>>>>>> if (f.getStatusCode() !=3D 500) {
>>>>>>>>> return f.getMessage();
>>>>>>>>> } else {
>>>>>>>>> return null;
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> When i try the code below, ret is always null and the above print
>>>>>>>>> does not occur. Any ideas of what I might be doing wrong?
>>>>>>>>>
>>>>>>>>> RestContext<NovaApi, NovaAsyncApi> nova =3D context.unwrap();
>>>>>>>>> String ret
>>>>>>>>> =3Dnova.getApi().getServerApiForZone("nova").getDiagnostics(id);
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>>
>>>>>>>>> Leaner
>>>>>>>>> On Monday, 12 November 2012 11:53:35 UTC, Leander wrote:
>>>>>>>>>>
>>>>>>>>>> Small update, the tests work with mvn clean test but fail when i
>>>>>>>>>> try mvn install.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Nov 12, 2012 at 11:10 AM, Leander Bessa Beernaert
>>>>>>>>>> <leande...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> I've been sidetracked for a while, but now i'm back to resolvin=
g
>>>>>>>>>>> this issue.
>>>>>>>>>>>
>>>>>>>>>>> There is another problem i'm currently facing. I've forked
>>>>>>>>>>> JClouds on GitHub so that I can later push these changes back t=
o it.
>>>>>>>>>>> However, I can seem to compile it or install it.
>>>>>>>>>>>
>>>>>>>>>>> It hangs at this error:
>>>>>>>>>>> Tests run: 753, Failures: 1, Errors: 0, Skipped: 0, Time elapse=
d:
>>>>>>>>>>> 55.663 sec <<< FAILURE!
>>>>>>>>>>>
>>>>>>>>>>> testEventBusIsSingleton(org.jclouds.events.config.EventBusModul=
eTest) Time
>>>>>>>>>>> elapsed: 0.001 sec <<< FAILURE!
>>>>>>>>>>> java.lang.AssertionError: expected [true] but found [false]
>>>>>>>>>>> at org.testng.Assert.fail(Assert.java:94)
>>>>>>>>>>> at org.testng.Assert.failNotEquals(Assert.java:494)
>>>>>>>>>>> at org.testng.Assert.assertTrue(Assert.java:42)
>>>>>>>>>>> at org.testng.Assert.assertTrue(Assert.java:52)
>>>>>>>>>>> at
>>>>>>>>>>> org.jclouds.events.config.EventBusModuleTest.testEventBusIsSing=
leton(EventBusModuleTest.java:77)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Also, since i'm a bit inexperienced with Maven, how can tell a
>>>>>>>>>>> test project to use my version of JClouds instead of the stable=
one I'm
>>>>>>>>>>> currently using?
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>>
>>>>>>>>>>> Leander
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Oct 18, 2012 at 12:51 PM, Richard Downer
>>>>>>>>>>> <richard.dow...@cloudsoftcorp.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> I think that something for @ExceptionParser is what you need.
>>>>>>>>>>>> Create a class that implements Function<Exception, Object> (my=
guess is that
>>>>>>>>>>>> org.jclouds.openstack.nova.v2_0.functions is the right package=
for it to
>>>>>>>>>>>> belong), and change the @ExceptionParser annotation to refer t=
o your new
>>>>>>>>>>>> class.
>>>>>>>>>>>>
>>>>>>>>>>>> Richard.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 18 October 2012 11:46, Leander Bessa Beernaert
>>>>>>>>>>>> <leande...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks, for the info. It turned out to be surprisingly easy :=
D.
>>>>>>>>>>>>>
>>>>>>>>>>>>> However, I'm trying to get around something. This OpenStack
>>>>>>>>>>>>> command may not be supported on certain hypervisors. How can =
i make it so
>>>>>>>>>>>>> that it gracefully handle the http error 500. I currently hav=
e the following
>>>>>>>>>>>>> in ServerAsyncApi.java:
>>>>>>>>>>>>>
>>>>>>>>>>>>> @GET
>>>>>>>>>>>>>
>>>>>>>>>>>>> @Path("/servers/{id}/diagnostics")
>>>>>>>>>>>>>
>>>>>>>>>>>>> @Consumes(MediaType.APPLICATION_JSON)
>>>>>>>>>>>>>
>>>>>>>>>>>>> @ExceptionParser(MapHttp4xxCodesToExceptions.class)
>>>>>>>>>>>>>
>>>>>>>>>>>>> ListenableFuture<String> getDiagnostics(@PathParam("id") Stri=
ng
>>>>>>>>>>>>> id);
>>>>>>>>>>>>>
>>>>>>>>>>>>> Since it isn't supported on my current OpenStack Install, it
>>>>>>>>>>>>> produces the error 500 and the output below is slightly diffe=
rent . Is this
>>>>>>>>>>>>> expected?
>>>>>>>>>>>>>
>>>>>>>>>>>>> [i/o thread 0] ERROR
>>>>>>>>>>>>> org.jclouds.http.handlers.BackoffLimitedRetryHandler - Cannot=
retry after
>>>>>>>>>>>>> server error, command has exceeded retry limit 5:
>>>>>>>>>>>>> [method=3DServerAsyncApi.getDiagnostics, request=3DGET
>>>>>>>>>>>>> http://10.0.107.2:8774/v2/4ebf76425efa4d01bc54a182185444a6/se=
rvers/52513b64-42a3-4a68-99b7-eb6d3bc82085/diagnostics
>>>>>>>>>>>>> HTTP/1.1]
>>>>>>>>>>>>>
>>>>>>>>>>>>> org.jclouds.http.HttpResponseException: command: GET
>>>>>>>>>>>>> http://10.0.107.2:8774/v2/4ebf76425efa4d01bc54a182185444a6/se=
rvers/52513b64-42a3-4a68-99b7-eb6d3bc82085/diagnostics
>>>>>>>>>>>>> HTTP/1.1 failed with response: HTTP/1.1 500 Internal Server E=
rror; content:
>>>>>>>>>>>>> [{"computeFault": {"message": "The server has either erred or=
is incapable
>>>>>>>>>>>>> of performing the requested operation.", "code": 500}}]
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.han=
dleError(NovaErrorHandler.java:48)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(=
DelegatingErrorHandler.java:71)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.internal.BaseHttpCommandExecutorService$Http=
ResponseCallable.shouldContinue(BaseHttpCommandExecutorService.java:197)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.internal.BaseHttpCommandExecutorService$Http=
ResponseCallable.call(BaseHttpCommandExecutorService.java:167)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.internal.BaseHttpCommandExecutorService$Http=
ResponseCallable.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(Thread=
PoolExecutor.java:886)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPool=
Executor.java:908)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:680)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.concurrent.config.DescribingExecutorService.submi=
t(DescribingExecutorService.java:89)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.internal.BaseHttpCommandExecutorService.subm=
it(BaseHttpCommandExecutorService.java:132)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.s=
ubmit(TransformingHttpCommandExecutorServiceImpl.java:54)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.TransformingHttpCommandImpl.execute(Transfor=
mingHttpCommandImpl.java:73)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.rest.internal.AsyncRestClientProxy.createListenab=
leFutureForHttpRequestMappedToMethodAndArgs(AsyncRestClientProxy.java:255)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRe=
stClientProxy.java:149)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at $Proxy81.getDiagnostics(Unknown Source)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method=
)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces=
sorImpl.java:39)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet=
hodAccessorImpl.java:25)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.ja=
va:170)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at $Proxy82.getDiagnostics(Unknown Source)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at gsd.JCloudsOpenStack.listImages(JCloudsOpenStack.java:72)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at gsd.JCloudsOpenStack.main(JCloudsOpenStack.java:34)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.concurrent.config.DescribingExecutorService.submi=
t(DescribingExecutorService.java:89)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.internal.BaseHttpCommandExecutorService.subm=
it(BaseHttpCommandExecutorService.java:132)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.s=
ubmit(TransformingHttpCommandExecutorServiceImpl.java:54)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.http.TransformingHttpCommandImpl.execute(Transfor=
mingHttpCommandImpl.java:73)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.rest.internal.AsyncRestClientProxy.createListenab=
leFutureForHttpRequestMappedToMethodAndArgs(AsyncRestClientProxy.java:255)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRe=
stClientProxy.java:149)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at $Proxy81.getDiagnostics(Unknown Source)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method=
)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces=
sorImpl.java:39)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet=
hodAccessorImpl.java:25)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at
>>>>>>>>>>>>> org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.ja=
va:170)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at $Proxy82.getDiagnostics(Unknown Source)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at gsd.JCloudsOpenStack.listImages(JCloudsOpenStack.java:72)
>>>>>>>>>>>>>
>>>>>>>>>>>>> at gsd.JCloudsOpenStack.main(JCloudsOpenStack.java:34)
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Oct 18, 2012 at 11:06 AM, Richard Downer
>>>>>>>>>>>>> <richard.dow...@cloudsoftcorp.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> (Replying just to jclouds-dev)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 18 October 2012 10:45, Leander Bessa Beernaert
>>>>>>>>>>>>>> <leande...@gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I've found the ServerAPI file under
>>>>>>>>>>>>>>> ./jclouds/apis/openstack-nova/src/main/java/org/jclouds/ope=
nstack/nova/v2_0/features/ServerApi.java.
>>>>>>>>>>>>>>> Any pointers on how to compile changes using the eclipse se=
tup and using
>>>>>>>>>>>>>>> JClouds REST API?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Firstly, there's actually two files you need to change -
>>>>>>>>>>>>>> ServerApi.java and ServerAsyncApi.java. These files are very=
similar - both
>>>>>>>>>>>>>> should define the same set of methods with the same paramete=
rs. The method
>>>>>>>>>>>>>> return types differ slightly in that every return type in th=
e AsyncApi is
>>>>>>>>>>>>>> wrapped with a ListenableFuture<T>. So if the Api class defi=
nes a method
>>>>>>>>>>>>>> returning Server, the equivalent method in AsyncApi will ret=
urn
>>>>>>>>>>>>>> ListenableFuture<Server>; void maps to ListenableFuture<Void=
>.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> (Implementation detail: at runtime jclouds creates a proxy f=
or
>>>>>>>>>>>>>> the synchronous Api class. The proxy will, for every method,=
simply call the
>>>>>>>>>>>>>> equivalent AsyncApi method, and then immediately wait on the=
completion of
>>>>>>>>>>>>>> the ListenableFuture.)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The AsyncApi class also contains lots of annotations - these
>>>>>>>>>>>>>> are crucial as jclouds uses these to determine how to form t=
he request and
>>>>>>>>>>>>>> handle the response. Within a single cloud API these are gen=
erally very
>>>>>>>>>>>>>> similar so you can probably copy-and-paste annotations from =
a similar method
>>>>>>>>>>>>>> (say, get server details) and then modify the annotations fo=
r the operation
>>>>>>>>>>>>>> you are working on.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> In answer to your actual question: everybody's workflow is
>>>>>>>>>>>>>> slightly different and I don't use Eclipse so can't tell you=
the best way to
>>>>>>>>>>>>>> use that. However what will probably work is if you build fr=
om the command
>>>>>>>>>>>>>> line using "mvn clean install" in the apis/openstack-nova fo=
lder. This will
>>>>>>>>>>>>>> build the code and install it in your local maven repository=
. You can then
>>>>>>>>>>>>>> build your application with maven and it will use the jcloud=
s version in
>>>>>>>>>>>>>> your local repository that you have just built.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Cheers
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Richard.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Richard Downer =95 Lead Engineer =95 Cloudsoft Corporation =
=95
>>>>>>>>>>>>>> http://www.cloudsoftcorp.com
>>>>>>>>>>>>>> Skype richardcloudsoft =95 Twitter @FrontierTown
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Richard Downer =95 Lead Engineer =95 Cloudsoft Corporation =95
>>>>>>>>>>>> http://www.cloudsoftcorp.com
>>>>>>>>>>>> Skype richardcloudsoft =95 Twitter @FrontierTown
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>> Google Groups "jclouds-dev" group.
>>>>>>>>>>>> To post to this group, send email to
>>>>>>>>>>>> jclouds-dev@googlegroups.com.
>>>>>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>>>>>> jclouds-dev+unsubscribe@googlegroups.com.
>>>>>>>>>>>> For more options, visit this group at
>>>>>>>>>>>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Googl=
e
>>>>>>>>> Groups "jclouds-dev" group.
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/d/msg/jclouds-dev/-/acBEtN8Rah8J.
>>>>>>>>> To post to this group, send email to jclouds-dev@googlegroups.com=
.
>>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>>> jclouds-dev+unsubscribe@googlegroups.com.
>>>>>>>>> For more options, visit this group at
>>>>>>>>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "jclouds-dev" group.
>>>>>>>> To post to this group, send email to jclouds-dev@googlegroups.com.
>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>> jclouds-dev+unsubscribe@googlegroups.com.
>>>>>>>> For more options, visit this group at
>>>>>>>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "jclouds-dev" group.
>>>>>>> To post to this group, send email to jclouds-dev@googlegroups.com.
>>>>>>> To unsubscribe from this group, send email to
>>>>>>> jclouds-dev+unsubscribe@googlegroups.com.
>>>>>>> For more options, visit this group at
>>>>>>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "jclouds-dev" group.
>>>>>> To post to this group, send email to jclouds-dev@googlegroups.com.
>>>>>> To unsubscribe from this group, send email to
>>>>>> jclouds-dev+unsubscribe@googlegroups.com.
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "jclouds-dev" group.
>>>>> To post to this group, send email to jclouds-dev@googlegroups.com.
>>>>> To unsubscribe from this group, send email to
>>>>> jclouds-dev+unsubscribe@googlegroups.com.
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "jclouds-dev" group.
>>>> To post to this group, send email to jclouds-dev@googlegroups.com.
>>>> To unsubscribe from this group, send email to
>>>> jclouds-dev+unsubscribe@googlegroups.com.
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Grou=
ps
>>> "jclouds-dev" group.
>>> To post to this group, send email to jclouds-dev@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> jclouds-dev+unsubscribe@googlegroups.com.
>>> For more options, visit this group at
>>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>>
>> --
>> You received this message because you are subscribed to the Google Group=
s
>> "jclouds-dev" group.
>> To post to this group, send email to jclouds-dev@googlegroups.com.
>> To unsubscribe from this group, send email to
>> jclouds-dev+unsubscribe@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/jclouds-dev?hl=3Den.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "jclouds-dev" group.
> To post to this group, send email to jclouds-dev@googlegroups.com.
> To unsubscribe from this group, send email to
> jclouds-dev+unsubscribe@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/jclouds-dev?hl=3Den.