- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .gear | ||
| AUTHORS.txt | ||
| isoinspector | ||
| LICENSE | ||
| README.md | ||
| require.txt | ||
Isoinspector
Isoinspector is an utility to validate consistency of RPM packages from distribution ISO/IMG images with base branch in ALTRepo DB using ALTRepo API.
Utility supports two types of distribution branches: regular and sp.
Supported image formats are ISO, IMG, and compressed IMG (.img.xz).
Version
0.2.2
License
GNU GPLv3
Dependencies
- fuseiso
- squashfuse
- guestmount (for IMG images)
- unxz (for
.img.xzimages) - python3-module-rpm
- python3-module-mmh3
- python3-module-requests
Starting application
Usage is available by run program with -h argument.
usage: isoinspector [-h] --branch BRANCH --type {regular,sp} [-U URL] [-v] [-s] [-J] [-F] path
Inspect RPM packages from ISO/IMG image with branch through RepoDB API
positional arguments:
path Path to ISO/IMG image file (.iso, .img, .img.xz)
options:
-h, --help show this help message and exit
--branch BRANCH Filesystem image base branch name
--type {regular,sp} Branch type
-U URL, --url URL RepoDB API URL
-v, --verbose verbose output (repeat for increased verbosity)
-s, --silent quiet output (show errors only)
-J, --dumpjson Dump API response to JSON files
-F, --files Dump information about invalid packages to JSON files
Default API URL is https://rdb.altlinux.org.
Verbosity level is controlled by -s and -v options.
Specify -v for INFO level loggign or -vv for DEBUG level logging.
Program could generate additional artifacts when -J and -F options are specified.
Inspection result is streamed to stdout in JSON format.
Interpreting results
Note that base branch state is committed to database no more than once a day.
Thus some packages could be found as not_in_db even if it is not true.
Regular distribution ISO
For regular distribution ISO packages inspected using it's hashes.
If package not found in base branch's history, then it is searched in building task history.
Not valid package's information, if any, returned in sections in_tasks and not_in_db of result JSON.
SP distribution ISO
For sp distribution ISO packages inspected using set of NEVRDA (name, epoch, version, release, disttag, arch).
If package not found in base branch's history, it is searched in building task history by NEVRDA matching. Found ones is returned with "found_in": "task [%task_id%.%subtask_id%]".
Then packages is searched in latest base branch state using NEVRA (disttag excluded). Found one is returned with "found_in": "last branch".
Finaly packages looked up in latest branch state using NA (name, architecture) matching and added to comparison as "last_branch" component.
Not valid package's information, if any, returned in sections "in_tasks" and "not_in_db" of result JSON.
IMG images
IMG images are processed via guestmount and inspected the same way as ISO images.
Compressed IMG archives (.img.xz) are decompressed to a temporary file before mounting.
Examples
$> isoinspector /iso/alt-sp8-workstation-x86_64.iso --branch c9f2 --type sp -v | jq
$> isoinspector /iso/alt-sp8-server-x86_64.iso --branch c9f2 --type sp --url http://localhost:5000/ > result.json
$> isoinspector /img/alt-mobile-phosh-def-11.0-x86_64.img.xz --branch p11 --type regular -vv -F -J > result.json