Can you try setting the endpoint too when creating the context?

Properties overrides = new Properties();
        overrides.put("jclouds.regions", "cn-north-1");
        overrides.put("jclouds.region.cn-north-1.iso3166-codes", "CN-11");

        Iterable<Module> modules = ImmutableSet.<Module> of(new
SshjSshClientModule());
        ComputeServiceContext context = ContextBuilder.newBuilder("aws-ec2")
*                .endpoint("https://ec2.cn-north-1.amazonaws.com
<https://ec2.cn-north-1.amazonaws.com>")*
                .credentials("user", "pass")
                .modules(modules)
                .overrides(overrides)
                .buildView(ComputeServiceContext.class);



On 3 November 2016 at 23:23, Ruben Rubio Rey <tk42...@gmail.com> wrote:

> > And see if you can connect there? In the account I have I don't see that
> regions so I can't really test it.
>
> You need a registered Chinese company to activate that region. Actually,
> they don't "activate" the region, they give you a brand new account only
> with the Beijing zone.
>
> Unfortunately those properties are not working
>
>         Properties overrides = new Properties();
>         overrides.put("jclouds.regions", "cn-north-1");
>         overrides.put("jclouds.region.cn-north-1.iso3166-codes", "CN-11");
>
>         Iterable<Module> modules = ImmutableSet.<Module> of(new
> SshjSshClientModule());
>         ComputeServiceContext context = ContextBuilder.newBuilder("
> aws-ec2")
>                 .credentials("user", "pass")
>                 .modules(modules)
>                 .overrides(overrides)
>                 .buildView(ComputeServiceContext.class);
>         ComputeService compute = context.getComputeService();
>         Set<? extends ComputeMetadata> nodes = compute.listNodes();
>         System.out.print("Number of nodes " + nodes.size());
>
> // log
> org.jclouds.rest.AuthorizationException: POST https://ec2.us-east-1.
> amazonaws.com/ HTTP/1.1 -> HTTP/1.1 401 Unauthorized
>     at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.
> refineException(ParseAWSErrorFromXmlContent.java:122)
>     at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(
> ParseAWSErrorFromXmlContent.java:89)
>     at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(
> DelegatingErrorHandler.java:65)
>     at org.jclouds.http.internal.BaseHttpCommandExecutorService
> .shouldContinue(BaseHttpCommandExecutorService.java:136)
>     at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(
> BaseHttpCommandExecutorService.java:105)
>     at org.jclouds.rest.internal.InvokeHttpMethod.invoke(
> InvokeHttpMethod.java:90)
>     at org.jclouds.rest.internal.InvokeHttpMethod.apply(
> InvokeHttpMethod.java:73)
>     at org.jclouds.rest.internal.InvokeHttpMethod.apply(
> InvokeHttpMethod.java:44)
>     at org.jclouds.reflect.FunctionalReflection$
> FunctionalInvocationHandler.handleInvocation(
> FunctionalReflection.java:117)
>     at com.google.common.reflect.AbstractInvocationHandler.invoke(
> AbstractInvocationHandler.java:87)
>     at com.sun.proxy.$Proxy74.describeRegions(Unknown Source)
>     at org.jclouds.ec2.suppliers.DescribeRegionsForRegionURIs.get(
> DescribeRegionsForRegionURIs.java:50)
>     at org.jclouds.ec2.suppliers.DescribeRegionsForRegionURIs.get(
> DescribeRegionsForRegionURIs.java:38)
>     at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier$SetAndThrowAuthorizationExcept
> ionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier.java:73)
>     at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier$SetAndThrowAuthorizationExcept
> ionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier.java:57)
>     at com.google.common.cache.LocalCache$LoadingValueReference.
> loadFuture(LocalCache.java:3524)
>     at com.google.common.cache.LocalCache$Segment.loadSync(
> LocalCache.java:2317)
>     at com.google.common.cache.LocalCache$Segment.
> lockedGetOrLoad(LocalCache.java:2280)
>     at com.google.common.cache.LocalCache$Segment.get(
> LocalCache.java:2195)
>     at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
>     at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
>     at com.google.common.cache.LocalCache$LocalLoadingCache.
> get(LocalCache.java:4821)
>     at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier.java:119)
>     at org.jclouds.location.suppliers.derived.
> RegionIdsFromRegionIdToURIKeySet.get(RegionIdsFromRegionIdToURIKeyS
> et.java:45)
>     at org.jclouds.location.suppliers.derived.
> RegionIdsFromRegionIdToURIKeySet.get(RegionIdsFromRegionIdToURIKeyS
> et.java:33)
>     at com.google.common.base.Suppliers$SupplierComposition.
> get(Suppliers.java:67)
>     at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier$SetAndThrowAuthorizationExcept
> ionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier.java:73)
>     at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier$SetAndThrowAuthorizationExcept
> ionSupplierBackedLoader.load(MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier.java:57)
>     at com.google.common.cache.LocalCache$LoadingValueReference.
> loadFuture(LocalCache.java:3524)
>     at com.google.common.cache.LocalCache$Segment.loadSync(
> LocalCache.java:2317)
>     at com.google.common.cache.LocalCache$Segment.
> lockedGetOrLoad(LocalCache.java:2280)
>     at com.google.common.cache.LocalCache$Segment.get(
> LocalCache.java:2195)
>     at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
>     at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
>     at com.google.common.cache.LocalCache$LocalLoadingCache.
> get(LocalCache.java:4821)
>     at org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier.get(MemoizedRetryOnTimeOutButNotOn
> AuthorizationExceptionSupplier.java:119)
>     at org.jclouds.aws.ec2.compute.strategy.AWSEC2ListNodesStrategy.
> pollRunningInstances(AWSEC2ListNodesStrategy.java:65)
>     at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy.
> listDetailsOnNodesMatching(EC2ListNodesStrategy.java:107)
>     at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy.listNodes(
> EC2ListNodesStrategy.java:86)
>     at org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy.listNodes(
> EC2ListNodesStrategy.java:58)
>     at org.jclouds.compute.internal.BaseComputeService.listNodes(
> BaseComputeService.java:335)
>     at com.rubenrr.mvc.AwsTests.testChina(AwsTests.java:92)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:57)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>     at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
> FrameworkMethod.java:47)
>     at org.junit.internal.runners.model.ReflectiveCallable.run(
> ReflectiveCallable.java:12)
>     at org.junit.runners.model.FrameworkMethod.invokeExplosively(
> FrameworkMethod.java:44)
>     at org.junit.internal.runners.statements.InvokeMethod.
> evaluate(InvokeMethod.java:17)
>     at org.junit.internal.runners.statements.RunBefores.
> evaluate(RunBefores.java:26)
>     at org.springframework.test.context.junit4.statements.
> RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.
> java:72)
>     at org.springframework.test.context.junit4.statements.
> RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:81)
>     at org.springframework.test.context.junit4.statements.
> SpringRepeat.evaluate(SpringRepeat.java:72)
>     at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
>     at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.
> runChild(SpringJUnit4ClassRunner.java:216)
>     at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.
> runChild(SpringJUnit4ClassRunner.java:82)
>     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
>     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
>     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
>     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
>     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
>     at org.springframework.test.context.junit4.statements.
> RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:60)
>     at org.springframework.test.context.junit4.statements.
> RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:67)
>     at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
>     at org.springframework.test.context.junit4.
> SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:162)
>     at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
>     at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(
> JUnit4IdeaTestRunner.java:74)
>     at com.intellij.rt.execution.junit.JUnitStarter.
> prepareStreamsAndStart(JUnitStarter.java:211)
>     at com.intellij.rt.execution.junit.JUnitStarter.main(
> JUnitStarter.java:67)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:57)
>     at com.intellij.rt.execution.application.AppMain.main(
> AppMain.java:134)
> Caused by: org.jclouds.http.HttpResponseException: request: POST
> https://ec2.us-east-1.amazonaws.com/ HTTP/1.1  [Action=DescribeRegions]
> failed with response: HTTP/1.1 401 Unauthorized
>     at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(
> ParseAWSErrorFromXmlContent.java:63)
>     ... 73 more
>
> On Thu, Nov 3, 2016 at 1:04 AM, Ignasi Barrera <ignasi.barr...@gmail.com>
> wrote:
>
>> Hi Ruben,
>>
>> Can you try setting the following properties when creating the context:
>>
>> Properties overrides = new Properties();
>> overrides.put("jclouds.regions", "cn-north-1");
>> overrides.put("jclouds.region.cn-north-1.iso3166-codes", "CN-11");
>>
>> Iterable<Module> modules = ImmutableSet.<Module> of(new
>> SshjSshClientModule());
>> ComputeServiceContext context = ContextBuilder.newBuilder("aws-ec2")
>>         .credentials("user", "key")
>>         .modules(modules)
>>         .overrides(overrides)
>>         .buildView(ComputeServiceContext.class);
>>
>>
>> And see if you can connect there? In the account I have I don't see
>> that regions so I can't really test it.
>>
>> HTH!
>>
>> I.
>>
>>
>> On 1 November 2016 at 07:39, Ruben Rubio Rey <tk42...@gmail.com> wrote:
>> > Hi,
>> >
>> > I am trying to use AWS China region (cn-north-1) with JClouds. This
>> region
>> > works independently and you need to define the region (or the end
>> point).
>> >
>> > I log in to other AWS regions
>> >
>> > Iterable<Module> modules = ImmutableSet.<Module> of(new
>> > SshjSshClientModule());
>> > ComputeServiceContext context = ContextBuilder.newBuilder("aws-ec2")
>> >         .credentials("user", "key")
>> >         .modules(modules)
>> >         .buildView(ComputeServiceContext.class);
>> >
>> > ComputeService compute = context.getComputeService();
>> > Set<? extends ComputeMetadata> nodes = compute.listNodes();
>> >
>> > How can I define the region or the end point ?
>> >
>> > Regards,
>> > Ruben
>> >
>> >
>>
>
>

Reply via email to