Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
### BREAKING CHANGES: * Dropped Python<3.8. * Dropped API v2 and v3. * Execution template, template option, periodic task models and API changed a lot. See documentation for more info. * Hosts and groups count removed from ``/stats/``. Execution and inventory plugins count added instead. * All API paths containing ``module`` or `playbook` now named ``ansible_module`` or ``ansible_playbook`` accordingly. * Old ``ci_template`` variable values are not compatible with new which require template option ids. Need to change manually. * Paths end with ``../set_owner/`` now handles ``PATCH`` method instead of ``POST``. Same for ``/project/{id}/sync/``, ``/history/{id}/cancel/``. * Import inventory actions now called ``import_inventory``. * ``plugins`` section renamed to ``execution.plugin`` in ``settings.ini``. * Database migrations are **potentially dangerous**, it's recommended to make backup before. * Inventory model now has ``plugin`` field which is required in API. * Remove ``import_inventory_from_file`` action. * Rework ``import_inventory`` action. * Remove ``master_project`` from ``Host``, ``Group`` and ``Inventory`` and remove ``InventoryItems`` abstract model itself. * Execution plugins now must provide ``compatible_inventory_plugins`` setting. If not provided this is understood that execution plugin is incompatible with any inventory. * Execution plugins now should be imported from ``polemarch.plugins.execution`` module instead of ``polemarch.plugins``. * Execution plugin's ``get_execution_data`` now returns command and env vars only. For ``raw_inventory`` there is ``get_raw_inventory`` method. ### Changelog: * Feature(backend): Send history output to multiple places. * Feature(backend): Create ``POLEMARCH_DB``, ``ANSIBLE_STRING`` and ``ANSIBLE_FILE`` plugins which are handle inventory data structure and processing. Plugins may work with state or db and may support import or not. * Feature(backend): Hide hosts db stuff for state handled plugins and state action for db handled plugins. * Feature(backend): Option ``compatible_inventory_plugins`` is dictionary of field names and tuple of plugin names. * Feature(backend): Make ``get_pre_commands`` hook for execution plugins. * Feature(backend): Allow to save multiple commands in history instance. * Feature(backend): Create ``DynamicPluginField`` to allow inventory plugin have ``to_representation``, ``to_internal`` etc. * Feature(frontend): Add inventory plugins counter to dashboard. * Feature(frontend): Support ``filters`` by ``InventoryAutoCompletionField`` field and filter supported plugins in execute actions. * Feature(frontend): Display execution args as fields in history page. * Fix(backend): Deleting template options when inventory removes doesn't work with postgres. * Fix(backend): Always save revision to history instead of branch. * Fix(backend): Make ``import_inventory`` action atomic. * Fix(backend): ``import_inventory`` creates state for inventory if it's state managed. * Fix(backend): Remove patch method from inventory state edit action because it resets data if no data sent. * Fix(docs): RTD build with new Python version. * Chore(backend): Test execution plugins. * Chore(backend): Bump vstutils version to 5.4.0. * Chore(frontend): Update frontend dependencies. * Chore(docs): Update execution plugins doc according to changes. * Chore(docs): Update information with latest changes of vstutils. * Refactor(backend): Rewrite all views using ``create_view``, ``@SimpleAction``, ``@Action``, ``@EmptyAction`` where possible. * Refactor(backend): Refactor plugin executions so ``CELERY_TASK_SERIALIZER='json'`` now can be used. * Refactor(backend): Create ``ExecutionTemplate`` (instead of `Template`), ``ExecutionTemplateOption`` (instead of ``TemplateOption``), ``TemplatePeriodicTask`` (instead of ``PeriodicTask``) models. * Refactor(backend): Add support for parsing new template format in ``.polemarch.yaml``, make old format deprecated. * Refactor(backend): Remove unnecessary frontend code, such as setting ``hideNotRequired = true``, as it can be done now on backend. * Refactor(backend): Removed ``set_inventory_field`` openapi hook. * Refactor(backend): Move inventory rendering logic to plugins. * Refactor(backend): Move inventory import logic to plugins. * Refactor(backend): Move history and execution plugins to ``polemarch.plugins`` package. * Refactoring(backend): Execute and template option create actions now validates all fields related to ``Inventory`` instead of just ``inventory`` field. * Docs: Update GUI workflow docs screenshots. * Docs: Add manual for creating inventory plugins. * Docs: Add GUI workflow docs for ``ANSIBLE_STRING`` and ``ANSIBLE_FILE`` inventories. * Service: Use ``django.core.cache.backends.redis.RedisCache`` instead of ``django_redis.cache.RedisCache``. See merge request polemarch/ce!303
- Loading branch information