mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
2e0b7e545a
Done with `rubocop --auto-correct --only EmptyLineBetweenDefs,EmptyLines,EmptyLinesAroundBody`
50 lines
1.4 KiB
Ruby
50 lines
1.4 KiB
Ruby
require 'fog/core/collection'
|
|
require 'fog/aws/models/cdn/invalidation'
|
|
|
|
module Fog
|
|
module CDN
|
|
class AWS
|
|
class Invalidations < Fog::Collection
|
|
attribute :is_truncated, :aliases => ['IsTruncated']
|
|
attribute :max_items, :aliases => ['MaxItems']
|
|
attribute :next_marker, :aliases => ['NextMarker']
|
|
attribute :marker, :aliases => ['Marker']
|
|
|
|
attribute :distribution
|
|
|
|
model Fog::CDN::AWS::Invalidation
|
|
|
|
def all(options = {})
|
|
requires :distribution
|
|
options[:max_items] ||= max_items
|
|
options.delete_if {|key, value| value.nil?}
|
|
|
|
data = service.get_invalidation_list(distribution.identity, options).body
|
|
|
|
merge_attributes(data.reject {|key, value| !['IsTruncated', 'MaxItems', 'NextMarker', 'Marker'].include?(key)})
|
|
|
|
load(data['InvalidationSummary'])
|
|
end
|
|
|
|
def get(invalidation_id)
|
|
requires :distribution
|
|
|
|
data = service.get_invalidation(distribution.identity, invalidation_id).body
|
|
|
|
if data
|
|
invalidation = new(data)
|
|
else
|
|
nil
|
|
end
|
|
rescue Excon::Errors::NotFound
|
|
nil
|
|
end
|
|
|
|
def new(attributes = {})
|
|
requires :distribution
|
|
super({ :distribution => distribution }.merge!(attributes))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|