Class: Ruboty::Handlers::Cloudfront
- Inherits:
-
Base
- Object
- Base
- Ruboty::Handlers::Cloudfront
- Defined in:
- lib/ruboty/handlers/cloudfront.rb
Instance Method Summary collapse
- #list_distributuions(message) ⇒ Object
- #list_invalidations(message) ⇒ Object
- #purge_url(message) ⇒ Object
Instance Method Details
#list_distributuions(message) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ruboty/handlers/cloudfront.rb', line 26 def list_distributuions() maximum_domain_length = prefixes.map(&:first).sort_by(&:size).last.size maximum_id_length = prefixes.map { |p| p[1] }.sort_by(&:size).last.size lines = prefixes.map do |prefix| [ prefix[0].ljust(maximum_domain_length), prefix[1].ljust(maximum_id_length), prefix[2] ].join(' ') end .reply( "We have #{prefixes.count} distributions\n" + lines.join("\n"), code: true ) end |
#list_invalidations(message) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/ruboty/handlers/cloudfront.rb', line 44 def list_invalidations() invalidations = [] prefixes.map { |p| p[1] }.uniq.each do |prefix| resp = cloudfront.list_invalidations(distribution_id: prefix) resp.invalidation_list.items.each do |invalidation| next unless invalidation.status != 'Completed' iresp = cloudfront.get_invalidation(distribution_id: prefix, id: invalidation.id) iresp.invalidation.invalidation_batch.paths.items.each do |path| invalidations << "#{path} : #{invalidation.status} / #{domains_by(prefix).join(', ')}" end end end .reply( "We have #{invalidations.count} invalidations\n" + invalidations.join("\n"), code: true ) end |
#purge_url(message) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/ruboty/handlers/cloudfront.rb', line 63 def purge_url() uri = URI.parse([:url]) dist = prefixes.bsearch { |p| p[0] == uri.host } unless dist .reply('Distribution not found') return end cloudfront.create_invalidation(distribution_id: dist[1], invalidation_batch: { paths: { quantity: 1, items: [uri.path] }, caller_reference: SecureRandom.uuid }) .reply("Started #{uri.path} invalidation of #{dist[1]} / #{dist[0]}") end |