Skip to content

Commit 7ed524e

Browse files
committed
Add provider to fetch_token() spans
1 parent 1b2b682 commit 7ed524e

File tree

5 files changed

+32
-49
lines changed

5 files changed

+32
-49
lines changed

src/config_default_credentials.rs

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -49,31 +49,28 @@ impl ConfigDefaultCredentials {
4949
})
5050
}
5151

52-
#[instrument(level = Level::DEBUG, skip(cred, client))]
52+
#[instrument(level = Level::DEBUG, skip(cred, client), fields(provider = "ConfigDefaultCredentials"))]
5353
async fn fetch_token(
5454
cred: &AuthorizedUserRefreshToken,
5555
client: &HttpClient,
5656
) -> Result<Arc<Token>, Error> {
5757
client
58-
.token(
59-
&|| {
60-
Request::builder()
61-
.method(Method::POST)
62-
.uri(DEFAULT_TOKEN_GCP_URI)
63-
.header(CONTENT_TYPE, "application/json")
64-
.body(Full::from(Bytes::from(
65-
serde_json::to_vec(&RefreshRequest {
66-
client_id: &cred.client_id,
67-
client_secret: &cred.client_secret,
68-
grant_type: "refresh_token",
69-
refresh_token: &cred.refresh_token,
70-
})
71-
.unwrap(),
72-
)))
73-
.unwrap()
74-
},
75-
"ConfigDefaultCredentials",
76-
)
58+
.token(&|| {
59+
Request::builder()
60+
.method(Method::POST)
61+
.uri(DEFAULT_TOKEN_GCP_URI)
62+
.header(CONTENT_TYPE, "application/json")
63+
.body(Full::from(Bytes::from(
64+
serde_json::to_vec(&RefreshRequest {
65+
client_id: &cred.client_id,
66+
client_secret: &cred.client_secret,
67+
grant_type: "refresh_token",
68+
refresh_token: &cred.refresh_token,
69+
})
70+
.unwrap(),
71+
)))
72+
.unwrap()
73+
})
7774
.await
7875
}
7976
}

src/custom_service_account.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ impl CustomServiceAccount {
7070
})
7171
}
7272

73-
#[instrument(level = Level::DEBUG, skip(self))]
73+
#[instrument(level = Level::DEBUG, skip(self), fields(provider = "CustomServiceAccount"))]
7474
async fn fetch_token(&self, scopes: &[&str]) -> Result<Arc<Token>, Error> {
7575
let jwt =
7676
Claims::new(&self.credentials, scopes, self.subject.as_deref()).to_jwt(&self.signer)?;
@@ -83,15 +83,12 @@ impl CustomServiceAccount {
8383

8484
let token = self
8585
.client
86-
.token(
87-
&|| {
88-
Request::post(&self.credentials.token_uri)
89-
.header(CONTENT_TYPE, "application/x-www-form-urlencoded")
90-
.body(Full::from(body.clone()))
91-
.unwrap()
92-
},
93-
"CustomServiceAccount",
94-
)
86+
.token(&|| {
87+
Request::post(&self.credentials.token_uri)
88+
.header(CONTENT_TYPE, "application/x-www-form-urlencoded")
89+
.body(Full::from(body.clone()))
90+
.unwrap()
91+
})
9592
.await?;
9693

9794
Ok(token)

src/gcloud_authorized_user.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ impl GCloudAuthorizedUser {
2828
})
2929
}
3030

31-
#[instrument(level = tracing::Level::DEBUG)]
31+
#[instrument(level = tracing::Level::DEBUG, fields(provider = "GCloudAuthorizedUser"))]
3232
fn fetch_token() -> Result<Arc<Token>, Error> {
3333
Ok(Arc::new(Token::from_string(
3434
run(&["auth", "print-access-token", "--quiet"])?,

src/metadata_service_account.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl MetadataServiceAccount {
3434

3535
debug!("getting project ID from GCP instance metadata server");
3636
let req = metadata_request(DEFAULT_PROJECT_ID_GCP_URI);
37-
let body = client.request(req, "MetadataServiceAccount").await?;
37+
let body = client.request(req).await?;
3838
let project_id = match str::from_utf8(&body) {
3939
Ok(s) if !s.is_empty() => Arc::from(s),
4040
Ok(_) => {
@@ -56,13 +56,10 @@ impl MetadataServiceAccount {
5656
})
5757
}
5858

59-
#[instrument(level = Level::DEBUG, skip(client))]
59+
#[instrument(level = Level::DEBUG, skip(client), fields(provider = "MetadataServiceAccount"))]
6060
async fn fetch_token(client: &HttpClient) -> Result<Arc<Token>, Error> {
6161
client
62-
.token(
63-
&|| metadata_request(DEFAULT_TOKEN_GCP_URI),
64-
"MetadataServiceAccount",
65-
)
62+
.token(&|| metadata_request(DEFAULT_TOKEN_GCP_URI))
6663
.await
6764
}
6865
}

src/types.rs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,16 @@ impl HttpClient {
4848
pub(crate) async fn token(
4949
&self,
5050
request: &impl Fn() -> Request<Full<Bytes>>,
51-
provider: &'static str,
5251
) -> Result<Arc<Token>, Error> {
5352
let mut retries = 0;
5453
let body = loop {
55-
let err = match self.request(request(), provider).await {
54+
let err = match self.request(request()).await {
5655
// Early return when the request succeeds
5756
Ok(body) => break body,
5857
Err(err) => err,
5958
};
6059

61-
warn!(
62-
?err,
63-
provider, retries, "failed to refresh token, trying again..."
64-
);
60+
warn!(?err, retries, "failed to refresh token, trying again...");
6561

6662
retries += 1;
6763
if retries >= RETRY_COUNT {
@@ -73,12 +69,8 @@ impl HttpClient {
7369
.map_err(|err| Error::Json("failed to deserialize token from response", err))
7470
}
7571

76-
pub(crate) async fn request(
77-
&self,
78-
req: Request<Full<Bytes>>,
79-
provider: &'static str,
80-
) -> Result<Bytes, Error> {
81-
debug!(url = ?req.uri(), provider, "requesting token");
72+
pub(crate) async fn request(&self, req: Request<Full<Bytes>>) -> Result<Bytes, Error> {
73+
debug!(url = ?req.uri(), "requesting token");
8274
let (parts, body) = self
8375
.inner
8476
.request(req)

0 commit comments

Comments
 (0)