Directives Modules

Directives are basically Python modules which help you with some specific functionality that is either common for many tasks, or non-trivial to do and therefore saves you the work of implementing it. They offer more functionality than our libtaskotron API, but the basic API might be sufficient for you needs, have a look at both.

Note

In older libtaskotron versions the directives were used in a different way than standard Python modules, but that is no longer the case. Until they are re-implemented into standard-looking modules, they are somewhat awkward to use, nevertheless they are functional.

Using directives

We’ll use the Koji directive in the following example, but it applies to any of them. This is how to download a single RPM using the Koji directive:

from libtaskotron.directives import koji_directive
koji = koji_directive.KojiDirective()
params = {'action': 'download',
          'koji_build': 'htop-2.0.2-4.fc27.x86_64',
          'arch': 'all',
          'src': True,
          'target_dir': '/tmp/rpms',
          }
koji.process(params, None)

First, you need to import the module. Then, create a new instance of the included class (named in CamelCase from the file name). Then, you need to construct a dictionary with mandatory and optional keyvals defined in the directive documentation. Finally, you call the process() method with the dictionary and a second None argument.

Available modules

bodhi
download updates from Bodhi
create_report
generate a report of task results
createrepo
create a YUM repository from RPM packages using createrepo
distgit
download files from distgit
dummy
test how directives work
exitcode
set runtask exit code based on last or worst test outcome
koji
download builds and tags from Koji
xunit
parse an xUnit XML file into the ResultYAML format
yumrepoinfo
translate Koji tags into YUM repository URLs