def __read_secret_manager()

in ad-joining/register-computer/main.py [0:0]


def __read_secret_manager(project_id, name, version):
    if project_id is None:
        raise ConfigurationException("Secret Manager project ID not specified")

    if version is None:
        logging.debug("Secret version for '%s' not specified, using 'latest'" % name)
        version = "latest"

    try:
        client = secretmanager.SecretManagerServiceClient()

        name = client.secret_version_path(
                project_id, 
                name, 
                version)
        response = client.access_secret_version(request={"name": name})
        return response.payload.data.decode("UTF-8")
    except Exception as e:
        # Log and rethrow exception from Secret Manager
        logging.exception("Could not retrieve secret from Secret Manager: %s" % e)
        raise e