Commit Graph

1798 Commits

Author SHA1 Message Date
Brian C. Lane
03e6015f20 Add a test library
This adds empty __init__.py to tests so that a lib.py library of helper
functions can be imported from the tests.

Add captured_output to use with composer-cli tests to capture stdout/err
output from the functions.

(cherry picked from commit eeae331ba0)
2018-08-06 17:00:56 -07:00
Brian C. Lane
c52d45e168 composer-cli: Add support for Group to blueprints diff
(cherry picked from commit 2edd7a995b)
2018-08-06 17:00:56 -07:00
Brian C. Lane
1fff409465 Update status.py to use new handle_api_result
Use the new function to properly handle error responses for all the
commands.

(cherry picked from commit 642f117d54)
2018-08-06 17:00:56 -07:00
Brian C. Lane
2ec00fb5ce Update sources.py to use new handle_api_result
Use the new function to properly handle error responses for all the
commands.

(cherry picked from commit 3205e47a13)
2018-08-06 17:00:56 -07:00
Brian C. Lane
14542df02c Update projects.py to use new handle_api_result
Use the new function to properly handle error responses for all the
commands.

(cherry picked from commit 77767cd93a)
2018-08-06 17:00:56 -07:00
Brian C. Lane
6614f65198 Update modules.py to use new handle_api_result
Use the new function to properly handle error responses for all the
commands.

(cherry picked from commit b55b86d0b3)
2018-08-06 17:00:56 -07:00
Brian C. Lane
35e2471e41 Update compose.py to use new handle_api_result
Use the new function to properly handle error responses for all the
commands.

(cherry picked from commit 760aeb61a7)
2018-08-06 17:00:56 -07:00
Brian C. Lane
7e5590d459 Update blueprints.py to use new handle_api_result
Use the new function to properly handle error responses for all the
commands.

(cherry picked from commit c1c5536ec8)
2018-08-06 17:00:56 -07:00
Brian C. Lane
74d76789e1 Modify handle_api_result so it can be used in more places
Some results have errors and no status, others have status and errors.
Update the function to return the final rc to exit with, and a bool
indicating whether or not to continue processing the other fields.

Add a bunch of tests for the new function to make sure I have the logic
correct.

(cherry picked from commit 35fa067219)
2018-08-06 17:00:56 -07:00
Chris Lumens
d598b51294 Fix help output on the compose subcommand.
(cherry picked from commit a3572c9fdd)
2018-07-26 14:25:55 -04:00
Chris Lumens
4aa6768e03 Add timestamps to "compose-cli compose status" output.
(cherry picked from commit 7bcb61849d)
2018-07-26 14:25:52 -04:00
Chris Lumens
20fb27ec41 And then add real output to the status command.
(cherry picked from commit eb0939d967)
2018-07-26 14:25:48 -04:00
Chris Lumens
23892f19eb Add the beginnings of a new status subcommand.
(cherry picked from commit 9eafc60fa0)
2018-07-26 14:25:38 -04:00
Chris Lumens
73810e162d Document that you shouldn't run lorax-composer twice.
(cherry picked from commit 052828047c)
2018-07-26 14:25:34 -04:00
Chris Lumens
00af7c6da1 Add PIDFile to the .service file.
This will cause systemd to delete the lock file when the service
terminates.  This does not do anything if lorax-composer is started on
the command line, however.

(cherry picked from commit e37eae55b8)
2018-07-26 14:25:23 -04:00
Brian C. Lane
4eae24de40 composer-cli: Fix non-zero epoch in projets info
The json value is an int, so convert it to a str.

(cherry picked from commit 18521cec1a)
2018-07-25 11:39:34 -07:00
Brian C. Lane
0060729c3d Automatic commit of package [lorax] release [28.16-1].
Created by command:

/usr/bin/tito tag
2018-07-20 16:09:36 -07:00
Brian C. Lane
3a39b22f71 New lorax documentation - 28.16 2018-07-20 16:09:21 -07:00
Brian C. Lane
b0b97adf75 Update rsync version in http-server.toml 2018-07-18 16:50:51 -07:00
Brian C. Lane
49380b4b49 Log and exit on metadata update errors at startup
A bad system repo can cause lorax-composer to fail to start. Instead of
a traceback log the error and exit.

(note that the exit still results in an OSError traceback due to part of
it running as root, this needs to be addressed in another commit).

(cherry picked from commit b1dd22afa6)
2018-07-18 16:44:44 -07:00
Brian C. Lane
de0e5d2b59 Check /projects responses for null values.
Some values can be null/None so check for that instead of crashing.

