Google API обрабатывает каждый запрос как операцию, которую можно извлечь из операций () службы, созданной из googleapiclient.discovery .Например:
from googleapiclient import discovery
service = discovery.build('sqladmin', 'v1beta4')
#Just insert a backup for an SQL instance or any other operation
insert_response = service.backupRuns().insert(project=<project-id>,instance=<instance-id>, body={}).execute()
#Get the opepration to check the status
insert_operation = service.operations().get(project=<project-id>,operation=insert_response['name']).execute()
Этот insert_opertation
может использоваться для проверки текущего состояния операции.
Вот как выглядят insert_response
и insert_operation
:
print(insert_response)
{'insertTime': '2019-01-08T13:04:31.941Z',
'kind': 'sql#operation',
'name': '<unique-name-of-the-operation>',
'operationType': 'BACKUP_VOLUME',
'selfLink': 'https://www.googleapis.com/sql/v1beta4/projects/<project-id>/operations/<unique-name-of-the-operation>',
'startTime': '2019-01-08T13:04:32.052Z',
'status': 'RUNNING',
'targetId': '<instance-name>',
'targetLink': 'https://www.googleapis.com/sql/v1beta4/projects/<project-id>/instances/<instance-name>',
'targetProject': '<project-id>',
'user': '<user>'}
print(insert_operation)
{'endTime': '2018-12-26T13:07:08.746Z',
'enqueuedTime': '2018-12-26T13:06:33.563Z',
'id': '<operation-id>',
'instance': '<instance-name>',
'kind': 'sql#backupRun',
'selfLink': 'https://www.googleapis.com/sql/v1beta4/projects/<project-id>/instances/<instance-name>/backupRuns/<operation-id>',
'startTime': '2018-12-26T13:06:33.563Z',
'status': 'SUCCESSFUL',
'type': 'ON_DEMAND',
'windowStartTime': '2018-12-26T13:06:33.563Z'}
service.operations().get()
можно использовать для получения любой операции, выполняемой с помощью API, которые возвращают name
в ответе.
Для получения дополнительной информации см. Ссылку .