Re: [jclouds/jclouds-labs] [JCLOUDS-1430] Aliyun ECS (#443)

2018-08-01 Thread Andrea Turli
andreaturli commented on this pull request.



> +
+  InstanceRequest instanceRequest = api.instanceApi().create(regionId, 
imageId, securityGroupId, name, instanceType,
+  CreateInstanceOptions.Builder
+  .vSwitchId(vSwitchId)
+  .internetChargeType("PayByTraffic")
+  .internetMaxBandwidthOut(5)
+  .instanceChargeType("PostPaid")
+  .instanceName(name)
+  .keyPairName(keyPairName)
+  .tagOptions(tagOptions)
+  );
+  String regionAndInstanceId = 
RegionAndId.slashEncodeRegionAndId(regionId, instanceRequest.getInstanceId());
+  instanceSuspendedPredicate.apply(regionAndInstanceId);
+  api.instanceApi().allocatePublicIpAddress(regionId, 
instanceRequest.getInstanceId());
+  api.instanceApi().powerOn(instanceRequest.getInstanceId());
+  instanceRunningPredicate.apply(regionAndInstanceId);

I think we may skip it, thanks

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/443#discussion_r207117579

Re: [jclouds/jclouds-labs] [JCLOUDS-1430] Aliyun ECS (#443)

2018-08-01 Thread Andrea Turli
andreaturli commented on this pull request.



> +  this.instanceSuspendedPredicate = instanceSuspendedPredicate;
+  this.regionIds = regionIds;
+  this.cleanupResources = cleanupResources;
+   }
+
+   @Override
+   public NodeAndInitialCredentials 
createNodeWithGroupEncodedIntoName(String group, String name, Template 
template) {
+  String instanceType = template.getHardware().getId();
+  String regionId = template.getLocation().getId();
+  String imageId = template.getImage().getId();
+
+  ECSServiceTemplateOptions templateOptions = 
template.getOptions().as(ECSServiceTemplateOptions.class);
+
+  String keyPairName = templateOptions.getKeyPairName();
+  String securityGroupId = 
Iterables.getOnlyElement(templateOptions.getGroups());
+  String vSwitchId = templateOptions.getVSwitchId();

@nacx that's a fair point, but I think the best we can do is to `checkNotNull` 
vSwitchId.
In fact, the automatic creation of a vSwitch requires the creation of a VPC as 
well, which could be handled as VPC api and vSwitch api are quite 
straightforward *but* which require a number of details: ZoneId, CidrBlock, 
VpcId and RegionId of course.

Those details are *not* related to the `Template` IMHO but are related to the 
environment where you want to deploy the VM, so passing the vswitch details in 
the templateOptions doesn't seem right to me.
Conversely, making a lot of assumptions on behalf of the user to create a 
reasonably sensible `vSwitch` sounds unreliable and potentially not satisfying 
for the end-user anyway.

Notice also that a fresh aliyun account comes with no VPC or vSwitch at all so 
there's no default value to be used here, unfortunately.

wdyt?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/443#discussion_r207111616

[jira] [Commented] (JCLOUDS-1428) Support for SAS token based Authentication for Azure Blob Storage

2018-08-01 Thread Andrew Gaul (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16566172#comment-16566172
 ] 

Andrew Gaul commented on JCLOUDS-1428:
--

jclouds implements SAS via the portable {{BlobRequestSigner}} interface.  You 
can access this via {{BlobStoreContext.getSigner}}.  Does this address your 
issue?

> Support for SAS token based Authentication for Azure Blob Storage
> -
>
> Key: JCLOUDS-1428
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1428
> Project: jclouds
>  Issue Type: Improvement
>  Components: jclouds-blobstore
>Reporter: Himanshu Jain
>Priority: Major
>  Labels: azureblob
>
> Hi,
> We have one use case where we want to provide limited access to objects in 
> our storage accounts. We figured that the best way to do  this is by using 
> SAS token based authentication mechanism to upload/download objects to Azure 
> Blob Storage - [SAS based 
> Authentication|https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1]
> We found that JClouds client library provides support for Azure Blob Storage 
> using account keys which might not fit our use case because of security 
> reasons.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (JCLOUDS-1416) Cache-Control header is not supported or allowed with B2 upload

2018-08-01 Thread Andrew Gaul (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16566169#comment-16566169
 ] 

Andrew Gaul commented on JCLOUDS-1416:
--

If you provide a self-contained test, e.g., run with {{mvn test}}, I can look 
at this further.  I don't understand whatever web application framework you are 
using and suspect that this somehow interferes with jclouds.

> Cache-Control header is not supported or allowed with B2 upload
> ---
>
> Key: JCLOUDS-1416
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1416
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.1.0
>Reporter: Timothy Anyona
>Priority: Major
> Attachments: b2web.zip
>
>
> I posted this on stackoverflow but couldn't include debug logs as 
> stackoverflow indicated that the question was mostly code.
> With the following code using the "b2" provider,
> {noformat}
> Iterable modules = ImmutableSet.of(
> new SLF4JLoggingModule());
> BlobStoreContext context = ContextBuilder.newBuilder(provider)
> .credentials(identity, credential)
> .modules(modules)
> .buildView(BlobStoreContext.class);
> 
> BlobStore blobStore = context.getBlobStore();
> ByteSource payload = Files.asByteSource(localFile);
> PayloadBlobBuilder blobBuilder = blobStore.blobBuilder(remoteFileName)
> .payload(payload)
> .contentLength(payload.size());
> 
> Blob blob = blobBuilder.build();
> 
> String eTag = blobStore.putBlob(containerName, blob);
> {noformat}
>  
> I get the following error
> {noformat}
> java.lang.IllegalArgumentException: Cache-Control header is not supported or 
> allowed
> at 
> org.jclouds.b2.handlers.ParseB2ErrorFromJsonContent.refineException(ParseB2ErrorFromJsonContent.java:45)
> at 
> org.jclouds.b2.handlers.ParseB2ErrorFromJsonContent.handleError(ParseB2ErrorFromJsonContent.java:58)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:138)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:107)
> at 
> org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:91)
> at 
> org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:74)
> at 
> org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:45)
> at 
> org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
> at 
> com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
> at com.sun.proxy.$Proxy513.uploadFile(Unknown Source)
> at org.jclouds.b2.blobstore.B2BlobStore.putBlob(B2BlobStore.java:242)
> at org.jclouds.b2.blobstore.B2BlobStore.putBlob(B2BlobStore.java:223)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
> at com.sun.proxy.$Proxy498.putBlob(Unknown Source)
> at art.jobrunners.ReportJob.sendFileToBlobStorage(ReportJob.java:880)
> at art.jobrunners.ReportJob.sendFileToB2(ReportJob.java:689)
> at art.jobrunners.ReportJob.sendFileToDestinations(ReportJob.java:477)
> at art.jobrunners.ReportJob.execute(ReportJob.java:309)
> at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
> at 
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
> Caused by: org.jclouds.b2.B2ResponseException: request POST 
> https://pod-000-1094-12.backblaze.com/b2api/v1/b2_upload_file//c002_v0001094_t0028
>  HTTP/1.1 failed with code 400, error: B2Error\{code=bad_request, 
> message=Cache-Control header is not supported or allowed, status=400}
> ... 24 common frames omitted
> {noformat}
> The following is the wire and headers logging. Cache-control is not included 
> in any of the request headers so perhaps B2 is reporting the error 
> incorrectly?
> {noformat}
> [DEBUG] 07-May-2018 17:04:32.095 |ArtScheduler_Worker-1| 
> org.jclouds.rest.internal.InvokeHttpMethod - >> invoking b2_list_buckets
> [DEBUG] 07-May-2018 17:04:32.391 |ArtScheduler_Worker-1| 
> org.jclouds.rest.internal.InvokeHttpMethod - >> invoking b2_authorize_account
> [DEBUG] 07-May-2018 17:04:32.618 |ArtScheduler_Worker-1| 
> org.jc

