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/dynect/requests/dns/post_zone.rb
2012-04-25 10:31:28 -04:00

71 lines
2 KiB
Ruby

module Fog
module DNS
class Dynect
class Real
# Create a zone
#
# ==== Parameters
# * rname<~String> - administrative contact
# * ttl<~Integer> - time to live (in seconds) for records in this zone
# * zone<~String> - name of zone to host
# * options<~Hash>:
# * serial_style<~String> - style of serial number, in ['day', 'epoch', 'increment', 'minute']. Defaults to increment
def post_zone(rname, ttl, zone, options = {})
body = Fog::JSON.encode({
:rname => rname,
:token => auth_token,
:ttl => ttl
}.merge!(options))
request(
:body => body,
:expects => 200,
:method => :post,
:path => 'Zone/' << zone
)
end
end
class Mock
def post_zone(rname, ttl, zone, options = {})
new_zone = self.data[:zones][zone] = {
:next_record_id => 0,
:records => Hash.new do |records_hash, type|
records_hash[type] = []
end,
:records_to_delete => [],
:rname => rname,
:serial_style => options[:serial_style] || "increment",
:serial => 0,
:ttl => ttl,
:zone => zone,
:zone_type => "Primary"
}
response = Excon::Response.new
response.status = 200
response.body = {
"status" => "success",
"data" => {
"zone_type" => new_zone[:zone_type],
"serial_style" => new_zone[:serial_style],
"serial" => new_zone[:serial],
"zone" => zone
},
"job_id" => Fog::Dynect::Mock.job_id,
"msgs" => [{
"INFO" => "create: New zone #{zone} created. Publish it to put it on our server.",
"SOURCE" => "BLL",
"ERR_CD" => nil,
"LVL" => "INFO"
}]
}
response
end
end
end
end
end