Class: Route53::Zone::Record

Inherits:
Object
  • Object
show all
Defined in:
lib/providers/route53/record.rb

Instance Method Summary collapse

Constructor Details

#initialize(zone, name, values = [], type, ttl) ⇒ Record

Returns a new instance of Record.



5
6
7
8
9
10
11
12
# File 'lib/providers/route53/record.rb', line 5

def initialize(zone, name, values=[], type, ttl)
  @zone = zone
  @name = name.downcase
  @values = values
  @type =  type
  @ttl = ttl
  @logger = Veronic::Deployer.new().logger
end

Instance Method Details

#deleteObject



47
48
49
50
51
52
53
# File 'lib/providers/route53/record.rb', line 47

def delete
  if self.exist?
    record = self.get
    delete_record = Route53::DNSRecord.new(record.name, record.type, record.ttl, record.values, @zone)
    delete_record.delete
  end
end

#exist?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/providers/route53/record.rb', line 18

def exist?
  @zone.records.any? {|x| x.name == @name+'.'}
end

#getObject



14
15
16
# File 'lib/providers/route53/record.rb', line 14

def get
  @zone.records.select {|x| x.name == @name+'.'}.first
end

#match?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/providers/route53/record.rb', line 22

def match?
  @zone.records.any? {|x| x.name == @name+'.' && x.values == @values}
end

#setObject



36
37
38
39
40
41
42
43
44
45
# File 'lib/providers/route53/record.rb', line 36

def set
  if self.exist?
    record = self.get
    new_record = Route53::DNSRecord.new(record.name, record.type, record.ttl, record.values, @zone)
    record.update(@name, @type, @ttl, @values, @zone)
  else
    record = Route53::DNSRecord.new(@name, @type, @ttl, @values, @zone)
    record.create
  end
end

#wait_setObject



26
27
28
29
30
31
32
33
34
# File 'lib/providers/route53/record.rb', line 26

def wait_set
  @logger.info "Waitting for record { name: #{@name}, value: #{@values} }..."
  while !self.match?
    @logger.info "."
    self.set
    sleep 5
  end
  @logger.info "\nRecord { name: #{@name}, value: #{@values} } updated"
end