python-searchlightclient/README.rst

152 lines
5.0 KiB
ReStructuredText

========================
Team and repository tags
========================
.. image:: https://governance.openstack.org/tc/badges/python-searchlightclient.svg
:target: https://governance.openstack.org/tc/reference/tags/index.html
.. Change things from this point on
========================
python-searchlightclient
========================
OpenStack Indexing and Search API Client Library
This is a client library for Searchlight built on the Searchlight API. It
provides a Python API (the ``searchlightclient`` module) and a command-line
tool (``searchlight``).
The project is hosted on `Launchpad`_, where bugs can be filed. The code is
hosted on `OpenStack git repository`_. Patches must be submitted using
`Gerrit`_, *not* git repo
pull requests.
.. _OpenStack git repository: https://git.openstack.org/cgit/openstack/python-searchlightclient
.. _Launchpad: https://launchpad.net/python-searchlightclient
.. _Gerrit: https://docs.openstack.org/infra/manual/developers.html#development-workflow
python-searchlightclient is licensed under the Apache License like the rest of
OpenStack.
.. contents:: Contents:
:local:
Install the client from PyPI
----------------------------
The program `python-searchlightclient`_ package is published on `PyPI`_ and
so can be installed using the pip tool, which will manage installing all
python dependencies::
$ pip install python-searchlightclient
.. note::
The packages on PyPI may lag behind the git repo in functionality.
.. _PyPI: https://pypi.org/project/python-searchlightclient/
Setup the client from source
----------------------------
* Clone repository for python-searchlightclient::
$ git clone https://git.openstack.org/openstack/python-searchlightclient.git
$ cd python-searchlightclient
* Setup a virtualenv
.. note::
This is an optional step, but will allow Searchlightclient's dependencies
to be installed in a contained environment that can be easily deleted
if you choose to start over or uninstall Searchlightclient.
::
$ 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 Searchlightclient and its dependencies::
(venv) $ python setup.py develop
Command-line API
----------------
Set Keystone environment variables to execute CLI commands against searchlight.
* To execute CLI commands::
$ export OS_USERNAME=<user>
$ export OS_PASSWORD=<password>
$ export OS_TENANT_NAME=<project>
$ export OS_AUTH_URL='http://localhost:5000/v2.0/'
.. 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.
.. _Openstackclient: https://docs.openstack.org/developer/python-openstackclient/configuration.html#clouds-yaml
::
$ openstack
(openstack) search resource type list
+--------------------------+--------------------------+
| Name | Type |
+--------------------------+--------------------------+
| OS::Designate::RecordSet | OS::Designate::RecordSet |
| OS::Designate::Zone | OS::Designate::Zone |
| OS::Glance::Image | OS::Glance::Image |
| OS::Glance::Metadef | OS::Glance::Metadef |
| OS::Nova::Server | OS::Nova::Server |
+--------------------------+--------------------------+
Here are the full list of subcommands, Use -h to see options:
============================= =======================================
Subcommand Description
============================= =======================================
search facet list List Searchlight Facet
search resource type list List Searchlight Resource Type (Plugin)
search query Search Searchlight resource
============================= =======================================
Python API
----------
To use with keystone as the authentication system::
>>> from keystoneclient.auth.identity import generic
>>> from keystoneclient import session
>>> from searchlightclient 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)
>>> sc = client.Client('1', session=keystone_session)
>>> sc.resource_types.list()
[...]
* License: Apache License, Version 2.0
* Documentation: https://docs.openstack.org/developer/python-searchlightclient
* Source: https://git.openstack.org/cgit/openstack/python-searchlightclient
* Bugs: https://bugs.launchpad.net/python-searchlightclient
Testing
-------
There are multiple test targets that can be run to validate the code.
* tox -e pep8 - style guidelines enforcement
* tox -e py27 - traditional unit testing