Module: Common::Utils::CredentialsInfo
- Defined in:
- lib/fluent/plugin/common.rb
Overview
TODO: This functionality should eventually be available in another library, but implement it ourselves for now.
Class Method Summary collapse
-
.extract_project_id(str) ⇒ Object
Extracts the project id (either name or number) from str and returns it (as a string) on success, or nil on failure.
-
.project_id ⇒ Object
Determine the project ID from the credentials, if possible.
Class Method Details
.extract_project_id(str) ⇒ Object
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 ([email protected]) 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
389 390 391 392 393 394 395 396 |
# File 'lib/fluent/plugin/common.rb', line 389 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 ⇒ Object
Determine the project ID from the credentials, if possible. Returns the project ID (as a string) on success, or nil on failure.
367 368 369 370 371 372 373 374 375 376 377 378 379 380 |
# File 'lib/fluent/plugin/common.rb', line 367 def self.project_id creds = Google::Auth.get_application_default(LOGGING_SCOPE) return creds.project_id if creds.respond_to?(:project_id) && creds.project_id 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 |