We exuberantly announce the release of: watcher 15.1.0 This release is part of the flamingo release series. The source is available from: https://opendev.org/openstack/watcher Download the package from: https://tarballs.openstack.org/watcher/ Please report issues through: https://bugs.launchpad.net/watcher/+bugs For more details, please see below. 15.1.0 ^^^^^^ New Features ************ * New parameters *migration_max_retries* and *migration_interval* have been added to the *nova* section to define the maximum retries and polling interval in VM migrations. Default values are 180 and 5 seconds. * Timeout of vm resize operations can be configured applying the *migration_max_retries* and *migration_interval* in the *nova* section used for migrations. Default values are 180 and 5 seconds. Upgrade Notes ************* * The Zone Migration Strategy now accepts audits with either 'dst_type' or 'dst_pool' as input, but not with both. The strategy won't support retyping and migrating a volume in the same action plan, so the user should choose the input according to the desired operation. Bug Fixes ********* * Resolve failures caused by temporary connection errors to Nova by adding configurable retries to Nova API calls when connection related errors are found. The retries can be configured via *[nova] http_retries* (default is 3 retries) and *[nova] http_retry_interval* (default is 2 seconds). * Fixes a bug in the zone migration strategy where audits would fail due to an unhandled exception when trying to plan instance migration that exist in Nova but not in Watcher's compute model. The strategy now filters out the elements that are not found in the model, allowing the audit to complete successfully. For more details, please see Bug #2098984 (https://bugs.launchpad.net/watcher/+bug/2098984). * Previously, when an audit was created with zone_migration strategy and both storage_pools and compute_nodes parameters are passed, the audit did not created the required instances migration actions if any volume migration action was created. Now, in that situation the audit will create both instance and volume migrations according to the expected behavior and the limits defined by the parallelization parameters. For more information: https://bugs.launchpad.net/watcher/+bug/2109722 * Fixed the issue when migrate actions Failed when the migration took more that 120 seconds. After this patch, the default timeout is 900 seconds (15 minutes) which should be a reasonable value for most OpenStack installations. * Notification-based updates of the nova DataModel failed to set the actual destination host as compute node after Live Migrations. The Nova collector is now using the right Nova notification to update the instance in the DataModel after those events. * Fixed the issue when resize actions failed when the resize took more that 120 seconds. After this patch, the default timeout is 900 seconds (15 minutes) which should be a reasonable value for most OpenStack installations. * The zone migration strategy no longer fails when when an audit is created with defined storage_pools, compute_nodes is not provided, and with_attached_volume is set to True. The strategy now creates the required volume migrations, but no instance migrations. Both volumes and instances will only be migrated if the audit parameters have both compute_nodes and storage_pools. See: https://bugs.launchpad.net/watcher/+bug/2111429 for more details. * Currently, the zone migration strategy has a "src_type" parameter in the "storage_pools" input parameter which is ignored, even though it's required when storage_pools is defined. This patch makes the src_type parameter optional in the zone migration strategy, and when passed by the user, will use its values to filter the volumes which can be migrated. For more details: https://launchpad.net/bugs/2111507 Changes in watcher 15.0.0..15.1.0 --------------------------------- 62714e29 Revert "Update migration notification" 0d5f2080 Move real data jobs nodeset to three nodes (two computes + 1 controller) a88f1f46 Retry calls to nova API when connection errors are detected 97cda192 update unit tests for nova_helper module 70b2a217 Make VM resize timeout configurable with migration defaults f738ef7d Make VM migrations timeout configurable and apply reasonable defaults eb65e770 Consolidate and improve Zuul CI job definitions 9321c041 Fix zone migration to accept dst_pool or dst_type e2ea34e4 use the correct package name for microversion-parse 9fbb04d0 Ignore cinder notifications if the Storage model is empty 5574cb42 Fix zone migration instance not found issue 15489faf Add unit tests for instance and volume not found in model 6aa29e87 Add missing 1.6 API doc in rest version history ddcd0a39 Improve unit tests for zone migration strategy 8b209496 Support zone migration audit without compute_nodes c77f93dc Allow volume and vm migrations in zone_migration dd7da332 Add test for zone_migration with instances and volumes 84fda73b Use src_type to filter volumes in zone migration 6f1f8f48 Update TOX_CONSTRAINTS_FILE for stable/2025.2 eb7ad600 Update .gitreview for stable/2025.2 Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + .zuul.yaml | 484 +++++------ .../add-retries-nova-calls-32455b6fbf7523f1.yaml | 7 + ...ration-instance-not-found-b9ce947dd3e7e020.yaml | 9 + .../notes/bug-2109722-cb205216d0c1a836.yaml | 13 + .../notes/bug-2131663-b486d36f77d13a5d.yaml | 11 + .../notes/bug-2138857-e3505aa4a20a7831.yaml | 7 + .../notes/resize-timeout-0f6ede6ec9b644b7.yaml | 11 + ...ume-without-compute-nodes-ec4b1329e2b58279.yaml | 11 + .../zone_migrate_src_type-642186730a4f354e.yaml | 10 + ...e_migration_schema_change-92a9ec8631870c84.yaml | 7 + requirements.txt | 2 +- tox.ini | 2 +- .../api/controllers/rest_api_version_history.rst | 8 + watcher/common/nova_helper.py | 149 +++- watcher/conf/__init__.py | 2 + watcher/conf/nova.py | 61 ++ .../decision_engine/model/notification/cinder.py | 16 + watcher/decision_engine/model/notification/nova.py | 2 +- .../strategy/strategies/zone_migration.py | 92 +- .../decision_engine/model/faker_cluster_state.py | 18 + ... => instance-live_migration_post_dest-end.json} | 4 +- .../notification/test_cinder_notifications.py | 137 +++ .../model/notification/test_nova_notifications.py | 6 +- .../strategy/strategies/test_zone_migration.py | 915 +++++++++++++++++--- 29 files changed, 2531 insertions(+), 580 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 5d69fcc7..2f121282 100644 --- a/requirements.txt +++ b/requirements.txt @@ -48 +48 @@ networkx>=2.4 # BSD -microversion_parse>=0.2.1 # Apache-2.0 +microversion-parse>=0.2.1 # Apache-2.0