Python bindings

This module provides Python bindings to the Bodhi REST API.

class bodhi.client.bindings.BodhiClient(base_url='https://bodhi.fedoraproject.org/', username=None, password=None, staging=False, **kwargs)[source]

Bases: fedora.client.openidbaseclient.OpenIdBaseClient

candidates()[source]

Get a list list of update candidates.

This method is a generator that returns a list of koji builds that could potentially be pushed as updates.

comment(*args, **kwargs)[source]

Add a comment to an update.

Parameters:
  • update – The title of the update comment on.
  • comment – The text of the comment.
  • karma – The karma of this comment (-1, 0, 1)
  • email – Whether or not to trigger email notifications
csrf(*args, **kwargs)[source]
get_koji_session(login=True)[source]

Return an authenticated koji session

get_releases(*args, **kwargs)[source]

Return a list of bodhi releases.

This method returns a dictionary in the following format:

{"releases": [
    {"dist_tag": "dist-f12", "id_prefix": "FEDORA",
     "locked": false, "name": "F12", "long_name": "Fedora 12"}]}
koji_session

Return an authenticated koji session

latest_builds(*args, **kwargs)[source]
list_overrides(*args, **kwargs)[source]

List buildroot overrides.

Parameters:user – A username whose buildroot overrides you want returned.
static override_str(override)[source]

Return a string representation of a given override dictionary.

Parameters:override – An override dictionary.
parse_file(input_file)[source]

Parse an update template file.

Parameters:input_file – The filename of the update template.

Returns an array of dictionaries of parsed update values which can be directly passed to the save method.

password
query(*args, **kwargs)[source]

Query bodhi for a list of updates.

Parameters:
  • releases – A list of releases that you wish to query updates for.
  • status – The update status (pending, testing, stable, obsolete, unpushed, processing)
  • type – The type of this update: security, bugfix, enhancement, and newpackage.
  • bugs – A list of Red Hat Bugzilla ID’s
  • request – An update request to query for testing, stable, unpush, obsolete or None.
  • mine – If True, only query the users updates. Default: False.
  • packages – A space or comma delimited list of package names
  • limit – A deprecated argument, sets rows_per_page. See its docstring for more info.
  • approved_before – A datetime string
  • approved_since – A datetime string
  • builds – A space or comma delimited string of build nvrs
  • critpath – A boolean to query only critical path updates
  • cves – Filter by CVE IDs
  • locked – A boolean to filter only locked updates
  • modified_before – A datetime string to query updates that have been modified before a certain time.
  • modified_since – A datetime string to query updates that have been modified since a certain time.
  • pushed – A boolean to filter only pushed updates
  • pushed_before – A datetime string to filter updates pushed before a certain time.
  • pushed_since – A datetime string to filter updates pushed since a certain time.
  • severity – A severity type to filter by (unspecified, urgent, high, medium, low)
  • submitted_before – A datetime string to filter updates submitted before a certain time.
  • submitted_since – A datetime string to filter updates submitted after a certain time.
  • suggest – Query for updates that suggest a user restart (logout, reboot)
  • user – Query for updates submitted by a specific user.
  • rows_per_page – Limit the results to a certain number of rows per page (min:1 max: 100 default: 20)
  • page – Return a specific page of results
request(*args, **kwargs)[source]

Request an update state change.

Parameters:
  • update – The title of the update
  • request – The request (testing, stable, obsolete, unpush, revoke)
save(*args, **kwargs)[source]

Save an update.

This entails either creating a new update, or editing an existing one. To edit an existing update, you must specify the update title in the edited keyword argument.

Parameters:
  • builds – A list of koji builds for this update.
  • type – The type of this update: security, bugfix, enhancement, and newpackage.
  • bugs – A list of Red Hat Bugzilla ID’s associated with this update.
  • notes – Details as to why this update exists.
  • request – Request for this update to change state, either to testing, stable, unpush, obsolete or None.
  • close_bugs – Close bugs when update is stable
  • suggest – Suggest that the user reboot or logout after update. (reboot, logout)
  • inheritance – Follow koji build inheritance, which may result in this update being pushed out to additional releases.
  • autokarma – Allow bodhi to automatically change the state of this update based on the karma from user feedback. It will push your update to stable once it reaches the stable_karma and unpush your update when reaching unstable_karma.
  • stable_karma – The upper threshold for marking an update as stable.
  • unstable_karma – The lower threshold for unpushing an update.
  • edited – The update title of the existing update that we are editing.
  • severity – The severity of this update (urgent, high, medium, low)
  • requirements – A list of required Taskotron tests that must pass for this update to reach stable. (depcheck, upgradepath, rpmlint)
  • require_bugs – A boolean to require that all of the bugs in your update have been confirmed by testers.
  • require_testcases – A boolean to require that this update passes all test cases before reaching stable.
save_override(*args, **kwargs)[source]

Save a buildroot override.

This entails either creating a new buildroot override, or editing an existing one.

Parameters:
  • nvr – A nvr of a koji build.
  • duration – Number of days from now that this override should expire.
  • notes – Notes about why this override is in place.
testable()[source]

Get a list of installed testing updates.

This method is a generate that yields packages that you currently have installed that you have yet to test and provide feedback for.

Only works on systems with dnf.

update_str(update, minimal=False)[source]

Return a string representation of a given update dictionary.

Parameters:
  • update – An update dictionary, acquired by the list method.
  • minimal – Return a minimal one-line representation of the update.
exception bodhi.client.bindings.BodhiClientException[source]

Bases: fedora.client.FedoraClientError

exception bodhi.client.bindings.UpdateNotFound(update)[source]

Bases: bodhi.client.bindings.BodhiClientException

bodhi.client.bindings.errorhandled(method)[source]

A decorator for BodhiClient that raises exceptions on failure.