(cherry picked from commit f916e41d00)
(cherry picked from commit 83680d92b0)
2018-07-18 16:44:44 -07:00
Brian C. Lane
5993802bc6 Clarify error message from /source/new
(cherry picked from commit b20aa4609c)
(cherry picked from commit 816f1658db)
2018-07-18 16:44:44 -07:00
Chris Lumens
1de67f4f63 Support loading groups from the kickstart template files.
(cherry picked from commit c8d2045f89)
(cherry picked from commit fbda20b8b7)
2018-07-18 16:35:48 -07:00
Chris Lumens
dbeb653942 Add group-based tests.
(cherry picked from commit ab0655d5a9)
(cherry picked from commit e151c8399d)
2018-07-18 16:35:48 -07:00
Chris Lumens
0259f3564d Include groups in depsolving.
This adds a new argument to projects_depsolve and
projects_depsolve_with_size that contains the group list, unfortunately.
I would have prefered adding a function that just returns a list of all
the contents of a group and then add that to what was being passed into
projects_depsolve.  However, there does not appear to be any good way to
do that in yum aside from a lot of grubbing around in the comps object,
which I am unwilling to do.

(cherry picked from commit 5fe4b47072)
(cherry picked from commit 8c4804eb15)
2018-07-18 16:35:48 -07:00
Chris Lumens
f1f8980c49 Add support for groups to blueprints.
Nothing is currently being done with this information, but it will be
soon.

(cherry picked from commit 0f69d2084c)
(cherry picked from commit 76d376fe18)
2018-07-18 16:35:48 -07:00
Chris Lumens
f5115291bd Add help output to each subcommand.
This is the same as the output at the top level, just trimmed down to
only the options for a single subcommand.  It's trigged by providing
"help" or "--help" as a subcommand option.

(cherry picked from commit 954f330ace)
(cherry picked from commit bb8fdcb854)
2018-07-18 16:35:48 -07:00
Chris Lumens
0179a976ba Split the help output into its own module.
This means I can reuse it for help output for individual subcommands.

(cherry picked from commit 70e4211ad1)
(cherry picked from commit eba5658a71)
2018-07-18 16:35:48 -07:00
Chris Lumens
18620700fd If the help subcommand is given, print the help output.
This isn't a real subcommand like the others.  The option processing
just intercepts it and prints the output.  Given that we're subcommand
based, it makes sense to support this in addition to --help.

(cherry picked from commit 3743d6d208)
(cherry picked from commit 3c6478e179)
2018-07-18 16:35:48 -07:00
Brian C. Lane
d92f2f5b04 Check the compose templates at startup
Depsolve the packages included in the templates and report any errors
using the /api/status 'msgs' field. This should help narrow down
problems with package sources not being setup correctly.
2018-07-13 09:51:36 -07:00
Brian C. Lane
6acbb0be0e Fix a couple typos in lorax-composer docs.
The description of blueprint versions was wrong, now it is
correct.

(cherry picked from commit 9e41052992)
2018-06-29 14:16:59 -07:00
Brian C. Lane
914c33ef97 Include example blueprints in the rpm
This also sets ownership of /var/lib/lorax/composer/ to root:weldr to
allow missing directories to be created at runtime.

(cherry picked from commit f38f5cc168)
2018-06-27 16:13:39 -07:00
Brian C. Lane
b7ed511554 Make sure /run/weldr has correct ownership and permissions
Normally tmpfiles.d will handle this at boot time, but if you install
lorax-composer without rebooting it was ending up with root:root
ownership instead of root:weldr

(cherry picked from commit 7adc5162fb)
2018-06-27 16:13:39 -07:00
Brian C. Lane
841e65a397 Allow more than 1 bash build in tests
It is perfectly valid to have more than one build of a package, eg. one
in the release repo and one in the updates repo.

(cherry picked from commit 86c4ef5f45)
2018-06-21 16:19:06 -07:00
Brian C. Lane
a5ddd5e3bf Add redhat.exec to s390 .treeinfo
Resolves: rhbz#1593657
(cherry picked from commit 6d9187d559)
2018-06-21 11:22:55 -07:00
Brian C. Lane
590341f735 Retry losetup if loop_attach fails
It appears that sometimes the loop device doesn't get setup properly,
this may be a race with other users of loop devices on the system, or
some other mechanism that isn't understood.

To try and prevent total failure when this happens this patch retries
the loop setup 3 times before giving up. Previously it would wait for
the loop device to appear (checking 5 times), that operation is now
executed 3 times with a new losetup attempt each time.

