Commit Graph

1419 Commits

Author SHA1 Message Date
Brian C. Lane
d58b650904 Add /recipes/info route and tests 2017-11-08 17:38:12 -08:00
Brian C. Lane
8607b3519f Add workspace module and tests
This handles the recipe workspace, which is a temporary location to
store recipes before committing them to git. It will be used by the
/recipes/ API.
2017-11-08 13:14:38 -08:00
Brian C. Lane
641ea8c715 Add /recipes/list route and tests
Includes adding a lock for access to the git repo from the API.
2017-11-08 09:46:12 -08:00
Brian C. Lane
ff47432f10 Move the git repo into a subdirectory
And fix the import of recipes (needs to have full path passed in).
2017-11-07 17:11:17 -08:00
Brian C. Lane
e4695bd580 Add basic API Server testing framework 2017-11-07 12:00:35 -08:00
Brian C. Lane
d2fe65c80c Fix list_commits sort order.
It appears that with libgit2 v0.24.6 reverse causes it to list them
newest first. In 0.25.1 it lists them oldest first. On both versions
just using SortMode.TIME gives the desired result of oldest first.
2017-10-25 13:31:35 -07:00
Brian C. Lane
68939a753a Add tests for the pylorax.api.recipes module 2017-10-25 13:31:35 -07:00
Brian C. Lane
1f7be8a50f Add pylorax.api.recipes code for handling the Recipe's Git repository 2017-10-25 13:31:35 -07:00
Alexander Todorov
806aad3dff Fix mocking the built-in open function for Python2
- fix import of mock module
- account for io.StringIO differences in Python 2
2017-10-24 22:59:21 +03:00
Alexander Todorov
d823501686 Don't do wildcard imports 2017-10-13 18:58:40 +03:00
Alexander Todorov
24e0784256 Misc pylint fixes that are reported usually once 2017-10-13 18:58:40 +03:00
Alexander Todorov
ad9d502fa9 Fix dangerous-default value warnings
when default value is list or dict the default arguments are
instantiated as objects at the time of definition. This is significant
(exposing visible semantics) when the object is mutable. There’s no way
of re-binding that default argument name in the function’s closure. When
function is executed multiple times with its default value the value
will change between executions, possibly leading to strange side effects.

For more information see:
http://satran.in/2012/01/12/python-dangerous-default-value-as-argument.html
2017-10-13 18:58:40 +03:00
Alexander Todorov
4dad6ab5f4 Don't redefine variables from outer scope 2017-10-13 18:58:40 +03:00
Alexander Todorov
3df7b1460a Define all class attributes inside __init__ 2017-10-13 18:58:40 +03:00
Alexander Todorov
9c870944e0 Fix logging formatting 2017-10-13 18:58:40 +03:00
Alexander Todorov
a4f1f288de Don't redefine builtins 2017-10-13 18:58:40 +03:00
Alexander Todorov
dad17538a4 Silence relative import warnings 2017-10-13 18:58:40 +03:00
Alexander Todorov
9b33e7c052 pylint fix: unused variable warning 2017-10-13 18:58:40 +03:00
Alexander Todorov
7c26fd2a10 pylint fix: remove unused imports 2017-10-13 18:58:40 +03:00
Alexander Todorov
3680c689e7 Add make test target and update .gitignore
also submit coverage report to Coveralls.io if environment is
configured
2017-10-13 18:58:31 +03:00
Alexander Todorov
66e8861de7 Add first unit test so we can start collecting coverage 2017-10-13 18:58:31 +03:00
Brian C. Lane
5fa8d51b85 lorax-composer initial commit
The lorax-composer program will launch a BDCS compatible API server
using Flask and Gevent. Currently this is a skeleton application with
only one active route (/api/v0/status).

