跳转到主要内容

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中。除非另有说明,否则提交为拉取请求的贡献假定在相同的许可条款下提交。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

openqa_client-4.2.3.tar.gz (33.6 kB 查看散列)

上传时间

构建分布

openqa_client-4.2.3-py3-none-any.whl (25.7 kB 查看散列)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面