Sha256: 6e4a595a2549714d4e42a232bb8374e97030e8fbc01412b6914b42f63a7cb1c4

Contents?: true

Size: 1.46 KB

Versions: 23

Compression:

Stored size: 1.46 KB

Contents

require 'fog/core/model'

module Fog
  module Rackspace
    class CDNV2 < Fog::Service
      class Service < Fog::Model

        attr_accessor :operations

        UUID_REGEX = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/

        identity :id

        attribute :name
        attribute :domains
        attribute :origins
        attribute :caching
        attribute :restrictions
        attribute :flavor_id
        attribute :status
        attribute :links

        def initialize(options={})
          self.operations = []
          super
        end

        def add_domain(domain, options={})
          self.domains ||= []
          self.domains << {domain: domain}.merge(options)
          self.domains
        end

        def add_origin(origin, options={})
          self.origins ||= []
          self.origins << {origin: origin}.merge(options)
          self.origins
        end

        def add_operation(options={})
          self.operations << options
        end

        def save
          if id.nil?
            data = service.create_service(self)
            loc  = data.headers["Location"]
            id   = UUID_REGEX.match(loc)[0]
            merge_attributes(id: id)
          else
            service.update_service(self)
          end
        end

        def destroy
          service.delete_service(self)
        end

        def destroy_assets(options={})
          service.delete_assets(self, options)
        end

      end
    end
  end
end

Version data entries

23 entries across 21 versions & 4 rubygems

Version Path
fog-rackspace-0.1.6 lib/fog/rackspace/models/cdn_v2/service.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-rackspace-0.1.5/lib/fog/rackspace/models/cdn_v2/service.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-rackspace-0.1.5/lib/fog/rackspace/models/cdn_v2/service.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-rackspace-0.1.5/lib/fog/rackspace/models/cdn_v2/service.rb
fog-rackspace-0.1.5 lib/fog/rackspace/models/cdn_v2/service.rb
fog-rackspace-0.1.4 lib/fog/rackspace/models/cdn_v2/service.rb
fog-rackspace-0.1.3 lib/fog/rackspace/models/cdn_v2/service.rb
fog-rackspace-0.1.2 lib/fog/rackspace/models/cdn_v2/service.rb
fog-rackspace-0.1.1 lib/fog/rackspace/models/cdn_v2/service.rb
fog-rackspace-0.1.0 lib/fog/rackspace/models/cdn_v2/service.rb
fog-1.37.0 lib/fog/rackspace/models/cdn_v2/service.rb
fog-1.36.0 lib/fog/rackspace/models/cdn_v2/service.rb
fog-1.35.0 lib/fog/rackspace/models/cdn_v2/service.rb
fog-2.0.0.pre.0 lib/fog/rackspace/models/cdn_v2/service.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/fog-1.32.0/lib/fog/rackspace/models/cdn_v2/service.rb
fog-1.34.0 lib/fog/rackspace/models/cdn_v2/service.rb
fog-1.33.0 lib/fog/rackspace/models/cdn_v2/service.rb
fog-1.32.0 lib/fog/rackspace/models/cdn_v2/service.rb
fog-1.31.0 lib/fog/rackspace/models/cdn_v2/service.rb
fog-1.30.0 lib/fog/rackspace/models/cdn_v2/service.rb