class Hyrb::Tasks::Rackspace::CreateDNSRecord
Public Instance Methods
run(env)
click to toggle source
# File lib/hyrb/tasks/rackspace.rb, line 60 def run(env) record_type = (IPAddr.new(env.environment.host) rescue false) ? 'A' : 'CNAME' # assume zone is going to be x.com proj_zone = env.environment.domain.split('.')[-2..-1].join('.') zone = env.rackspace_dns_zones.find { |z| z.domain == proj_zone } zone ||= env.rackspace_dns_client.zones.create({ domain: proj_zone, email: env.defaults.admin_email, }) record = zone.records.find do |r| r.name == env.environment.domain && r.type == record_type end if record say "Record exists: '#{record.type} #{record.name} #{record.value} (#{record.ttl})'", :yellow else record = zone.records.create({ name: env.environment.domain, value: env.environment.host, type: record_type, ttl: 300, }) say "Created record: '#{record.type} #{record.name} #{record.value} (#{record.ttl})'", :green end env.environment.has_dns_record = true env.environment.save! beep end