* Update mistral from branch 'master'
to 4446f9ced80caf6bf81fcd2b0ce0fd9f336b7588
- Merge "Python 3.12: cast random delays as int"
- Python 3.12: cast random delays as int
This patch fixes 128 unit test failures under Python 3.12 when
building the Debian package under Unstable. Without this patch,
I'm getting:
Traceback (most recent call last):
File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
self.run()
File "/usr/lib/python3.12/threading.py", line 1010, in run
self._target(*self._args, **self._kwargs)
File "/<<PKGBUILDDIR>>/mistral/services/legacy_scheduler.py", line 152, in _loop
random.Random().randint(0, self._random_delay * 1000) * 0.001
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/random.py", line 336, in randint
return self.randrange(a, b+1)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/random.py", line 312, in randrange
istop = _index(stop)
^^^^^^^^^^^^
TypeError: 'float' object cannot be interpreted as an integer
Change-Id: Ia85ea13923216d090ef1e4deee7840e70f9185b4
* Update mistral from branch 'master'
to 726537a7f6be84780730c068053224dff53f9223
- Update master for stable/2024.1
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: I38b1675d714597ef3f45e10ef8059f64647f954d
* Update mistral from branch 'master'
to 14f40d9a5134b2837e7f1cf82e0cfafcd0ae604b
- Merge "Add back wsgi script generated by setuptools"
- Add back wsgi script generated by setuptools
This reverts the removal of wsgi script generated by setuptools.
Directly removing the script is backword-incompatible change for any
deployment tools. The approach is still being discussed in [1]. Until
we determine the consistent solution and appropriate transition plan,
let's at least keep the existing script.
[1] https://review.opendev.org/c/openstack/governance/+/902807
Change-Id: If7e13b39f348938232177c6e1eccf0056227f5b0
* Update mistral from branch 'master'
to 6e190e65eaa2364629fd64a7e5a7f2be5e0701b4
- Merge "Context versioning feature"
- Context versioning feature
With complex parallel joins mistral had no mechanism to choose which
publish (left or right in terms of merge) should it use. It is a
common case when one branch updates existing value, but after merge
we see the old version.
This patch introduce context versioning feature, where every existing
key of mistral context has its version, and this version is used in
the context merge stage.
Change-Id: I604a9a8391150ac4801115b9892f781c33ecfdcb
Signed-off-by: Oleg Ovcharuk <vgvoleg@gmail.com>
* Update mistral from branch 'master'
to 39cd97cc041d7d3af7fba28bda285bb33cdc1b25
- Merge "Bump hacking"
- Bump hacking
hacking 3.0.x is too old.
Also remove the note about pip's behavior which was already fixed in
recent versions.
Change-Id: I65d350943649c3346ed5741631c01724ddd256ef
* Update mistral from branch 'master'
to 4e1af08e50f858161847dcec8036f60125b99aa2
- reno: Update master for unmaintained/yoga
Update the yoga release notes configuration to build from
unmaintained/yoga.
Change-Id: I9f47188571fd3abb7fdcc2e734232c4c4fd724a6
* Update mistral from branch 'master'
to 08b5a9b7c617e7605f9048769af60ed94bebd825
- Merge "remove reference to old unittest2"
- remove reference to old unittest2
Change-Id: I33dbd537b351b4c93b6fa2442a7a21f898f362cc
* Update mistral from branch 'master'
to 0b7c4cd0f6c52e1842060c2c65cd03c88d0e8510
- Move zake to test requirements
The zake library is not actually used by service logic, but it's only
used in testing.
Change-Id: I318a98f4f3034238de808508c000169519c6fa5c
* Update mistral from branch 'master'
to b68c105696d9c5fe331ba3083b05bbf3c3db31ad
- Revert "bump eventlet to latest version that support python 3.12"
This reverts commit e0628604428d84bdeaaf76049cfd65f6e976a32b.
Reason for revert: This is too aggressive and needs wider community consultation. The constraints change is being reverted.
Please revert ASAP.
Change-Id: I162f4a6ac10145a1f7a11e64d69f5f7fb3a111b1
* Update mistral from branch 'master'
to e0628604428d84bdeaaf76049cfd65f6e976a32b
- bump eventlet to latest version that support python 3.12
Change-Id: Ie5bed1492de2200d7df35e0ae320a081d897cdae
* Update mistral from branch 'master'
to fd7ea49fe803bb764d3aef8715ce2c66a8cc0f63
- Update python classifier in setup.cfg
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: I1af648ca92c9becb64e8408558a0c3222905f318
* Update mistral from branch 'master'
to 494d210f5836b6611aa5e60f3d28fd79dea83dd8
- Merge "Deprecate unused [coordination] heartbeat_interval"
- Deprecate unused [coordination] heartbeat_interval
This option has never been used by actual logic. This deprecates
the ineffective option so that we can remove it in a future release.
Change-Id: I350e45fc9aef28db8790614ade7a5ad3071e574b
* Update mistral from branch 'master'
to 814b7dd4e0aba66af7d2b4553860488bb263f2c5
- Amend doc to help running tempest mistral tests
As a contributor, when we want to manually run devstack mistral
tempest tests, I was struggling remember how to do it.
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: Ie0791dabf26e5864ec7de1f04331bdef0008a8cc
* Update mistral from branch 'master'
to 973e6ac996222c80a965cc8fdaa04e8925fbf9bc
- Merge "Add optional healthcheck middleware"
- Add optional healthcheck middleware
This change introduces a new option, [healthcheck] enabled, which
enables the healthcheck middleware in mistral-api pipeline.
This middleware allows status check at /healthcheck path, which is
useful for load balancers or any monitoring services to validate health
of its backend services.
This change is created based on the same change proposed to ironic[1].
[1] 6f439414bdcef9fc02f844f475ec798d48d42558
Co-Authored-By: Jim Rollenhagen <jim@jimrollenhagen.com>
Change-Id: I9bf3de8a5ae6a8c9346285147732b773a3667f7e
* Update mistral from branch 'master'
to 6a417dce532bc02914d77d3af57bdc6f69c3ef41
- Merge "Add checksum field to wf definition"
- Add checksum field to wf definition
We have no way to determine whether the workflow definition has
changed or not.
This complicates the work with Mistral for external services.
A 'checksum' field has been added to workflow_definitions_v2
to solve this issue.
Implements: blueprint mistral-add-checksum-field-to-wf-definition
Change-Id: I99d095c6c74c62f134aedfa3a63308a0712db38d
* Update mistral from branch 'master'
to e38cfcbbdfefc8ecb7470bca80fd51bf982a5e58
- Merge "Partial Workflow Failure Handling"
- Partial Workflow Failure Handling
This feature introduces an enhanced error-handling
mechanism for workflows, allowing them to gracefully
handle issues within individual tasks without
causing a complete workflow failure. Previously,
when using subworkflow and passing an incomplete set
of parameters, the entire workflow would terminate.
With this feature, the workflow continues execution,
isolating errors at the task level. Consequently,
partial issues in one task no longer impact other
branches of workflow execution.
Implements blueprint partial-workflow-failure-handling
Change-Id: Id6a910c85c1d6953408682a2a724c4826333422f
* Update mistral from branch 'master'
to cfbea4f743c04d8271584614fcdccf121e44924b
- Merge "Avoid RuntimeError caused by iteration over sys.modules"
- Avoid RuntimeError caused by iteration over sys.modules
As is described in the doc[1], we should not iterate over sys.modules
directly because sys.modules can be changed during iterations.
[1] https://docs.python.org/3/library/sys.html#sys.modules
Change-Id: Ib6ab36f93b408fdae59c1c08146f2ca069ed4f96
* Update mistral from branch 'master'
to ecdeadeb7a1aa87cba2cdb0c1a2bb1ffc4aabf25
- Change the wsgi path for devstack
Since pip 23.1, the wsgi_script from PBR are not installed anymore
(see [1])
So, instead, rely on the wsgi.py app which is directly bundled in
mistral source code.
[1] https://discuss.python.org/t/adding-support-for-wsgi-scripts-entrypoint/30905/11
Change-Id: Ideed8421427e865f8010b7bfca58c3f010ac6bd6
Signed-off-by: Arnaud M <arnaud.morin@gmail.com>
* Update mistral from branch 'master'
to e343ccb078d8ba261ac70afca93f4358589730d3
- Add api_version for etcd3 coordination URL
Since upgrade of etcd3 (see [1]), the v3aplha endpoint has been
deprecated but tooz commit (see [2]) is not yet released.
Until then, we should force the api_version=v3 to make sure the
coordination between engine is working correctly.
Closes-Bug: #2040048
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: Ieade7a30a192910fc3870b173017efd481f0b18f
* Update mistral from branch 'master'
to ae0289e029757287fff787ba302fc8cb465bbc95
- Temporarily disable failing jobs and fix bookworm bindep
Until we fix the mistral-devstack jobs that rely on wsgi, temporarily
disable the failing jobs.
Also, debian prefers Mariadb instead of mysql.
Replace mysql-server with mariadb-server.
Change-Id: I872f73578eb7622cd3d18db29544b5420f55121d
Signed-off-by: Arnaud Morin <arnaud.morin@gmail.com>
* Update mistral from branch 'master'
to 722b4af6b81f607bc273dcc156d448802697b339
- Update master for stable/2023.2
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: Ia97fdc514caa84716f7893ab2416a2f656c1e65c
* Update mistral from branch 'master'
to 7baff017d0cf01d19c44055ad201ca59131b9f94
- Merge "Fix test not waiting for action to be created"
- Fix test not waiting for action to be created
Change-Id: I415bb3fbefa91da0e7aaca9fe5d3714989ffda69
Signed-off-by: Oleg Ovcharuk <vgvoleg@gmail.com>
* Update mistral from branch 'master'
to d6b7f7305d249a5beaacddc90bbc1003680fdb87
- Merge "Starting tasks via RPC"
- Starting tasks via RPC
After this patch mistral will run tasks using RPC which will distribute tasks amongst available engine threads. this will enhance performance in case of executing huge executions containing multiple tasks.
Implements: blueprint distribute-mistral-operations
Change-Id: I0b7202589eee68ba5560bf2aa60fbbd6118f3719
* Update mistral from branch 'master'
to 431ece55818bf93e90fbe5ec5bf7ffedf67fbb89
- Merge "Info endpoint"
- Info endpoint
For many various support reasons, Mistral should have a special
endpoint to store all necessary info data. This endpoint will read
json from created by admin info file. To configure this you should
use mistral configuration:
[api]
enable_info_endpoint = True
info_json_file_path = info.json
Change-Id: I6f344dc15a4ca5c69a6b21841544a31f95eb393f
Implements: blueprint mistral-info-endpoint
Signed-off-by: Oleg Ovcharuk <vgvoleg@gmail.com>
* Update mistral from branch 'master'
to 114ef3ffb24a263f196bcbaef33027e0a74bd070
- Merge "Update master for stable/2023.1"
- Update master for stable/2023.1
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: I5525a7f7858696927b9466589fd66d47f418a5b7
* Update mistral from branch 'master'
to 1f9f1f3ffb9db5fb6d32d3f05b21a21d51257e0e
- [coordination] backend_url should be secret
The backend_url option can sometimes contain secrets.
For example when redis coordination backend is used and authentication
is enabled in redis, the plain redis password is put as an URL element.
[coordination]
backend_url=redis://:password@127.0.0.1:6379
Change-Id: Ie073d9ac8fd8580f7442370291814d99aad92066
* Update mistral from branch 'master'
to 4289317a914cd2542a23ccc2f3cdcb0d7fd00676
- Merge "Task skipping feature"
- Task skipping feature
This patch adds an ability to rerun failed workflow by
skipping failed tasks. Workflow behavior in skip case could
be configured by new fields in task definition:
* on-skip
* publish-on-skip
Change-Id: Ib802a1b54e69c29b4d0361f048c2b9c076a4c176
Implements: blueprint mistral-task-skipping-feature
Signed-off-by: Oleg Ovcharuk <vgvoleg@gmail.com>
* Update mistral from branch 'master'
to 5e581ee0408ca5aced0ce1a75b287c0991e2cd7d
- Merge "Adding root_execution_id parameter to mistral loggers"
- Adding root_execution_id parameter to mistral loggers
After this patch, user can update logging format to include root_execution_id in logs, which will be helpful to find and debug logs related to specific workflow execution.
- Logs about creation and status changes of Mistral entities(execution,
task, action execution, etc) are changed to INFO log level.
- User can update logging_context_format_string to include root_execution_id in logs.
Implements: Implements: blueprint improve-mistral-loggers
Change-Id: I54fe058e5451abba6ea7f69d03d498d78a90993e
* Update mistral from branch 'master'
to 7c35734300d5d700928ebdf2315e392004121f39
- Merge mistral tasks data to execution context
after this patch user can choose option whether to replace or merge task data to the execution context.
ex: merge_strategy: replace/merge
Implements: blueprint merge-mistral-tasks-data
Change-Id: I3c96bab9953c4995f2b718ac48dff0f153872026
* Update mistral from branch 'master'
to bfcc417044bd2d1337743e39298f0a8e01d464f5
- Merge "Add an ability to hide sensitive data from http action logs"
- Add an ability to hide sensitive data from http action logs
Opportunity to hide sensitive data from http action logs, such as:
* Request headers
* Request body
* Response body
Change-Id: I6d1b1844898343b8fa30f704761096e3d2936c4d
Implements: blueprint mistral-hide-sensitive-data-from-http-actions-logs
Signed-off-by: Oleg Ovcharuk <vgvoleg@gmail.com>
* Update mistral from branch 'master'
to 920d6b0336aebf86d321b5aa6e3d26ace6f3ae41
- Use new get_rpc_client API from oslo.messaging
Use the new API that is consistent with
the existing API instead of instantiating the client
class directly.
This was introduced in release 14.1.0 here [1] and
added into oslo.messaging here [2]
[1] https://review.opendev.org/c/openstack/requirements/+/869340
[2] https://review.opendev.org/c/openstack/oslo.messaging/+/862419
Change-Id: I13c3cfa3e2207144b23230766f9cad97668d57e8
* Update mistral from branch 'master'
to 70af40becc8a90b83adcb93342c607ffe5add428
- Remove tenant when building mistral context
When building mistral context (using oslo.context) from environment, the
tenant extra key was given, which is not accepted by oslo.context.
This issue was detected when debugging a mistral-client test:
mistralclient.tests.functional.cli.v2.test_cli_v2.NegativeCLITests.test_target_action_execution
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: I72ce8851ea5b379a8af75b32fb600691638836af
* Update mistral from branch 'master'
to e75b6b356f4be44a24bc24ccfa4a3f8eca818b9a
- Refactor mistral documentation
* renaming developer doc to contributor doc
* flattening contributor doc to ease reading the whole content in a shot
* rewrite devstack documentation
* adding Axel and myself as maintainers
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: If25d342c7cc2568b2d86c88bf6a049522559bf50
* Update mistral from branch 'master'
to b6a47992e7299dbb4ed684ecaf05d35d669c38b8
- Fix sorting error when type is different
There was a logical flaw where we compared types
that were different causing a TypeError.
There was also a flaw in that we default to the
name of the action when sorting if the key does
not exist, to compare the data both value should
come from the same key as well otherwise they
should be treated as not equal since the data
cannot be.
Change-Id: Idcb276912582bb097dc5c1c9692facde63d5886b
* Update mistral from branch 'master'
to c77a51a05a9b0865179f4f597d9a72a8faa6c17c
- Fix doc builds
A new release of dnspython has been release, which is breaking the docs
tests. See [1]
dnspython is fixed to <2.3.0 in upper-constraints, so we should rely on
requirements.txt from mistral to trigger the correct build.
[1] https://github.com/eventlet/eventlet/issues/781
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: I5f86f8264792c8e651c0bb2d2f63151657fea1be
* Update mistral from branch 'master'
to f35d366794c9d42bba5207c57d8fafb5cb279e22
- Merge "Update get execution's tasks functionality"
- Update get execution's tasks functionality
After this patch, it will validate execution-id exists in the DB while fetching tasks for the execution-id So, GET /v2/executions/execution_id/tasks API will return 404 for absent execution id.
Closes-Bug: #1998210
Change-Id: I6ac05f4b87c470a68cd67f19d1bd95a4d6cebe59
* Update mistral from branch 'master'
to b30ff6f95525dc1dbdba1642ced07e008f58df14
- Update tox.ini to work with tox 4
This change will allow this repo to pass zuul now
that this has merged:
https://review.opendev.org/c/zuul/zuul-jobs/+/866943
Tox 4 deprecated whitelist_externals.
Replace whitelist_externals with allowlist_externals
Tox 4 Fail on pass_env/passenv entries containing whitespace.
Updated passenv with comma separated values
Closes-Bug: #2000727
Change-Id: I48859d5a1c8242a6a7d049c96f8dcabbf4c7c044
* Update mistral from branch 'master'
to d035624153011673e8d542a7c88a8f717f46475a
- Merge "Switch to 2023.1 Python3 unit tests and generic template name"
- Switch to 2023.1 Python3 unit tests and generic template name
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: If15092dc467225715122a3b8917aed431da4a559
* Update mistral from branch 'master'
to 586bdcd50f9e5eef1df0f10ea8ffeceec0904279
- Merge "Update master for stable/zed"
- Update master for stable/zed
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: I8657710089912c721c7c02a81adaeb7e465935bf
* Update mistral from branch 'master'
to c820d6f36549f4ece14f0085bc7249ea3bb74a4b
- Update package name in devstack for ubuntu/jammy
For python3, `python-nose` has been changed to `python3-nose` in Ubuntu
Jammy Jellyfish. This change is to update the package name to avoid an
error on exit.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
Change-Id: I4c21b6527f37918397f7fb425075eb6c07534237
* Update mistral from branch 'master'
to 55745a750c1912b9e37f27bfcc72f7bf1ab80159
- Merge "Remove extra description on cron trigger executions"
- Remove extra description on cron trigger executions
When creating a periodic workflow execution from a cron trigger, the
description field was filled with info like cron trigger ID, name, etc.
The cron trigger name can be set by user and is then injected in the
description field.
Beside the fact that this is not useful, it may also be dangerous.
The purpose of this patch is to remove the name from the description so
that the lenght of description field is not user dependant anymore.
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: I326400a4a04fba71ccc90545909212a41d6b3b13
* Update mistral from branch 'master'
to 95e30947d7daf2756efd97cdabacdd6d1508ff6b
- Merge "Do not guess content from extension on API"
- Do not guess content from extension on API
When getting a cron trigger (but also any other object) by name, pecan
core will try to guess the content_type from the extension.
While for most name, the guess will fail, it may succeed, e.g. when a
name is ending with '.pl'.
Pecan guess it as a perl file and then reject the call (with a 404
error).
The fix is to tell pecan to not guess any content_type from extension by
setting guess_content_type_from_ext to False on initialisation.
Closes-Bug: 1987418
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: I1bc20b953787cae9b42d12bb5eb3c7a94ed4bbdd
* Update mistral from branch 'master'
to 3554581cbedc41b1d77462fe094c9aec97bd55ad
- Merge "Fix race condition when comparing dates"
- Fix race condition when comparing dates
A test is randomly failing due to a comparison between two dates:
created_at and started_at.
Most of the time these two dates are identical, but we can have one
second difference when the creation is done at the very end of a second
and the start is done at the beginning of the next one.
The fix is to make sure that we have less or equal than 1 sec between
started_at and created_at.
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: I081bb659047f7639bed52dfac8b3858b10859404
* Update mistral from branch 'master'
to 540664346f5101bb33ddb69deee5c852842d81bf
- Merge "Fix race condition when cancelling workflows"
- Fix race condition when cancelling workflows
Some tests which are cancelling workflows are also checking that only one task
was executed.
But the second task is delayed (wait-before: 3) so we can endup in a
situation when the second task appeared in the task_execs.
Signed-off-by: Arnaud Morin <arnaud.morin@ovhcloud.com>
Change-Id: I425b5ca0c1bedc22db1aa464f5f14aae69f9370e
* Update mistral from branch 'master'
to 5782b3be2ca33596cef937bc7b38bb4e11cb0221
- Merge "Update type of 'description' field to 'text' for table workflow_executions_v2"
- Update type of 'description' field to 'text' for table workflow_executions_v2
Change-Id: I5ae7f0f39822c99d11bd7cd6191e036afd7e6721