mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
71 lines
2 KiB
Ruby
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
|