Class: VagrantPlugins::Azure::Services::AzureResourceManager

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-azure/services/azure_resource_manager.rb

Constant Summary collapse

TELEMETRY =
"vagrant-azure/#{::VagrantPlugins::Azure::VERSION}"
TENANT_ID_NAME =
'AZURE_TENANT_ID'
CLIENT_ID_NAME =
'AZURE_CLIENT_ID'
CLIENT_SECRET_NAME =
'AZURE_CLIENT_SECRET'

Instance Method Summary collapse

Constructor Details

#initialize(token_provider, subscription_id, base_url = nil) ⇒ AzureResourceManager

AzureResourceManager provides access to the Azure Resource Manager APIs

Parameters:

  • token_provider (MsRest::TokenProvider)

    object used to procure an authentication token from Azure Active Directory

  • subscription_id (String)
  • base_url (String) (defaults to: nil)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/vagrant-azure/services/azure_resource_manager.rb', line 26

def initialize(token_provider, subscription_id, base_url = nil)
  @token_provider = if token_provider.nil? || !token_provider.is_a?(MsRest::TokenProvider)
                      if ENV[TENANT_ID_NAME].nil? || ENV[CLIENT_ID_NAME].nil? || ENV[CLIENT_SECRET_NAME].nil?
                        raise ArgumentError "Either set #{TENANT_ID_NAME}, #{CLIENT_ID_NAME} or #{CLIENT_SECRET_NAME} in your environment, or pass in a MsRest::TokenProvider"
                      else
                        MsRestAzure::ApplicationTokenProvider.new(
                            ENV[TENANT_ID_NAME],
                            ENV[CLIENT_ID_NAME],
                            ENV[CLIENT_SECRET_NAME])
                      end
                    else
                      token_provider
                    end
  @credential = MsRest::TokenCredentials.new(token_provider)
  @base_url = base_url
  @subscription_id = subscription_id
end

Instance Method Details

#computeAzure::ARM::Compute::ComputeManagementClient

Azure Resource Manager Compute API Client

Returns:

  • (Azure::ARM::Compute::ComputeManagementClient)


46
47
48
# File 'lib/vagrant-azure/services/azure_resource_manager.rb', line 46

def compute
  build(::Azure::ARM::Compute::ComputeManagementClient)
end

#networkAzure::ARM::Network::NetworkManagementClient

Azure Resource Manager Network API Client

Returns:

  • (Azure::ARM::Network::NetworkManagementClient)


58
59
60
# File 'lib/vagrant-azure/services/azure_resource_manager.rb', line 58

def network
  build(::Azure::ARM::Network::NetworkManagementClient)
end

#resourcesAzure::ARM::Resources::ResourceManagementClient

Azure Resource Manager Generic Resource API Client

Returns:

  • (Azure::ARM::Resources::ResourceManagementClient)


52
53
54
# File 'lib/vagrant-azure/services/azure_resource_manager.rb', line 52

def resources
  build(::Azure::ARM::Resources::ResourceManagementClient)
end

#storageAzure::ARM::Storage::StorageManagementClient

Azure Resource Manager Storage API Client

Returns:

  • (Azure::ARM::Storage::StorageManagementClient)


64
65
66
# File 'lib/vagrant-azure/services/azure_resource_manager.rb', line 64

def storage
  build(::Azure::ARM::Storage::StorageManagementClient)
end