module TerraspacePluginAzurerm::Clients::Options
Public Instance Methods
base_client_options()
click to toggle source
# File lib/terraspace_plugin_azurerm/clients/options.rb, line 17 def base_client_options # AZURE_* is used by ruby generally. # ARM_* is used by Terraform azurerm provider: https://www.terraform.io/docs/providers/azurerm/index.html # Favor ARM_ because this plugin is designed for Terraspace. client_id = ENV['ARM_CLIENT_ID'] || ENV['AZURE_CLIENT_ID'] client_secret = ENV['ARM_CLIENT_SECRET'] || ENV['AZURE_CLIENT_SECRET'] subscription_id = ENV['ARM_SUBSCRIPTION_ID'] || ENV['AZURE_SUBSCRIPTION_ID'] || AzureInfo.subscription_id tenant_id = ENV['ARM_TENANT_ID'] || ENV['AZURE_TENANT_ID'] || AzureInfo.tenant_id o = { tenant_id: tenant_id, client_id: client_id, client_secret: client_secret, subscription_id: subscription_id, } validate_base_options!(o) o end
client_options()
click to toggle source
# File lib/terraspace_plugin_azurerm/clients/options.rb, line 5 def client_options o = base_client_options o[:credentials] = credentials o end
credentials()
click to toggle source
# File lib/terraspace_plugin_azurerm/clients/options.rb, line 11 def credentials o = base_client_options provider = MsRestAzure::ApplicationTokenProvider.new(o[:tenant_id], o[:client_id], o[:client_secret]) MsRest::TokenCredentials.new(provider) end
validate_base_options!(options)
click to toggle source
# File lib/terraspace_plugin_azurerm/clients/options.rb, line 37 def validate_base_options!(options) vars = [] options.each do |k,v| vars << "ARM_#{k}".upcase if v.nil? end return if vars.empty? logger.error "ERROR: Required Azure env variables missing. Please set these env variables:".color(:red) vars.each do |var| logger.error " #{var}" end exit 1 end