blob: 7c9618faedbdeb1cc9e223678fdf023f99b2948f [file] [log] [blame]
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from recipe_engine import recipe_api
class TokenUtilApi(recipe_api.RecipeApi):
"""Utilities to generate tokens for communicating data."""
def metric_center_token(self):
"""Generate a token to interact with GCS.
Returns the path to the written token.
"""
service_account = self.m.service_account.default()
metrics_center_access_token = service_account.get_access_token(
scopes=[
'https://www.googleapis.com/auth/cloud-platform',
'https://www.googleapis.com/auth/datastore'
]
)
metrics_center_token_path = self.m.path.mkstemp()
self.m.file.write_text(
"write metric center token",
metrics_center_token_path,
metrics_center_access_token,
include_log=False
)
return metrics_center_token_path
def cocoon_token(self):
"""Generate a token to interact with Cocoon backend APIs.
Returns the path to the written token.
"""
service_account = self.m.service_account.default()
cocoon_access_token = service_account.get_access_token()
cocoon_access_token_path = self.m.path.mkstemp()
self.m.file.write_text(
"write cocoon token",
cocoon_access_token_path,
cocoon_access_token,
include_log=False
)
return cocoon_access_token_path