The problem here is the use of the location properties.

Those properties are used to "whitelist" which regions the provider will
consider. They are usually to avoid the provider contact regions you're not
interested in. By default, when the jclouds compute service lists nodes,
etc, it fetches everything from all regions. Those properties are intended
to narrow the scope of those operations.

So, those properties are *not* the ones that configure where you connect;
just configure the whitelist where you could connect.

By default, if you don't provide an endpoint explicitly as a property,
jclouds will use the one configured in the provider/api metadata, and there
is no way to override that. From your comments, though, I think what you
are looking for is something similar to the aws-ec2 api [1]. The root API
(the one who delegates) offers two methods to access every child API, and
one of them accepts a region as a parameter. That would effectively set the
right endpoint when calling those APIs, since you have everything else in
place to make that happen [2].


HTH!

I.


[1[
https://github.com/jclouds/jclouds/blob/master/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Api.java
[2]
https://github.com/jclouds/jclouds-labs/blob/master/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/config/DimensionDataCloudControlHttpApiModule.java#L55-L58

On Fri, 18 Jan 2019 at 10:55, Trevor Flanagan (NTTC-CIS) <
trevor.flana...@cis.ntt.com> wrote:

> Hi All,
> I am attempting to build and run the live test for the dimensiondata
> provider. Currently I am passing the following - mvn clean install -Plive
> -pl dimensiondata -Dtest.dimensiondata-cloudcontrol.identity=XXXX
> -Dtest.dimensiondata-cloudcontrol.credential=XXXXXXX
> -Dtest.dimensiondata-cloudcontrol.endpoint=
> https://api-au.dimensiondata.com -Djclouds.regions=au
> -Djclouds.region.au.zones=AU9
>
> There is a warning in my tests when I run with these parameters - WARNING:
> failed to find key for value https://api-na.dimensiondata.com in {au=
> https://api-au.dimensiondata.com}; choosing first: au
>
> Additionally I would like to reduce the number of system property
> parameters I need to pass in order for them to run successfully - my ideal
> scenario is to pass just the Region and Zone - mvn clean install -Plive -pl
> dimensiondata -Dtest.dimensiondata-cloudcontrol.identity=XXXX
> -Dtest.dimensiondata-cloudcontrol.credential=XXXXXXX -Djclouds.regions=au
> -Djclouds.region.au.zones=AU9
>
> We have two classes that I believe support this, but it doesn't seem to
> work, any tips that will help me figure it out?
>
> https://github.com/jclouds/jclouds-labs/blob/master/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/DimensionDataCloudControlProviderMetadata.java#L54-L76
>
> https://github.com/jclouds/jclouds-labs/blob/master/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/suppliers/RegionsToApiEndpoints.java#L31
>
> Regards,
> Trevor.
>

Reply via email to