такое ZONE_RESOURCE_POOL_EXHAUSTED googleapiclient.errors.httpError? - PullRequest
0 голосов
/ 07 января 2019

Я использую API googleapiclient (Python), такие как images (). Get (), images (). Insert () и т. Д. Для отображения изображений, создания экземпляров виртуальных машин и т. Д.

В прошлом месяце было несколько ошибок ZONE_RESOURCE_POOL_EXHAUSTED из облака Google, что вызвало следующее исключение в моем коде

Exception: {'errors': [{'code': 'ZONE_RESOURCE_POOL_EXHAUSTED',     'message': "The zone 'projects/<project-name>/zones/us-central1-b' does not have enough resources available to fulfill the request.  Try a different zone, or try again later."}]}

Я хочу обработать эту ошибку в своем коде, отправив уникальный код ошибки с моего сервера клиенту, чтобы повторить этот запрос через некоторое время, так как ошибка является временной.

Я не могу умышленно воспроизвести эту ошибку по той же причине ... что она временная

Я проверил код googleapi на GitHub на https://github.com/googleapis/google-api-python-client но не смог найти ZONE_RESOURCE_POOL_EXHAUSTED Мне нужно проверить, является ли это исключение типа "HttpError" или какой-либо другой класс, а затем может обработать это в моем коде

Я уже обрабатываю исключение типа googleapiclient.errors.HttpError в своем коде, напечатав сообщение об ошибке и подняв его как urllib.error.HTTPError (сервер отправляет код e.resp ['status'] для этого случая в клиент)

except HttpError as e:
    printf('Failed to create %s: %s\n', instanceName,   
            e._get_reason())
    raise HTTPError(
            None, int(e.resp['status']), e._get_reason(), "", None)
...