3.6 KiB
python-picassoclient
OpenStack Functions Client Library
This is a client library for Project LaOS built on the Project LaOS
API. It provides a Python API (the picassoclient
module).
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.
python-picassoclient is licensed under the Apache License like the rest of OpenStack.
Contents:
Install the client from PyPI
The python-picassoclient
package is published on PyPI and
so can be installed using the pip tool, which will manage installing all
python dependencies:
$ pip install python-picassoclient
Note
The packages on PyPI may lag behind the git repo in functionality.
Setup the client from source
Clone repository for python-picassoclient:
$ git clone https://github.com/iron-io/python-picassoclient.git $ cd python-picassoclient
Setup a virtualenv
Note
This is an optional step, but will allow picassoclient's dependencies to be installed in a contained environment that can be easily deleted if you choose to start over or uninstall picassoclient.
$ tox -evenv --notest
Activate the virtual environment whenever you want to work in it. All further commands in this section should be run with the venv active:
$ source .tox/venv/bin/activate
Note
When ALL steps are complete, deactivate the virtualenv: $ deactivate
Install picassoclient and its dependencies:
(venv) $ python setup.py develop
Command-line API
Set Keystone environment variables to execute CLI commands against LaOS.
To execute CLI commands:
$ export OS_USERNAME=<user> $ export OS_PASSWORD=<password> $ export OS_PROJECT_NAME=<project> $ export OS_AUTH_URL=http://localhost:5000/v3
Note
With devstack you just need to $ source openrc <user> <project>. And you can work with a local installation by passing --os-token <TOKEN> and --os-url http://localhost:9393. You can also set up a Openstackclient config file to work with the CLI.
$ openstack
(openstack) fn-apps list
(openstack) fn-apps create testapp
Python API
To use with keystone as the authentication system:
>>> from keystoneclient.auth.identity import generic
>>> from keystoneclient import session
>>> from picassoclient import client
>>> auth = generic.Password(auth_url=OS_AUTH_URL, username=OS_USERNAME, password=OS_PASSWORD, tenant_name=OS_TENANT_NAME)
>>> keystone_session = session.Session(auth=auth)
>>> picasso = client.Client('v1', session=keystone_session)
>>> picasso.apps.list()
[...]
- License: Apache License, Version 2.0
- Documentation: https://github.com/iron-io/python-picassoclient
- Source: https://github.com/iron-io/python-picassoclient
- Bugs: https://github.com/iron-io/python-picassoclient
Testing
There are multiple test targets that can be run to validate the code.
- tox -e pep8 - style guidelines enforcement
- tox -e py34 - traditional unit testing
- tox -e py35 - traditional unit testing