Sha256: de7bd9a1e67eddfdf985f168fe35b78258aa5d6d09d2a0b69b1d647ab44603ac

Contents?: true

Size: 1.12 KB

Versions: 8

Compression:

Stored size: 1.12 KB

Contents

module Fog
  module Rackspace
    class Servers

      def servers
        Fog::Rackspace::Servers::Servers.new(:connection => self)
      end

      class Servers < Fog::Collection

        def all
          data = connection.list_servers_details.body
          servers = Fog::Rackspace::Servers::Servers.new({
            :connection => connection
          })
          for server in data['servers']
            servers << Fog::Rackspace::Servers::Server.new({
              :connection => connection,
              :servers    => servers
            }.merge!(server))
          end
          servers
        end

        def create(attributes = {})
          server = new(attributes)
          server.save
          server
        end

        def get(id)
          connection.get_server_details(id)
        rescue Fog::Errors::NotFound
          nil
        end

        def new(attributes = {})
          Fog::Rackspace::Servers::Server.new({
            :connection => connection,
            :servers    => self
          }.merge!(attributes))
        end

        def reload
          get(id)
        end

      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fog-0.0.29 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.28 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.27 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.26 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.25 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.24 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.23 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.22 lib/fog/rackspace/models/servers/servers.rb