Class: Route53::Zone::Record
- Inherits:
-
Object
- Object
- Route53::Zone::Record
- Defined in:
- lib/providers/route53/record.rb
Instance Method Summary collapse
- #delete ⇒ Object
- #exist? ⇒ Boolean
- #get ⇒ Object
-
#initialize(zone, name, values = [], type, ttl) ⇒ Record
constructor
A new instance of Record.
- #match? ⇒ Boolean
- #set ⇒ Object
- #wait_set ⇒ Object
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
#delete ⇒ Object
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
18 19 20 |
# File 'lib/providers/route53/record.rb', line 18 def exist? @zone.records.any? {|x| x.name == @name+'.'} end |
#get ⇒ Object
14 15 16 |
# File 'lib/providers/route53/record.rb', line 14 def get @zone.records.select {|x| x.name == @name+'.'}.first end |
#match? ⇒ 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 |
#set ⇒ Object
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_set ⇒ Object
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 |