Commit Graph

1403 Commits

Author SHA1 Message Date
Brian C. Lane
daf18d0467 Add /modules/list and /modules/info routes 2017-11-21 11:10:26 -08:00
Brian C. Lane
1424a5b769 Add modules functions and update function documentation 2017-11-21 11:09:18 -08:00
Brian C. Lane
4c459c4bf4 Add /projects/depsolve route 2017-11-20 16:50:07 -08:00
Brian C. Lane
a0d6551a3b Add /projects/info route
Elements that have no match in yum (metadata) are set to empty dicts.
2017-11-20 15:32:42 -08:00
Brian C. Lane
2013d73c53 Add /projects/list route 2017-11-20 13:46:43 -08:00
Brian C. Lane
b8f27e7610 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.
2017-11-20 10:15:44 -08:00
Brian C. Lane
82da7d2510 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.
2017-11-20 10:15:44 -08:00
Brian C. Lane
60131a2fd4 Add lorax requires to lorax-composer package. 2017-11-17 09:59:01 -08:00
Brian C. Lane
7720a1794d 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'
2017-11-16 18:08:51 -08:00
Brian C. Lane
1d583fae7b 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.
2017-11-16 17:20:33 -08:00
Brian C. Lane
42453e4fe8 Automatic commit of package [lorax] release [19.7.2-1].
Created by command:

/usr/bin/tito tag
2017-11-16 13:32:45 -08:00
Brian C. Lane
c6849ee0d9 Add limit/offset to recipes/list 2017-11-15 16:46:13 -08:00
Brian C. Lane
ee9f7f5201 Add error message for offset/limit type errors 2017-11-15 16:46:13 -08:00
Brian C. Lane
52234a34d5 Add error logging to api/v0.py
These will end up in the /var/log/lorax-composer/composer.log
2017-11-15 16:46:13 -08:00
Brian C. Lane
8027b6382b Fix server request logging.
And switch the other logs to append instead of overwrite on each run.
2017-11-15 16:46:13 -08:00
Brian C. Lane
aede0fadce Update lorax.spec for lorax-composer
Create a lorax-composer subpackage, with the pylorax/api code, systemd
service and runtime requirements in it.
2017-11-15 16:30:50 -08:00
Brian C. Lane
0f68345d2e 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/
2017-11-15 09:58:08 -08:00
Brian C. Lane
b27fc6deb8 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.
2017-11-15 09:56:52 -08:00
Brian C. Lane
8d8dc3cb1f Add /recipes/diff route and tests 2017-11-14 17:01:35 -08:00
Brian C. Lane
a56ca875ae 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.
2017-11-14 16:16:48 -08:00
Brian C. Lane
f8b64ce34d Add POST /recipes/tag/ route and tests 2017-11-13 16:48:56 -08:00
Brian C. Lane
baf8d7c467 Add tag_recipe_commit helper function
And change tests to use it so that both it and tag_file_commit are used.
2017-11-13 16:48:56 -08:00
Brian C. Lane
f56b7ebf38 Add POST /recipes/undo route and tests 2017-11-13 16:48:56 -08:00
Brian C. Lane
dc5a8c6fb4 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.
2017-11-13 16:48:56 -08:00
Brian C. Lane
7edf6baeb4 Add revert_recipe function
And adjust the tests to use it so that it covers both revert_recipe and
revert_file.
2017-11-13 16:48:56 -08:00
Brian C. Lane
4858c17fd7 Add DELETE /recipes/delete/<recipe_name> route and tests
Also add numbering to the tests so that they are executed in the
expected order.
2017-11-13 16:48:56 -08:00
Brian C. Lane
45001091be Add delete_recipe helper function and test
Use delete_recipe in the test so that both it and delete_file are
covered.
2017-11-13 16:48:56 -08:00
Brian C. Lane
305f59175d Add DELETE /recipes/workspace/<recipe_name> route and tests
This will delete the workspace copy of the recipe.
2017-11-13 16:48:56 -08:00
Brian C. Lane
0e9f2ddb73 Add tests for POST /recipes/workspace for JSON and TOML
As a side-effect also tests reading workspace only changes from
/recipes/info
2017-11-13 16:48:56 -08:00
Brian C. Lane
9ff118ed87 Add POST /recipes/workspace route
Also fix use of workspace in /recipes/info (was using filename instead
of recipe name and logic for changed was backwards).
2017-11-13 16:48:56 -08:00
Brian C. Lane
b7499f79d3 Add /recipes/new route and tests
This handles json data when the mime type is "application/json" and toml
recipes when it is "text/x-toml"
2017-11-13 16:44:02 -08:00
Brian C. Lane
053662daf0 Split recipe_from_toml into recipe_from_dict helper.
This will be useful for creating Recipe objects from json created dicts.
2017-11-13 16:44:02 -08:00
Brian C. Lane
6d71e2fcc1 Fix the recipe version bumping
Recipe should have its version bumped based on the version from the
previous commit, and not be bumped on the first commit. Fix the code and
the tests.
2017-11-13 16:44:02 -08:00
Brian C. Lane
63f47c2c00 Add /recipes/changes route with tests. 2017-11-09 18:43:42 -08:00
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