Sha256: 824e1f439ae6c3a8d5724a7faa058f3984c7ffabfc8912101498e29b564beace

Contents?: true

Size: 1.22 KB

Versions: 12

Compression:

Stored size: 1.22 KB

Contents

module Fog
  module Compute
    class XenServer
      module Models
        class Collection < Fog::Collection
          def all(_options = {})
            data = service.get_records model.provider_class
            load(data)
          end

          def get(ref)
            data = service.get_record(ref, model.provider_class)
            new(data)
          rescue Fog::XenServer::NotFound, Fog::XenServer::RequestFailed
            nil
          end

          def get_by_name(name)
            ref = service.get_by_name(name, model.provider_class)
            return nil if ref.nil?
            get(ref)
          rescue Fog::XenServer::NotFound, Fog::XenServer::RequestFailed
            nil
          end

          alias_method :find_by_name, :get_by_name

          def get_by_uuid(uuid)
            ref = service.get_by_uuid(uuid, model.provider_class)
            return nil if ref.nil?
            get(ref)
          rescue Fog::XenServer::NotFound, Fog::XenServer::RequestFailed
            nil
          end

          alias_method :find_by_uuid, :get_by_uuid

          def get_by_reference_or_name_or_uuid(query)
            get(query) || get_by_name(query) || get_by_uuid(query)
          end
        end
      end
    end
  end
end

Version data entries

12 entries across 10 versions & 2 rubygems

Version Path
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-xenserver-0.3.0/lib/fog/compute/xen_server/models/collection.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-xenserver-0.3.0/lib/fog/compute/xen_server/models/collection.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-xenserver-0.3.0/lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.3.0 lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.2.3 lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.2.2 lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.2.1 lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.2.0 lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.1.2 lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.1.1 lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.1.0 lib/fog/compute/xen_server/models/collection.rb
fog-xenserver-0.0.1.beta2 lib/fog/compute/xen_server/models/collection.rb