module Surtr::DNS

Public Class Methods

gcp(project, name, type, value) click to toggle source
# 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) click to toggle source
# 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