1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/zerigo/models/dns/records.rb

50 lines
1.2 KiB
Ruby
Raw Normal View History

require 'fog/core/collection'
require 'fog/zerigo/models/dns/record'
module Fog
module DNS
class Zerigo
class Records < Fog::Collection
attribute :zone
model Fog::DNS::Zerigo::Record
# List all domains
# @param [Hash] options Options to pass to the underlying API call
# @option options [String] :fqdn search for the given fqdn
def all(options = {})
requires :zone
if options[:fqdn]
hosts = service.find_hosts(options[:fqdn], zone.id).body['hosts']
load(hosts)
else
parent = zone.collection.get(zone.identity)
if parent
merge_attributes(parent.records.attributes)
load(parent.records.map {|record| record.attributes})
else
nil
end
end
end
def get(record_id)
data = service.get_host(record_id).body
new(data)
rescue Fog::Service::NotFound
nil
end
def new(attributes = {})
requires :zone
super({ :zone => zone }.merge!(attributes))
end
end
end
end
end