This page describes how to programmatically poll the long-running operation resources returned by methods in Service Infrastructure APIs that take a substantial amount of time to complete, such as service.rollouts.create
. After an operation is done, the done
field will be set to true.
To poll an operation, repeatedly invoke the operations.get
method with a recommended 10 seconds backoff until the operation is done:
# This is an example of getting a pending `Operation` resource. gcurl https://servicemanagement.googleapis.com/v1/operations/rollouts.endpointsapis.appspot.com:2016-07-16r2 { "name": "operations/rollouts.endpointsapis.appspot.com:2016-07-16r2", "metadata": { "@type": "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata", "resourceNames": [ "services/endpointsapis.appspot.com/rollouts/2016-07-16r2" ], "steps": [ { "description": "update Service Controller", "status": "In_PROGRESS" } ], "progressPercentage": 0, "startTime": "2016-07-16T00:56:55.737Z", } "response": { "@type": "type.googleapis.com/google.api.servicemanagement.v1.Rollout", "rolloutId": "2016-07-16r2", "createTime": "2016-07-16T00:56:55.724Z", "serviceSelectionStrategy": { "serviceConfigIds": [ "2016-07-16r1" ] }, "serviceName": "endpointsapis.appspot.com" } # This is an example of getting a done `Operation` resource. gcurl https://servicemanagement.googleapis.com/v1/operations/rollouts.endpointsapis.appspot.com:2016-07-16r2 { "name": "operations/rollouts.endpointsapis.appspot.com:2016-07-16r2", "metadata": { "@type": "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata", "resourceNames": [ "services/endpointsapis.appspot.com/rollouts/2016-07-16r2" ], "steps": [ { "description": "update Service Controller", "status": "Done" } ], "progressPercentage": 100, "startTime": "2016-07-16T00:56:55.737Z", } "done": true, "response": { "@type": "type.googleapis.com/google.api.servicemanagement.v1.Rollout", "rolloutId": "2016-07-16r2", "createTime": "2016-07-16T00:56:55.724Z", "serviceSelectionStrategy": { "serviceConfigIds": [ "2016-07-16r1" ] }, "serviceName": "endpointsapis.appspot.com" }