module MsRestAzure::Common::Configurable

The Azure::Common::Configurable module provides basic configuration for Azure activities.

Attributes

active_directory_settings[RW]

@return [MsRestAzure::ActiveDirectoryServiceSettings] Azure active directory service settings.

client_id[RW]

@return [String] Azure client id.

client_secret[RW]

@return [String] Azure secret key.

credentials[RW]

@return [MsRest::ServiceClientCredentials] credentials to authorize HTTP requests made by the service client.

subscription_id[RW]

@return [String] Azure subscription id.

tenant_id[RW]

@return [String] Azure tenant id (also known as domain).

Public Class Methods

keys() click to toggle source

List of configurable keys for {Azure::Common::Client}. @return [Array] of option keys.

# File lib/ms_rest_azure/common/configurable.rb, line 30
def keys
  @keys ||= [:tenant_id, :client_id, :client_secret, :subscription_id, :active_directory_settings]
end

Public Instance Methods

config() click to toggle source
# File lib/ms_rest_azure/common/configurable.rb, line 70
def config
  self
end
configure() { |self| ... } click to toggle source

Set configuration options using a block.

# File lib/ms_rest_azure/common/configurable.rb, line 38
def configure
  yield self
end
reset!(options = {}) click to toggle source

Resets the configurable options to provided options or defaults. This will also creates MsRest::TokenCredentials to be used for subsequent Azure Resource Manager clients.

# File lib/ms_rest_azure/common/configurable.rb, line 46
def reset!(options = {})
  MsRestAzure::Common::Configurable.keys.each do |key|
    default_value = MsRestAzure::Common::Default.options[key]
    instance_variable_set(:"@#{key}", options.fetch(key, default_value))
  end

  if(options[:credentials].nil?)
    # The user has not passed in the credentials. So, the SDK has to
    # build the credentials itself.
    fail ArgumentError, 'tenant_id is nil' if self.tenant_id.nil?
    fail ArgumentError, 'client_id is nil' if self.client_id.nil?
    fail ArgumentError, 'client_secret is nil' if self.client_secret.nil?
    fail ArgumentError, 'active_directory_settings is nil' if self.active_directory_settings.nil?

    self.credentials = MsRest::TokenCredentials.new(
        MsRestAzure::ApplicationTokenProvider.new(
            self.tenant_id, self.client_id, self.client_secret, self.active_directory_settings))
  else
    self.credentials = options[:credentials]
  end

  self
end

Private Instance Methods

setup_default_options() click to toggle source

configures configurable options to default values

# File lib/ms_rest_azure/common/configurable.rb, line 79
def setup_default_options
  opts = {}
  MsRestAzure::Common::Configurable.keys.map do |key|
    opts[key] = MsRestAzure::Common::Default.options[key]
  end

  opts
end