class Fog::DNS::Dynect::Record
Public Instance Methods
destroy()
click to toggle source
# File lib/fog/dynect/models/dns/record.rb, line 14 def destroy requires :identity, :name, :type, :zone service.delete_record(type, zone.identity, name, identity) true end
save(replace=false)
click to toggle source
# File lib/fog/dynect/models/dns/record.rb, line 20 def save(replace=false) requires :name, :type, :rdata, :zone options = { :ttl => ttl } options.delete_if {|key, value| value.nil?} refresh_id if replace && identity.nil? if replace && !identity.nil? options['record_id'] = identity data = service.put_record(type, zone.identity, name, rdata, options).body['data'] else data = service.post_record(type, zone.identity, name, rdata, options).body['data'] end # avoid overwriting zone object with zone string data = data.reject {|key, value| key == 'zone'} merge_attributes(data) zone.publish refresh_id true end
zone()
click to toggle source
# File lib/fog/dynect/models/dns/record.rb, line 45 def zone @zone end
Private Instance Methods
refresh_id()
click to toggle source
# File lib/fog/dynect/models/dns/record.rb, line 55 def refresh_id begin records = service.get_record(type, zone.identity, name).body['data'] rescue return end # data in format ['/REST/xRecord/domain/fqdn/identity] records.map! do |record| tokens = record.split('/') { :identity => tokens.last, :type => tokens[2][0...-6] # everything before 'Record' } end record = records.find() {|record| record[:type] == type} merge_attributes(record) end
zone=(new_zone)
click to toggle source
# File lib/fog/dynect/models/dns/record.rb, line 51 def zone=(new_zone) @zone = new_zone end