in gce_rescue/tasks/validations/api.py [0:0]
def api_service(
service: str,
version: str,
credentials: Credentials) -> Resource:
def _builder(http, *args, **kwargs):
# google api client is not thread safe
# https://github.com/googleapis/google-api-python-client/blob/main/docs/thread_safety.md
del http
headers = kwargs.setdefault('headers',{})
headers['user-agent'] = f'gce_rescue-{VERSION}'
auth_http = google_auth_httplib2.AuthorizedHttp(credentials,
http=httplib2.Http())
return googleapiclient.http.HttpRequest(auth_http, *args, **kwargs)
service_ = googleapiclient.discovery.build(service, version,
cache_discovery=False,
credentials=credentials,
requestBuilder=_builder)
return service_