Module: Surtr::DNS

Defined in:
lib/surtr/dns.rb

Class Method Summary collapse

Class Method Details

.gcp(project, name, type, value) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/surtr/dns.rb', line 21

def self.gcp (project, name, type, value)

  dns = Google::Cloud::Dns.new project: project
  dns.zones.each do |zone|
    if name.end_with?(zone.dns[0..-2])
      zone.replace name, type, 1, value
      break
    end
  end

end

.wait(name, type, value) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/surtr/dns.rb', line 8

def self.wait (name, type, value)
  loop do
    ok = %w(8.8.8.8 8.8.4.4).all? do |ns|
      r = Resolv::DNS.new(nameserver: ns)
      s = r.getresource(name, Resolv::DNS::Resource::IN::TXT).strings
      s.member?(value)
    rescue Resolv::ResolvError
    end
    break if ok
    sleep 0.5
  end
end