The six library was used to keep compatibility with both Python 2 and 3
but Python 3 support was already removed.
Change-Id: I5ab003d024f538469854b771279de6aafea90a16
The library is end of life and out of date for recent python.
This change completes the removal from Adjutant, as was
started in I102e94c8172f6ea660814dd8fcd44ed8239b2e67
A viable replacement library may be drf-yasg, and may be
implemented in the future.
Co-Authored-By: matthewnorthcott@catalystcloud.nz
Change-Id: Ifd43db86f801bd16aea358245c0e8a5392e66d55
As of Python 3.8, importlib.metadata is the provisional
replacement for pkg_resources which depended on setuptools.
In python 3.10 this is no longer provisional and supersedes
pkg_resources with the same functionality.
Also remove rest_framework_swagger which provides the `/docs/`
endpoint temporarily. The library is end of life and should be
replaced with drf-yasg or similar.
Ref: https://importlib-metadata.readthedocs.io/en/latest/migration.html
Ref: https://docs.python.org/3/library/importlib.metadata.html
Change-Id: I102e94c8172f6ea660814dd8fcd44ed8239b2e67
* Zuul deprecated (and now removed) declaring shared queues at a pipeline
level [1]. This patch fixes the syntax to make the gate work for
adjutant.
* Updates Django version to allow upper-constraints version
* Fix Django 3.2 warnings
* Fix flake8 errors
* Remove support for Python 3.6, Python 3.7
[1] https://lists.openstack.org/pipermail/openstack-discuss/2022-May/028603.html
Change-Id: Ic369b59bb062df867d78b006f06e48cf9c98a3ee
Example config generation now is in CONFspirator so we can instead
use that.
We now also natively get toml support through the new version of the
library.
Change-Id: Ic3a46d075dd83e11ee3cccc1ad2bbdb81005c60d
CONFspirator was written to just specifically for Adjutant
and it allows us to do oslo.config style config management
and definition with nested groups and for yaml.
This is a major change that touches vast amounts of the
code simply because of how much the config touches.
Actions, Tasks, DelegateAPIs, and Notification Handlers
now can define config in their own class and this will
be added to the config.
All the other config is located in `adjutant.config`,
with everything now registed nicely on the config tree,
and grouped in much saner ways.
CONFspirator will also now allow Adjutant to be entirely
configured via environment variables.
We have removed `modify_dict_settings` because that is
now entirely handled by CONFspirator's test utils.
`NotificationEngine`s are now `NotificationHandler`s.
`test_settings.py` is gone! And we now have better ways
to define test settings and defaults.
Project line length bumped to 88, and bugbear added to enforce
that instead.
Story: 2004488
Change-Id: I1d97d72d06b3a3a5df90355d3a4b4fe414381424
Sync up requirement files with global-requirements,
and set tox default envs to be 'py3' over 'py35'
Change-Id: Ic78246a4a75b88027b4896664874d1efc587582c
4.19.0 introduced use of oslo.cache which made memcache
a requirement, this broke some things, version 4.20.0
makes that lazy loaded to stop unexpected import
requirements.
Change-Id: I7bdf02307be1ce559b92da1a43b8f02c122193ce
* Updated to reflect versions currently used
* Updated Django safely to newest LTS (1.11).
All tests pass, and existing code has been
maintained with deprecation notices in expectation
of this upgrade.
* Redid the docs url because of a new version
causing an odd 500 error and because the schema
method wasn't being used properly.
Change-Id: I991f825941a240eea7a5e408a540bc38afdd91be
* This is to fix a breaking change with the current builds
that fails when using versions greater than 2.0.0 of pbr.
* We will need to be addressed better in future once openstack
libraries can work with newer pbr.
Change-Id: I3e8e547af7005ca06fc5bbc6064718b664507d96
* This action can be run for new projects to
ensure their size matches a set of size templates.
* Changes can be applied separately per region and service.
Change-Id: I3ef0fe0ba1f9d7df6a6f68e30cadbc19bbc0306f
Rather than cap libraries at older versions, I'm updating the code
to work with the newest libraries and methods.
Now using KeystoneAuth and Keystone Middleware via a specific auth
plugin and setting domain info.
Also fixing a minor bug in "user_store.py" which cropped up due to
issues when updating libraries.
Change-Id: I3e9e2f4ff3b6a1be94857622f171425ce70de969
* cleaning up the error format in this function to match
our standard format.
* Catching an error that can occur if the json is improperly decoded.
* fixing Django to the LTS support version as 1.9.1 breaks our automatic
api documentation.
Change-Id: Ib3e452427989b376c55710ce33f73fabdc84260d
Mostly done, but does need proper tests.
* shift actions into their own sub folder structure for clarity
* create new sub folder for notications
* update other code to reflect those changes
* add first basic notification engine
* add RT notification engine
* minor django url and context changes to avoid future deprecation
* getting rid of secondary migration for column rename (as not in prod)
Change-Id: I46932b6d78b93e86580506c887548fd24c0750f5
Large commit with current existing code base.
The application mostly works, but for ease of
review I'm merging a lot of my commits and will
then do more consistent commits on top of this.
This code base is ready for review as a whole
and is unlikely to change drastically anymore.
Change-Id: Iecf75c44da28d3be14964a205cbe44dc3d9d5619