Currently Mistal doesn`t support distribution tracing, which means
that there`s no way to propagate traceId/spanId from an execution to
related actions/notifications.
It leads us to an issue, because according to distribution tracing
principles "traceId" should remain the same during the discovery
process, which includes Mistral worflow execution.
Proposed solution is to keep some headers from execution request
and propagate them later to actions/notifications.
Regexp can be stored as env variable to define headers which
will be propagated.
Implements blueprint add-headers-propagation
Change-Id: Id8cc900a7d94286e79f1ece4dc4177383263f55c
* with_items_index describes the current index of action,
if there is no with-items tasks it should be 0.
* task_rerun_no describes the current rerun index,
if it is first run it should be 0.
* task_rerun_id specifies id task has within
each rerun. This id should be refreshed after each rerun.
All these fields will be helpful for writing custom actions
Change-Id: I2b76f5cedcac942e3b6a6e9488ae89024c4f1b34
Signed-off-by: Oleg Ovcharuk <vgvoleg@gmail.com>
Add file to the reno documentation build to show release notes for
stable/2024.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2024.1.
Sem-Ver: feature
Change-Id: I81e4c62b78668417960feab4d0d7596b0d2dafdc
As per the current release tested runtime, we test
python version from 3.8 to 3.11 so updating the
same in python classifier in setup.cfg
Change-Id: Ic44a4103ce1593ba2e318407dd107e32073e60b9
Add file to the reno documentation build to show release notes for
stable/2023.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.1.
Sem-Ver: feature
Change-Id: Ic67f8cc66632f9186309006bddefe8434f6fe491
Add file to the reno documentation build to show release notes for
stable/2023.2.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.2.
Sem-Ver: feature
Change-Id: I8c796af0be2df1289535338270feacf4ca283a4b
tox.ini started failing with tox4 which had some
incompatible changes. One of them is to allow
external command to run by adding them into allowlist_externals
and make passenv in new lines.
Fixing tox.ini for tox4 changes.
Change-Id: Id8d5c7bed75b6dc813203d2e814642855d645b6c
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for antelope. Also,
updating the template name to generic one.
See also the PTI in governance [1].
[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html
Change-Id: I0451ef945da71d72e36f783476207d042cc7359a
Add file to the reno documentation build to show release notes for
stable/zed.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/zed.
Sem-Ver: feature
Change-Id: Ia1f9cab531180d369af7a52cd439d1854f6c53f0
Unfortunately the auto generated patch to replace the unit test job
template was not merged timely, and the test runtime used is outdated.
This simulates the auto generated patch to use the correct test
runtime for the stable/zed release.
This also marks Python 3.9 as supported runtime, because it has been
part of the global tested runtime.
Change-Id: I42608e9c5227a9815ef8dff6f87fd03fe53deba0
Add file to the reno documentation build to show release notes for
stable/yoga.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/yoga.
Sem-Ver: feature
Change-Id: I15cd6ea3ca8e8d486b19a4d16c7f754a7a88a2b6
Setuptools v54.1.0 introduces a warning that the use of dash-separated
options in 'setup.cfg' will not be supported in a future version [1].
Get ahead of the issue by replacing the dashes with underscores. Without
this, we see 'UserWarning' messages like the following on new enough
versions of setuptools:
UserWarning: Usage of dash-separated 'description-file' will not be
supported in future versions. Please use the underscore name
'description_file' instead
[1] https://github.com/pypa/setuptools/commit/a2e9ae4cb
Change-Id: Icf89656e4c9eeb2fed19dba3b6be78b4716c4fe3
We facing errors related to the new pip resolver, this
topic was discussed on the ML and QA team proposed to
to test lower-constraints [1].
I propose to drop this test because the complexity and recurring pain needed
to maintain that now exceeds the benefits provided by this mechanismes.
[1] http://lists.openstack.org/pipermail/openstack-discuss/2020-December/019390.html
Change-Id: Iccaf7cfb8051ec1b01fde0786489855013297703
Add file to the reno documentation build to show release notes for
stable/wallaby.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/wallaby.
Sem-Ver: feature
Change-Id: Iefd29ddbbdfddc94ac4412e691422d30a7c3a4e8
Add file to the reno documentation build to show release notes for
stable/victoria.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/victoria.
Change-Id: I6c9797354d70bac6328cd728be2fd0f6896f3a9c
Sem-Ver: feature
* This patch adds the base infrastructure for the new concept
that we call Action Providers. It will allow to refactor
Mistral in a way that all action management will be encapsulated
with action providers. For example, Mistral Engine needs to
schedule actions while processing a workflow. Now it has to
access DB itself to find an action definition (meta info about
what this action is, like python class, input params etc.),
then prepare input parameters, validate parameters and send a
message to an executor to run it. In many other places, Mistral
also directly access DB to fetch an action definition. It's
not flexible because we assume that definitions of Mistral
actions must always be stored in DB. The concept of an Action
Provider allows moving away from that limitation. A particular
implementation of the ActionProvider interface can store action
definitions in any suitable way, even fetching them using
various transport protocols like AMQP, HTTP, TCP, or anything
else. An action provider may also generate action definitions
dynamically, like creating wrappers around a set of operating
system commands. But for the rest of the system it won't matter
what happens inside action providers. All details will be
hidden behind a unified interface.
* Added ActionDescriptor interface and its convenience base
abstract implementation. ActionDescriptor is an entity
representing an action before it's instantiated. It carries
the most important meta information about an action like name,
description, input parameters etc. It is also responsible for
validating action input parameters and instantiating a real
action.
* Added PythonActionDescriptor which represents a regular action
written as a Python class.
* Added CompositeActionProvider that delegates calls find() and
find_all() to a collection of other action providers.
* Minor style changes.
Partially implements: bp/mistral-action-providers
Change-Id: Ic9108c9293731b3576081c75f2786e1156ba0ccd
The mock third party library was needed for mock support in py2
runtimes. Since we now only support py36 and later, we don't need it
in lower-constraints.
These changes will help us to drop `mock` from openstack/requirements
Change-Id: I7f0cc935291e5c0c4f905ad2aa0fb03e6192abb0
* These constants have nothing to do with this project. They should
be in the 'mistral' repo.
* Minor style changes.
Change-Id: Ia3f50388638d68bbcc5e2e9e424ddb9dd65b26eb
Switch to openstackdocstheme 2.2.1 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* Allow parallel building of documents
* Fix some rendering problems
Update Sphinx version as well.
Disable openstackdocs_auto_name to use 'project' variable as name.
Change pygments_style to 'native' since old theme version always used
'native' and the theme now respects the setting and using 'sphinx' can
lead to some strange rendering.
Remove docs requirements from lower-constraints, they are not needed
during install or test but only for docs building.
openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.
See also
http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014971.html
Change-Id: I8e00e8863e8c3d86bebeec87e80fc26ad1f66323
flake8 new release 3.8.0 added new checks and gate pep8
job start failing. hacking 3.0.1 fix the pinning of flake8 to
avoid bringing in a new version with new checks.
Though it is fixed in latest hacking but 2.0 and 3.0 has cap for
flake8 as <4.0.0 which mean flake8 new version 3.9.0 can also
break the pep8 job if new check are added.
To avoid similar gate break in future, we need to bump the hacking min
version.
- http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014828.html
Change-Id: Ief6bc5af5ee7f12053d15a8fb72c0f3e14b671e1
Python 3.8 is now our highest level supported python runtime.
This updates the default tox target environments to swap out
py37 for py38 to make sure local development testing is
covering this version.
This does not impact zuul jobs in any way, nor prevent local
tests against py37. It just changes the default if none is
explicitly provided.
Change-Id: I2106373bc267a780eb600eead17dc12aaddf0dd1
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
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: I0c0205e7c1673352435aab4d15fe6afcbb80e043
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Add file to the reno documentation build to show release notes for
stable/ussuri.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/ussuri.
Change-Id: I238df0d6544ef14f683f943ea6eb5f6a0bcfb8e4
Sem-Ver: feature
* This patch adds a utility that helps serialize data into a JSON
string that might contain some non-standard data types like
generators iterators and frozen dicts coming from YAQL. The
utility uses oslo.serialization project that already takes care
of iterators and any kinds of custom dicts. And in addition, it
handles generators (assuming a generator represents an iterable
similar to an iterator).
* Unit tests.
* Added YAQL into requirements and bumped the version of
oslo.serialization to make sure to have the "fallback" parameter
in "jsonutils.to_primitive"
Change-Id: I2fe891525bc86beb92aecf9ac2d8a490837c47d3