class Roadworker::Batch::Update
Public Instance Methods
Source
# File lib/roadworker/batch.rb, line 324 def changes [ { action: 'DELETE', resource_record_set: present_rrset.to_h, }, { action: 'CREATE', resource_record_set: desired_rrset.to_h, }, ] end
Source
# File lib/roadworker/batch.rb, line 302 def desired_rrset return @desired_rrset if defined? @desired_rrset @desired_rrset = {name: rrset[:name]} Route53Wrapper::RRSET_ATTRS_WITH_TYPE.each do |attribute| value = rrset[attribute] next unless value case attribute when :dns_name dns_name, dns_name_opts = value @desired_rrset[:alias_target] = get_alias_target(dns_name, dns_name_opts) when :health_check @desired_rrset[:health_check_id] = get_health_check(value) else @desired_rrset[attribute] = value end end @desired_rrset end
Source
# File lib/roadworker/batch.rb, line 337 def diff! log(:info, 'Update ResourceRecordSet', :green) do "#{present_rrset.name} #{present_rrset.type}#{ present_rrset.set_identifier && " (#{present_rrset.set_identifier})" }" end # Note that desired_rrset is directly for Route 53, and present_record is also from Route 53 # Only given +rrset+ is brought from DSL, and dns_name & health_check is only valid in our DSL Route53Wrapper::RRSET_ATTRS_WITH_TYPE.each do |attribute| case attribute when :dns_name present = normalize_attribute_for_diff(attribute, present_rrset[:alias_target] && present_rrset[:alias_target][:dns_name]) desired = normalize_attribute_for_diff(attribute, desired_rrset[:alias_target] && desired_rrset[:alias_target][:dns_name]) when :health_check present = normalize_attribute_for_diff(attribute, present_rrset[:health_check_id]) desired = normalize_attribute_for_diff(attribute, desired_rrset[:health_check_id]) else present = normalize_attribute_for_diff(attribute, present_rrset[attribute]) desired = normalize_attribute_for_diff(attribute, desired_rrset[attribute]) end if desired != present color = Roadworker::StringHelper.colorize # XXX: log(:info, Roadworker::StringHelper.green(" #{attribute}:\n") + Roadworker::Utils.diff(present, desired, color: color, indent: ' '), false) end end end
Private Instance Methods
Source
# File lib/roadworker/batch.rb, line 366 def normalize_attribute_for_diff(attribute, value) if value.is_a?(Array) value = Aws::Route53.sort_rrset_values(attribute, value) value = nil if value.empty? end value end