class Fog::DNS::AzureRM::Real
This class provides the actual implementation for service calls.
This class provides the actual implementation for service calls.
Public Class Methods
new(options)
click to toggle source
# File lib/fog/azurerm/dns.rb, line 38 def initialize(options) begin require 'azure_mgmt_dns' 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}" @dns_client = ::Azure::ARM::Dns::DnsManagementClient.new(credentials, resource_manager_endpoint_url(options[:environment])) @dns_client.subscription_id = options[:subscription_id] @dns_client.add_user_agent_information(telemetry) @tenant_id = options[:tenant_id] @client_id = options[:client_id] @client_secret = options[:client_secret] @environment = options[:environment] @resources = Fog::Resources::AzureRM.new( tenant_id: options[:tenant_id], client_id: options[:client_id], client_secret: options[:client_secret], subscription_id: options[:subscription_id], environment: options[:environment] ) end
Public Instance Methods
check_record_set_exists(resource_group, name, zone_name, record_type)
click to toggle source
# File lib/fog/azurerm/requests/dns/check_record_set_exists.rb, line 6 def check_record_set_exists(resource_group, name, zone_name, record_type) msg = "Checking Record set #{name}" Fog::Logger.debug msg begin @dns_client.record_sets.get(resource_group, zone_name, name, record_type) Fog::Logger.debug "Record set #{name} exists." true rescue MsRestAzure::AzureOperationError => e if e.body['code'] == 'NotFound' Fog::Logger.debug "Record set #{name} doesn't exist." false else raise_azure_exception(e, msg) end end end
check_zone_exists(resource_group, name)
click to toggle source
# File lib/fog/azurerm/requests/dns/check_zone_exists.rb, line 6 def check_zone_exists(resource_group, name) msg = "Getting Zone #{name} from Resource Group #{resource_group}." Fog::Logger.debug msg begin zone = @dns_client.zones.get(resource_group, name) rescue MsRestAzure::AzureOperationError => e if !e.body['error'].nil? && e.body['error']['code'] == ERROR_CODE_RESOURCE_NOT_FOUND zone = nil else raise_azure_exception(e, msg) end rescue => e Fog::Logger.debug e[:error][:code] end !zone.nil? end
create_or_update_record_set(record_set_params, type)
click to toggle source
# File lib/fog/azurerm/requests/dns/create_or_update_record_set.rb, line 6 def create_or_update_record_set(record_set_params, type) msg = "Creating/updating Recordset #{record_set_params[:name]} in Resource Group: #{record_set_params[:resource_group]}." Fog::Logger.debug msg recordset_object = get_record_set_object(record_set_params, type) begin record_set = @dns_client.record_sets.create_or_update(record_set_params[:resource_group], record_set_params[:zone_name], record_set_params[:name], type, recordset_object) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Record Set #{record_set_params[:name]} created/updated successfully." record_set end
create_or_update_zone(zone_params)
click to toggle source
# File lib/fog/azurerm/requests/dns/create_or_update_zone.rb, line 6 def create_or_update_zone(zone_params) msg = "Creating/updating Zone #{zone_params[:name]} in Resource Group: #{zone_params[:resource_group]}." Fog::Logger.debug msg zone_object = get_zone_object(zone_params) begin zone = @dns_client.zones.create_or_update(zone_params[:resource_group], zone_params[:name], zone_object) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Zone #{zone_params[:name]} created/updated successfully." zone end
delete_record_set(resource_group, name, zone_name, record_type)
click to toggle source
# File lib/fog/azurerm/requests/dns/delete_record_set.rb, line 6 def delete_record_set(resource_group, name, zone_name, record_type) msg = "Deleting Record Set #{name} from Resource Group #{resource_group}." Fog::Logger.debug msg begin @dns_client.record_sets.delete(resource_group, zone_name, name, record_type) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Record Set #{name} Deleted Successfully." true end
delete_zone(resource_group, name)
click to toggle source
# File lib/fog/azurerm/requests/dns/delete_zone.rb, line 6 def delete_zone(resource_group, name) msg = "Deleting Zone #{name} from Resource Group #{resource_group}." Fog::Logger.debug msg begin @dns_client.zones.delete(resource_group, name) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end Fog::Logger.debug "Zone #{name} Deleted Successfully." true end
get_record_set(resource_group, name, zone_name, record_type)
click to toggle source
# File lib/fog/azurerm/requests/dns/get_record_set.rb, line 6 def get_record_set(resource_group, name, zone_name, record_type) msg = "Getting Record Set #{name} from Resource Group #{resource_group}." Fog::Logger.debug msg begin record_set = @dns_client.record_sets.get(resource_group, zone_name, name, record_type) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end record_set end
get_records_from_record_set(resource_group, name, zone_name, record_type)
click to toggle source
# File lib/fog/azurerm/requests/dns/get_records_from_record_set.rb, line 6 def get_records_from_record_set(resource_group, name, zone_name, record_type) msg = "Getting all records from RecordSet #{name} of type '#{record_type}' in zone #{zone_name}" Fog::Logger.debug msg begin record_set = @dns_client.record_sets.get(resource_group, zone_name, name, record_type) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end case record_type when 'A' record_set.arecords when 'CNAME' record_set.cname_record end end
get_zone(resource_group, name)
click to toggle source
# File lib/fog/azurerm/requests/dns/get_zone.rb, line 6 def get_zone(resource_group, name) msg = "Getting Zone #{name} from Resource Group #{resource_group}." Fog::Logger.debug msg begin zone = @dns_client.zones.get(resource_group, name) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end zone end
list_record_sets(resource_group, zone_name)
click to toggle source
# File lib/fog/azurerm/requests/dns/list_record_sets.rb, line 6 def list_record_sets(resource_group, zone_name) msg = 'Getting list of Record sets.' Fog::Logger.debug msg begin zones = @dns_client.record_sets.list_by_dns_zone(resource_group, zone_name) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end zones end
list_zones()
click to toggle source
# File lib/fog/azurerm/requests/dns/list_zones.rb, line 6 def list_zones msg = 'Getting list of Zones.' Fog::Logger.debug msg begin zones = @dns_client.zones.list rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end zones end
Private Instance Methods
get_record_set_object(record_set_params, type)
click to toggle source
# File lib/fog/azurerm/requests/dns/create_or_update_record_set.rb, line 21 def get_record_set_object(record_set_params, type) record_set = Azure::ARM::Dns::Models::RecordSet.new record_set.name = record_set_params[:name] record_set.type = type record_set.ttl = record_set_params[:ttl] record_set.etag = record_set_params[:etag] case type when 'A' a_type_records_array = [] record_set_params[:records].each do |ip| a_record = Azure::ARM::Dns::Models::ARecord.new a_record.ipv4address = ip a_type_records_array.push(a_record) end record_set.arecords = a_type_records_array when 'CNAME' record_set.cname_record = record_set_params[:records].first # because cname only has 1 value and we know the object is an array passed in. end record_set end
get_zone_object(zone_params)
click to toggle source
# File lib/fog/azurerm/requests/dns/create_or_update_zone.rb, line 21 def get_zone_object(zone_params) zone = Azure::ARM::Dns::Models::Zone.new zone.name = zone_params[:name] zone.location = zone_params[:location] zone.type = zone_params[:type] zone.number_of_record_sets = zone_params[:number_of_record_sets] zone.max_number_of_record_sets = zone_params[:max_number_of_record_sets] zone.tags = zone_params[:tags] if zone.tags.nil? zone.etag = zone_params[:etag] zone end
list_zones_by_rg(resource_group)
click to toggle source
# File lib/fog/azurerm/requests/dns/list_zones.rb, line 19 def list_zones_by_rg(resource_group) msg = "Getting list of Zones in Resource Group #{resource_group}." Fog::Logger.debug msg begin zones = @dns_client.zones.list_by_resource_group(resource_group) rescue MsRestAzure::AzureOperationError => e raise_azure_exception(e, msg) end zones end