openQA API的Python客户端库
项目描述
openqa_client
这是一个基于openQA API的客户端,基于requests。它需要Python 3.6或更高版本。
用法
以下是一个读取作业状态的简单示例
from openqa_client.client import OpenQA_Client
client = OpenQA_Client(server='openqa.opensuse.org')
print(client.openqa_request('GET', 'jobs/1'))
以下是一个触发ISO作业的示例
# This is a Fedora server.
client = OpenQA_Client(server='openqa.happyassassin.net')
params = {}
params['ISO'] = '22_Beta_TC2_server_x86_64_boot.iso'
params['DISTRI'] = 'fedora'
params['VERSION'] = '22'
params['FLAVOR'] = 'server_boot'
params['ARCH'] = 'x86_64'
params['BUILD'] = '22_Beta_TC2'
print(cl.openqa_request('POST', 'isos', params))
除了GET
之外的所有方法都需要认证。此客户端使用与openQA本身中的参考(perl)客户端相同的配置文件格式。配置将从/etc/openqa/client.conf
或~/.config/openqa/client.conf
读取。配置文件看起来像这样
[openqa.happyassassin.net]
key = APIKEY
secret = APISECRET
您可以在登录后从Web UI获取API密钥和秘密。您的配置文件可能包含多个服务器的凭据;每个部分包含标题中命名的服务器的凭据。
如果您在没有传递server
参数的情况下创建一个OpenQA_Client
实例,如果没有列出服务器,它将使用配置文件中列出的第一个服务器,否则它将使用'localhost'。注意:这与总是使用'localhost'除非传递服务器名称的perl客户端的行为不同。
TLS/SSL连接是默认的(除了localhost)。您可以将scheme
参数传递给OpenQA_Client
以强制使用未加密的HTTP,例如:OpenQA_Client(server='openqa.happyassassin.net', scheme='http')
。
API始终返回JSON响应;此客户端的请求函数在返回之前解析响应。
如果您需要出于某种原因发出不符合openqa_request()
方法预期模式的请求,您可以构建一个requests.Request
并将其传递给do_request()
,这将附加所需的首部,执行请求,并返回解析后的JSON响应。
const
模块提供了一些常量,这些常量从上游openQA代码中屏蔽,包括作业状态、结果和“场景键”。
开发
您可以在Github上提交拉取请求。有一个广泛的测试套件,集成了CI。您可以通过运行tox
来本地运行测试套件。如果您的系统上的tox版本早于3.3.0,则必须安装setuptools_scm
Python模块,才能正确工作,否则您将收到有关缺少install.requires
文件的错误。
许可协议
此软件可在GPL版本2或任何更高版本下使用。副本包含在COPYING中。除非另有说明,否则提交为拉取请求的贡献假定在相同的许可条款下提交。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。