class ServiceAccount
Constants
- APP_NAME_REGEX
- CREDENTIALS_INDEX
Public Class Methods
new(url_string = "", user_id = "", pwd = "", instance_id = "", api_key="", credsFilePath = "")
click to toggle source
# File lib/service_account.rb, line 92 def initialize(url_string = "", user_id = "", pwd = "", instance_id = "", api_key="", credsFilePath = "") if !url_string.nil? && !url_string.empty? && !user_id.nil? && !user_id.empty? && !pwd.nil? && !pwd.empty? && !instance_id.nil? && !instance_id.empty? @url_string = url_string @user_id = user_id @pwd = pwd @instance_id = instance_id @iam_enabled = false elsif !url_string.nil? && !url_string.empty? && !instance_id.nil? && !instance_id.empty? && !api_key.nil? && !api_key.empty? @url_string = url_string @instance_id = instance_id @api_key = api_key @iam_enabled = true else account = get_service_account_via_env_var if account.nil? account = get_service_account_via_vcap_service end if account.nil? && !credsFilePath.empty? File.open(credsFilePath) do |credsFile| creds = JSON.parse(credsFile.read) if !creds.nil? if creds.has_key?("credentials") creds=creds["credentials"] end account = extractCredsFromJson(creds) if account.nil? raise "Couldn't create a service account from file" end end end end if account.nil? raise "Couldn't create a service account" end @url_string = account[0] @user_id = account[1] @pwd = account[2] @instance_id=account[3] @api_key = account[4] @iam_enabled = account[5] end end
Public Instance Methods
get_api_key()
click to toggle source
# File lib/service_account.rb, line 147 def get_api_key @api_key end
get_instance_id()
click to toggle source
# File lib/service_account.rb, line 163 def get_instance_id @instance_id end
get_password()
click to toggle source
# File lib/service_account.rb, line 159 def get_password @pwd end
get_url_string()
click to toggle source
# File lib/service_account.rb, line 151 def get_url_string @url_string end
get_user_id()
click to toggle source
# File lib/service_account.rb, line 155 def get_user_id @user_id end
is_iam_enabled()
click to toggle source
# File lib/service_account.rb, line 143 def is_iam_enabled @iam_enabled end
set_instance_id(instance_id)
click to toggle source
# File lib/service_account.rb, line 179 def set_instance_id(instance_id) @instance_id = instance_id end
set_password(password)
click to toggle source
# File lib/service_account.rb, line 175 def set_password(password) @pwd = password end
set_url_string(url)
click to toggle source
# File lib/service_account.rb, line 167 def set_url_string(url) @url_string = url end
set_user_id(user_id)
click to toggle source
# File lib/service_account.rb, line 171 def set_user_id(user_id) @user_id = user_id end
Private Instance Methods
extractCredsFromJson(credentials_list)
click to toggle source
# File lib/service_account.rb, line 233 def extractCredsFromJson(credentials_list) if credentials_list.nil? return end url = credentials_list[URL_STRING] user_id = credentials_list[USER_ID_STRING] pwd = credentials_list[PASSWORD_STRING] instance_id = credentials_list[INSTANCE_ID_STRING] api_key= credentials_list[IAM_API_KEY_STRING] if url.nil? || instance_id.nil? return end if (user_id.nil? || pwd.nil?) && api_key.nil? return end iam_enabled=api_key.nil??false:true return [url, user_id, pwd, instance_id, api_key, iam_enabled] end
get_service_account_via_env_var()
click to toggle source
# File lib/service_account.rb, line 186 def get_service_account_via_env_var url_string = ENV[GP_URL] if url_string.nil? return end instance_id = ENV[GP_INSTANCE_ID] if instance_id.nil? return end user_id = ENV[GP_USER_ID] pwd = ENV[GP_PWD] api_key=ENV[GP_IAM_API_KEY] if (user_id.nil? || pwd.nil?) && api_key.nil? return end iam_enabled=api_key.nil??false:true return [url_string, user_id, pwd, instance_id, api_key, iam_enabled] end
get_service_account_via_vcap_service()
click to toggle source
# File lib/service_account.rb, line 211 def get_service_account_via_vcap_service vcap_services = ENV[VCAP_SERVICES] if vcap_services.nil? return end json_vcap_services = JSON.parse(vcap_services) app_name = "" json_vcap_services.each do |key, value| if (key =~ APP_NAME_REGEX or APP_NAME.eql? key) app_name = key break end end credentials_list = JSON.parse(vcap_services)[app_name][CREDENTIALS_INDEX][CREDENTIALS] return extractCredsFromJson(credentials_list) end