Sha256: ca1e7bc79097ddb3d7de869bba0fa179b9ca53b234587987279646b65f048092

Contents?: true

Size: 1.12 KB

Versions: 6

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.get_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

6 entries across 6 versions & 1 rubygems

Version Path
fog-0.0.21 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.20 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.19 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.18 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.17 lib/fog/rackspace/models/servers/servers.rb
fog-0.0.16 lib/fog/rackspace/models/servers/servers.rb