Sha256: 59cb748dabd91e568841441c29eff655c5d812c01ea0d55bc19dfb953baed01e

Contents?: true

Size: 1.68 KB

Versions: 1

Compression:

Stored size: 1.68 KB

Contents

module Fog
  module Credentials
    # This class is managing credentials token
    class AzureRM
      def self.get_credentials(tenant_id, client_id, client_secret)
        if @credentials.nil? || new_management_credential?(tenant_id, client_id, client_secret)
          get_new_credentials(tenant_id, client_id, client_secret)
        else
          @credentials
        end
      end

      def self.get_token(tenant_id, client_id, client_secret)
        get_credentials(tenant_id, client_id, client_secret) if @credentials.nil?
        @token_provider.get_authentication_header
      end

      def self.get_new_credentials(tenant_id, client_id, client_secret)
        @tenant_id = tenant_id
        @client_id = client_id
        @client_secret = client_secret
        return if @tenant_id.nil? || @client_id.nil? || @client_secret.nil?
        @token_provider = MsRestAzure::ApplicationTokenProvider.new(@tenant_id, @client_id, @client_secret, active_directory_service_settings)
        @credentials = MsRest::TokenCredentials.new(@token_provider)
        @credentials
      end

      def self.new_management_credential?(tenant_id, client_id, client_secret)
        @tenant_id != tenant_id ||
          @client_id != client_id ||
          @client_secret != client_secret
      end

      def self.new_account_credential?(options = {})
        @account_name != options[:azure_storage_account_name] ||
          @account_key != options[:azure_storage_access_key] ||
          @connection_string != options[:azure_storage_connection_string]
      end

      private_class_method :get_new_credentials
      private_class_method :new_management_credential?
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fog-azure-rm-0.1.1 lib/fog/azurerm/credentials.rb