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