19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/itamae-mitsurin/resource/aws_route53_rrset.rb', line 19
def pre_action
@route53 = ::Aws::Route53::Client.new(region: attributes.region)
@record = @route53.list_resource_record_sets({
hosted_zone_id: attributes.hosted_zone_id,
start_record_name: attributes.name,
start_record_type: attributes.type,
max_items: 1,
})
if attributes.failover == "PRIMARY"
set_identifier = "PRIMARY-" + attributes.name.split(".")[0]
elsif attributes.failover == "SECONDARY"
set_identifier = "SECONDARY-" + attributes.name.split(".")[0]
else
set_identifier = nil
end
@rrset_hash = {
hosted_zone_id: attributes.hosted_zone_id,
change_batch: {
comment: nil,
changes: [
{
action: attributes.action.to_s.upcase,
resource_record_set: {
name: attributes.name,
type: attributes.type,
set_identifier: set_identifier,
failover: attributes.failover,
ttl: attributes.ttl,
resource_records: [
{
value: attributes.value,
},
],
health_check_id: attributes.health_check_id,
traffic_policy_instance_id: attributes.traffic_policy_instance_id,
},
},
],
},
}
resource_records = []
if attributes.value.class == Array
attributes.value.each do |v|
resource_records << Aws::Route53::Types::ResourceRecord.new(value: v).orig_to_h
end
@rrset_hash[:change_batch][:changes][0][:resource_record_set][:resource_records] = resource_records
end
end
|