Pulp Fixtures is a collection of raw fixture data, scripts for compiling that data into a useful format, and make targets for controlling the whole mess.
Why does Pulp Fixtures exist? It exists so that the fixture data used by Pulp Smash can easily be recreated, and can be altered in a controlled way. Pulp Smash does not directly make use of Pulp Fixtures. Instead:
- A user clones the Pulp Fixtures repository. The "user" could be a human, or a bot like Jenkins.
- The user compiles the fixture data they want.
- The user uploads that fixture data to an HTTP server.
- The user ensures that their Pulp Smash installation is configured to use the uploaded fixture data. See pulp_smash.constants.
For exact usage instructions, clone this repository and run make help
.
The make targets and fixture generation scripts do little more than call out to
system utilities and mangle the results. It's the user's responsibility to
ensure the necessary utilities are available and usable. Dependencies are listed
below, according to make target. Common system utilities like fmt
, patch
and realpath
are omitted.
lint
- The
shellcheck
executable must be available. fixtures/docker
The
docker
utility must be available.Ensure the service is running and usable by the current user. This may require adding the current user to an appropriate group and reloading permissions, with a command such as
gpasswd --add $(id -u) docker && newgrp
.fixtures/rpm
- The
createrepo
andmodifyrepo
utilities must be available. fixtures/rpm-erratum
The
md5sum
andsha256sum
executables must be available. Note:- The generated erratum has no top-level
id
element. One must be inserted to make the erratum valid. Even then, Pulp may not accept the erratum. See Pulp #2020. - There is no schema for errata. The erratum generated by this script is based primarily on the Pulp RPM Errata documentation. As a result, this target may exhibit erroneous behaviour.
- The generated erratum has no top-level
fixtures/rpm-invalid-updateinfo
- See
fixtures/rpm
. fixtures/rpm-updated-updateinfo
- See
fixtures/rpm
.