The ara-server standalone repository is being discontinued.
The clear and logical separation of components was nice but the overhead
in complexity was not worth it.
Change-Id: I9d5e3096db4972405932ae2af46ee63bfeef43b5
ara-infra now provides a new and improved set of integration jobs
so we no longer need to have the ansible-integration job.
These new jobs test ara-server, ara-clients and ara-plugins against
a variety of operating systems and versions of Ansible.
It was convenient to be able to run these tests from ara-server by
itself, we'll re-introduce a wrapper so we can continue to do so
later.
Depends-On: https://review.openstack.org/#/c/630303
Change-Id: Iedf259e44af5165be08c5d6917e5af98b281202d
If there are no SECRET_KEY or ARA_SECRET_KEY environment variables
set or if there is no configuration file with the SECRET_KEY variable
set, settings.py will generate a random secret key once and it will
be persisted to the default configuration.
Change-Id: Idf2f1ee5f8a70bc2411de51a154bc4504705d89a
This changes the configuration engine from everett to dynaconf.
dynaconf allows loading configuration from files (json, ini, yaml, toml)
as well as environment variables prefixed by ARA_.
Our usage of dynaconf is similar to the use case from the Pulp [1]
project and they have documented an issue when loading database
parameters [2]. This issue is worked around by importing dynaconf in the
different entry points.
This introduces some other changes as well:
- We're now creating a default configuration and data directory at
~/.ara. The location of this directory is controlled with the
ARA_BASE_DIR environment variable.
- We're now creating a default configuration template in
~/.ara/default_config.yaml.
- The default database is now located at ~/.ara/ara.sqlite. The location
of this database can be customized with the ARA_DATABASE_NAME
environment variable.
Note that ARA 0.x used "~/.ara/ansible.sqlite" -- the file name change
is deliberate in order to avoid user databases clashing between
versions.
More documentation on this will be available in an upcoming patch.
[1]: https://github.com/pulp/pulp
[2]: https://github.com/rochacbruno/dynaconf/issues/89
Change-Id: I8178b4ca9f2b4d7f4c45c296c08391e84e8b990d
This moves manage.py inside the package and sets up an "ara-manage"
console entry point for doing something like "ara-manage runserver"
instead of "python manage.py runserver".
Putting this under __main__ also allows users to do "python -m
ara.server".
Change-Id: I86b57f11fed2fea0295b1980e2734e35289d84f3
black and isort fit into the category of linters.
Let's run everything from the same job so we can avoid wasting time
and resources from the CI infrastructure.
Previously, tox would exit immediately if there was an error with
black, preventing isort from running. You could then run into a
situation where you also had an issue picked up by isort.
Now bash will run all linters and return the appropriate
return code at the end.
Change-Id: I81abe61be65bd9f4f828cfc5f0b7a1d9f1eb1f22
Our usage of the sha1 method is only to hash the contents of files so we
don't store a single file more than once.
We can likely use something more "secure" but let's temporarily disable
this check for now.
Change-Id: Ie7b07e489e6c442f34fc9930713b9dfdfa530aaf
This is a structure that will allow us to install everything under
"ara" as separate packages but inside the same module.
For example, installing ara-server will provide ara.server and
ara.api.
Installing ara-clients will provide ara.clients, ara-plugins will
supply ara.plugins, etc.
Change-Id: I27ee431c4e5d946f558befc12937ba2f3c0d020b
- Remove mockdata.py (using the callback is better)
- Add first iteration of callback
Note: This will eventually be moved, it's here for simplicity
- Add test playbook/role to exercise the callback
Note: The callback will be moved to ara-plugins
Change-Id: I8f590be4cfafd4714f40f4165e2973cb803b8756
- Make the project installable with pbr
- Use tox to run tests, build docs, runserver
- Flesh out the README a little bit
- Real docs is WIP.
Change-Id: I3dc92250cd93add0cdf11c6a67d8f1081560d4e1