class OVH::Provisioner::APIObject::DomainZone
Represent a Domain
Attributes
dnssec[R]
dnssec_supported[R]
nameservers[R]
records[R]
Public Instance Methods
add_record(subdomain, type, target, ttl = 0)
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 35 def add_record(subdomain, type, target, ttl = 0) body = { 'fieldType' => type.upcase, 'target' => target, 'ttl' => ttl.to_i } sub = subdomain body['subDomain'] = sub unless sub.nil? || sub.empty? answer = post('record', body) post('refresh') format(answer) end
details(record_lists = records)
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 30 def details(record_lists = records) "#{id} - dnssec: #{dnssec_to_s}\n"\ "#{(record_lists.format('type').lines[1..-1] || []).join('')}" end
filter_records(config)
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 59 def filter_records(config) filter = generate_filter( config['subdomain'] || '', config['type'] || '', config['target'] || '', config['ttl'] || '' ) targets = records.list.dup.keep_if do |record| filter.call(record) end.map(&:id) Actor[Spawner::NAME].get('Record', *targets, parent: @url) end
rm_record(record)
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 48 def rm_record(record) out = delete("record/#{record.id}") post('refresh') " #{record}#{out.nil? ? '' : ": #{out}"}" end
rm_records(records)
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 54 def rm_records(records) outputs = records.parallel_map(:rm_record, [], Actor.current) (["#{id}, remove records:"] + outputs.sort).join("\n") end
to_s()
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 26 def to_s "#{id}, dnssec #{dnssec_to_s}, #{records.list.size} records" end
Private Instance Methods
dnssec_to_s()
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 88 def dnssec_to_s dnssec_supported ? dnssec : 'not supported' end
format(answer)
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 101 def format(answer) return answer if answer.is_a? String zone = answer['zone'] sub = answer['subDomain'] || '' ttl = answer['ttl'] type = answer['fieldType'] target = answer['target'] "#{id}, add record:\n"\ " #{Record.print(zone, sub, ttl, type, target)}" end
generate_filter(subdomain, type, target, ttl)
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 92 def generate_filter(subdomain, type, target, ttl) lambda do |record| record.subdomain.include?(subdomain) && (type.empty? || record.type == type.upcase) && record.target.include?(target) && (ttl == '' || record.ttl == ttl.to_i) end end
set_dnssec()
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 80 def set_dnssec @dnssec = get('dnssec')['status'] end
set_general()
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 74 def set_general general = get @nameservers = general['nameServers'] @dnssec_supported = general['dnssecSupported'] end
set_records()
click to toggle source
# File lib/ovh/provisioner/api_object/domain_zone.rb, line 84 def set_records @records = Actor[Spawner::NAME].get('Record', '', parent: @url) end