class Awful::CloudFront
Constants
- COLORS
Public Instance Methods
aliases(id, *list)
click to toggle source
# File lib/awful/cloudfront.rb, line 69 def aliases(id, *list) if list.empty? cloudfront.get_distribution(id: id).distribution.distribution_config.aliases.items.output(&method(:puts)) else response = cloudfront.get_distribution(id: id) # get current config config = response.distribution.distribution_config new = config[:aliases][:items] if options[:add] new += list # append to existing elsif options[:delete] new -= list # remove from existing else new = list # replace existing end config[:aliases] = {quantity: new.count, items: new} cloudfront.update_distribution(id: id, distribution_config: config, if_match: response.etag) end end
cloudfront()
click to toggle source
# File lib/awful/cloudfront.rb, line 18 def cloudfront @cloudfront ||= Aws::CloudFront::Client.new end
color(string)
click to toggle source
# File lib/awful/cloudfront.rb, line 22 def color(string) set_color(string, COLORS.fetch(string.downcase.to_sym, :blue)) end
get(id)
click to toggle source
# File lib/awful/cloudfront.rb, line 53 def get(id) cloudfront.get_distribution(id: id).distribution.output do |dist| puts YAML.dump(stringify_keys(dist.to_hash)) end end
ls()
click to toggle source
# File lib/awful/cloudfront.rb, line 29 def ls marker = nil items = [] loop do response = cloudfront.list_distributions(marker: marker).distribution_list items += response.items marker = response.next_marker break unless marker end items.output do |list| if options[:long] print_table list.map { |i| origins = i.origins.items.map(&:domain_name).join(',').slice(0..40) state = i.enabled ? :Enabled : :Disabled [ i.id, i.domain_name, i.comment, origins, color(i.status), color(state), i.last_modified_time ] } else puts list.map(&:id).sort end end end
origins(id)
click to toggle source
# File lib/awful/cloudfront.rb, line 90 def origins(id) cloudfront.get_distribution(id: id).distribution.distribution_config.origins.items.output do |list| if options[:long] print_table list.map { |o| c = o.custom_origin_config config = o.s3_origin_config ? [ 's3' ] : [ 'custom', c.origin_protocol_policy, c.http_port, c.https_port ] [ o.id, o.domain_name, o.origin_path ] + config } else puts list.map(&:id).sort end end end
status(id)
click to toggle source
# File lib/awful/cloudfront.rb, line 60 def status(id) cloudfront.get_distribution(id: id).distribution.status.output do |status| puts color(status) end end