module GClouder::Project::ID
Public Class Methods
bail()
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 27 def self.bail puts "not authenticated against API and --activate-service-accounts option not passed" puts "" puts "please either:" puts "" puts " run: gcloud auth login && gcloud auth application-default login" puts "" puts " or: specify --activate-service-accounts flag and make sure the relevant keys exist in the keys dir" puts "" exit 1 end
current()
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 19 def self.current return if cli_args[:ignore_default_service_account] id = shell("gcloud auth list --format json | jq -r '.[] | select(.status == \"ACTIVE\") | .account'") return id if !id.empty? return if cli_args[:activate_service_accounts] bail end
default()
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 59 def self.default shell("gcloud config set account #{project['project_id']}") end
dir()
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 63 def self.dir cli_args[:keys_dir] || File.join(ENV["HOME"], "keys") end
id()
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 10 def self.id @id end
key_file(project_id)
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 67 def self.key_file(project_id) File.join(dir, "gcloud-service-key-#{project_id}.json") end
load()
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 14 def self.load @id ||= current switch(project["project_id"]) if @id.nil? end
rescue()
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 46 def self.rescue if @id.nil? shell("gcloud config unset account") return end switch(@id) end
reset()
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 55 def self.reset switch(project["project_id"]) end
switch(project_id)
click to toggle source
# File lib/gclouder/resources/project_id.rb, line 39 def self.switch(project_id) return unless project_id if cli_args[:activate_service_accounts] shell("gcloud --quiet auth activate-service-account --key-file #{key_file(project_id)}") end end