Brian C. Lane
f26a6212d6
Add --proxy to lorax-composer cmdline
...
Overrides the [yum] proxy setting in the config file.
2018-06-11 16:54:59 -07:00
Brian C. Lane
9978503a69
Pass the --tmp value into run_creator and cleanup after a crash
...
Crashing can sometimes leave directories in /var/tmp/lmc-* so clean
those up after run_creator is finished.
2018-06-11 16:54:59 -07:00
Brian C. Lane
3a38a57ae1
Add --tmp to lorax-composer and set default tempdir
...
It was using /tmp/ which can fill up quickly when building images.
Default to /var/tmp unless the user passes --tmp /tmp/
2018-06-11 16:54:59 -07:00
Brian C. Lane
ffc3195d77
Add support for systemd socket activation
...
Instead of enabling lorax-composer.service enable lorax-composer.socket
and it will start lorax-composer on first access to
/run/weldr/api.socket
2018-06-11 16:54:59 -07:00
Brian C. Lane
651e111d1f
Change the API code to use blueprint
...
This includes in the JSON output. The only exception is when using
functions from the recipes module. There are no plans to change that.
2018-06-11 16:54:59 -07:00
Brian C. Lane
de604b37a6
Add a pid file for lorax-composer
...
This will prevent accidentally running more than 1 instance.
Uses /run/lorax-composer.pid and checks to make sure that the PID
written to it isn't stale.
2018-06-11 16:54:58 -07:00
Brian C. Lane
85ee784efc
Only chown recipe directory if it already exists
...
Since creation of the directory has been moved after switching users
this now needs to check to make sure it exists first.
2018-06-11 16:54:58 -07:00
Brian C. Lane
a1427b1a31
Set the HOME variable to a directory the uid can access
...
libgit2 will look for $HOME/.gitconfig after dropping root privileges so
this needs to be accessible to the user.
2018-06-11 16:54:58 -07:00
Brian C. Lane
442dc43206
Open the git repo after dropping root privileges
...
Also make sure the recipe directory and its contents have correct
ownership, and change the default recipe path when using the systemd
service to /var/lib/lorax/composer/recipes/
2018-06-11 16:54:58 -07:00
Brian C. Lane
4ae2e1450d
Exit on uid/gid errors before checking directory permissions
...
If the uid/gid check fails there is no sense in trying to examine the
ownership or permissions.
2018-06-11 16:54:58 -07:00
Brian C. Lane
eb2a7208c8
Move queue monitor startup into a function
...
This allows it to be used by the test framework.
2018-06-11 16:54:58 -07:00
Brian C. Lane
63a7897457
Move queue directory creation into a function
...
So that it can also be used during tests
2018-06-11 16:54:58 -07:00
Brian C. Lane
9603c866af
Drop cancel_q from the monitor() function
...
Not needed, builds are canceled by writing a 'CANCEL' file in the results
directory.
2018-06-11 16:54:58 -07:00
Brian C. Lane
22c03ceba7
Fix yum config directory creation for projects and server tests
2018-06-11 16:54:58 -07:00
Brian C. Lane
3fdf3a9819
Turn on o+x permission for the queue and results directories
...
Otherwise it won't allow a group member to delete things.
2018-06-11 16:54:58 -07:00
Brian C. Lane
c92373ecd6
Change config and paths
...
With the API running as weldr the permissions on the yum directories
needs to be accessable to it, as well as the results and queue/new
directories.
2018-06-11 16:54:58 -07:00
Brian C. Lane
e2f4674fb3
Add basic composer queue handling
...
The queue is in /var/lib/weldr/queue/new by default. It watches the
directory for new symlinks (to /var/lib/weldr/results/<dirname>) and
handles running anaconda on the kickstart found in final-kickstart.ks
inside the symlinked directory.
2018-06-11 16:54:58 -07:00
Brian C. Lane
377f5e4124
Switch the API to use a Unix Domain Socket
...
This drops support for the TCP port and switches to using a socket at
/var/run/weldr/api.socket
Also add the start of some docs for lorax-composer.
--host and --port argument have been removed.
--group sets the group name to use for access to the socket and its
parent directory. Defaults to 'weldr'
--socket sets the full path to the socket to create. Defaults to
'/var/run/weldr/api.socket'
2018-06-11 16:54:58 -07:00
Brian C. Lane
3e5c0707bb
Redirect yum's logging to yum.log
2018-06-11 16:54:58 -07:00
Brian C. Lane
efd15aaad7
Add --releasever option to lorax-composer
...
If it isn't set the releasever value will use yum and the system / to
find the releasever.
2018-06-11 16:54:58 -07:00
Brian C. Lane
164232ba4d
Modify pylorax.api.config.configure so it can also be used for tests.
2018-06-11 16:54:58 -07:00
Brian C. Lane
ad5ab71551
Move ComposerConfig into pylorax.api.config module
2018-06-11 16:54:58 -07:00
Brian C. Lane
569ce1d3dc
Add support for yum to lorax-composer
...
This includes a new configuration file at /etc/lorax/composer.conf with
built-in defaults. It also adds a YUMLOCK server config object so that
request handlers can access the yum base object without interfering
with each other.
2018-06-11 16:54:58 -07:00
Brian C. Lane
950d9df217
Fix server request logging.
...
And switch the other logs to append instead of overwrite on each run.
2018-06-11 16:54:57 -07:00
Brian C. Lane
453082ab9f
lorax-composer: Drop unneeded parameters and create missing directories
...
The log directory (and parents) will be created if they are missing.
An empty recipe directory will be created if it doesn't exist.
2018-06-11 16:54:57 -07:00
Brian C. Lane
b6fb22133c
Add /recipes/list route and tests
...
Includes adding a lock for access to the git repo from the API.
2018-06-11 16:54:57 -07:00
Alexander Todorov
15de3e1687
pylint fix: remove unused imports
2018-06-11 16:54:57 -07:00
Brian C. Lane
2008a413b6
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.
2018-06-11 16:54:57 -07:00