Sha256: 926397369ba6fcfc3df8e38aed25dd909f0e60b703bbef7205ac2fddb79ce463

Contents?: true

Size: 1.28 KB

Versions: 13

Compression:

Stored size: 1.28 KB

Contents

require 'fog/core/collection'
require 'fog/dynect/models/dns/record'

module Fog
  module DNS
    class Dynect

      class Records < Fog::Collection

        attribute :zone

        model Fog::DNS::Dynect::Record

        def all
          requires :zone
          data = []
          connection.get_node_list(zone.domain).body['data'].each do |fqdn|
            records = connection.get_record('ANY', zone.domain, fqdn).body['data']

            # data in format ['/REST/xRecord/domain/fqdn/identity]
            records.map! do |record|
              tokens = record.split('/')
              {
                :identity => tokens.last,
                :fqdn     => fqdn,
                :type     => tokens[2][0...-6] # everything before 'Record'
              }
            end

            data.concat(records)
          end

          # leave out the default, read only records
          data = data.reject {|record| ['NS', 'SOA'].include?(record[:type])}

          load(data)
        end

        def get(record_id)
          # FIXME: can this be done more efficiently?
          all.detect {|record| record.identity == record_id}
        end

        def new(attributes = {})
          requires :zone
          super({ :zone => zone }.merge!(attributes))
        end

      end

    end
  end
end

Version data entries

13 entries across 13 versions & 4 rubygems

Version Path
brightbox-cli-0.17.1 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb
brightbox-cli-0.17.0 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb
fog-1.1.2 lib/fog/dynect/models/dns/records.rb
fog_tractical-1.1.4 lib/fog/dynect/models/dns/records.rb
fog_tractical-1.1.3 lib/fog/dynect/models/dns/records.rb
brightbox-cli-0.16.0 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb
fog-1.1.1 lib/fog/dynect/models/dns/records.rb
fog-1.1.0 lib/fog/dynect/models/dns/records.rb
brightbox-cli-0.15.0 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb
tag-fog-1.0.1 lib/fog/dynect/models/dns/records.rb
brightbox-cli-0.14.1 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb
brightbox-cli-0.14.0 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb
fog-1.0.0 lib/fog/dynect/models/dns/records.rb