[
https://issues.apache.org/jira/browse/JCLOUDS-1298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16014421#comment-16014421
]
Svetoslav Neykov commented on JCLOUDS-1298:
-------------------------------------------
Just found out the this is partially addressed in the portable API, mostly when
deleting resources, see [1]. Certain methods are annotated with
{{@ResponseParser(URIParser.class)}} and the Operation URL is returned as the
result of the operation which is later used to poll for operation completion.
Pretty much what [~andreaturli] suggests above.
[1]
https://github.com/jclouds/jclouds-labs/blob/master/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/config/AzureComputeServiceContextModule.java#L153-L175
> [Azure ARM] Handle async operations
> -----------------------------------
>
> Key: JCLOUDS-1298
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1298
> Project: jclouds
> Issue Type: Improvement
> Components: jclouds-compute
> Affects Versions: 2.0.1
> Reporter: Svetoslav Neykov
> Labels: azurecompute-arm
>
> Azure's API could choose to continue an operation as async if it takes too
> long to complete. To let the client know it should continue polling for the
> result it includes the operation URL in an {{Azure-AsyncOperation}} header.
> The client is supposed to poll the operation URL (the value of the header)
> before declaring success/failure.
> With the current implementation an operation could still be in progress and
> jclouds return a success result. The {{provisioningState}} property would
> still be in an {{Updating}} state.
> Proposal:
> When the response contains the {{Azure-AsyncOperation}} header don't return
> yet, but wait for the state to transition to success/failure before giving
> control back to the caller.
> Related to https://issues.apache.org/jira/browse/JCLOUDS-1296; If operations
> block and the result is not used until success of the operation, instances of
> "409 Conflict" responses should decrease dramatically.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)