mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
60 lines
1.5 KiB
Ruby
60 lines
1.5 KiB
Ruby
require 'fog/core/collection'
|
|
|
|
module Fog
|
|
module CDN
|
|
class AWS
|
|
module DistributionHelper
|
|
def destroy
|
|
requires :identity, :etag, :caller_reference
|
|
raise "Distribution must be disabled to be deleted" unless disabled?
|
|
delete_distribution(identity, etag)
|
|
true
|
|
end
|
|
|
|
def enabled?
|
|
requires :identity
|
|
!!enabled and ready?
|
|
end
|
|
|
|
def disabled?
|
|
requires :identity
|
|
not enabled? and ready?
|
|
end
|
|
|
|
def custom_origin?
|
|
requires :identity
|
|
not custom_origin.nil?
|
|
end
|
|
|
|
def ready?
|
|
requires :identity
|
|
status == 'Deployed'
|
|
end
|
|
|
|
def enable
|
|
requires :identity
|
|
reload if etag.nil? or caller_reference.nil?
|
|
unless enabled?
|
|
self.enabled = true
|
|
response = put_distribution_config(identity, etag, attributes_to_options)
|
|
etag = response.headers['ETag']
|
|
merge_attributes(response.body)
|
|
end
|
|
true
|
|
end
|
|
|
|
def disable
|
|
requires :identity
|
|
reload if etag.nil? or caller_reference.nil?
|
|
if enabled?
|
|
self.enabled = false
|
|
response = put_distribution_config(identity, etag, attributes_to_options)
|
|
etag = response.headers['ETag']
|
|
merge_attributes(response.body)
|
|
end
|
|
true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|