class Fog::Resources::AzureRM::Real
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
Public Class Methods
# File lib/fog/azurerm/resources.rb, line 53 def initialize(options) begin require 'azure_mgmt_resources' rescue LoadError => e retry if require('rubygems') raise e.message end options[:environment] = 'AzureCloud' if options[:environment].nil? credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret], options[:environment]) telemetry = "fog-azure-rm/#{Fog::AzureRM::VERSION}" @rmc = ::Azure::ARM::Resources::ResourceManagementClient.new(credentials, resource_manager_endpoint_url(options[:environment])) @rmc.subscription_id = options[:subscription_id] @rmc.add_user_agent_information(telemetry) end
Public Instance Methods
# File lib/fog/azurerm/requests/resources/check_azure_resource_exists.rb, line 6 def check_azure_resource_exists(resource_id, api_version = API_VERSION) split_resource = resource_id.split('/') unless resource_id.nil? raise 'Invalid Resource Id' if split_resource.count != 9 resource_group_name = get_resource_from_resource_id(resource_id, RESOURCE_GROUP_NAME) resource_provider_namespace = get_resource_from_resource_id(resource_id, RESOURCE_PROVIDER_NAMESPACE) resource_type = get_resource_from_resource_id(resource_id, RESOURCE_TYPE) resource_name = get_resource_from_resource_id(resource_id, RESOURCE_NAME) parent_resource_id = '' msg = "Checking Resource #{resource_name}" Fog::Logger.debug msg begin resource_exists = @rmc.resources.check_existence(resource_group_name, resource_provider_namespace, parent_resource_id, resource_type, resource_name, api_version) Fog::Logger.debug "Resource #{resource_name} exists." if resource_exists resource_exists rescue MsRestAzure::AzureOperationError => e if e.response.status == 405 Fog::Logger.debug "Resource #{resource_name} doesn't exist." false else raise_azure_exception(e, msg) end end end
# File lib/fog/azurerm/requests/resources/check_deployment_exists.rb, line 6 def check_deployment_exists(resource_group_name, deployment_name) msg = "Checking Deployment #{deployment_name}" Fog::Logger.debug msg begin flag = @rmc.deployments.check_existence(resource_group_name, deployment_name) if flag Fog::Logger.debug "Deployment #{deployment_name} exists." else Fog::Logger.debug "Deployment #{deployment_name} doesn't exist." end flag rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end end
# File lib/fog/azurerm/requests/resources/check_resource_group_exists.rb, line 6 def check_resource_group_exists(resource_group_name) msg = "Checking Resource Group #{resource_group_name}" Fog::Logger.debug msg begin flag = @rmc.resource_groups.check_existence(resource_group_name) if flag Fog::Logger.debug "Resource Group #{resource_group_name} exists." else Fog::Logger.debug "Resource Group #{resource_group_name} doesn't exist." end flag rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end end
# File lib/fog/azurerm/requests/resources/create_deployment.rb, line 6 def create_deployment(resource_group, deployment_name, template_link, parameters_link) msg = "Creating Deployment: #{deployment_name} in Resource Group: #{resource_group}" Fog::Logger.debug msg deployment = create_deployment_object(template_link, parameters_link) begin @rmc.deployments.validate(resource_group, deployment_name, deployment) deployment = @rmc.deployments.create_or_update(resource_group, deployment_name, deployment) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Deployment: #{deployment_name} in Resource Group: #{resource_group} created successfully." deployment end
# File lib/fog/azurerm/requests/resources/create_resource_group.rb, line 6 def create_resource_group(name, location, tags) msg = "Creating Resource Group: #{name}." Fog::Logger.debug msg resource_group = Azure::ARM::Resources::Models::ResourceGroup.new resource_group.location = location resource_group.tags = tags begin resource_group = @rmc.resource_groups.create_or_update(name, resource_group) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Resource Group #{name} created successfully." resource_group end
# File lib/fog/azurerm/requests/resources/delete_deployment.rb, line 6 def delete_deployment(resource_group, deployment_name) msg = "Deleting Deployment: #{deployment_name} in Resource Group: #{resource_group}" Fog::Logger.debug msg begin @rmc.deployments.delete(resource_group, deployment_name) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Deployment: #{deployment_name} in Resource Group: #{resource_group} deleted successfully." true end
# File lib/fog/azurerm/requests/resources/delete_resource_group.rb, line 6 def delete_resource_group(name) msg = "Deleting Resource Group: #{name}." Fog::Logger.debug msg begin @rmc.resource_groups.delete(name) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Resource Group #{name} deleted successfully." true end
# File lib/fog/azurerm/requests/resources/delete_resource_tag.rb, line 6 def delete_resource_tag(resource_id, tag_name, tag_value, api_version = API_VERSION) split_resource = resource_id.split('/') unless resource_id.nil? if split_resource.count != 9 raise 'Invalid Resource Id' end resource_group_name = get_resource_from_resource_id(resource_id, RESOURCE_GROUP_NAME) resource_provider_namespace = get_resource_from_resource_id(resource_id, RESOURCE_PROVIDER_NAMESPACE) resource_type = get_resource_from_resource_id(resource_id, RESOURCE_TYPE) resource_name = get_resource_from_resource_id(resource_id, RESOURCE_NAME) msg = "Deleting Tag #{tag_name} from Resource #{resource_name}" Fog::Logger.debug msg begin resource = @rmc.resources.get(resource_group_name, resource_provider_namespace, '', resource_type, resource_name, api_version) if resource.tags.key?(tag_name) resource.tags.delete_if { |key, value| key == tag_name && value == tag_value } end @rmc.resources.create_or_update(resource_group_name, resource_provider_namespace, '', resource_type, resource_name, api_version, resource) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Tag #{tag_name} deleted successfully from Resource #{resource_name}" true end
# File lib/fog/azurerm/requests/resources/get_deployment.rb, line 6 def get_deployment(resource_group, deployment_name) msg = "Getting Deployment #{deployment_name} in Resource Group: #{resource_group}" Fog::Logger.debug msg begin deployment = @rmc.deployments.get(resource_group, deployment_name) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Getting deployment #{deployment_name} successfully in Resource Group: #{resource_group}" deployment end
# File lib/fog/azurerm/requests/resources/get_resource_group.rb, line 6 def get_resource_group(resource_group_name) msg = "Getting Resource Group #{resource_group_name}" Fog::Logger.debug msg begin resource_group = @rmc.resource_groups.get(resource_group_name) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Getting Resource Group #{resource_group_name} successfully" resource_group end
# File lib/fog/azurerm/requests/resources/list_deployments.rb, line 6 def list_deployments(resource_group) msg = "Listing Deployments in Resource Group: #{resource_group}" Fog::Logger.debug msg begin deployments = @rmc.deployments.list_as_lazy(resource_group) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Deployments listed successfully in Resource Group: #{resource_group}" deployments.value end
# File lib/fog/azurerm/requests/resources/list_resource_groups.rb, line 6 def list_resource_groups msg = 'Listing Resource Groups' Fog::Logger.debug msg begin resource_groups = @rmc.resource_groups.list_as_lazy rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end resource_groups.next_link = '' if resource_groups.next_link.nil? Fog::Logger.debug 'Resource Groups listed successfully' resource_groups.value end
# File lib/fog/azurerm/requests/resources/list_resources_in_resource_group.rb, line 6 def list_resources_in_resource_group(resource_group_name) msg = "Listing Resources in #{resource_group_name}" Fog::Logger.debug msg begin resources = @rmc.resource_groups.list_resources(resource_group_name) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Resources in #{resource_group_name} listed successfully" resources end
# File lib/fog/azurerm/requests/resources/list_tagged_resources.rb, line 6 def list_tagged_resources(tag_name, tag_value = nil) msg = "Listing Resources with tagname: #{tag_name}" Fog::Logger.debug msg unless tag_name.nil? query_filter = "tagname eq '#{tag_name}' " query_filter += tag_value.nil? ? '' : "and tagvalue eq '#{tag_value}'" begin resources = @rmc.resources.list_as_lazy(query_filter) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end resources.next_link = '' if resources.next_link.nil? resources.value end end
# File lib/fog/azurerm/requests/resources/tag_resource.rb, line 6 def tag_resource(resource_id, tag_name, tag_value, api_version = API_VERSION) split_resource = resource_id.split('/') unless resource_id.nil? if split_resource.count != 9 raise 'Invalid Resource Id' end resource_group_name = get_resource_from_resource_id(resource_id, RESOURCE_GROUP_NAME) resource_provider_namespace = get_resource_from_resource_id(resource_id, RESOURCE_PROVIDER_NAMESPACE) resource_type = get_resource_from_resource_id(resource_id, RESOURCE_TYPE) resource_name = get_resource_from_resource_id(resource_id, RESOURCE_NAME) parent_resource_id = '' msg = "Creating Tag #{tag_name} for Resource #{resource_name}" Fog::Logger.debug msg begin resource = @rmc.resources.get(resource_group_name, resource_provider_namespace, parent_resource_id, resource_type, resource_name, api_version) resource.tags = {} if resource.tags.nil? resource.tags[tag_name] = tag_value @rmc.resources.create_or_update(resource_group_name, resource_provider_namespace, parent_resource_id, resource_type, resource_name, api_version, resource) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Tag #{tag_name} created successfully for Resource #{resource_name}" true end
Private Instance Methods
# File lib/fog/azurerm/requests/resources/create_deployment.rb, line 22 def create_deployment_object(template_link, parameters_link) deployment = Azure::ARM::Resources::Models::Deployment.new deployment_properties = Azure::ARM::Resources::Models::DeploymentProperties.new template_link_obj = Azure::ARM::Resources::Models::TemplateLink.new template_link_obj.uri = template_link parameters_link_obj = Azure::ARM::Resources::Models::ParametersLink.new parameters_link_obj.uri = parameters_link deployment_properties.template_link = template_link_obj deployment_properties.parameters_link = parameters_link_obj deployment_properties.mode = 'Incremental' deployment.properties = deployment_properties deployment end