Class: Chef::Provisioning::AzureDriver::AzureResource
- Inherits:
-
Resource::LWRPBase
- Object
- Resource::LWRPBase
- Chef::Provisioning::AzureDriver::AzureResource
- Defined in:
- lib/chef/provisioning/azure_driver/azure_resource.rb
Direct Known Subclasses
Resource::AzureCloudService, Resource::AzureSqlServer, Resource::AzureStorageAccount
Instance Method Summary collapse
-
#initialize(*args) ⇒ AzureResource
constructor
A new instance of AzureResource.
Constructor Details
#initialize(*args) ⇒ AzureResource
Returns a new instance of AzureResource.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/chef/provisioning/azure_driver/azure_resource.rb', line 8 def initialize(*args) super if run_context @chef_environment = run_context.cheffish.current_environment @chef_server = run_context.cheffish.current_chef_server @driver = run_context.chef_provisioning.current_driver end config = run_context.chef_provisioning.config scheme, account_id = driver.split(':', 2) if account_id.nil? || account_id.empty? subscription = Subscriptions.default_subscription(config) config = Cheffish::MergedConfig.new({ azure_subscriptions: subscription }, config) if !subscription raise "Driver #{driver} did not specify a subscription ID, and no default subscription was found. Have you downloaded the Azure CLI and used `azure account download` and `azure account import` to set up Azure? Alternately, you can set azure_subscriptions to [ { subscription_id: '...', management_credentials: ... }] in your Chef configuration." end else subscription_id = account_id || subscription[:subscription_id] subscription = Subscriptions.get_subscription(config, subscription_id) end if !subscription raise "Driver #{driver} has a subscription ID (#{subscription_id}), but the system has no credentials configured for it! If you have access to this subscription, you can use `azure account download` and `azure account import` in the Azure CLI to get the credentials, or set azure_subscriptions to [ { subscription_id: '...', management_credentials: ... }] in your Chef configuration." else Chef::Log.debug("Using subscription: #{subscription.inspect}") end Azure.configure do |azure| azure.management_certificate = subscription[:management_certificate] azure.subscription_id = subscription[:subscription_id] azure.management_endpoint = subscription[:management_endpoint] end end |