This is a client for the Stackops Automation API. There's a Python API (the
automationclient module), and a command-line script (automation). Each
implements 100% of the Stackops Automation API.
See the Stackops Automation CLI guide for information on how to use the automation
command-line tool. You may also want to look at the
Stackops Automation API documentation.
The code is hosted on Github.
This code is based on Openstack python-cinderclient If you need API support for the Openstack Cinder API solely or the Apache license, you should use that repository.
python-automationclient is licensed under the Apache License.
Contents:
The latest release version of Stackops python-automationclient is v1.2.1
that correspond with the current release of Stackops automation package
who has the same number version as well.
Stackops python-automationclient is under development taking as groundwork the project
Openstack python-cinderclient, therefore to recreate the current project you need to clone this one
throught the command git clone https://github.com/StackOps/python-automationclient and then follow the
next steps:
- Go to the directory
python-automationclient - Once on the directory run the command
python tools/install_venv.pyto create a virtual environment to work on it - Activate the virtual environment with the command
source .venv/bin/activate - Install the python-automationclient throught the command
python setup.py install - This is all!! Start to contribute....
Installing this package gets you a shell command, automation, that you
can use to interact with any Stackops Automation compatible API..
You'll need to provide your Stackops Automation username, password and tenant_name.
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=stackops export OS_PASSWORD=secret export OS_TENANT_NAME=service
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/ export OS_VERSION=1
As Stackops Automation used Keystone, you need to set the AUTOMATION_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
automation help:
usage: automation [--version] [--debug] [--os-username <auth-user-name>]
[--os-password <auth-password>]
[--os-tenant-name <auth-tenant-name>]
[--os-tenant-id <auth-tenant-id>] [--os-auth-url <auth-url>]
[--os-region-name <region-name>]
[--service-type <service-type>]
[--service-name <service-name>]
[--endpoint-type <endpoint-type>]
[--os-automation-api-version <automation-api-ver>]
[--os-cacert <ca-certificate>] [--insecure]
[--retries <retries>]
<subcommand> ...
Command-line interface to the Stackops Automation API.
Positional arguments:
<subcommand>
architecture-create
Add a new architecture.
architecture-delete
Remove a specific architecture.
architecture-list List all the architectures that are available on
automation.
architecture-show Show details about an architecture.
architecture-template
Get template from a specific architecture.
component-list List all the components that are available on
automation.
component-services List all the services by a component.
component-show Show details about a component.
datastore-add Validate and add to the pool a NFS endpoint or GLUSTER
endpoint.
datastore-attach Attach a specific datastore to a zone.
datastore-content List top content (first level) of a specific
datastore.
datastore-delete Delete specific datastore.
datastore-detach Detach a specific datastore from a zone.
datastore-discovery
Discovery endpoints from NFS.
datastore-list List a pool of datastores.
datastore-show Show details about a datastore.
datastore-space Show the space of a specific datastore.
datastore-update Update parameters of a specific datastore.
datastore-validate Validate a discovered NFS endpoint or just a GLUSTER
endpoint.
device-activate Activate a specific device in the pool.
device-delete Remove a specific device from pool.
device-list List all the devices in the pool.
device-power-off Power off a specific device in the pool.
device-power-on Power on a specific device in the pool.
device-reboot Reboot a specific device in the pool.
device-replace Replaces a node in a zone by a specific device in the
pool.
device-show Show details about a device.
device-shutdown Shutdown a specific device in the pool.
device-soft-reboot Soft reboot a specific device in the pool.
device-update Update a device.
endpoints Discover endpoints that get returned from the
authenticate services.
global-property-create
Add a new property.
global-property-delete
Delete a property.
global-property-list
List all the properties that are available on
automation.
global-property-update
Updates a property.
node-deactivate Deactivates a zone node. Moves an activated node from
the zone
node-list List all activate devices in a zone.
node-show Show details about a node in a zone.
node-task-cancel Cancel a task from a node in a zone.
node-task-delete Remove a task from a node in a zone from automation
DB.
node-task-state Show details about a task from a node in a zone.
node-tasks-list List all tasks from a node in a zone.
node-task-delete Remove a task from a node in a zone from automation
DB.
profile-create Add a new profile by architecture.
profile-delete Remove a specific profile by architecture.
profile-json Gets the JSON of the profile.
profile-list List all the profiles by architecture.
profile-property-create
Create a profile property by architecture.
profile-property-delete
Delete a profile property by architecture.
profile-property-update
Update a profile property by architecture.
profile-show Show details about a profile by architecture.
profile-update Update a profile by architecture.
role-component-json
Gets the JSON of the component by zone and role.
role-component-list
List all components by zone and role.
role-component-show
Show details about a component by zone and role.
role-component-update
Update a component by zone and role .
role-deploy Associate a role to a node.
role-list List all the roles by zone.
role-show Show details about a role.
service-execute Execute a service by zone, role and component.
service-list List all the services by zone, role and component.
service-show Show details about a service by zone, role and
component.
zone-create Add a new zone by architecture according to a JSON
profile.
zone-delete Remove a specific zone.
zone-json Gets the JSON of the zone.
zone-list List all the zones.
zone-property-create
Create a zone property.
zone-property-delete
Delete a zone property.
zone-property-update
Update a zone property.
zone-show Show details about a zone.
zone-tasks-list List all the tasks by zone.
bash-completion Print arguments for bash_completion.
help Display help about this program or one of its
subcommands.
list-extensions List all the os-api extensions that are available.
Optional arguments:
--version show program's version number and exit
--debug Print debugging output
--os-username <auth-user-name>
Defaults to env[OS_USERNAME].
--os-password <auth-password>
Defaults to env[OS_PASSWORD].
--os-tenant-name <auth-tenant-name>
Defaults to env[OS_TENANT_NAME].
--os-tenant-id <auth-tenant-id>
Defaults to env[OS_TENANT_ID].
--os-auth-url <auth-url>
Defaults to env[OS_AUTH_URL].
--os-region-name <region-name>
Defaults to env[OS_REGION_NAME].
--service-type <service-type>
Defaults to automation for most actions
--service-name <service-name>
Defaults to env[AUTOMATION_SERVICE_NAME]
--endpoint-type <endpoint-type>
Defaults to env[AUTOMATION_ENDPOINT_TYPE] or
publicURL.
--os-automation-api-version <automation-api-ver>
Accepts 1.1 or 2,defaults to
env[OS_AUTOMATION_API_VERSION].
--os-cacert <ca-certificate>
Specify a CA bundle file to use in verifying a TLS
(https) server certificate. Defaults to env[OS_CACERT]
--insecure Explicitly allow automationclient to perform
"insecure" TLS (https) requests. The server's
certificate will not be verified against any
certificate authorities. This option should be used
with caution.
--retries <retries> Number of retries.
See "automation help COMMAND" for help on a specific command.
There's also a complete Python API, but it has not yet been documented.
Quick-start:
# use v1.1 version) >>> from automationclient.v1_1 import client >>> at = client.Client(USERNAME, PASSWORD, TENANT_NAME) >>> at.components.list() [...]