class Fog::DNS::AzureRM::RecordSet

This class is giving implementation of create/save and delete/destroy for RecordSet.

Public Class Methods

parse(recordset) click to toggle source
# File lib/fog/azurerm/models/dns/record_set.rb, line 17
def self.parse(recordset)
  hash = get_hash_from_object(recordset)
  hash['resource_group'] = get_resource_group_from_id(recordset.id)
  hash['zone_name'] = get_record_set_from_id(recordset.id)
  type = get_type_from_recordset_type(recordset.type)

  hash['records'] = []
  if type == 'A'
    record_entries = recordset.arecords
    record_entries.each do |record|
      hash['records'] << record.ipv4address
    end
  end
  if type == 'CNAME'
    record_entries = recordset.cname_record
    hash['records'] << record_entries.cname
  end

  unless recordset.arecords.nil?
    a_records = []
    recordset.arecords.each do |record|
      a_record = Fog::DNS::AzureRM::ARecord.new
      a_record.merge_attributes(Fog::DNS::AzureRM::ARecord.parse(record))
      a_records.push(a_record)
    end
    hash['a_records'] = a_records
  end

  unless recordset.cname_record.nil?
    cname_record = Fog::DNS::AzureRM::CnameRecord.new
    cname_record.merge_attributes(Fog::DNS::AzureRM::CnameRecord.parse(recordset.cname_record))
    hash['cname_record'] = cname_record
  end

  hash
end

Public Instance Methods

add_a_type_record(record) click to toggle source
# File lib/fog/azurerm/models/dns/record_set.rb, line 75
def add_a_type_record(record)
  records << record
  record_set = service.create_or_update_record_set(record_set_params, get_record_type(type))
  merge_attributes(Fog::DNS::AzureRM::RecordSet.parse(record_set))
end
destroy() click to toggle source
# File lib/fog/azurerm/models/dns/record_set.rb, line 60
def destroy
  service.delete_record_set(resource_group, name, zone_name, get_record_type(type))
end
get_records(resource_group, name, zone_name, record_type) click to toggle source
# File lib/fog/azurerm/models/dns/record_set.rb, line 64
def get_records(resource_group, name, zone_name, record_type)
  service.get_records_from_record_set(resource_group, name, zone_name, record_type)
end
remove_a_type_record(record) click to toggle source
# File lib/fog/azurerm/models/dns/record_set.rb, line 81
def remove_a_type_record(record)
  records.delete(record)
  record_set = service.create_or_update_record_set(record_set_params, get_record_type(type))
  merge_attributes(Fog::DNS::AzureRM::RecordSet.parse(record_set))
end
save() click to toggle source
# File lib/fog/azurerm/models/dns/record_set.rb, line 54
def save
  requires :name, :resource_group, :zone_name, :records, :type, :ttl
  record_set = service.create_or_update_record_set(record_set_params, type)
  merge_attributes(Fog::DNS::AzureRM::RecordSet.parse(record_set))
end
update_ttl(ttl) click to toggle source
# File lib/fog/azurerm/models/dns/record_set.rb, line 68
def update_ttl(ttl)
  params = record_set_params
  params[:ttl] = ttl
  record_set = service.create_or_update_record_set(params, get_record_type(type))
  merge_attributes(Fog::DNS::AzureRM::RecordSet.parse(record_set))
end

Private Instance Methods

record_set_params() click to toggle source
# File lib/fog/azurerm/models/dns/record_set.rb, line 89
def record_set_params
  {
    name: name,
    resource_group: resource_group,
    zone_name: zone_name,
    records: records,
    ttl: ttl,
    cname_record: cname_record,
    a_records: a_records
  }
end