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/zones.rb
Eric Hankins 6f8c0e6120 Support pagination on Zerigo DNS zones
For Zerigo accounts with more than 100 domains, the previous zones.all
method was unable to get to records beyond 100. This adds pagination per
the Zerigo API doc with :per_page and :page parameters. You can then use
count_zones to get the total zone count, divide by your :per_page, and
iterate over all pages to fetch all your zones.

https://www.zerigo.com/docs/apis/dns/1.1/zones/index
2013-05-09 13:57:33 -05:00

30 lines
580 B
Ruby

require 'fog/core/collection'
require 'fog/zerigo/models/dns/zone'
module Fog
module DNS
class Zerigo
class Zones < Fog::Collection
model Fog::DNS::Zerigo::Zone
def all(options = {})
data = service.list_zones(options).body['zones']
load(data)
end
def get(zone_id_or_domain)
data = service.get_zone(zone_id_or_domain).body
zone = new(data)
zone.records.load(data['hosts'])
zone
rescue Fog::Service::NotFound
nil
end
end
end
end
end