openstack索引和搜索api客户端库
python-searchlightclient的Python项目详细描述
python searchlight客户端
OpenStack索引和搜索API客户端库
这是基于Searchlight API构建的Searchlight客户端库它 提供一个python api(searchlightclient模块)和一个命令行 工具(searchlight)。
该项目托管在Storyboard上,在那里可以提交bug。代码是 主持于OpenStack git repository。必须使用提交修补程序 Gerrit,不git回购 拉取请求。
python searchlightclient与其他 打开堆栈。
Install the client from PyPI
程序python-searchlightclient包发布在PyPI和 所以可以使用pip工具安装,它将管理所有 python依赖项:
$ pip install python-searchlightclient
注意
PyPI上的包在功能上可能落后于git repo
Setup the client from source
python searchlightclient的克隆存储库:
$ git clone https://git.openstack.org/openstack/python-searchlightclient.git $ cd python-searchlightclient
设置virtualenv
注意
这是一个可选步骤,但将允许searchlightclient的依赖项 安装在易于删除的包含环境中 如果选择重新启动或卸载SearchLightClient。
$ tox -evenv --notest
只要您想在虚拟环境中工作,就激活它。 本节中的所有其他命令都应在激活VENV的情况下运行:
$ source .tox/venv/bin/activate
注意
完成所有步骤后,停用virtualenv:$deactivate
安装SearchLightClient及其依赖项:
(venv) $ python setup.py develop
Command-line API
设置Keystone环境变量以对searchlight执行CLI命令
要执行cli命令:
$ export OS_USERNAME=<user> $ export OS_PASSWORD=<password> $ export OS_TENANT_NAME=<project> $ export OS_AUTH_URL='http://localhost:5000/v2.0/'
注意
使用devstack,您只需$source openrc<;user>;<;project>你可以 通过传递-os token<;token>;和-os url来使用本地安装 http://localhost:9393。您还可以设置Openstackclient配置文件 使用cli。
$ 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 | +--------------------------+--------------------------+
下面是子命令的完整列表,使用-h可以查看选项:
Subcommand Description search facet list List Searchlight Facet search resource type list List Searchlight Resource Type (Plugin) search query Search Searchlight resource
Python API
使用keystone作为身份验证系统:
>>> 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() [...]
Testing
可以运行多个测试目标来验证代码
- TOX-E PEP8-风格指南实施
- tox-e py27-使用python 2.7进行传统单元测试
- tox-e py35-使用python 3.5进行传统单元测试
- tox-e py36-使用python 3.6进行传统单元测试
- tox-e py37-使用python 3.7进行传统单元测试