Sha256: a832018aa25c7ed2821dd4109134bcdb87cd1a87aa54e1ef88a089b56e507c02

Contents?: true

Size: 1.22 KB

Versions: 8

Compression:

Stored size: 1.22 KB

Contents

require 'lib/fog/vcloud/terremark/ecloud/models/server'

module Fog
  class Vcloud
    module Terremark
      class Ecloud

        class Servers < Fog::Vcloud::Collection

          undef_method :create

          model Fog::Vcloud::Terremark::Ecloud::Server

          attribute :href, :aliases => :Href

          def all
            load(_vapps)
          end

          def get(uri)
            if data = connection.get_vapp(uri)
              new(data.body)
            end
          rescue Fog::Errors::NotFound
            nil
          end

          def create( catalog_item_uri, options )
            options[:vdc_uri] = href
            options[:cpus] ||= 1
            options[:memory] ||= 512
            data = connection.instantiate_vapp_template( catalog_item_uri, options ).body
            object = new(data)
            object
          end

          private

          def _resource_entities
            connection.get_vdc(href).body[:ResourceEntities][:ResourceEntity]
          end

          def _vapps
            resource_entities = _resource_entities
            if resource_entities.nil?
              []
            else
              resource_entities
            end
          end

        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fog-0.3.7 lib/fog/vcloud/terremark/ecloud/models/servers.rb
fog-0.3.6 lib/fog/vcloud/terremark/ecloud/models/servers.rb
fog-0.3.5 lib/fog/vcloud/terremark/ecloud/models/servers.rb
fog-0.3.4 lib/fog/vcloud/terremark/ecloud/models/servers.rb
fog-0.3.3 lib/fog/vcloud/terremark/ecloud/models/servers.rb
fog-0.3.2 lib/fog/vcloud/terremark/ecloud/models/servers.rb
fog-0.3.1 lib/fog/vcloud/terremark/ecloud/models/servers.rb
fog-0.3.0 lib/fog/vcloud/terremark/ecloud/models/servers.rb