Servers
=======

A virtual machine instance.

Classes
-------

.. currentmodule:: cloudservers

.. autoclass:: ServerManager
   :members: get, list, find, findall, create, update, delete, share_ip,
             unshare_ip, reboot, rebuild, resize, confirm_resize,
             revert_resize
             
.. autoclass:: Server
   :members: update, delete, share_ip, unshare_ip, reboot, rebuild, resize,
             confirm_resize, revert_resize
             
   .. attribute:: id
   
        This server's ID.
   
   .. attribute:: name
   
        The name you gave the server when you booted it.

   .. attribute:: imageId
   
        The :class:`Image` this server was booted with.
   
   .. attribute:: flavorId
   
        This server's current :class:`Flavor`.
   
   .. attribute:: hostId
   
        Rackspace doesn't document this value. It appears to be SHA1 hash.
   
   .. attribute:: status
   
        The server's status (``BOOTING``, ``ACTIVE``, etc).
   
   .. attribute:: progress
   
        When booting, resizing, updating, etc., this will be set to a
        value between 0 and 100 giving a rough estimate of the progress
        of the current operation.
   
   .. attribute:: addresses
   
        The public and private IP addresses of this server. This'll be a dict
        of the form::
        
            {
              "public" : ["67.23.10.138"],
              "private" : ["10.176.42.19"]
            }
            
        You *can* get more than one public/private IP provisioned, but not
        directly from the API; you'll need to open a support ticket.
   
   .. attribute:: metadata
   
        The metadata dict you gave when creating the server.
        
Constants
---------

Reboot types:

.. data:: REBOOT_SOFT
.. data:: REBOOT_HARD