Ignasi, I think Azure provider requires the endpoint as it identifies the exact SUBSCRIPTION_ID you want to use.
HTH, Andrea On Mon, Oct 19, 2015 at 6:06 AM, Ruben Rubio Rey <[email protected]> wrote: > Then I have the feeling that there is a bug somewhere. > > In the following code If you uncomment endpoint it works, otherwise it > does not. > > @Test > public void doLoginTest() throws Exception { > Iterable<Module> modules = ImmutableSet.<Module> of(new > SshjSshClientModule(), new SLF4JLoggingModule()); > ComputeServiceContext context = > ContextBuilder.newBuilder("azurecompute") > .credentials("/path/to/azure.p12", "mysuperpassword") > //.endpoint(" > https://management.core.windows.net/32a55cff-e1c5-435f-9343-MYENDPOINT") > .modules(modules) > .buildView(ComputeServiceContext.class); > ComputeService compute = context.getComputeService(); > Set<? extends Hardware> jHardwares = > compute.listHardwareProfiles(); > System.out.print(jHardwares); > } > > This is the error: > > 15:02:09.232 [main] DEBUG o.j.rest.internal.InvokeHttpMethod - >> invoking > ListRoleSizes > 15:02:09.247 [main] DEBUG o.j.h.i.JavaUrlHttpCommandExecutorService - > Sending request -702374286: GET > https://management.core.windows.net/SUBSCRIPTION_ID/rolesizes HTTP/1.1 > 15:02:09.250 [main] DEBUG jclouds.headers - >> GET > https://management.core.windows.net/SUBSCRIPTION_ID/rolesizes HTTP/1.1 > 15:02:09.251 [main] DEBUG jclouds.headers - >> x-ms-version: 2014-10-01 > 15:02:09.252 [main] DEBUG jclouds.headers - >> Accept: application/xml > 15:02:12.497 [main] DEBUG o.j.h.i.JavaUrlHttpCommandExecutorService - > Receiving response -702374286: HTTP/1.1 403 Forbidden > 15:02:12.498 [main] DEBUG jclouds.headers - << HTTP/1.1 403 Forbidden > 15:02:12.498 [main] DEBUG jclouds.headers - << Date: Mon, 19 Oct 2015 > 04:02:11 GMT > 15:02:12.499 [main] DEBUG jclouds.headers - << Server: > Microsoft-HTTPAPI/2.0 > 15:02:12.500 [main] DEBUG jclouds.headers - << Content-Type: > application/xml; charset=utf-8 > 15:02:12.500 [main] DEBUG jclouds.headers - << Content-Length: 288 > 15:02:12.514 [main] DEBUG jclouds.wire - << "<Error xmlns=" > http://schemas.microsoft.com/windowsazure" xmlns:i=" > http://www.w3.org/2001/XMLSchema-instance"><Code>ForbiddenError</Code><Message>The > server failed to authenticate the request. Verify that the certificate is > valid and is associated with this subscription.</Message></Error>" > > PS_ How does JClouds knows what subscription is the correct one if the > .cer file is uploaded to two or more subscriptions ? > > On Sun, Oct 18, 2015 at 7:02 PM, Ignasi Barrera <[email protected]> wrote: > >> Good to see you made progress! Just one little thing: the endpoint >> shouldn't be required when creating the context for Azure (or any >> "provider"). >> >> As opposed to generic APIs [1] like OpenStack or CloudStack, Azure is a >> concrete provider with a well-known endpoint, so jclouds will already >> configure it for you. >> >> [1] http://jclouds.apache.org/start/concepts/ >> >> I. >> >> El 18/10/2015 3:05, "Ruben Rubio Rey" <[email protected]> escribió: >> > >> > Hi Ignasi, >> > >> > Thanks so much for your response. It has been very helpful. The hardest >> thing was to get the authentication right, so for future references I would >> like to send the following code instructios: >> > >> > 1 - Add azurecompute into the pom.xml >> > 2 - Generate the certificate (will create the pem, cert, p12 files and >> the P12_EXPORT_PASSWORD) >> > 3 - Upload to Azure portal (I used the old portal, I could not find the >> option in the new one) >> > 4 - The following code will authenticate and get the Compute Service. >> > >> > ComputeServiceContext context = >> ContextBuilder.newBuilder("azurecompute") >> > .credentials("/path/to/azure.p12", "P12_EXPORT_PASSWORD") >> > .endpoint(" >> https://management.core.windows.net/6ac5048e-6e83-4c99-a1a8-YOUR-SUSBCRIPTION-ID >> ") >> > .modules(modules) >> > .overrides(overrides) >> > .buildView(ComputeServiceContext.class); >> > ComputeService computeService = context.getComputeService(); >> > >> > Thanks for guiding me into the right direction. >> > >> > Regards, >> > Ruben >> > >> > >> > On Fri, Oct 16, 2015 at 8:36 AM, Ignasi Barrera <[email protected]> >> wrote: >> >> >> >> Hi! >> >> >> >> The way you start instances in Azure is the same in all providers. >> >> jclouds provides a portable layer you can use to create instances in >> >> different clouds using the same code. I recommend you read the >> >> "compute getting started guide" [1] to have a better understanding of >> >> how it works. >> >> >> >> You can also try the compute-basics example [2]. The code is simple >> >> and to the point, and you can compile and run it to deploy also on >> >> azure (although you'll need to explicitly add the azurecompute >> >> dependency to the pom.xml). Have a look at the azurecompute readme [3] >> >> for the details on how to generate the credentials and what identity >> >> and credential jclouds expects. >> >> >> >> HTH! >> >> >> >> I. >> >> >> >> >> >> [1] http://jclouds.apache.org/start/compute/ >> >> [2] >> https://github.com/jclouds/jclouds-examples/tree/master/compute-basics >> >> [3] https://github.com/jclouds/jclouds-labs/tree/master/azurecompute >> >> >> >> On 14 October 2015 at 11:03, Ruben Rubio Rey <[email protected]> >> wrote: >> >> > Hi Everyone, >> >> > >> >> > I am exploring the capabilities for Azure but azurecompute still >> under >> >> > development. As far I understand we should use AzureComputeApi. >> >> > >> >> > Could anyone please tell me how to create a new instance using >> >> > AzureComputeApi ? >> >> > >> >> > Regards, >> >> > Ruben >> >> > >> > >> > >> > >
