lib/fog/dynect/models/dns/records.rb in fog-1.22.1 vs lib/fog/dynect/models/dns/records.rb in fog-1.23.0

- old
+ new

@@ -10,46 +10,34 @@ model Fog::DNS::Dynect::Record def all(options = {}) requires :zone data = [] - service.get_all_records(zone.domain, options).body['data'].each do |url| - (_, _, t, _, fqdn, id) = url.split('/') - type = t.gsub(/Record$/, '') - - # leave out the default, read only records - # by putting this here we don't make the secondary request for these records - next if ['NS', 'SOA'].include?(type) - - record = service.get_record(type, zone.domain, fqdn, 'record_id' => id).body['data'] - - data << { - :identity => record['record_id'], - :fqdn => record['fqdn'], - :type => record['record_type'], - :rdata => record['rdata'] - } + service.get_all_records(zone.domain, options).body['data'].each do |records| + (type, list) = records + next if %w{soa_records ns_records}.include?(type) + list.each do |record| + data << { + :identity => record['record_id'], + :fqdn => record['fqdn'], + :type => record['record_type'], + :rdata => record['rdata'] + } + end end load(data) end def get(record_id) requires :zone - list = service.get_all_records(zone.domain, {}).body['data'] - url = list.find { |e| e =~ /\/#{record_id}$/ } - return unless url - (_, _, t, _, fqdn, id) = url.split('/') - type = t.gsub(/Record$/, '') - record = service.get_record(type, zone.domain, fqdn, 'record_id' => id).body['data'] + # there isn't a way to look up by just id + # must have type and domain for 'get_record' request + # so we pick it from the list returned by 'all' - new({ - :identity => record['record_id'], - :fqdn => record['fqdn'], - :type => record['record_type'], - :rdata => record['rdata'] - }) + list = all + list.detect {|e| e.id == record_id} end def new(attributes = {}) requires :zone super({:zone => zone}.merge!(attributes))