Run benchmark with default settings:
tox -e benchmark
Run benchmark with specified number of hosts or tasks:
tox -e benchmark -- -e benchmark_host_count=50
Change-Id: I295967c6fb39ec5e02a80b863bde4c57fc6f2139
This makes it so "pip install ara" would only install a minimal
amount of dependencies (pbr and requests as of this commit) required
for running the Ansible callback plugin as well as ara_record.
The server dependencies can be installed by running
"pip install ara[server]".
Fixes: https://github.com/ansible-community/ara/issues/36
Change-Id: I67769d28ec24cade7753230dffd0b049358af29a
ARA_BASE_DIR can be set to easily use "tox -e runserver" to load
a database at a particular location, for example.
Change-Id: If959b4217205bc27b9cf4d3f1b0595016f6805b5
- Rename the "integration-tests" role to "ara_tests" in order to be
in line with the other roles
- Add an "ansible-integration" tox environment which takes care of
installing Ansible and running a playbook which includes the ara_tests
role.
- Add docs and improve existing docs
Change-Id: I0d272744bb27f2c923ef992d1b64de0032849f0e
The usage of static files in the ARA API server is very limited.
They are used for displaying the API browser from django-rest-framework
and the Django admin interface.
By using whitenoise, Django can serve static files through "manage.py
runserver" and through the WSGI application without needing to enable
debug mode or adding specific routes.
This allows us to simplify the deployment a bit because we no longer
need to collect static files.
We're also taking this opportunity to simplify configuration a bit by no
longer exposing the following configuration options:
- STATIC_ROOT
- STATIC_URL
- MEDIA_ROOT
- MEDIA_URL
They'll still be loaded but there is no longer a use case for being able
to change the defaults -- at least for the time being.
Change-Id: I9fc853e84b3739fca574afcd2da799dc8c1fbad6
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