Skip to main content

Python client library for openQA API

Project description

openqa_client

This is a client for the openQA API, based on requests. It requires Python 3.6 or later.

Usage

Here's a simple example of reading the status of a job:

from openqa_client.client import OpenQA_Client
client = OpenQA_Client(server='openqa.opensuse.org')
print(client.openqa_request('GET', 'jobs/1'))

Here's an example of triggering jobs for an 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))

All methods other than GET require authentication. This client uses the same configuration file format as the reference (perl) client in openQA itself. Configuration will be read from /etc/openqa/client.conf or ~/.config/openqa/client.conf. A configuration file looks like this:

[openqa.happyassassin.net]
key = APIKEY
secret = APISECRET

You can get the API key and secret from the web UI after logging in. Your configuration file may include credentials for multiple servers; each section contains the credentials for the server named in the section title.

If you create an OpenQA_Client instance without passing the server argument, it will use the first server listed in the configuration file if there is one, otherwise it will use 'localhost'. Note: this is a difference in behaviour from the perl client, which always uses 'localhost' unless a server name is passed.

TLS/SSL connections are the default (except for localhost). You can pass the argument scheme to OpenQA_Client to force the use of unencrypted HTTP, e.g. OpenQA_Client(server='openqa.happyassassin.net', scheme='http').

The API always returns JSON responses; this client's request functions parse the response before returning it.

If you need for some reason to make a request which does not fall into the openqa_request() method's expected pattern, you can construct a requests.Request and pass it to do_request(), which will attach the required headers, execute the request, and return the parsed JSON response.

The const module provides several constants that are shadowed from the upstream openQA code, including job states, results, and the 'scenario keys'.

Licensing

This software is available under the GPL, version 2 or any later version. A copy is included as COPYING.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openqa_client-4.1.0.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

openqa_client-4.1.0-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file openqa_client-4.1.0.tar.gz.

File metadata

  • Download URL: openqa_client-4.1.0.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.2

File hashes

Hashes for openqa_client-4.1.0.tar.gz
Algorithm Hash digest
SHA256 afa4bdb31ba0e6c6bd4f629528595233c6da291014dead2a2ef598b6abb3f964
MD5 531ca080f7627a2ec28d2d0807e06a24
BLAKE2b-256 846a0dd482612c09253b7928ff814de25e57e0c0efad5db8f4a1c4dc578966a7

See more details on using hashes here.

File details

Details for the file openqa_client-4.1.0-py3-none-any.whl.

File metadata

  • Download URL: openqa_client-4.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.2

File hashes

Hashes for openqa_client-4.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 18e3be9173391ced696ba1cb49b25cb984ed046ec62479a3da8af2bc3d19b226
MD5 93a4218067e161d1d3fa2b60ca388028
BLAKE2b-256 053d231a0398f8a66b58e2ad9cc1db6d27d4a1fcfb338b36e3f6844d33869ff4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page