בדף הזה נסביר איך לדגום באופן פרוגרמטי משאבים של פעולות ממושכות, שמוחזרים על ידי שיטות (methods) של ממשקי ה-API של Service Infrastructure שפעולתן נמשכת זמן רב, כמו service.rollouts.create.
כשפעולה תסתיים, השדה done יהיה מוגדר כ-true.
כדי לדגום פעולה ממושכת מסוימת, צריך להפעיל שוב ושוב את השיטה operations.get עם השהיה מומלצת לפני ניסיון חוזר (backoff) של 10 שניות, עד שהפעולה מסתיימת:
# 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"
}