From d0f868bffc6c7795e2efb00ee950a4c7d2d9fa65 Mon Sep 17 00:00:00 2001 From: Harkamal Jot Singh Kumar Date: Thu, 22 May 2025 16:59:29 +0000 Subject: [PATCH 1/4] fix: remove unnecessary call to mds service --- google/auth/compute_engine/credentials.py | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/google/auth/compute_engine/credentials.py b/google/auth/compute_engine/credentials.py index f0126c0a8..74f12e7cc 100644 --- a/google/auth/compute_engine/credentials.py +++ b/google/auth/compute_engine/credentials.py @@ -87,25 +87,6 @@ def __init__( self._universe_domain = universe_domain self._universe_domain_cached = True - def _retrieve_info(self, request): - """Retrieve information about the service account. - - Updates the scopes and retrieves the full service account email. - - Args: - request (google.auth.transport.Request): The object used to make - HTTP requests. - """ - info = _metadata.get_service_account_info( - request, service_account=self._service_account_email - ) - - self._service_account_email = info["email"] - - # Don't override scopes requested by the user. - if self._scopes is None: - self._scopes = info["scopes"] - def _metric_header_for_usage(self): return metrics.CRED_TYPE_SA_MDS @@ -123,7 +104,6 @@ def refresh(self, request): """ scopes = self._scopes if self._scopes is not None else self._default_scopes try: - self._retrieve_info(request) self.token, self.expiry = _metadata.get_service_account_token( request, service_account=self._service_account_email, scopes=scopes ) From cd2577500148d351baa4bc5bcf4fd99155611c65 Mon Sep 17 00:00:00 2001 From: Harkamal Jot Singh Kumar Date: Mon, 2 Jun 2025 23:05:06 +0000 Subject: [PATCH 2/4] fix fetch service account email and scopes --- google/auth/compute_engine/credentials.py | 28 ++++++++++++- system_tests/secrets.tar.enc | Bin 10324 -> 10324 bytes tests/compute_engine/test_credentials.py | 47 +++++++++++++++------- 3 files changed, 58 insertions(+), 17 deletions(-) diff --git a/google/auth/compute_engine/credentials.py b/google/auth/compute_engine/credentials.py index 74f12e7cc..f5b5ebf80 100644 --- a/google/auth/compute_engine/credentials.py +++ b/google/auth/compute_engine/credentials.py @@ -83,6 +83,8 @@ def __init__( self._scopes = scopes self._default_scopes = default_scopes self._universe_domain_cached = False + # if service account email is provided, then do not cache that result + self._service_account_info_cached = service_account_email != "default" if universe_domain: self._universe_domain = universe_domain self._universe_domain_cached = True @@ -90,6 +92,27 @@ def __init__( def _metric_header_for_usage(self): return metrics.CRED_TYPE_SA_MDS + def _retrieve_info(self): + """Retrieve information about the service account. + Updates the scopes and retrieves the full service account email. + """ + if self._service_account_info_cached: + return + + from google.auth.transport import requests as google_auth_requests + + request = google_auth_requests.Request() + info = _metadata.get_service_account_info( + request, service_account=self._service_account_email + ) + + self._service_account_email = info["email"] + + # Don't override scopes requested by the user. + if self._scopes is None: + self._scopes = info["scopes"] + self._service_account_info_cached = True + def refresh(self, request): """Refresh the access token and scopes. @@ -115,13 +138,14 @@ def refresh(self, request): def service_account_email(self): """The service account email. - .. note:: This is not guaranteed to be set until :meth:`refresh` has been - called. + Gets the service account email, if email is not present makes a network call. """ + self._retrieve_info() return self._service_account_email @property def requires_scopes(self): + self._retrieve_info() return not self._scopes @property diff --git a/system_tests/secrets.tar.enc b/system_tests/secrets.tar.enc index 9a188ee8ef41234b1a3b94702371315d06ea4265..e5abdc2020151d5d5f9711afce86446c3caa978d 100644 GIT binary patch literal 10324 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 literal 10324 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 Date: Mon, 2 Jun 2025 23:12:32 +0000 Subject: [PATCH 3/4] update comment --- google/auth/compute_engine/credentials.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/auth/compute_engine/credentials.py b/google/auth/compute_engine/credentials.py index f5b5ebf80..2c1b461e7 100644 --- a/google/auth/compute_engine/credentials.py +++ b/google/auth/compute_engine/credentials.py @@ -83,7 +83,7 @@ def __init__( self._scopes = scopes self._default_scopes = default_scopes self._universe_domain_cached = False - # if service account email is provided, then do not cache that result + # if service account email is provided, then cache the result. self._service_account_info_cached = service_account_email != "default" if universe_domain: self._universe_domain = universe_domain From 7f8b3eb3cf6ef499ef9f49e8b6555c26573e39b3 Mon Sep 17 00:00:00 2001 From: Harkamal Jot Singh Kumar Date: Mon, 2 Jun 2025 23:30:10 +0000 Subject: [PATCH 4/4] more change --- google/auth/compute_engine/credentials.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/google/auth/compute_engine/credentials.py b/google/auth/compute_engine/credentials.py index 2c1b461e7..65b3233f2 100644 --- a/google/auth/compute_engine/credentials.py +++ b/google/auth/compute_engine/credentials.py @@ -83,7 +83,9 @@ def __init__( self._scopes = scopes self._default_scopes = default_scopes self._universe_domain_cached = False - # if service account email is provided, then cache the result. + # If a specific service account email (i.e., not "default") is provided at + # initialization, we can skip fetching the full details from the metadata + # server. self._service_account_info_cached = service_account_email != "default" if universe_domain: self._universe_domain = universe_domain @@ -138,7 +140,10 @@ def refresh(self, request): def service_account_email(self): """The service account email. - Gets the service account email, if email is not present makes a network call. + .. note:: + Accessing this property for the first time may trigger a network + request to the metadata server to retrieve the default service + account email. """ self._retrieve_info() return self._service_account_email