[jira] [Resolved] (JCLOUDS-1436) Add support for m5 instance types in AWS ec2

2018-08-01 Thread Daniel Estevez (JIRA)


 [ 
https://issues.apache.org/jira/browse/JCLOUDS-1436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Estevez resolved JCLOUDS-1436.
-
Resolution: Fixed

> Add support for m5 instance types in AWS ec2
> 
>
> Key: JCLOUDS-1436
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1436
> Project: jclouds
>  Issue Type: Improvement
>  Components: jclouds-compute
>Affects Versions: 2.0.3
>Reporter: Vikas Rangarajan
>Priority: Major
>  Labels: aws-ec2
> Fix For: 2.2.0, 2.1.0
>
>
> As a jclouds client targeting AWS EC2 as one of the deployment cloud 
> providers, I would like to avail of the newly added m5 instance types that 
> offer "balance of compute, memory, and networking resources".



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: [jclouds/jclouds] JCLOUDS-1436: Add support for aws ec2 m5 instance types (#1233)

2018-08-01 Thread Daniel Estévez
Closed #1233.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1233#event-1766308008

Re: [jclouds/jclouds] JCLOUDS-1436: Add support for aws ec2 m5 instance types (#1233)

2018-08-01 Thread Daniel Estévez
Pushed to 
[2.1.x](http://git-wip-us.apache.org/repos/asf/jclouds/commit/e54312aa) and 
[master](http://git-wip-us.apache.org/repos/asf/jclouds/commit/cf672337) !!
Thanks @VRanga000 !!

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1233#issuecomment-409731274

Re: [jclouds/jclouds] JCLOUDS-1387: Add support for c5 instance types in AWS ec2 (#1232)

2018-08-01 Thread Daniel Estévez
Closed #1232.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1232#event-1766300928

[jira] [Commented] (JCLOUDS-1436) Add support for m5 instance types in AWS ec2

2018-08-01 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16566012#comment-16566012
 ] 

ASF subversion and git services commented on JCLOUDS-1436:
--

Commit e54312aaeb0f0947b7f941a9564555e6e7d5cc91 in jclouds's branch 
refs/heads/2.1.x from [~mindgrep]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=e54312a ]

JCLOUDS-1436: Add support for aws ec2 m5 instance types

fix: remove duplicate imports


> Add support for m5 instance types in AWS ec2
> 
>
> Key: JCLOUDS-1436
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1436
> Project: jclouds
>  Issue Type: Improvement
>  Components: jclouds-compute
>Affects Versions: 2.0.3
>Reporter: Vikas Rangarajan
>Priority: Major
>  Labels: aws-ec2
> Fix For: 2.1.0, 2.2.0
>
>
> As a jclouds client targeting AWS EC2 as one of the deployment cloud 
> providers, I would like to avail of the newly added m5 instance types that 
> offer "balance of compute, memory, and networking resources".



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (JCLOUDS-1436) Add support for m5 instance types in AWS ec2

2018-08-01 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16566013#comment-16566013
 ] 

ASF subversion and git services commented on JCLOUDS-1436:
--

Commit cf67233765855a850e40f4b3d3b3ba320678dbbd in jclouds's branch 
refs/heads/master from [~mindgrep]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=cf67233 ]

JCLOUDS-1436: Add support for aws ec2 m5 instance types

fix: remove duplicate imports


> Add support for m5 instance types in AWS ec2
> 
>
> Key: JCLOUDS-1436
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1436
> Project: jclouds
>  Issue Type: Improvement
>  Components: jclouds-compute
>Affects Versions: 2.0.3
>Reporter: Vikas Rangarajan
>Priority: Major
>  Labels: aws-ec2
> Fix For: 2.1.0, 2.2.0
>
>
> As a jclouds client targeting AWS EC2 as one of the deployment cloud 
> providers, I would like to avail of the newly added m5 instance types that 
> offer "balance of compute, memory, and networking resources".



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (JCLOUDS-1387) Add support for c5 instance types in AWS ec2

2018-08-01 Thread Daniel Estevez (JIRA)


 [ 
https://issues.apache.org/jira/browse/JCLOUDS-1387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Estevez resolved JCLOUDS-1387.
-
Resolution: Fixed

> Add support for c5 instance types in AWS ec2
> 
>
> Key: JCLOUDS-1387
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1387
> Project: jclouds
>  Issue Type: Improvement
>  Components: jclouds-compute
>Affects Versions: 2.0.3
>Reporter: Vikas Rangarajan
>Priority: Major
>  Labels: aws-ec2
> Fix For: 2.2.0, 2.1.1
>
>
> As a jclouds client targeting AWS EC2 as one of the deployment cloud 
> providers, I would like to avail of the newly added C5 instance types that 
> are cpu optimized but more cost-effective than the previous generation C4 
> instance types.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: [jclouds/jclouds] JCLOUDS-1387: Add support for c5 instance types in AWS ec2 (#1232)

2018-08-01 Thread Daniel Estévez
Pushed to 
[master](https://github.com/jclouds/jclouds/commit/982c6bea0252689c23628079ab66998ac2a36aa9)
 and 
[2.1.x](https://github.com/jclouds/jclouds/commit/0ee68a5f836a654619a5bbf635e19e1d478f058e)!
 Thanks @VRanga000  !!

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1232#issuecomment-409726100

[jira] [Commented] (JCLOUDS-1387) Add support for c5 instance types in AWS ec2

2018-08-01 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16565970#comment-16565970
 ] 

ASF subversion and git services commented on JCLOUDS-1387:
--

Commit 982c6bea0252689c23628079ab66998ac2a36aa9 in jclouds's branch 
refs/heads/master from [~mindgrep]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=982c6be ]

JCLOUDS-1387: Add support for c5 instance types in AWS ec2


> Add support for c5 instance types in AWS ec2
> 
>
> Key: JCLOUDS-1387
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1387
> Project: jclouds
>  Issue Type: Improvement
>  Components: jclouds-compute
>Affects Versions: 2.0.3
>Reporter: Vikas Rangarajan
>Priority: Major
>  Labels: aws-ec2
> Fix For: 2.2.0, 2.1.1
>
>
> As a jclouds client targeting AWS EC2 as one of the deployment cloud 
> providers, I would like to avail of the newly added C5 instance types that 
> are cpu optimized but more cost-effective than the previous generation C4 
> instance types.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (JCLOUDS-1387) Add support for c5 instance types in AWS ec2

2018-08-01 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16565968#comment-16565968
 ] 

ASF subversion and git services commented on JCLOUDS-1387:
--

Commit 0ee68a5f836a654619a5bbf635e19e1d478f058e in jclouds's branch 
refs/heads/2.1.x from [~mindgrep]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=0ee68a5 ]

JCLOUDS-1387: Add support for c5 instance types in AWS ec2


> Add support for c5 instance types in AWS ec2
> 
>
> Key: JCLOUDS-1387
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1387
> Project: jclouds
>  Issue Type: Improvement
>  Components: jclouds-compute
>Affects Versions: 2.0.3
>Reporter: Vikas Rangarajan
>Priority: Major
>  Labels: aws-ec2
> Fix For: 2.2.0, 2.1.1
>
>
> As a jclouds client targeting AWS EC2 as one of the deployment cloud 
> providers, I would like to avail of the newly added C5 instance types that 
> are cpu optimized but more cost-effective than the previous generation C4 
> instance types.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: [jclouds/jclouds] JCLOUDS-1436: Add support for aws ec2 m5 instance types (#1233)

2018-08-01 Thread Daniel Estévez
danielestevez approved this pull request.





-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/1233#pullrequestreview-142542476

Re: [jclouds/jclouds-labs] [JCLOUDS-1430] Aliyun ECS (#443)

2018-08-01 Thread Ignasi Barrera
nacx commented on this pull request.

Thanks, @andreaturli!

There are many comments but in general, it looks pretty good.

Apart from the comments, we need proper tests for most of the things. 
Basically, every class in the `compute/functions` package needs to have a 
proper unit test.
Also, add unit tests for every utility class and small function you have 
created.

> +Aliyun ECS provider works exactly as any other jclouds provider.
+Notice that as Aliyun supports dozens of locations and to limit the scope of 
some operations, one may want to use:
+
+and
+```bash
+jclouds.regions
+```
+which is by default `null`. If you want to target only the `north europe` 
region, you can use
+
+```bash
+jclouds.regions="eu-central-1"
+```
+
+# Setting Up Test Environment
+
+Get or create the `User Access Key` and `Access Key Secret `for your 
account at `https://usercenter.console.aliyun.com/#/manage/ak`

[nit] Remove the extra spaces after "secret"

> +  this.instanceSuspendedPredicate = instanceSuspendedPredicate;
+  this.regionIds = regionIds;
+  this.cleanupResources = cleanupResources;
+   }
+
+   @Override
+   public NodeAndInitialCredentials 
createNodeWithGroupEncodedIntoName(String group, String name, Template 
template) {
+  String instanceType = template.getHardware().getId();
+  String regionId = template.getLocation().getId();
+  String imageId = template.getImage().getId();
+
+  ECSServiceTemplateOptions templateOptions = 
template.getOptions().as(ECSServiceTemplateOptions.class);
+
+  String keyPairName = templateOptions.getKeyPairName();
+  String securityGroupId = 
Iterables.getOnlyElement(templateOptions.getGroups());
+  String vSwitchId = templateOptions.getVSwitchId();

This seems to be mandatory, but its presence is not enforced anywhere. Should 
we validate it is there in the create nodes strategy and fail with an 
appropriate message if missing?
It is not good to have mandatory options that are not part of the abstraction. 
It would be better if we could automatically create one vSwitch or have a 
default value instead of requiring users to always provide this particular 
template option.

> +  String instanceType = template.getHardware().getId();
+  String regionId = template.getLocation().getId();
+  String imageId = template.getImage().getId();
+
+  ECSServiceTemplateOptions templateOptions = 
template.getOptions().as(ECSServiceTemplateOptions.class);
+
+  String keyPairName = templateOptions.getKeyPairName();
+  String securityGroupId = 
Iterables.getOnlyElement(templateOptions.getGroups());
+  String vSwitchId = templateOptions.getVSwitchId();
+  Map tags = tagsAsValuesOfEmptyString(templateOptions);
+  TagOptions tagOptions = TagOptions.Builder.keys(tags.keySet());
+
+  InstanceRequest instanceRequest = api.instanceApi().create(regionId, 
imageId, securityGroupId, name, instanceType,
+  CreateInstanceOptions.Builder
+  .vSwitchId(vSwitchId)
+  .internetChargeType("PayByTraffic")

The two charge field types should be custom template options.

> +  String regionId = template.getLocation().getId();
+  String imageId = template.getImage().getId();
+
+  ECSServiceTemplateOptions templateOptions = 
template.getOptions().as(ECSServiceTemplateOptions.class);
+
+  String keyPairName = templateOptions.getKeyPairName();
+  String securityGroupId = 
Iterables.getOnlyElement(templateOptions.getGroups());
+  String vSwitchId = templateOptions.getVSwitchId();
+  Map tags = tagsAsValuesOfEmptyString(templateOptions);
+  TagOptions tagOptions = TagOptions.Builder.keys(tags.keySet());
+
+  InstanceRequest instanceRequest = api.instanceApi().create(regionId, 
imageId, securityGroupId, name, instanceType,
+  CreateInstanceOptions.Builder
+  .vSwitchId(vSwitchId)
+  .internetChargeType("PayByTraffic")
+  .internetMaxBandwidthOut(5)

Same here.

> +  String vSwitchId = templateOptions.getVSwitchId();
+  Map tags = tagsAsValuesOfEmptyString(templateOptions);
+  TagOptions tagOptions = TagOptions.Builder.keys(tags.keySet());
+
+  InstanceRequest instanceRequest = api.instanceApi().create(regionId, 
imageId, securityGroupId, name, instanceType,
+  CreateInstanceOptions.Builder
+  .vSwitchId(vSwitchId)
+  .internetChargeType("PayByTraffic")
+  .internetMaxBandwidthOut(5)
+  .instanceChargeType("PostPaid")
+  .instanceName(name)
+  .keyPairName(keyPairName)
+  .tagOptions(tagOptions)
+  );
+  String regionAndInstanceId = 
RegionAndId.slashEncodeRegionAndId(regionId, instanceRequest.getInstanceId());
+  instanceSuspendedPredicate.apply(regionAndInstanceId);

You want to check the result of the predi

[jclouds/jclouds-labs] [JCLOUDS-1430] Aliyun ECS (#443)

2018-08-01 Thread Andrea Turli
- add instance API
- add compute abstraction
You can view, comment on, or merge this pull request online at:

  https://github.com/jclouds/jclouds-labs/pull/443

-- Commit Summary --

  * [JCLOUDS-1430] Aliyun ECS

-- File Changes --

A aliyun-ecs/README.md (47)
M aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/ECSComputeServiceApi.java 
(4)
M 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/ECSServiceApiMetadata.java (2)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/ECSComputeService.java 
(105)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/ECSComputeServiceAdapter.java
 (279)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/config/ECSServiceContextModule.java
 (156)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/functions/ImageToImage.java
 (84)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/functions/InstanceStatusToStatus.java
 (43)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/functions/InstanceToNodeMetadata.java
 (136)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/functions/InstanceTypeToHardware.java
 (46)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/functions/RegionToLocation.java
 (54)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/functions/internal/OperatingSystems.java
 (51)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/options/ECSServiceTemplateOptions.java
 (156)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/strategy/CleanupResources.java
 (129)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/compute/strategy/CreateResourcesThenCreateNodes.java
 (277)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/AllocatePublicIpAddressRequest.java
 (59)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/AvailableResource.java 
(43)
A aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/AvailableZone.java 
(47)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/DedicatedHostAttribute.java
 (37)
A aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/EipAddress.java 
(39)
A aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/Instance.java (178)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/InstanceRequest.java (59)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/InstanceStatus.java (55)
A aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/InstanceType.java 
(39)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/NetworkInterface.java 
(41)
A aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/ResourceType.java 
(40)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/SupportedResource.java 
(36)
M aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/Tag.java (10)
A aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/VpcAttributes.java 
(48)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/options/CreateInstanceOptions.java
 (161)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/options/ListInstancesOptions.java
 (258)
M 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/options/TagOptions.java 
(12)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/domain/regionscoped/RegionAndId.java
 (58)
A aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/features/InstanceApi.java 
(209)
M aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/features/TagApi.java (7)
A 
aliyun-ecs/src/main/java/org/jclouds/aliyun/ecs/predicates/InstanceStatusPredicate.java
 (33)
A 
aliyun-ecs/src/test/java/org/jclouds/aliyun/ecs/compute/ECSComputeServiceLiveTest.java
 (113)
A 
aliyun-ecs/src/test/java/org/jclouds/aliyun/ecs/compute/ECSTemplateBuilderLiveTest.java
 (53)
A 
aliyun-ecs/src/test/java/org/jclouds/aliyun/ecs/compute/features/InstanceApiLiveTest.java
 (124)
A 
aliyun-ecs/src/test/java/org/jclouds/aliyun/ecs/compute/features/InstanceApiMockTest.java
 (69)
M 
aliyun-ecs/src/test/java/org/jclouds/aliyun/ecs/compute/features/SecurityGroupApiLiveTest.java
 (2)
M 
aliyun-ecs/src/test/java/org/jclouds/aliyun/ecs/compute/features/SshKeyPairApiLiveTest.java
 (4)
M 
aliyun-ecs/src/test/java/org/jclouds/aliyun/ecs/compute/features/TagApiLiveTest.java
 (9)
A aliyun-ecs/src/test/resources/instanceTypes.json (4281)
A aliyun-ecs/src/test/resources/instances-first.json (960)
A aliyun-ecs/src/test/resources/instances-last.json (960)

-- Patch Links --

https://github.com/jclouds/jclouds-labs/pull/443.patch
https://github.com/jclouds/jclouds-labs/pull/443.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/443


Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Ali Bazlamit
alibazlamit commented on this pull request.



> @@ -125,4 +126,28 @@ public boolean apply(Server server) {
  || server.status().percent() != 0);
   }
}
+
+   @Provides
+   @Singleton
+   @Named(POLL_PREDICATE_SERVER_SUSPENDED)

I have changed it to `TIMEOUT_NODE_SUSPENDED`

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431#discussion_r206911564

Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Ali Bazlamit
@alibazlamit pushed 1 commit.

1903c2c  Change POLL_PREDICATE_SERVER_SUSPENDED to TIMEOUT_NODE_SUSPENDED


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431/files/7fbe8d9331964a1d2b5c75918eb95abcd05cab44..1903c2ccac1f0b22a9e73a32806a44339c9748a3


Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Andrea Turli
@alibazlamit I've added a question to help the discussion. Can we start from 
there?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431#issuecomment-409595895

Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Andrea Turli
andreaturli commented on this pull request.



> @@ -125,4 +126,28 @@ public boolean apply(Server server) {
  || server.status().percent() != 0);
   }
}
+
+   @Provides
+   @Singleton
+   @Named(POLL_PREDICATE_SERVER_SUSPENDED)

@alibazlamit why do we need this `POLL_PREDICATE_SERVER_SUSPENDED` when jclouds 
has `TIMEOUT_NODE_SUSPENDED` ?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431#discussion_r206903040

Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Ali Bazlamit
@andreaturli Could you please let me know which issues are not addressed, i 
replied to every you comment you had, some changes are applied the others are 
explained as you can see.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431#issuecomment-409531204

[jira] [Commented] (JCLOUDS-1416) Cache-Control header is not supported or allowed with B2 upload

2018-08-01 Thread Timothy Anyona (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16565110#comment-16565110
 ] 

Timothy Anyona commented on JCLOUDS-1416:
-

Were you able to verify this from a web application?

> Cache-Control header is not supported or allowed with B2 upload
> ---
>
> Key: JCLOUDS-1416
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1416
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.1.0
>Reporter: Timothy Anyona
>Priority: Major
> Attachments: b2web.zip
>
>
> I posted this on stackoverflow but couldn't include debug logs as 
> stackoverflow indicated that the question was mostly code.
> With the following code using the "b2" provider,
> {noformat}
> Iterable modules = ImmutableSet.of(
> new SLF4JLoggingModule());
> BlobStoreContext context = ContextBuilder.newBuilder(provider)
> .credentials(identity, credential)
> .modules(modules)
> .buildView(BlobStoreContext.class);
> 
> BlobStore blobStore = context.getBlobStore();
> ByteSource payload = Files.asByteSource(localFile);
> PayloadBlobBuilder blobBuilder = blobStore.blobBuilder(remoteFileName)
> .payload(payload)
> .contentLength(payload.size());
> 
> Blob blob = blobBuilder.build();
> 
> String eTag = blobStore.putBlob(containerName, blob);
> {noformat}
>  
> I get the following error
> {noformat}
> java.lang.IllegalArgumentException: Cache-Control header is not supported or 
> allowed
> at 
> org.jclouds.b2.handlers.ParseB2ErrorFromJsonContent.refineException(ParseB2ErrorFromJsonContent.java:45)
> at 
> org.jclouds.b2.handlers.ParseB2ErrorFromJsonContent.handleError(ParseB2ErrorFromJsonContent.java:58)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:138)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:107)
> at 
> org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:91)
> at 
> org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:74)
> at 
> org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:45)
> at 
> org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
> at 
> com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
> at com.sun.proxy.$Proxy513.uploadFile(Unknown Source)
> at org.jclouds.b2.blobstore.B2BlobStore.putBlob(B2BlobStore.java:242)
> at org.jclouds.b2.blobstore.B2BlobStore.putBlob(B2BlobStore.java:223)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
> at com.sun.proxy.$Proxy498.putBlob(Unknown Source)
> at art.jobrunners.ReportJob.sendFileToBlobStorage(ReportJob.java:880)
> at art.jobrunners.ReportJob.sendFileToB2(ReportJob.java:689)
> at art.jobrunners.ReportJob.sendFileToDestinations(ReportJob.java:477)
> at art.jobrunners.ReportJob.execute(ReportJob.java:309)
> at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
> at 
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
> Caused by: org.jclouds.b2.B2ResponseException: request POST 
> https://pod-000-1094-12.backblaze.com/b2api/v1/b2_upload_file//c002_v0001094_t0028
>  HTTP/1.1 failed with code 400, error: B2Error\{code=bad_request, 
> message=Cache-Control header is not supported or allowed, status=400}
> ... 24 common frames omitted
> {noformat}
> The following is the wire and headers logging. Cache-control is not included 
> in any of the request headers so perhaps B2 is reporting the error 
> incorrectly?
> {noformat}
> [DEBUG] 07-May-2018 17:04:32.095 |ArtScheduler_Worker-1| 
> org.jclouds.rest.internal.InvokeHttpMethod - >> invoking b2_list_buckets
> [DEBUG] 07-May-2018 17:04:32.391 |ArtScheduler_Worker-1| 
> org.jclouds.rest.internal.InvokeHttpMethod - >> invoking b2_authorize_account
> [DEBUG] 07-May-2018 17:04:32.618 |ArtScheduler_Worker-1| 
> org.jclouds.http.internal.JavaUrlHttpCommandExecutorService - Sending request 
> -726030843: GET https://api.backblazeb2.com/b2api/v1/b2_authorize_account 
> HTTP/1.1
>

Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Ali Bazlamit
alibazlamit commented on this pull request.



