Python client for Picasso API
Go to file
Denis Makogon 09cc73c6fe Merge pull request #11 from denismakogon/expose-url
Provide new capability to V1 client - expose_url
2016-12-13 00:04:11 +02:00
doc New project name: Picasso 2016-12-07 22:22:52 +02:00
picassoclient Provide new capability to V1 client - expose_url 2016-12-09 23:36:44 +02:00
.gitignore Initial commit - Python LaOS client 2016-12-06 03:46:23 +02:00
.testr.conf New project name: Picasso 2016-12-07 22:22:52 +02:00
CONTRIBUTING.rst New project name: Picasso 2016-12-07 22:22:52 +02:00
LICENSE Initial commit - Python LaOS client 2016-12-06 03:46:23 +02:00
README.rst Remove all laos references 2016-12-07 22:26:02 +02:00
babel.cfg Initial commit - Python LaOS client 2016-12-06 03:46:23 +02:00
requirements.txt Initial commit - Python LaOS client 2016-12-06 03:46:23 +02:00
setup.cfg Provide new capability to V1 client - expose_url 2016-12-09 23:36:44 +02:00
setup.py Initial commit - Python LaOS client 2016-12-06 03:46:23 +02:00
test-requirements.txt Adding docs, testing 2016-12-06 18:37:33 +02:00
tox.ini New project name: Picasso 2016-12-07 22:22:52 +02:00

README.rst

python-picassoclient

OpenStack Functions Client Library

This is a client library for Picasso built on the Picasso 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 Picasso.

  • 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()
[...]

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