* This patch removes the approach with DB polling needed to
determine if a "join" task is ready to run. Instead of running
a periodic scheduled job, each task completion now runs the
algorithm that finds all potentially affected join tasks
and schedules just one job (instead of a periodic job) to check
their readiness.
This solves a problem of system cascaded overloading in case of
having many very large joins (when a workflow has many joins with
many dependencies each). Previously, in such case Mistral created
too many periodic jobs that just didn't let the workflow progress
well, i.e. most CPU was used by scheduler to run those periodic
jobs that very rarely switched "join" tasks to the RUNNING state.
Change-Id: I5ebc44c7a3f95c868d653689dc5cea689c788cd0
Closes-Bug: #1799356
Fix the issue where `next` link in the response of the REST API, when
used with pagination, gets corrupted and makes it unusable. After this
fix, next link should be readily usable.
Change-Id: Idf45a59e0b07d8306cc82391679fe30a9cd2f0c1
Closes-Bug: #1793344
* Workflow output sometimes is not calculated correctly due to
the race condition between different transactions: the one that
checks workflow completion (i.e. calls "check_and_complete") and
the one that processes action execution completion (i.e. calls
"on_action_complete"). Calculating output sometimes was based on
stale data cached by the SQLAlchemy session. To fix this, we just
need to expire all objects in the session so that they are
refreshed automatically if we read their state in order to make
required calculations. See the bug description for more details
on how the problem was observed.
* Added another test for direct workflow that formally checks
calculation of workflow output. It doesn't pretend to test the
aforementioned issue (it can be reproduced only with a big number
of attempts, and/or under load). It's for the sake of the test
module completeness.
Change-Id: I4a7e7fd9a4bbb6e93df169b4b40bc2d83ccfce89
Closes-Bug: #1792090
Bug 1785654 has been fixed in https://review.openstack.org/#/c/599606
but there was no release note. This change adds it.
Change-Id: I7bea9553c41336ba08d6fec551055290530769a9
* This fix drastically improves performance since it eliminates
an unnecessary update of the workflow execution object when
processing "on_action_complete" operation. W/o this fix
all such transactions would have to compete for the workflow
executions table that causes lots of DB deadlocks (on MySQL)
and transaction retries. In some cases the number of retries
even exceeds the limit (currently hardcoded 50) and such tasks
can be fixed only with the integrity checker over time.
See the code comment in the "dispatcher.py" module that explains
why this specific change eliminates the update of the workflow
execution object.
* Style changes in api.py and aciton_execution_checker.py
Closes-Bug: #1790079
Change-Id: I08cb561e252d31e35fcfb61984d87a7bfc387a4d
We will now only accept the string values "False" or "True". Previously
any given value was interpreted as a string and thus True.
Closes-Bug: #1666565
Change-Id: Ibd105c881dbe16cd4516bfb775c8f5f43c961b45
Adds support for cc and bcc addresses to send mails as copy to
administrators and also html formatting. If the html body is specified
the mail will be sent as multipart.
Closes-Bug: #1783349
Change-Id: I2b90354c33052c4b7ae3a98a08e7df1055524a25
This patch brings namespace support to workbooks.
Namespace of the workbook is inherited by workflows.
Implements: blueprint mistral-namespace-for-actions-workbooks
Change-Id: I2c66b3961915f0f35a9c468eb6dd0c0c70995234
Using this API is needed to correctly initialize the configuration.
[keystone_authtoken] group is used for keystonemiddleware to validating
token.
The new [keystone] group is used for keystoneauth to initialization
the keystone session.
Co-Authored-By: wangxiyuan<wangxiyuan@huawei.com>
Change-Id: Ie3ab512b0ab42c0f97b3099e0787f4edee08ddce
Partial-Bug: #1775140
This change intends to add the following policies:
- actions:publicize
- workflows:publicize
A refactor of the policy tests is included to increase the coverage.
Change-Id: I8bd637f7de63f02c63f3c304cb6f5198fc0c5f42
Closes-Bug: 1779293
Add missing Tacker actions to Mistral that includes vnf forwarding
graph (vnffg), vnffg descriptor, network service (ns) and ns
descriptor actions
Change-Id: I0b0f214ad3f3990fa0af98923d34efebf6e2f8f3
If an executor dies while running an action execution, then the
execution will remain in RUNNING state (because the dead executor
can't signal the error).
Implements blueprint: action-execution-reporting
Change-Id: I51b4db6aa321d0e53bbb85a74f8ebaea0376d22e
Add ZunAction for zun. Zun is an OpenStack Container service. It aims to
provide an API service for running application containers without the
need to manage servers or clusters.
Change-Id: Ibbe4777528b5af6fdb3a6c2ed3345f8f9c804bef
Signed-off-by: pengdake <19921207pq@gmail.com>
A force parameter was added in case deleting a running execution is
needed but that will spew all kinds of errors afterwards
The default is force = False
Change-Id: I19d822800a1ee056682daeaa7ddf0f400392525d
Closes-bug: 1598135
Depends-On: Id935265fcbe0a3072ba2d693edf54b892173fbdf
* 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>
It should be "%s," not just "%,". The error observed was something
like...
ValueError: unsupported format character ',' (0x2c) at index 91
Closes-Bug: #1764696
Change-Id: I601c8640cec857746c2c17f94116da890f4d65e0
Now to perform some action mistral gets its definition from
the database first. It's not really optimal, because if there are
a lot of similar action calls, mistral will reread the same data
from db. It increases the whole execution time and the load on the
database.
To improve the performance it's suggested to cache read definitions
and take them from the cache instead of the database in the subsequent
times.
Cache ttl can be configured with ``action_definition_cache_time``
option from [engine] group. The default value is 60 seconds.
Change-Id: I330b7cde982821d4f0a06cdd2954499ac0b7be37
ceilometer api and client have been deprecated for over
two releases and now removed completely. Lets drop these
actions and update the requirements.
Change-Id: Ica2b835a885b9b4705996f91080afc12587bd314