> @@ -19,6 +19,7 @@
 public final class OneAndOneProperties {
 
public static final String POLL_PREDICATE_SERVER = 
"jclouds.oneandone.rest.predicate.server";
+   public static final String POLL_PREDICATE_SERVER_SUSPENDED = 
"jclouds.oneandone.rest.predicate.serverdelete";

I don't quite get what is required here could you please explain more?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431#discussion_r206828912

Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Ali Bazlamit
alibazlamit commented on this pull request.



>try {
- org.apache.jclouds.oneandone.rest.domain.Hardware.CreateHardware 
hardwareRequest
- = 
org.apache.jclouds.oneandone.rest.domain.Hardware.CreateHardware.create(cores, 
1, ram, hdds);
+ if (hardwareModel != null) {

done 
[here](https://github.com/StackPointCloud/jclouds-labs/blob/oneandone-baremetal-update/oneandone/src/main/java/org/apache/jclouds/oneandone/rest/compute/strategy/GenerateHardwareRequest.java)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431#discussion_r206828741

Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Ali Bazlamit
alibazlamit commented on this pull request.



> @@ -65,6 +66,7 @@
private final OneAndOneApi api;
private final Predicate waitServerUntilAvailable;
private final PasswordGenerator.Config passwordGenerator;

removed

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431#discussion_r206828100

Re: [jclouds/jclouds-labs] JCLOUDS-1386 1&1 Baremetal servers (#431)

2018-08-01 Thread Ali Bazlamit
@alibazlamit pushed 1 commit.

7fbe8d9  minor commit


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/431/files/4b4172f6e6bc50fb3b4b023b05cb7822f9ca53d6..7fbe8d9331964a1d2b5c75918eb95abcd05cab44