File: README.rst

package info (click to toggle)
python-cloudservers 1.1-1.2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 2,724 kB
  • sloc: python: 2,004; makefile: 79
file content (115 lines) | stat: -rw-r--r-- 4,258 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Python bindings to the Rackspace Cloud Servers API
==================================================

This is a client for Rackspace's Cloud Servers API. There's a Python API (the
``cloudservers`` module), and a command-line script (``cloudservers``). Each
implements 100% of the Rackspace API.

`Full documentation is available`__.

__ http://packages.python.org/python-cloudservers/

You'll also probably want to read `Rackspace's API guide`__ (PDF) -- the first
bit, at least -- to get an idea of the concepts. Rackspace is doing the cloud
hosting thing a bit differently from Amazon, and if you get the concepts this
library should make more sense.

__ http://docs.rackspacecloud.com/servers/api/cs-devguide-latest.pdf

Development takes place on GitHub__. Bug reports and patches may be filed there.

__ http://github.com/jacobian/python-cloudservers

Command-line API
----------------

Installing this package gets you a shell command, ``cloudservers``, that you
can use to interact with Rackspace.

You'll need to provide your Rackspace username and API key. You can do this
with the ``--username`` and ``--apikey`` params, but it's easier to just set
them as environment variables::

    export CLOUD_SERVERS_USERNAME=jacobian
    export CLOUD_SERVERS_API_KEY=yadayada
    
You'll find complete documentation on the shell by running 
``cloudservers help``::
    
    usage: cloudservers [--username USERNAME] [--apikey APIKEY] <subcommand> ...

    Command-line interface to the Cloud Servers API.

    Positional arguments:
      <subcommand>
        backup-schedule     Show or edit the backup schedule for a server.
        backup-schedule-delete
                            Delete the backup schedule for a server.
        boot                Boot a new server.
        delete              Immediately shut down and delete a server.
        flavor-list         Print a list of available 'flavors' (sizes of
                            servers).
        help                Display help about this program or one of its
                            subcommands.
        image-create        Create a new image by taking a snapshot of a running
                            server.
        image-delete        Delete an image.
        image-list          Print a list of available images to boot from.
        ip-share            Share an IP address from the given IP group onto a
                            server.
        ip-unshare          Stop sharing an given address with a server.
        ipgroup-create      Create a new IP group.
        ipgroup-delete      Delete an IP group.
        ipgroup-list        Show IP groups.
        ipgroup-show        Show details about a particular IP group.
        list                List active servers.
        reboot              Reboot a server.
        rebuild             Shutdown, re-image, and re-boot a server.
        rename              Rename a server.
        resize              Resize a server.
        resize-confirm      Confirm a previous resize.
        resize-revert       Revert a previous resize (and return to the previous
                            VM).
        root-password       Change the root password for a server.
        show                Show details about the given server.

    Optional arguments:
      --username USERNAME   Defaults to env[CLOUD_SERVERS_USERNAME].
      --apikey APIKEY       Defaults to env[CLOUD_SERVERS_API_KEY].

    See "cloudservers help COMMAND" for help on a specific command.
    
Python API
----------

There's also a `complete Python API`__.

__ http://packages.python.org/python-cloudservers/

By way of a quick-start::

    >>> import cloudservers
    >>> cs = cloudservers.CloudServers(USERNAME, API_KEY)
    >>> cs.flavors.list()
    [...]
    >>> cs.servers.list()
    [...]
    >>> s = cs.servers.create(image=2, flavor=1, name='myserver')
    
    ... time passes ...
    
    >>> s.reboot()
    
    ... time passes ...
    
    >>> s.delete()

FAQ
===

What's wrong with libcloud?

    Nothing! However, as a cross-service binding it's by definition lowest
    common denominator; I needed access to the Rackspace-specific APIs (shared
    IP groups, image snapshots, resizing, etc.). I also wanted a command-line
    utility.