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 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269
|
Python bindings to the OpenStack Nova API
==================================================
This is a client for the OpenStack Nova API. There's a Python API (the
``novaclient`` module), and a command-line script (``nova``). Each
implements 100% of the OpenStack Nova API.
[PENDING] `Full documentation is available`__.
__ http://packages.python.org/python-novaclient/
You'll also probably want to read `OpenStack Compute Developer Guide API`__ --
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.openstack.org/api/
The project is hosted on `Launchpad`_, where bugs can be filed. The code is
hosted on `Github`_. Patches must be submitted using `Gerrit`_, *not* Github
pull requests.
.. _Github: https://github.com/openstack/python-novaclient
.. _Launchpad: https://launchpad.net/python-novaclient
.. _Gerrit: http://wiki.openstack.org/GerritWorkflow
This code a fork of `Jacobian's python-cloudservers`__ If you need API support
for the Rackspace API solely or the BSD license, you should use that repository.
python-client is licensed under the Apache License like the rest of OpenStack.
__ http://github.com/jacobian/python-cloudservers
.. contents:: Contents:
:local:
Command-line API
----------------
Installing this package gets you a shell command, ``nova``, that you
can use to interact with any Rackspace compatible API (including OpenStack).
You'll need to provide your OpenStack username and password. You can do this
with the ``--os_username``, ``--os_password`` and ``--os_tenant_name``
params, but it's easier to just set them as environment variables::
export OS_USERNAME=openstack
export OS_PASSWORD=yadayada
export OS_TENANT_NAME=myproject
You will also need to define the authentication url with ``--os_auth_url``
and the version of the API with ``--version``. Or set them as an environment
variables as well::
export OS_AUTH_URL=http://example.com:8774/v1.1/
export NOVA_VERSION=1.1
If you are using Keystone, you need to set the NOVA_URL to the keystone
endpoint::
export OS_AUTH_URL=http://example.com:5000/v2.0/
Since Keystone can return multiple regions in the Service Catalog, you
can specify the one you want with ``--os_region_name`` (or
``export OS_REGION_NAME``). It defaults to the first in the list returned.
You'll find complete documentation on the shell by running
``nova help``::
usage: nova [--debug] [--os_username OS_USERNAME] [--os_password OS_PASSWORD]
[--os_tenant_name OS_TENANT_NAME] [--os_auth_url OS_AUTH_URL]
[--os_region_name OS_REGION_NAME] [--service_type SERVICE_TYPE]
[--service_name SERVICE_NAME] [--endpoint_type ENDPOINT_TYPE]
[--version VERSION] [--username USERNAME]
[--region_name REGION_NAME] [--apikey APIKEY]
[--projectid PROJECTID] [--url URL]
<subcommand> ...
Command-line interface to the OpenStack Nova API.
Positional arguments:
<subcommand>
absolute-limits Print a list of absolute limits for a user
actions Retrieve server actions.
add-fixed-ip Add new IP address to network.
add-floating-ip Add a floating IP address to a server.
aggregate-add-host Add the host to the specified aggregate.
aggregate-create Create a new aggregate with the specified details.
aggregate-delete Delete the aggregate by its id.
aggregate-details Show details of the specified aggregate.
aggregate-list Print a list of all aggregates.
aggregate-remove-host
Remove the specified host from the specfied aggregate.
aggregate-set-metadata
Update the metadata associated with the aggregate.
aggregate-update Update the aggregate's name and optionally
availability zone.
boot Boot a new server.
console-log Get console log output of a server.
credentials Show user credentials returned from auth
delete Immediately shut down and delete a server.
describe-resource Show details about a resource
diagnostics Retrieve server diagnostics.
dns-create Create a DNS entry for domain, name and ip.
dns-create-private-domain
Create the specified DNS domain.
dns-create-public-domain
Create the specified DNS domain.
dns-delete Delete the specified DNS entry.
dns-delete-domain Delete the specified DNS domain.
dns-domains Print a list of available dns domains.
dns-list List current DNS entries for domain and ip or domain
and name.
endpoints Discover endpoints that get returned from the
authenticate services
flavor-create Create a new flavor
flavor-delete Delete a specific flavor
flavor-list Print a list of available 'flavors' (sizes of
servers).
floating-ip-create Allocate a floating IP for the current tenant.
floating-ip-delete De-allocate a floating IP.
floating-ip-list List floating ips for this tenant.
floating-ip-pool-list
List all floating ip pools.
get-vnc-console Get a vnc console to a server.
host-action Perform a power action on a host.
host-update Update host settings.
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.
image-meta Set or Delete metadata on an image.
image-show Show details about the given image.
keypair-add Create a new key pair for use with instances
keypair-delete Delete keypair by its id
keypair-list Print a list of keypairs for a user
list List active servers.
live-migration Migrates a running instance to a new machine.
lock Lock a server.
meta Set or Delete metadata on a server.
migrate Migrate a server.
pause Pause a server.
rate-limits Print a list of rate limits for a user
reboot Reboot a server.
rebuild Shutdown, re-image, and re-boot a server.
remove-fixed-ip Remove an IP address from a server.
remove-floating-ip Remove a floating IP address from a server.
rename Rename a server.
rescue Rescue a server.
resize Resize a server.
resize-confirm Confirm a previous resize.
resize-revert Revert a previous resize (and return to the previous
VM).
resume Resume a server.
root-password Change the root password for a server.
secgroup-add-group-rule
Add a source group rule to a security group.
secgroup-add-rule Add a rule to a security group.
secgroup-create Create a security group.
secgroup-delete Delete a security group.
secgroup-delete-group-rule
Delete a source group rule from a security group.
secgroup-delete-rule
Delete a rule from a security group.
secgroup-list List security groups for the curent tenant.
secgroup-list-rules
List rules for a security group.
show Show details about the given server.
ssh SSH into a server.
suspend Suspend a server.
unlock Unlock a server.
unpause Unpause a server.
unrescue Unrescue a server.
usage-list List usage data for all tenants
volume-attach Attach a volume to a server.
volume-create Add a new volume.
volume-delete Remove a volume.
volume-detach Detach a volume from a server.
volume-list List all the volumes.
volume-show Show details about a volume.
volume-snapshot-create
Add a new snapshot.
volume-snapshot-delete
Remove a snapshot.
volume-snapshot-list
List all the snapshots.
volume-snapshot-show
Show details about a snapshot.
volume-type-create Create a new volume type.
volume-type-delete Delete a specific flavor
volume-type-list Print a list of available 'volume types'.
x509-create-cert Create x509 cert for a user in tenant
x509-get-root-cert Fetches the x509 root cert.
bash-completion Prints all of the commands and options to stdout so
that the
help Display help about this program or one of its
subcommands.
Optional arguments:
--debug Print debugging output
--os_username OS_USERNAME
Defaults to env[OS_USERNAME].
--os_password OS_PASSWORD
Defaults to env[OS_PASSWORD].
--os_tenant_name OS_TENANT_NAME
Defaults to env[OS_TENANT_NAME].
--os_auth_url OS_AUTH_URL
Defaults to env[OS_AUTH_URL].
--os_region_name OS_REGION_NAME
Defaults to env[OS_REGION_NAME].
--service_type SERVICE_TYPE
Defaults to compute for most actions
--service_name SERVICE_NAME
Defaults to env[NOVA_SERVICE_NAME]
--endpoint_type ENDPOINT_TYPE
Defaults to env[NOVA_ENDPOINT_TYPE] or publicURL.
--version VERSION Accepts 1.1, defaults to env[NOVA_VERSION].
--username USERNAME Deprecated
--region_name REGION_NAME
Deprecated
--apikey APIKEY, --password APIKEY
Deprecated
--projectid PROJECTID, --tenant_name PROJECTID
Deprecated
--url URL, --auth_url URL
Deprecated
See "nova help COMMAND" for help on a specific command.
Python API
----------
[PENDING] There's also a `complete Python API`__.
__ http://packages.python.org/python-novaclient/
By way of a quick-start::
>>> import novaclient
>>> nt = novaclient.OpenStack(USERNAME, PASSWORD, PROJECT_ID [, AUTH_URL])
>>> nt.flavors.list()
[...]
>>> nt.servers.list()
[...]
>>> s = nt.servers.create(image=2, flavor=1, name='myserver')
... time passes ...
>>> s.reboot()
... time passes ...
>>> s.delete()
Quick-start using keystone::
# use v2.0 auth with http://example.com:5000/v2.0/")
>>> from novaclient.v1_1 import client
>>> nt = client.Client(USER, PASS, TENANT, AUTH_URL)
>>> nt.flavors.list()
[...]
>>> nt.servers.list()
[...]
>>> nt.keypairs.list()
[...]
What's new?
-----------
[PENDING] See `the release notes <http://packages.python.org/python-novaclient/releases.html>`_.
|