Sha256: c7a32a90e048bd84a6f99848506440297b5aea3296fecd75eb9ff03bb8680415

Contents?: true

Size: 1.29 KB

Versions: 25

Compression:

Stored size: 1.29 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 = []
          service.get_node_list(zone.domain, options).body['data'].each do |fqdn|
            records = service.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 & 6 rubygems

Version Path
gapinc-fog-1.12.1.2.1 lib/fog/dynect/models/dns/records.rb
fog-maestrodev-1.15.0.20130829165835 lib/fog/dynect/models/dns/records.rb
fog-1.15.0 lib/fog/dynect/models/dns/records.rb
gapinc-fog-1.14.0 lib/fog/dynect/models/dns/records.rb
fog-maestrodev-1.14.0.20130806165225 lib/fog/dynect/models/dns/records.rb
fog-1.14.0 lib/fog/dynect/models/dns/records.rb
fog-1.13.0 lib/fog/dynect/models/dns/records.rb
gapinc-fog-1.12.1.2 lib/fog/dynect/models/dns/records.rb
gapinc-fog-1.12.1.1 lib/fog/dynect/models/dns/records.rb
gapinc-fog-1.12.1a lib/fog/dynect/models/dns/records.rb
gapinc-fog-1.12.1 lib/fog/dynect/models/dns/records.rb
fog-1.12.1 lib/fog/dynect/models/dns/records.rb
fog-1.12.0 lib/fog/dynect/models/dns/records.rb
hpfog-0.0.20 lib/fog/dynect/models/dns/records.rb
vagrant-shell-0.2.6 vendor/bundle/gems/fog-1.10.1/lib/fog/dynect/models/dns/records.rb
vagrant-shell-0.2.5 vendor/bundle/gems/fog-1.10.1/lib/fog/dynect/models/dns/records.rb
fog-1.11.1 lib/fog/dynect/models/dns/records.rb
fog-1.11.0 lib/fog/dynect/models/dns/records.rb
fog-1.10.1 lib/fog/dynect/models/dns/records.rb
fog-test-me-1.10.0 lib/fog/dynect/models/dns/records.rb