Class: Fog::DNS::AzureRM::Real

Inherits:
Object
  • Object
show all
Defined in:
lib/fog/azurerm/dns.rb,
lib/fog/azurerm/requests/dns/get_zone.rb,
lib/fog/azurerm/requests/dns/list_zones.rb,
lib/fog/azurerm/requests/dns/delete_zone.rb,
lib/fog/azurerm/requests/dns/check_for_zone.rb,
lib/fog/azurerm/requests/dns/get_record_set.rb,
lib/fog/azurerm/requests/dns/list_record_sets.rb,
lib/fog/azurerm/requests/dns/delete_record_set.rb,
lib/fog/azurerm/requests/dns/create_or_update_zone.rb,
lib/fog/azurerm/requests/dns/create_or_update_record_set.rb,
lib/fog/azurerm/requests/dns/get_records_from_record_set.rb

Overview

Real class for DNS Request

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Real

Returns a new instance of Real.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/fog/azurerm/dns.rb', line 36

def initialize(options)
  begin
    require 'azure_mgmt_dns'
  rescue LoadError => e
    retry if require('rubygems')
    raise e.message
  end

  credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret])
  @dns_client = ::Azure::ARM::Dns::DnsManagementClient.new(credentials, resource_manager_endpoint_url)
  @dns_client.subscription_id = options[:subscription_id]
  @tenant_id = options[:tenant_id]
  @client_id = options[:client_id]
  @client_secret = options[:client_secret]
  @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]
  )
end

Instance Method Details

#check_for_zone(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/fog/azurerm/requests/dns/check_for_zone.rb', line 6

def check_for_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.nil?
end

#create_or_update_record_set(record_set_params, type) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# 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_all_in_resource_group(resource_group, zone_name)
  rescue MsRestAzure::AzureOperationError => e
    raise_azure_exception(e, msg)
  end
  zones
end

#list_zonesObject



6
7
8
9
10
11
12
13
14
15
# 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_in_subscription
  rescue MsRestAzure::AzureOperationError => e
    raise_azure_exception(e, msg)
  end
  zones
end