File: README.md

package info (click to toggle)
python-openqa-client 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 180 kB
  • sloc: python: 661; sh: 23; makefile: 3
file content (79 lines) | stat: -rw-r--r-- 3,190 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# openqa_client

This is a client for the [openQA](https://os-autoinst.github.io/openQA/)
API, based on [requests](https://python-requests.org). 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'.

## Development

You can file pull requests at [Github](https://github.com/os-autoinst/openQA-python-client).
There is an extensive test suite with CI integration. You can run the test
suite locally by running `tox`. If your system has a tox version earlier
than 3.3.0, you must have the `setuptools_scm` Python module installed for
this to work correctly, or else you will get errors about a missing
`install.requires` file.

## Licensing

This software is available under the GPL, version 2 or any later version.
A copy is included as COPYING. Contributions submitted as pull requests are
assumed to be submitted under the same license terms unless otherwise
specified.