The API code lives in ./src/pylorax/api/v0.py with related code in other
pylorax/api/* modules.
2017-10-04 17:03:08 -07:00
Brian C. Lane
2dc38b7a77 Add pylint support to Makefile
This requires pylint and python-pocketlint from EPEL7 to work.
runpylint.py copied from upstream lorax.
2017-10-04 12:11:10 -07:00
Brian C. Lane
7f56ad4ce1 livemedia-creator: Move core functions into pylorax modules
This reduces the amount of code in livemedia-creator to the cmdline
parsing and calling of the installer functions. Moving them into other
modules will allow them to be used by other projects, like the
lorax-composer API server.
2017-10-02 16:50:01 -07:00
Brian C. Lane
bf79e09b72 Automatic commit of package [lorax] release [19.7.1-1].
Created by command:

/usr/bin/tito tag --keep-version
2017-09-29 10:15:17 -07:00
Brian C. Lane
1745c4f15b Automatic commit of package [lorax] release [19.6.99-1].
Created by command:

/usr/bin/tito tag
2017-09-29 09:37:04 -07:00
Brian C. Lane
7a0b4f2070 s390 doesn't need to graft product.img and updates.img into /images (#1478448)
The /images directory is already grafted into the iso, so it
doesn't need a specific line for the .img files.

Related: rhbz#1478448
2017-09-29 09:31:34 -07:00
Brian C. Lane
58309c2018 Automatic commit of package [lorax] release [19.6.98-1].
Created by command:

/usr/bin/tito tag
2017-09-27 09:08:26 -07:00
Brian C. Lane
54d973e059 Write a list of installed packages to /root/lorax-packages.log (#1416155)
This can't be done the same way as on master because there is no rpm
database inside the installroot to run rpm -qa against. Do it at the end
of the yum transaction.

Resolves: rhbz#1416155
2017-09-27 08:30:04 -07:00
Brian C. Lane
1639df6862 Set the releasever and install gpg keys when using --repo
This uses the --release value as the yum releasever so that $releasever
in a --repo will work.

It also turns on assumeyes so that any gpgkey entries in the .repo file
will be installed and used automatically if gpgcheck is enabled for the
repo.

Related: rhbz#1430479
2017-09-26 15:48:37 -07:00
Brian C. Lane
b1aa852b58 Automatic commit of package [lorax] release [19.6.97-1].
Created by command:

/usr/bin/tito tag
2017-08-18 10:21:20 -07:00
Brian C. Lane
df35857c9b Remove -boot-info-table from s390 boot.iso creation (#1478448)
It corrupts the kernel+initrd and isn't needed when booting on s390.

Related: rhbz#1478448
2017-08-18 10:19:28 -07:00
Brian C. Lane
4f55facece Automatic commit of package [lorax] release [19.6.96-1].
Created by command:

/usr/bin/tito tag
2017-08-15 15:05:13 -07:00
Brian C. Lane
641bbc21af Install mk-s390-cdboot to /usr/bin/ (#1478448)
Related: rhbz#1478448
2017-08-15 14:55:46 -07:00
Brian C. Lane
a909182aad Automatic commit of package [lorax] release [19.6.95-1].
Created by command:

/usr/bin/tito tag
2017-08-11 18:00:15 -07:00
Brian C. Lane
3cfd532382 IsoMountpoint: Add ppc64le kernel to search (#1373358)
Resolves: rhbz#1373358
2017-08-11 17:38:58 -07:00
Brian C. Lane
d30143d146 livemedia-creator: Report correct results dir (#1374609)
Resolves: rhbz#1374609
2017-08-11 17:38:58 -07:00
Brian C. Lane
e5c6f9e8bc Add creation of a bootable s390 iso (#1478448)
Use mk-s390-cdboot to create a combined kernel+initrd and then build a
boot.iso using it.

Resolves: rhbz#1478448
2017-08-11 16:02:52 -07:00
Brian C. Lane
6007b35096 Add mk-s360-cdboot utility (#1478448)
Add a utility to concatenate the kernel and initrd, and edit the kernel.

This is based on:
https://github.com/rhinstaller/anaconda/blob/rhel6-branch/utils/mk-s390-cdboot.c

It takes into account byteorder and it wipes the cmdline area before
writing the parmfile into the kernel.

Related: rhbz#1478448
2017-08-11 16:02:52 -07:00
Brian C. Lane
5238b9cd18 Fix systemctl command (#1478247)
When multiple units are passed to systemctl and one fails it doesn't
finish the others. Change the template command to call systemctl for
each unit individually.

This also removes the lvm2-activation-generator in runtime-cleanup.tmpl

Resolves: rhbz#1478247
2017-08-11 15:49:10 -07:00
Brian C. Lane
1b29041089 Add the version to the log (#1335456)
Log the version number as INFO and add -V version display to
livemedia-creator.

Resolves: rhbz#1335456
2017-08-11 15:42:16 -07:00
Brian C. Lane
7aa71188b9 Include the dracut fips module in the initrd (#1341280)
This will allow anaconda to fetch kickstarts using https when installing
with fips=1

Leave vmlinuz and .vmlinuz.hmac in /boot

dracut-fips module needs the vmlinuz.hmac file in order to boot.

Resolves: rhbz#1341280
2017-08-11 15:22:50 -07:00
Brian C. Lane
a883412ccc Fix loop_wait (#1462150)
The previous code used losetup --list -O to return the backing store
associated with the loop device. This can fail due to losetup truncating
the output filename if sysfs isn't setup. Instead of printing the full
path it will truncate it to 64 characters with a * at the end.

See util-linux lib/loopdev.c for the code that does this.

This commit changes it to use the existing get_loop_name function, which
uses losetup -j to lookup the loop device associated with the backing
store which avoids the truncation problem.

Resolves: rhbz#1462150
2017-08-11 15:18:00 -07:00
Brian C. Lane
79917e7e88 Document kickstart restrictions on %include (#1418500)
%include cannot be used with livemedia-creator

Resolves: rhbz#1418500
2017-08-11 15:11:30 -07:00
Brian C. Lane
487618314c Add support for --repo to read yum .repo files directly (#1430479)
This makes it easier to specify existing repos with extra args, eg.
/etc/yum.repos.d/redhat.repo generated by subscription-manager.

Resolves: rhbz#1430479
2017-08-11 15:11:30 -07:00
Marek Hruscak
81d534670b Package grub2-efi-ia32 need to be added explicitly to example kickstarts. (#1458937)
Boot on 32bit UEFI requires this package. Legacy grub2-efi package
is satisfied only with grub2-efi-x64 package and grub2-efi-ia32 is missing.

Resolves: rhbz#1458937
2017-08-11 15:08:37 -07:00
Brian C. Lane
694a630a89 Automatic commit of package [lorax] release [19.6.94-1].
Created by command:

/usr/bin/tito tag
2017-06-23 08:29:15 -07:00
Brian C. Lane
aaf1cc3894 Fix waiting for loop devices (#1462150)
Missing change for the previous commit.

Resolves: rhbz#1462150
2017-06-23 08:28:32 -07:00
Brian C. Lane
bbfc50b185 Automatic commit of package [lorax] release [19.6.93-1].
Created by command:

/usr/bin/tito tag
2017-06-22 08:29:32 -07:00
Brian C. Lane
e0d9e309ae Make sure loop device is setup (#1462150)
It seems that on rare occasions losetup can return before the /dev/loopX
is ready for use, causing problems with mkfs. This tries to make sure
that the loop device really is associated with the backing file before
continuing.

Resolves: rhbz#1462150
2017-06-21 14:31:35 -07:00