Brian C. Lane
57d9d40c29
Add documentation for the API routes.
...
Use Sphinx on a CentOS7/RHEL7 system to generate the docs with 'make docs'
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
916a001d73
Add support for other branches to the routes
...
Passing ?branch=<branch-name> will use the specified branch instead of
master.
The new branch will not exist until a /recipes/new?branch=new-branch
POST is made. At that time the branch will be created based on the
current master branch and the new commit will be added to it.
2018-06-11 16:54:58 -07:00
Alexander Todorov
0af072c77e
Silence pocketlint bad-preconf-access warnings
2018-06-11 16:54:58 -07:00
Alexander Todorov
7809da61e6
Properly report coverage
...
- use same version of coverage.py as is inside the container b/c
data format has changed between versions
- use `coverage combine' with a .coveragerc mapping to adjust for
differences in file paths between the container and Travis
2018-06-11 16:54:58 -07:00
Alexander Todorov
c90ea64e59
Enable testing in Travis CI using Docker container
2018-06-11 16:54:58 -07:00
Martin Pitt
176b12dd8c
Fix depsolving empty recipes
...
- Fix `projects_depsolve()` to not consider a successful empty response
(rc == 0) as an error.
- Fix recipe_from_dict() to default modules and packages to empty lists
instead of `None`, to avoid a Python-ism in the API for consumers and
stay compatible to the bdcs API.
Fixes #290
2018-06-11 16:54:58 -07:00
Martin Pitt
da3616db72
Fix wrong function name in api/v0/recipes/freeze error messages
2018-06-11 16:54:58 -07:00
Martin Pitt
53cd264ece
Fix project tests for non-Central time zones
...
When running tests somewhere else than Central Time, `test_api_time()`
fails like
AssertionError: '1985-10-27T02:00:00' != '1985-10-26T21:00:00'
`test_yaps_to_project_info()` fails in a similar way.
Pin the time zone to UTC for this test and adjust timestamps to UTC.
2018-06-11 16:54:58 -07:00
Brian C. Lane
e1af0c67bd
Automatic commit of package [lorax] release [19.7.5-1].
...
Created by command:
/usr/bin/tito tag
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
a44e499eee
Close the rpmdb after every API operation.
...
rpm blocks all of the signals until closeRpmDB() is called.
We need to call it after all of the API calls.
2018-06-11 16:54:58 -07:00
Brian C. Lane
cf42e1a480
Fix error string when there is a problem listing projects
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
d6f41fbfa1
Automatic commit of package [lorax] release [19.7.4-1].
...
Created by command:
/usr/bin/tito tag
2018-06-11 16:54:58 -07:00
Brian C. Lane
c1bd07635a
Fix wrong name for /etc/composer.conf
2018-06-11 16:54:58 -07:00
Brian C. Lane
27a3f4e38c
Automatic commit of package [lorax] release [19.7.3-1].
...
Created by command:
/usr/bin/tito tag
2018-06-11 16:54:58 -07:00
Brian C. Lane
bae551b7ab
Add filtering and glob support to /modules/list route
2018-06-11 16:54:58 -07:00
Brian C. Lane
6b4bf92e7f
Add /recipes/freeze route and tests.
2018-06-11 16:54:58 -07:00
Brian C. Lane
b8212358bc
Add /recipes/depsolve route and test
2018-06-11 16:54:58 -07:00
Brian C. Lane
a85d0ced8b
Add /projects and /modules API tests
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
f26af06739
Add tests for projects module functions
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
8fee86a5db
Catch ProjectsError and return an error 400 with a message.
2018-06-11 16:54:58 -07:00
Brian C. Lane
a1e7e4831d
Catch Yum errors in the projects functions
2018-06-11 16:54:58 -07:00
Brian C. Lane
23d90ec066
Add /modules/list and /modules/info routes
2018-06-11 16:54:58 -07:00
Brian C. Lane
8635a59ac7
Add modules functions and update function documentation
2018-06-11 16:54:58 -07:00
Brian C. Lane
c3d495fe53
Add /projects/depsolve route
2018-06-11 16:54:58 -07:00
Brian C. Lane
99140b98b9
Add /projects/info route
...
Elements that have no match in yum (metadata) are set to empty dicts.
2018-06-11 16:54:58 -07:00
Brian C. Lane
0819e97646
Add /projects/list route
2018-06-11 16:54:58 -07:00
Brian C. Lane
105679d79d
Add /api/v0/test route
...
Returns a simple string to indicate that the API server is running.
/api/v0/status should be used instead, it provides more detailed info in
JSON format.
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
4f99c208aa
Add lorax requires to lorax-composer package.
2018-06-11 16:54:58 -07:00
Brian C. Lane
5d6c236af6
Add /api/docs to serve up the documentation
...
This requires that the docs be at /usr/share/doc/lorax-*/html/ or if
running from the source tree, at ./docs/html/
They can be re-created by running 'make docs'
2018-06-11 16:54:58 -07:00
Brian C. Lane
8db5cdd512
Add basic documentation generation with Sphinx
...
Docs are included with the rpm, so the .spec needs a number of packages
as BuildRequires in order for Sphinx to run.
2018-06-11 16:54:58 -07:00
Brian C. Lane
9ec571ab23
Automatic commit of package [lorax] release [19.7.2-1].
...
Created by command:
/usr/bin/tito tag
2018-06-11 16:54:58 -07:00
Brian C. Lane
1d53d00532
Add limit/offset to recipes/list
2018-06-11 16:54:58 -07:00
Brian C. Lane
2cd4fcfd88
Add error message for offset/limit type errors
2018-06-11 16:54:58 -07:00
Brian C. Lane
9ca9bfe46f
Add error logging to api/v0.py
...
These will end up in the /var/log/lorax-composer/composer.log
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
9f9d227600
Update lorax.spec for lorax-composer
...
Create a lorax-composer subpackage, with the pylorax/api code, systemd
service and runtime requirements in it.
2018-06-11 16:54:57 -07:00
Brian C. Lane
3bbbeb347a
setup.py: Add pylorax.api module to install, and systemd service
...
lorax-composer.service will be installed by default, but not enabled.
It stores recipes at /var/lib/lorax-composer/recipes/
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
d701120d90
Add /recipes/diff route and tests
2018-06-11 16:54:57 -07:00
Brian C. Lane
052a8ba991
Add recipe_diff function and helpers.
...
This takes a pair of Recipe objects and returns a list of diff dicts
that include what was changed between the two recipes.
2018-06-11 16:54:57 -07:00
Brian C. Lane
a76e95dcb5
Add POST /recipes/tag/ route and tests
2018-06-11 16:54:57 -07:00
Brian C. Lane
7f1adf120c
Add tag_recipe_commit helper function
...
And change tests to use it so that both it and tag_file_commit are used.
2018-06-11 16:54:57 -07:00
Brian C. Lane
3f4140d5d3
Add POST /recipes/undo route and tests
2018-06-11 16:54:57 -07:00
Brian C. Lane
639d325a0c
Change read_recipe_commit to use the recipe name
...
Callers really shouldn't need to know the details of the filenames, so
change it to convert it internally.
2018-06-11 16:54:57 -07:00