Class: Designate::Zone
Constant Summary
Constants inherited
from Client
Client::API_VERSION, Client::DOMAIN
Instance Method Summary
collapse
Methods inherited from Client
#create_zone, #find_or_create_zone, #find_template_by_id, #find_zone_by_domain, #find_zone_by_id, #templates, #zerigo_config, #zones
Constructor Details
#initialize(data) ⇒ Zone
Returns a new instance of Zone.
4
5
6
7
8
9
10
11
12
13
14
|
# File 'lib/designate/zone.rb', line 4
def initialize(data)
data.each do |key, value|
instance_variable_set("@#{key}", value)
Zone.instance_eval do
attr_reader key.to_sym
end
end
hosts = []
data['hosts'].each { |host| hosts << Host.new(host) } unless data['hosts'].nil?
@hosts = hosts
end
|
Instance Method Details
#create_host(host_type, data, options = {}) ⇒ Object
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/designate/zone.rb', line 35
def create_host(host_type, data, options = {})
raise InvalidHostType unless %w(A AAAA CNAME MX NS SRV TXT).include?(host_type)
return if @hosts.find {|host| host.hostname == options[:hostname]}
options[:host_type] = host_type
options[:hostname] ||= nil
options[:data] = data
if host = post("zones/#{id}/hosts.xml", { :host => options })
return Host.new(host)
end
end
|
#destroy ⇒ Object
25
26
27
|
# File 'lib/designate/zone.rb', line 25
def destroy
delete("zones/#{id}.xml")
end
|
#host(host_id) ⇒ Object
29
30
31
32
33
|
# File 'lib/designate/zone.rb', line 29
def host(host_id)
if host = get("hosts/#{host_id}.xml")['host']
Host.new(host)
end
end
|
#update(options = {}) ⇒ Object
16
17
18
19
20
21
22
23
|
# File 'lib/designate/zone.rb', line 16
def update(options = {})
options[:default_ttl] ||= 14400
options[:nx_ttl] ||= 60
if options[:zone_template_id]
options[:follow_template] ||= 'no'
end
put("zones/#{id}.xml", { :zone => options })
end
|