Class: Roadworker::Batch::Delete

Inherits:
Operation show all
Defined in:
lib/roadworker/batch.rb

Instance Attribute Summary

Attributes inherited from Operation

#dry_run, #health_checks, #hosted_zone, #logger, #rrset

Instance Method Summary collapse

Methods inherited from Operation

#desired_rrset, #initialize, #inspect, #present_rrset, #sort_key, #to_s, #value_size

Methods included from Log

#log

Constructor Details

This class inherits a constructor from Roadworker::Batch::Operation

Instance Method Details

#changesObject



265
266
267
268
269
270
271
272
273
274
275
276
277
# File 'lib/roadworker/batch.rb', line 265

def changes
  # Avoid deleting hosted zone SOA/NS
  if hosted_zone_soa_or_ns?
    return []
  end

  [
    {
      action: 'DELETE',
      resource_record_set: present_rrset.to_h,
    }
  ]
end

#cname_first?Boolean

CNAME should always be deleted first, as CNAME doesn’t permit other records

Returns:

  • (Boolean)


257
258
259
# File 'lib/roadworker/batch.rb', line 257

def cname_first?
  true
end

#diff!Object



279
280
281
282
283
284
# File 'lib/roadworker/batch.rb', line 279

def diff!
  return if changes.empty?
  log(:info, 'Delete ResourceRecordSet', :red) do
    "#{present_rrset.name} #{present_rrset.type}#{ present_rrset.set_identifier && " (#{present_rrset.set_identifier})" }"
  end
end

#hosted_zone_soa_or_ns?Boolean

Returns:

  • (Boolean)


261
262
263
# File 'lib/roadworker/batch.rb', line 261

def hosted_zone_soa_or_ns?
  (present_rrset.type == 'SOA' || present_rrset.type == 'NS') && hosted_zone.name == present_rrset.name
end