[watcher] python-watcher 1.7.0 (queens)
We joyfully announce the release of: python-watcher 1.7.0: OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack- based clouds. This release is part of the queens release series. The source is available from: https://github.com/openstack/watcher Download the package from: https://tarballs.openstack.org/watcher/ Please report issues through launchpad: https://bugs.launchpad.net/watcher For more details, please see below. 1.7.0 ^^^^^ New Features * Adds audit scoper for storage data model, now watcher users can specify audit scope for storage CDM in the same manner as compute scope. * Adds baremetal data model in Watcher * Added a way to check state of strategy before audit's execution. Administrator can use "watcher strategy state <strategy_name>" command to get information about metrics' availability, datasource's availability and CDM's availability. * Added storage capacity balance strategy. * Added strategy "Zone migration" and it's goal "Hardware maintenance". The strategy migrates many instances and volumes efficiently with minimum downtime automatically. Changes in python-watcher 1.6.0..1.7.0 -------------------------------------- 16e7d9c Add baremetal strategy validation 0c66fe2 Strategy requirements 1dae83d Add zone migration strategy 701b258 Fix workload_stabilization unavailable nodes and instances f7fcdf1 Update unreachable link 47ba6c0 Updated from global requirements 27e8875 Fix compute api ref link 891f6bc Adapt workload_balance strategy to multiple datasource backend 5dd6817 Adapt noisy_neighbor strategy to multiple datasource backend 7cdcb47 Adapt basic_consolidation strategy to multiple datasource backend 6d03c4c check audit name length bcc129c Audit scoper for storage CDM 1a48a7f Imported Translations from Zanata 42a3886 Update link address 3430493 Fix tempest devstack error f5bcf9d Add storage capacity balance Strategy 3c8caa3 Updated from global requirements ce196b6 Adapt workload_stabilization strategy to new datasource backend 42130c4 Updated from global requirements 1a8639d Update pike install supermark to queens 1702fe1 Add the title of API Guide 354ebd3 Fix compute scope test bug 54da2a7 Add baremetal data model bd79882 Set apscheduler logs to WARN level 960c50b Fix configuration doc link 9411f85 update audit API description b4370f0 update action API description 96fa7f3 use current weighted sd as min_sd when starting to simulate migrations 070aed7 correct audit parameter typo 6f27275 Updated from global requirements 95548af Fix watcher audit list command cdc847d check actionplan state when deleting actionplan cbd6d88 TrivialFix: remove redundant import alias a8fa969 check audit state when deleting audit 80ee4b2 reset job interval when audit was updated ec0c359 Updated from global requirements 3b6bef1 Fix releasenotes build c6afa7c Update getting scoped storage CDM 9ccd17e Updated from global requirements be56441 Fix 'unable to exclude instance' 0242d33 Register default policies in code c38dc98 listen to 'compute.instance.rebuild.end' event 4ce1a90 Updated from global requirements 02163d6 bug fix remove volume migration type 'cold' d91f0bf Add and identify excluded instances in compute CDM e401cb7 Add Datasource Abstraction fa31341 'get_volume_type_by_backendname' returns a list Diffstat (except docs and test files) ------------------------------------- devstack/lib/watcher | 24 +- devstack/settings | 3 + .../watcher-policy-generator.conf | 3 + etc/watcher/policy.json | 45 - ...er-for-storage-data-model-cdccc803542d22db.yaml | 5 + ...tal-data-model-in-watcher-3023453a47b61dab.yaml | 4 + ...eck-strategy-requirements-66f9e9262412f8ec.yaml | 6 + .../storage-workload-balance-0ecabbc1791e6894.yaml | 4 + .../zone-migration-strategy-10f7656a2a01e607.yaml | 6 + releasenotes/source/conf.py | 1 - .../locale/en_GB/LC_MESSAGES/releasenotes.po | 215 ++++- .../source/locale/fr/LC_MESSAGES/releasenotes.po | 33 - requirements.txt | 14 +- setup.cfg | 10 + test-requirements.txt | 6 +- tox.ini | 4 + watcher/api/controllers/v1/action.py | 6 +- watcher/api/controllers/v1/action_plan.py | 9 + watcher/api/controllers/v1/audit.py | 36 +- watcher/api/controllers/v1/strategy.py | 22 + watcher/applier/actions/volume_migration.py | 34 +- watcher/cmd/sync.py | 2 +- watcher/common/cinder_helper.py | 31 +- watcher/common/exception.py | 24 + watcher/common/ironic_helper.py | 49 ++ watcher/common/nova_helper.py | 5 +- watcher/common/policies/__init__.py | 37 + watcher/common/policies/action.py | 57 ++ watcher/common/policies/action_plan.py | 79 ++ watcher/common/policies/audit.py | 90 ++ watcher/common/policies/audit_template.py | 90 ++ watcher/common/policies/base.py | 32 + watcher/common/policies/goal.py | 57 ++ watcher/common/policies/scoring_engine.py | 66 ++ watcher/common/policies/service.py | 57 ++ watcher/common/policies/strategy.py | 68 ++ watcher/common/policy.py | 25 +- watcher/common/service.py | 3 +- watcher/datasource/base.py | 120 +++ watcher/datasource/ceilometer.py | 93 +- watcher/datasource/gnocchi.py | 119 ++- watcher/datasource/manager.py | 78 ++ watcher/datasource/monasca.py | 95 +- .../sqlalchemy/alembic/versions/a86240e89a29_.py | 34 + watcher/decision_engine/audit/continuous.py | 23 +- watcher/decision_engine/goal/__init__.py | 5 +- .../decision_engine/goal/efficacy/indicators.py | 115 +++ watcher/decision_engine/goal/efficacy/specs.py | 83 ++ watcher/decision_engine/goal/goals.py | 25 + watcher/decision_engine/manager.py | 5 +- watcher/decision_engine/model/collector/cinder.py | 84 +- watcher/decision_engine/model/collector/ironic.py | 97 ++ watcher/decision_engine/model/collector/nova.py | 1 + watcher/decision_engine/model/element/__init__.py | 4 +- .../model/element/baremetal_resource.py | 33 + watcher/decision_engine/model/element/instance.py | 3 + watcher/decision_engine/model/element/node.py | 17 +- watcher/decision_engine/model/model_root.py | 90 +- watcher/decision_engine/model/notification/nova.py | 27 + watcher/decision_engine/rpcapi.py | 4 + watcher/decision_engine/scope/baremetal.py | 46 + watcher/decision_engine/scope/compute.py | 29 +- watcher/decision_engine/scope/storage.py | 165 ++++ .../strategy/strategies/__init__.py | 9 +- .../decision_engine/strategy/strategies/base.py | 112 ++- .../strategy/strategies/basic_consolidation.py | 132 +-- .../strategy/strategies/noisy_neighbor.py | 54 +- .../strategy/strategies/outlet_temp_control.py | 2 + .../strategies/storage_capacity_balance.py | 411 +++++++++ .../strategy/strategies/uniform_airflow.py | 2 + .../strategies/vm_workload_consolidation.py | 3 + .../strategy/strategies/workload_balance.py | 71 +- .../strategy/strategies/workload_stabilization.py | 131 +-- .../strategy/strategies/zone_migration.py | 975 +++++++++++++++++++++ watcher/locale/en_GB/LC_MESSAGES/watcher.po | 773 ++++++++++++++++ .../decision_engine/audit/test_audit_handlers.py | 34 + .../decision_engine/model/ceilometer_metrics.py | 31 +- .../model/data/ironic_scenario_1.xml | 12 + .../data/scenario_1_with_1_node_unavailable.xml | 50 ++ .../decision_engine/model/faker_cluster_state.py | 58 +- .../scenario3_legacy_instance-rebuild-end.json | 59 ++ .../notification/test_cinder_notifications.py | 6 +- .../model/notification/test_nova_notifications.py | 24 + .../strategies/test_basic_consolidation.py | 12 +- .../strategy/strategies/test_noisy_neighbor.py | 24 +- .../strategies/test_storage_capacity_balance.py | 245 ++++++ .../strategy/strategies/test_strategy_endpoint.py | 66 ++ .../strategy/strategies/test_workload_balance.py | 40 +- .../strategies/test_workload_stabilization.py | 68 +- .../strategy/strategies/test_zone_migration.py | 719 +++++++++++++++ 115 files changed, 7095 insertions(+), 701 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 909cb1f..f4337f5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13 +13 @@ croniter>=0.3.4 # MIT License -oslo.concurrency>=3.20.0 # Apache-2.0 +oslo.concurrency>=3.25.0 # Apache-2.0 @@ -19 +19 @@ oslo.i18n>=3.15.3 # Apache-2.0 -oslo.log>=3.30.0 # Apache-2.0 +oslo.log>=3.36.0 # Apache-2.0 @@ -21 +21 @@ oslo.messaging>=5.29.0 # Apache-2.0 -oslo.policy>=1.23.0 # Apache-2.0 +oslo.policy>=1.30.0 # Apache-2.0 @@ -24,2 +24,2 @@ oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 -oslo.service>=1.24.0 # Apache-2.0 -oslo.utils>=3.31.0 # Apache-2.0 +oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 +oslo.utils>=3.33.0 # Apache-2.0 @@ -34 +34 @@ python-ceilometerclient>=2.5.0 # Apache-2.0 -python-cinderclient>=3.2.0 # Apache-2.0 +python-cinderclient>=3.3.0 # Apache-2.0 @@ -45 +45 @@ stevedore>=1.20.0 # Apache-2.0 -taskflow>=2.7.0 # Apache-2.0 +taskflow>=2.16.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index c8bd6e4..9d4053d 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -10 +10 @@ mock>=2.0.0 # BSD -oslotest>=1.10.0 # Apache-2.0 +oslotest>=3.2.0 # Apache-2.0 @@ -17,2 +17,2 @@ testtools>=2.2.0 # MIT -openstackdocstheme>=1.17.0 # Apache-2.0 -sphinx>=1.6.2 # BSD +openstackdocstheme>=1.18.1 # Apache-2.0 +sphinx!=1.6.6,>=1.6.2 # BSD
participants (1)
-
no-reply@openstack.org