2013-01-21 17:26:30 -05:00
|
|
|
require 'fog/core/collection'
|
|
|
|
require 'fog/dreamhost/models/dns/zone'
|
|
|
|
|
|
|
|
module Fog
|
|
|
|
module DNS
|
|
|
|
class Dreamhost
|
|
|
|
|
|
|
|
#
|
|
|
|
# Dreamhost API has no concept of 'Zone', but we
|
|
|
|
# can emulate it.
|
|
|
|
#
|
|
|
|
# http://wiki.dreamhost.com/API/Dns_commands
|
|
|
|
#
|
|
|
|
class Zones < Fog::Collection
|
|
|
|
|
|
|
|
model Fog::DNS::Dreamhost::Zone
|
|
|
|
|
|
|
|
def all
|
|
|
|
clear
|
|
|
|
zones = []
|
2013-01-22 14:13:09 -05:00
|
|
|
zones_added = []
|
2013-01-21 17:26:30 -05:00
|
|
|
service.records.each do |r|
|
2013-01-22 14:13:09 -05:00
|
|
|
unless zones_added.include?(r.zone)
|
|
|
|
zones << { :id => r.zone, :domain => r.zone }
|
|
|
|
zones_added << r.zone
|
|
|
|
end
|
2013-01-21 17:26:30 -05:00
|
|
|
end
|
|
|
|
load(zones)
|
|
|
|
end
|
|
|
|
|
|
|
|
def get(zone_id)
|
|
|
|
service.zones.find { |z| z.domain == zone_id }
|
|
|
|
rescue Excon::Errors::NotFound
|
|
|
|
nil
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|