Now that we are running the Victoria tests that include a
voting py38, we can now add the Python 3.8 metadata to the
package information to reflect that support.
Change-Id: Id140764a69f443d3f7e9f69ef71601f1a694fddb
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
* This patch moves code related to YAQL and Jinja into their
specific modules so that there isn't any module that works with
both. It makes it easier to understand how code related to one
of these technologies works.
* Custome built-in functions for YAQL and Jinja are now in a
separate module. It's easier now to see what's related with
the expression framework now and what's with integration part,
i.e. functions themselves.
* Renamed the base module of expressions similar to other packages.
* Other style changes.
Change-Id: I94f57a6534b9c10e202205dfae4d039296c26407
mistral-tempest-plugin is not part of mistral anymore
remove this from the packages section in setup.cfg
Change-Id: If2c706ee66bb1ef6fc602a0878da55d67b097ad1
* After this patch we can switch scheduler implementations in the
configuration. All functionality related to scheduling jobs is
now expressed vi the internal API classes Scheduler and
SchedulerJob. Patch also adds another entry point into setup.cfg
where we can register a new scheduler implementation.
* The new scheduler (which is now called DefaultScheduler) still
should be considered experimental and requires a lot of testing
and optimisations.
* Fixed and refactored "with-items" tests. Before the patch they
were breaking the "black box" testing principle and relied on
on some either purely implementation or volatile data (e.g.
checks of the internal 'capacity' property)
* Fixed all other relevant tests.
Change-Id: I340f886615d416a1db08e4516f825d200f76860d
openstack-dev was decomissioned this night in https://review.openstack.org/621258
Update openstack-dev to openstack-discuss
Change-Id: I803a5acabe8ccdf18721707f5637d759d9b3d5b6
Closes-Bug: #1808899
The oslo.policy library exposes entry points so that users can
generate sample policy files and templates. The entry points do
expect some things to be done by the service in order to work,
though.
This commit adds an entry point for oslo.policy so that it can
consume an enforcer that has been initialized with mistrals
policies. The library will use this to generate useful things
for users like templates and sample policy files.
Change-Id: Ib442fbb79b5c237d634586c3169cf8c7f595da1c
Closes-Bug: 1793346
* Added new JavaScript evaluator py_mini_racer. Advantages:
* is distributed as wheel package
* supports differences platforms
* live project
* BUILD_V8EVAL was removed because it was replaced by py_mini_racer in
Mistral Docker image
* Added stevedore integration to javascript evaluators
* Refreshed javascript tests. Add test for py_mini_racer evaluator
* Install py_mini_racer library in during mistral test
* Refreshed javascript action doc
Change-Id: Id9d558b9b8374a2c2639e10cb1868f4e67f96e86
Implements: blueprint mistral-add-py-mini-racer-javascript-evaluator
Signed-off-by: Vitalii Solodilov <mcdkr@yandex.ru>
Introduce execution events and notification server and plugins for
publishing these events for consumers. Event notification is defined per
workflow execution and can be configured to notify on all the events or
only for specific events.
Change-Id: I9820bdc4792a374dad9ad5310f84cd7aaddab8ca
Implements: blueprint mistral-execution-event-subscription
* https://review.openstack.org/524869 moves the intree mistral
tempest plugin to a new home openstack/mistral-tempest-plugin
let's use it.
* It also removed intree mistral tempest plugin as well as fix the
jobs to use the same.
Change-Id: I28ba8408452637aa093b343441f3715dc4754a3f
The previous patch didn't actually add the yaml_dump expression. It just
created the function. This actually loads it.
Change-Id: I29eff8bbbd78a831bca636fc081d6423b381f162
This allows for filtering or executions
Implements: blueprint mistral-workflow-executions-yaql-function
Change-Id: I8d41c662d8659375750b52f7510e9a35f8b42f93
This commit prepare for implementing policies in code[1].
Like oslo.config, with oslo.policy, we can define all of
default rules in code base and only change some rules
via policy file. Another thing that we should use yaml
format instead of json format.
[1] https://governance.openstack.org/tc/goals/queens/policy-in-code.html
Co-authored-By: Hieu LE <hieulq@vn.fujitsu.com>
Change-Id: I2051b6c25333c95aa9ea6786964d4ab710ea93e8
This is a new and simplified version of the json_pp function. It uses on
the standard jsonutils formatting and wont output the context if not
argument is provided.
Change-Id: I37f69d14e7cf4f57b910b355d7ccd31c9cd73d10
Sometimes you'll get a string back from some action (like swift
get_object) and it will be in either a yaml or json format. These
functions will allow you to parse those into a useful object.
Change-Id: I375219f4b019319e1b3d756dca512f7f90cd097f
As it is required in [1] warning-is-error should be
set for doc building. This change sets the flag and
corrects the warnings.
[1]: http://specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration.html
Change-Id: Ia93fd13645830cd8994ef283b72f31cb22cf3fe9
Depends-On: Ia750cb049c0f53a234ea70ce1f2bbbb7a2aa9454
Signed-off-by: csatari <gergely.csatari@nokia.com>
The previous patch to add support for apache breaks gunicorn. The gunicorn
setup loads the mistral.api.wsgi module and requires the application
variable be assigned. The support for apache make the assumption that the
mistral.api.wsgi be called as a python script. This patch moves the init
function required by apache to a different location.
Change-Id: Ib5af50a55d3f3bb9d0fa0d1ee6b8e7564f909d70
Closes-Bug: #1689943
The rpc_backend with kombu and oslo are being used by the executor
and event engine as well. This patch move the rpc_backend up one
level so it's not engine specific. Also Event engine has its own module
and the EventEngine class is defined in the engine module. This patch
moves the EventEngine to it's own base file in the event_engine module.
Implements: blueprint mistral-actions-run-by-engine
Change-Id: Ie814a26e05f5ca6bfba10f20a7d5921836aa7602
Make executor pluggable and allow option to run the executor
locally on the engine or remotely over RPC.
Change-Id: I7cfb13068aa1d1f88136eaa092e629c34b78adf2
Implements: blueprint mistral-actions-run-by-engine
Add support for enabling WSGI in Apache for the devstack plugin. This
will allow an additional CI gate.
Change-Id: I953dbdab71029b392f8846c50fa3d801c293cc5a
Mistral is a service, without a public Python API (other than the
actions api which is being moved out). Therefore including the Python
code in the documentation isn't useful. While it is present, it often
comes up in search results which will be confusing for most users.
Change-Id: Ib9d5e1a7baecf70d8e224cff470f968012317edd
This allows us to use the following code blocks in the Mistral documentation.
.. code-block:: mistral
When we do that the code will then be highlighted in a way specific to
Mistral, rather than the generic YAML highlighting or none.
Change-Id: Ie25725b9f803e247d23f58c4b602be938c75cfbd
The gating on python 3.4 is restricted to <= Mitaka. This is due
to the change from Ubuntu Trusty to Xenial, where only python3.5
is available. There is no need to continue to keep these settings.
Change-Id: Ic498801532227421c3247ef66eff11377df47795
This new function will allow user to get a list of tasks matching certain
filter. For example only task in state ERROR from the current execution.
It is very useful for debugging, but also very expensive, since it might
require multiple DB queries. In addition it is important to remember a lot
of data can return from this function, so it should be used carefully
Change-Id: I452175bfb60636ed8de9b2b1ceab615359765964
Implements: blueprint yaql-tasks-function
Implements: blueprint yaql-errors-function
Allows to use Jinja instead of or along with YAQL for expression
evaluation.
* Improved error reporting on API endpoints. Previously, Mistral API
tend to mute important logs related to errors during YAML parsing
or expression evaluation. The messages were shown in the http
response, but would not appear in logs.
* Renamed yaql_utils to evaluation_utils and added few more tests to
ensure evaluation functions can be safely reused between Jinja and
YAQL evaluators.
* Updated action_v2 example to reflect similarities between YAQL and
Jinja syntax.
Change-Id: Ie3cf8b4a6c068948d6dc051b12a02474689cf8a8
Implements: blueprint mistral-jinga-templates
Abstract authentication function so plugins for other authentication
backends can be implemented in cases where keystone is not used. Currently,
mistral is hard coded to support keystone and keycloak. The domain/project
related trust that is specific to keystone is not addressed.
Change-Id: I21994ab20af519b2ba85efd7cbe043547988e5b3
Implements: blueprint mistral-abstract-auth
There is a small issue during changing branch from current to Mitaka, where
there was module called rpc.py, and currently there is a package rpc. Problem
is, if Mistral from master was already at least run once, and changed back to
Mitaka, there is a chance, that directory rpc still exists, and contains pyc
files. Trying to use old rpc module will fail with unable to find
get_transport method due remains of bytecode from master branch.
Simple solution for this situation is to rename rpc module to rpc_backend.
Change-Id: Ib5d05930a9715caf2bb5ce1dba4e520a503bc0cd
Now that there is a passing gate job, we can claim support for
Python 3.5 in the classifier. This patch also adds the convenience
py35 venv.
Change-Id: I4bc6f28411b4eee1df62a845e70d24c3cfbf500e