module Common::Utils::CredentialsInfo
TODO: This functionality should eventually be available in another library, but implement it ourselves for now.
Public Class Methods
extract_project_id(str)
click to toggle source
Extracts the project id (either name or number) from str and returns it (as a string) on success, or nil on failure.
Recognizes IAM format (account@project-name.iam.gserviceaccount.com) as well as the legacy format with a project number at the front of the string, terminated by a dash (-) which is not part of the ID, i.e.: <PROJECT_ID>-<OTHER_PARTS>.apps.googleusercontent.com
# File lib/fluent/plugin/common.rb, line 376 def self.extract_project_id(str) [/^.*@(?<project_id>.+)\.iam\.gserviceaccount\.com/, /^(?<project_id>\d+)-/].each do |exp| match_data = exp.match(str) return match_data['project_id'] unless match_data.nil? end nil end
project_id()
click to toggle source
Determine the project ID from the credentials, if possible. Returns the project ID (as a string) on success, or nil on failure.
# File lib/fluent/plugin/common.rb, line 353 def self.project_id creds = Google::Auth.get_application_default(LOGGING_SCOPE) if creds.respond_to?(:project_id) return creds.project_id if creds.project_id end if creds.issuer id = extract_project_id(creds.issuer) return id unless id.nil? end if creds.client_id id = extract_project_id(creds.client_id) return id unless id.nil? end nil end