1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
module Fog
module DNS
class PowerDNS
class Real
# Create a single zone in PowerDNS
# Server, name and nameservers LIST are required
#
# ==== Parameters
# * server<~String> - Server ID
# * name<~String> - Name of domain
# * nameservers<~Array> - List of nameservers
# * options<~Hash> - Other options
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# * 'id': <~String>,
# * "name": <~String>,
# * 'type': <~String>,
# * 'url': <~String>,
# * 'kind': <~String>,
# * 'serial': <~Integer>,
# * 'notified_serial': <~Int>,
# * 'masters': <~Array,
# * 'dnssec': <~Boolean>,
# * 'nsec3param': <~String>,
# * 'nsec3narrow': <~Boolean>,
# * 'presigned': <~Boolean>,
# * 'soa_edit': '<~String>',
# * 'soa_edit_api': '<~String>',
# * 'account': '<~String>',
# * 'nameservers': <~Array>,
# * 'servers': <~Array>,
# * 'recursion_desired': <~Boolean>,
# * 'records': <~Array>,
# * 'comments': <~Array>,
# * status<~Integer> 201 when successful
def create_zone(server, name, nameservers, options = {})
body = {
"name" => name,
"nameservers" => nameservers
}
options.each { |option, value|
body[option] = value;
}
request(
:body => Fog::JSON.encode(body),
:expects => 201,
:method => 'POST',
:path => "/servers/#{server}/zones"
).body
end
end
class Mock
# TODO: Write this
end
end
end
end
|