Module: CloudFrontInterativeInvalidator
- Defined in:
- lib/cloud_front_interative_invalidator.rb,
lib/cloud_front_interative_invalidator/version.rb
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
- .create_invalidation(distribution_id) ⇒ Object
- .get_invalidation(distribution_id, invalidation_id) ⇒ Object
- .list_distributions(options = {}) ⇒ Object
- .list_invalidations(distribution_id = nil) ⇒ Object
- .show_distribution(distribution_id) ⇒ Object
- .start(params = {}) ⇒ Object
Class Method Details
.create_invalidation(distribution_id) ⇒ Object
58 59 60 61 62 63 64 65 |
# File 'lib/cloud_front_interative_invalidator.rb', line 58 def self.create_invalidation(distribution_id) puts "Input the path to be invalidated:" paths = [] paths << gets.chomp = {distribution_id: distribution_id, invalidation_batch: { paths: { quantity: paths.size, items: paths } , caller_reference: rand.to_s }} tp AWS::CloudFront::Client.new.create_invalidation().data show_distribution(distribution_id) end |
.get_invalidation(distribution_id, invalidation_id) ⇒ Object
67 68 69 |
# File 'lib/cloud_front_interative_invalidator.rb', line 67 def self.get_invalidation(distribution_id, invalidation_id) tp AWS::CloudFront::Client.new.get_invalidation(distribution_id: distribution_id, id: invalidation_id).data end |
.list_distributions(options = {}) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/cloud_front_interative_invalidator.rb', line 18 def self.list_distributions(={}) distributions = [] AWS::CloudFront::Client.new.list_distributions[:items].each_with_index do |item, index| distributions << { number: index + 1, id: item[:id], domain_name: item[:domain_name], origins: item[:origins][:items].map{|i| i[:domain_name]}.join(',') } end tp distributions puts "Input the number of the distribution:" distribution_index = gets.to_i - 1 distribution_id = distributions[distribution_index][:id] show_distribution(distribution_id) if distribution_id end |
.list_invalidations(distribution_id = nil) ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/cloud_front_interative_invalidator.rb', line 47 def self.list_invalidations(distribution_id=nil) begin invalidations = AWS::CloudFront::Client.new.list_invalidations(distribution_id: distribution_id) tp invalidations[:items] puts "Refresh? (y/n)" end while gets.chomp.downcase == 'y' invalidation_id = nil #get_invalidation(distribution_id, invalidation_id) show_distribution(distribution_id) end |
.show_distribution(distribution_id) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/cloud_front_interative_invalidator.rb', line 31 def self.show_distribution(distribution_id) #tp AWS::CloudFront::Client.new.get_distribution(id: distribution_id).data puts "Distribution #{distribution_id} selected." puts "l/list: list invalidations" puts "c/create: create invalidations" puts "q/quit: quit current step" actions = { /^(l|list)$/ => :list_invalidations, /^(c|create)$/ => :create_invalidation, /^(q|quit)$/ => :list_distributions, } action = gets.chomp method_name = actions.select{|k,v| k.match(action)}.values.first send(method_name, distribution_id) end |
.start(params = {}) ⇒ Object
14 15 16 |
# File 'lib/cloud_front_interative_invalidator.rb', line 14 def self.start(params={}) list_distributions end |