Resolves: rhbz#1589084
(cherry picked from commit c746e8b0c3)
2018-06-11 14:00:42 -07:00
Brian C. Lane
de73924cd3 Add reqpart to example kickstart files
This will make sure that platform specific partitions are created when
making partitioned disk images.

(cherry picked from commit 98de565979)
2018-06-11 13:55:42 -07:00
Brian C. Lane
ec8ecba9d1 Increase default ram used with lmc and virt to 2048
1024 is a bit small in some situations, double it.

Resolves: rhbz#1538747
(cherry picked from commit 594e762d63)
2018-06-11 13:47:59 -07:00
Brian C. Lane
96e132f733 Automatic commit of package [lorax] release [28.15-1].
Created by command:

/usr/bin/tito tag
2018-06-11 11:04:32 -07:00
Martin Kolman
68e850d57a Make LogRequestHandler configurable
Make it possible to manipulate the simple and regexp
tests the LogRequestHandler class uses to check error
messages for potential error states.

This is accomplished by moving the simple and regexp test
strings to class members, where they can be easily
manipulated by users of the pylorax module.

It's also now possible to set the log request handler class
for a LogMonitor.

This functionality can then be used for example like this:

customized_log_request_handler = monitor.LogRequestHandler
customized_log_request_handler.simple_tests.remove("Call Trace:")
log_monitor = monitor.LogMonitor(install_log,
                                 timeout=opts.timeout,
                                 log_request_handler_class = customized_log_request_handler)

This way installation will continue even if there was a call
trace in the logs. In a similar way additional tests and regexps can be
also added.

(cherry picked from commit d5d3dd3be3)
2018-06-11 11:04:00 -07:00
Brian C. Lane
760d70f158 Automatic commit of package [lorax] release [28.14-1].
Created by command:

/usr/bin/tito tag
2018-06-07 09:18:26 -07:00
Brian C. Lane
e1088fe6e9 New lorax documentation - 28.14 2018-06-07 09:18:10 -07:00
Brian C. Lane
a1905c3b4b Add --dracut-arg support to lorax
Use it to override the default dracut arguments (displayed as part of
the --help output). If you want to extend the default arguments they
all need to be passed in on the cmdline as well. eg.

--dracut-arg='--xz' --dracut-arg='--install /.buildstamp' ...

Resolves: rhbz#1452220
(cherry picked from commit d8ce013a2b)
2018-06-07 09:01:42 -07:00
Brian C. Lane
b9fe90000e gevent has deprecated .wsgi, should use .pywsgi instead
https://github.com/gevent/gevent/blob/master/doc/api/gevent.wsgi.rst
(cherry picked from commit c9ca451568)
2018-06-05 16:58:25 -07:00
Brian C. Lane
fd2b5de02c Automatic commit of package [lorax] release [28.13-1].
Created by command:

/usr/bin/tito tag
2018-06-04 16:51:00 -07:00
Brian C. Lane
d272304603 New lorax documentation - 28.13 2018-06-04 16:50:39 -07:00
Brian C. Lane
d824d63b97 Override Sphinx documentation version with LORAX_VERSION
Normally you want to document the NEXT release, not the last. This
allows you to build the documentation using:

LORAX_VERSION="29.6" make docs

(cherry picked from commit d47d38e0c8)
2018-06-04 16:48:11 -07:00
Brian C. Lane
0314cbd0e8 Add support for sources to composer-cli
This adds the sources command which can be used to list, add, change,
and delete sources using the TOML formatted source file.

(cherry picked from commit 6f6ce410c0)
2018-06-04 15:48:41 -07:00
Brian C. Lane
693dc9a6f6 Fix DNF related issues with source selection
DNF Repo.dump() function cannot be used as a .repo file for dnf due to
it writing baseurl and gpgkey as a list instead of a string. Add a new
function to write this in the correct format, and limited to the fields
we use.

Add a test for the new function.

Fix /projects/source/info to return an error 400 if a nonexistant TOML
source is requested. If JSON is used the error is part of the standard
response.

Update test_server.py to check for the correct error code.

(cherry picked from commit afa89ea657)
2018-06-04 15:47:38 -07:00
Brian C. Lane
1ab33b6416 Fix handling bad source repos and add a test
When adding a source failed it wasn't being removed from the dnf object.
This fixes that, and returns an error when setting up the source fails.
Also adds a test for it.
This also includes detecting rawhide vs. non-rawhide releases and
adjusting the tests accordingly (some of the source names change).

(cherry picked from commit dd8e4d9e99)
2018-06-04 15:47:32 -07:00