We joyfully announce the release of: python-watcher 4.0.0: OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack- based clouds. This release is part of the ussuri release series. The source is available from: https://opendev.org/openstack/python-watcher Download the package from: https://tarballs.openstack.org/watcher/ For more details, please see below. Changes in python-watcher 3.0.0.0rc1..4.0.0 ------------------------------------------- 870e6d75 Imported Translations from Zanata 3069f837 Update TOX_CONSTRAINTS_FILE for stable/ussuri d7d534f5 Update .gitreview for stable/ussuri 38649b2d convert EfficacyIndicator.value to float type 0ff8248f Remove six[6] bf2caf8b Remove six[5] 6a6dbc14 Remove six[4] 244e02c3 Remove six[3] 591e4a8f Remove six[2] 4bf59cfe Remove six[1] de9d2505 update description about audit argument interval 3a3a487c remove wsmeext.sphinxext f3c427bd Cleanup py27 support 6a0fe94e Block Sphinx 3.0.0 1bb2aefe Update hacking for Python3 60a3f1f0 Removed py27 in testing doc c17e96d3 Add procname for uwsgi based service watcher-api 18a516b8 just set necessary config options e71aaa66 simplify doc directory 4255d5b2 Add config option enable_webhooks_auth 145fccdd api-ref: Add webhook API reference 9b662905 Doc: Add EVENT audit description 56b2f113 Community Goal: Project PTL & Contrib Docs Update 83d37d2b Add api version history 58083bb6 releasenotes: Fix reference url f79321ce Add releasenote for event-driven-optimization-based 05e81c3d doc: move Concurrency doc to admin guide ae83ef02 doc for event type audit 91b58a67 Move install doc to user guide 693d2141 Update user guide doc 775be277 Add webhook api db709691 Fix duplicated words issue like "an active instance instance" 6a173a91 Add audit type: event 002ea535 Add list datamodel microversion to api-ref 6f43f2b0 Add a new microversion for data model API ba43f766 Releasenote for decision engine threadpool a2f10890 Use enum class define microversions 5171d84b Start README.rst with a better title 4a269ba0 Change self.node to self.nodes in model_root b5f8e9a9 Documentation on concurrency for contributors 0032ed92 replace host_url with application_url ab9a68c7 Migrate grenade jobs to py3 17f5a65a [ussuri][goal] Drop python 2.7 support and testing 689ae25e Refactoring the codes about getting used and free resources c644e23c Use threadpool when building compute data model 2b6ee383 General purpose threadpool for decision engine 7d2191d4 tox: Keeping going with docs a7b24ac6 Switch to Ussuri jobs f685bf62 Don't throw exception when missing metrics aa36e6a8 Remove print() e835efaa Update master for stable/train Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + .zuul.yaml | 4 +- README.rst | 10 +- api-ref/source/index.rst | 1 + api-ref/source/watcher-api-v1-datamodel.inc | 4 +- api-ref/source/watcher-api-v1-webhooks.inc | 26 + devstack/lib/watcher | 2 +- lower-constraints.txt | 8 +- playbooks/legacy/grenade-devstack-watcher/run.yaml | 2 +- .../notes/drop-py-2-7-54f8e806d71f19a7.yaml | 6 + ...driven-optimization-based-4870f112bef8a560.yaml | 8 + ...ecision-engine-threadpool-0711b23abfc9d409.yaml | 20 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 651 --------------------- .../source/locale/fr/LC_MESSAGES/releasenotes.po | 33 -- releasenotes/source/train.rst | 6 + requirements.txt | 7 +- setup.cfg | 9 +- setup.py | 9 - test-requirements.txt | 2 +- tox.ini | 53 +- watcher/api/acl.py | 2 +- watcher/api/config.py | 8 +- watcher/api/controllers/link.py | 2 +- .../api/controllers/rest_api_version_history.rst | 9 + watcher/api/controllers/root.py | 3 +- watcher/api/controllers/v1/__init__.py | 56 +- watcher/api/controllers/v1/action_plan.py | 2 +- watcher/api/controllers/v1/data_model.py | 3 + watcher/api/controllers/v1/types.py | 2 +- watcher/api/controllers/v1/utils.py | 24 +- watcher/api/controllers/v1/versions.py | 28 +- watcher/api/controllers/v1/webhooks.py | 62 ++ watcher/api/middleware/auth_token.py | 2 +- watcher/applier/actions/base.py | 2 +- watcher/applier/actions/resize.py | 34 +- watcher/applier/workflow_engine/default.py | 2 +- watcher/cmd/status.py | 3 +- watcher/common/exception.py | 18 +- watcher/common/scheduling.py | 1 + watcher/common/utils.py | 1 + watcher/conf/api.py | 5 + watcher/conf/decision_engine.py | 11 +- watcher/db/sqlalchemy/api.py | 4 +- watcher/decision_engine/audit/event.py | 27 + watcher/decision_engine/datasources/base.py | 3 - watcher/decision_engine/datasources/ceilometer.py | 15 +- watcher/decision_engine/datasources/gnocchi.py | 23 +- watcher/decision_engine/datasources/grafana.py | 5 +- watcher/decision_engine/datasources/manager.py | 14 +- watcher/decision_engine/datasources/monasca.py | 8 +- .../decision_engine/messaging/audit_endpoint.py | 9 +- watcher/decision_engine/model/collector/nova.py | 109 +++- watcher/decision_engine/model/model_root.py | 8 +- .../strategy/strategies/basic_consolidation.py | 18 +- .../strategy/strategies/host_maintenance.py | 39 +- .../strategy/strategies/noisy_neighbor.py | 22 +- .../strategy/strategies/outlet_temp_control.py | 23 +- .../strategy/strategies/uniform_airflow.py | 13 +- .../strategies/vm_workload_consolidation.py | 2 +- .../strategy/strategies/workload_balance.py | 27 +- .../strategy/strategies/workload_stabilization.py | 2 +- watcher/decision_engine/threading.py | 98 ++++ watcher/hacking/checks.py | 24 +- watcher/locale/de/LC_MESSAGES/watcher.po | 68 +-- watcher/locale/en_GB/LC_MESSAGES/watcher.po | 39 +- watcher/notifications/exception.py | 4 +- watcher/objects/audit.py | 1 + .../decision_engine/cluster/test_nova_cdmc.py | 111 +++- .../datasources/test_grafana_helper.py | 6 +- .../strategy/strategies/test_host_maintenance.py | 16 - .../strategy/strategies/test_noisy_neighbor.py | 9 - .../strategies/test_outlet_temp_control.py | 9 - .../strategy/strategies/test_workload_balance.py | 9 - 107 files changed, 1646 insertions(+), 1357 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index cc65597b..c5bf3b3e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6 +5,0 @@ apscheduler>=3.5.1 # MIT License -enum34>=1.1.6;python_version=='2.7' or python_version=='2.6' or python_version=='3.3' # BSD @@ -46 +45 @@ stevedore>=1.28.0 # Apache-2.0 -taskflow>=3.1.0 # Apache-2.0 +taskflow>=3.7.1 # Apache-2.0 @@ -49,3 +48 @@ WSME>=0.9.2 # MIT -# NOTE(fdegir): NetworkX 2.3 dropped support for Python 2 -networkx>=1.11,<2.3;python_version<'3.0' # BSD -networkx>=1.11;python_version>='3.4' # BSD +networkx>=2.2;python_version>='3.4' # BSD diff --git a/test-requirements.txt b/test-requirements.txt index 1a5854f6..69ba46a6 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -8 +8 @@ freezegun>=0.3.10 # Apache-2.0 -hacking>=1.1.0,<1.2.0 # Apache-2.0 +hacking>=3.0,<3.1.0 # Apache-2.0