Sha256: 477083699cc4fa53102bcc1f8fc3a34bf9983c2fc7fa42d54085e6da0fc3ed12

Contents?: true

Size: 1.3 KB

Versions: 25

Compression:

Stored size: 1.3 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(options = {})
          requires :zone
          data = []
          connection.get_node_list(zone.domain, options).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

25 entries across 25 versions & 11 rubygems

Version Path
fog-nirvanix-1.8.2 lib/fog/dynect/models/dns/records.rb
fog-nirvanix-1.8.1 lib/fog/dynect/models/dns/records.rb
fog-parser-fix-1.6.1 lib/fog/dynect/models/dns/records.rb
fog-test-again-1.6.0 lib/fog/dynect/models/dns/records.rb
fog-parser-fix-1.6.0 lib/fog/dynect/models/dns/records.rb
ey-vendored-backup-3.0.27 vendor/gems/fog/lib/fog/dynect/models/dns/records.rb
fog-sgonyea-1.8.1 lib/fog/dynect/models/dns/records.rb
fog-1.8.0 lib/fog/dynect/models/dns/records.rb
fog-maestrodev-1.7.0.20121114190951 lib/fog/dynect/models/dns/records.rb
fog-1.7.0 lib/fog/dynect/models/dns/records.rb
fog-1.6.0 lib/fog/dynect/models/dns/records.rb
fog-1.5.0 lib/fog/dynect/models/dns/records.rb
fog-1.4.0 lib/fog/dynect/models/dns/records.rb
brightbox-cli-0.18.1 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb
michiels-fog-1.3.1 lib/fog/dynect/models/dns/records.rb
ftl-0.2.0 vendor/bundle/gems/fog-1.3.1/lib/fog/dynect/models/dns/records.rb
brightbox-cli-0.18.0 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb
fog-1.3.1 lib/fog/dynect/models/dns/records.rb
fog-1.3.0 lib/fog/dynect/models/dns/records.rb
brightbox-cli-0.17.5 lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb