mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
61 lines
1.5 KiB
Ruby
61 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
|