6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/configure-s3-website/cloudfront_client.rb', line 6
def self.apply_distribution_config(options)
config_source = options[:config_source]
puts "Detected an existing CloudFront distribution (id #{config_source.cloudfront_distribution_id}) ..."
live_config = cloudfront(config_source).get_distribution({
id: options[:config_source].cloudfront_distribution_id
})
custom_distribution_config = config_source.cloudfront_distribution_config || {}
if custom_distribution_config.empty?
return
end
live_distribution_config = live_config.distribution.distribution_config.to_hash
custom_distribution_config_with_caller_ref = live_distribution_config.deep_merge!(
deep_symbolize(custom_distribution_config.merge({
caller_reference: live_config.distribution.distribution_config.caller_reference,
comment: 'Updated by the configure-s3-website gem'
})),
ConfigureS3Website::deep_merge_options
)
cloudfront(config_source).update_distribution({
distribution_config: custom_distribution_config_with_caller_ref,
id: options[:config_source].cloudfront_distribution_id,
if_match: live_config.etag
})
print_report_on_custom_distribution_config custom_distribution_config_with_caller_ref
end
|