Python bindings to the OpenStack Trove API =========================================== This is a client for the OpenStack Trove API. There's a Python API (the ``troveclient`` module), and a command-line script (``trove``). Each implements 100% of the OpenStack Trove API. See the `OpenStack CLI guide`_ for information on how to use the ``trove`` command-line tool. You may also want to look at the `OpenStack API documentation`_. .. _OpenStack CLI Guide: http://docs.openstack.org/cli/quick-start/content/ .. _OpenStack API documentation: 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-troveclient .. _Releases: https://github.com/openstack/python-troveclient/releases .. _Launchpad: https://launchpad.net/python-troveclient .. _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-troveclient 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, ``trove``, 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: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 ``trove help``:: usage: trove [--version] [--debug] [--os-username ] [--os-password ] [--os-tenant-name ] [--os-tenant-id ] [--os-auth-url ] [--os-region-name ] [--service-type ] [--service-name ] [--bypass-url ] [--database-service-name ] [--endpoint-type ] [--os-database-api-version ] [--os-cacert ] [--retries ] [--json] ... Command-line interface to the OpenStack Trove API. Positional arguments: backup-create Creates a backup. backup-delete Deletes a backup. backup-list Lists available backups. backup-list-instance Lists available backups for an instance. backup-show Shows details of a backup. configuration-attach Attaches a configuration group to an instance. configuration-create Creates a configuration group. configuration-default Shows the default configuration of an instance. configuration-delete Deletes a configuration group. configuration-detach Detaches a configuration group from an instance. configuration-instances Lists all instances associated with a configuration group. configuration-list Lists all configuration groups. configuration-parameter-list Lists available parameters for a configuration group. configuration-parameter-show Shows details of a configuration parameter. configuration-patch Patches a configuration group. configuration-show Shows details of a configuration group. configuration-update Updates a configuration group. create Creates a new instance. database-create Creates a database on an instance. database-delete Deletes a database. database-list Lists available databases on an instance. datastore-list Lists available datastores. datastore-show Shows details of a datastore. datastore-version-list Lists available versions for a datastore. datastore-version-show Shows details of a datastore version. delete Deletes an instance. flavor-list Lists available flavors. flavor-show Shows details of a flavor. limit-list Lists the limits for a tenant. list Lists all the instances. resize-flavor Resizes the flavor of an instance. resize-volume Resizes the volume size of an instance. restart Restarts the instance. root-enable Enables root for a instance. root-show Gets root enabled status for a instance. secgroup-add-rule Creates a security group rule. secgroup-delete-rule Deletes a security group rule. secgroup-list Lists all security groups. secgroup-show Shows details about a security group. show Shows details of an instance. user-create Creates a user. user-delete Deletes a user from the instance. user-grant-access Grants access to a database(s) for a user. user-list Lists the users for a instance. user-revoke-access Revokes access to a database for a user. user-show Gets a user from the instance. user-show-access Gets a users access from the instance. user-update-attributes Updates a users attributes from the instance. bash-completion Prints arguments for bash_completion. help Displays help about this program or one of its subcommands. Optional arguments: --version show program's version number and exit --debug Print debugging output. --os-username Defaults to env[OS_USERNAME]. --os-password Defaults to env[OS_PASSWORD]. --os-tenant-name Defaults to env[OS_TENANT_NAME]. --os-tenant-id Defaults to env[OS_TENANT_ID]. --os-auth-url Defaults to env[OS_AUTH_URL]. --os-region-name Defaults to env[OS_REGION_NAME]. --service-type Defaults to database for most actions. --service-name Defaults to env[TROVE_SERVICE_NAME]. --bypass-url Defaults to env[TROVE_BYPASS_URL]. --database-service-name Defaults to env[TROVE_DATABASE_SERVICE_NAME]. --endpoint-type Defaults to env[TROVE_ENDPOINT_TYPE] or publicURL. --os-database-api-version Accepts 1, defaults to env[OS_DATABASE_API_VERSION]. --os-cacert Specify a CA bundle file to use in verifying a TLS (https) server certificate. Defaults to env[OS_CACERT]. --retries Number of retries. --json, --os-json-output Output json instead of prettyprint. Defaults to env[OS_JSON_OUTPUT]. Python API ---------- There's also a complete Python API, but it has not yet been documented. Quick-start using keystone:: # use v2.0 auth with http://example.com:5000/v2.0/") >>> from troveclient.v1 import client >>> nt = client.Client(USER, PASS, TENANT, AUTH_URL, service_type="database") >>> nt.instances.list() [...]