[openstack-announce] [new][watcher] python-watcher 0.32.0 release (ocata)
no-reply at openstack.org
no-reply at openstack.org
Thu Nov 17 13:42:33 UTC 2016
We are grateful to announce the release of:
python-watcher 0.32.0: OpenStack Watcher provides a flexible and
scalable resource optimization service for multi-tenant OpenStack-
based clouds.
This release is part of the ocata release series.
The source is available from:
https://github.com/openstack/watcher
Download the package from:
https://tarballs.openstack.org/python-watcher/
Please report issues through launchpad:
http://bugs.launchpad.net/watcher
For more details, please see below.
Changes in python-watcher 0.30.0..0.32.0
----------------------------------------
46f511a Implemented base + moved plugins & service conf
25da163 Add audit.planner events
19fe0a0 Add audit.strategy events
6f9f67c Implemented audit.delete notification
0c0a9c8 Implemented audit.create notification
9405eb0 Implemented audit.update notification
54c45a2 Update devstack plugin to add notification param
4bebf88 Added notification_level config option
cdda06c Removed status_topic config parameter
395ccbd Remove stale notification code
cdee271 Added notifications documentation page
b27e5b9 Added support for versioned notifications
5c79389 Add doc for vm_workload_consolidation strategy
3532c74 Updated from global requirements
9761207 Add doc for workload-stabilization spec
72c9d86 Fix the typo in efficacy_indicator module
5e9a2f6 Fix NoMetricValuesForInstance error
b6e17a8 Use oslo_log instead of logging
3e392b0 optimized 'find_instance()'
ea7e6a7 Fix workload stabilization strategy to ignore disabled hosts
090d5d1 Added Tempest API tests for /scoring_engines
4973dd6 Remove unused SUBMITTED audit state
b4b17ba Added action_plan ObjectField for Action
060c369 Added audit & strategy ObjectField for ActionPlan
f9df54c Added goal & strategy ObjectField for Audit
54cf10b Added goal+strategy ObjectField for AuditTemplate
f54aca7 Added 'goal' ObjectField for Strategy object
fc31dae Refactored Watcher objects to use OVO
ed95d62 Removed deadline, version, extra & host_aggregate
750e6bf Eager loading on One-to-X foreign keys
afdfd81 [Doc] Fix strategy list optional argument
aae3f79 Use Enum value instead of String Value Fixing Gating Issue.
b48b881 Change "Openstack" to "OpenStack"
e681645 Avoid use xx=[] for parameter to initialize it's value
ef0d133 Transform KB into MB and normalize CPU
40f98bf Updated from global requirements
35e6565 Delete python bytecode file
3de2d36 Add strategy template doc
6331274 Drop MANIFEST.in - it's not needed by pbr
48cc6b2 Add Audit Scope Handler
c34a1ac Add service object to the watcher_db_schema
e7a1e14 Add service supervisor
0a7a9e9 Updated from global requirements
3129f31 Added Model base class + related doc
cd2cd18 Add RECOMMENDED state
f1a2de4 Enable release notes translation
10cbcd2 Added composite unique name constraints
f2e5702 Added missing test on GMR plugin
96357ae Moved Watcher doc plugin outside main package
631e139 Stop adding ServiceAvailable group option
db3b5b3 HasLength() rewritten to assertEqual()
74acf2a Updated from global requirements
abe3739 Fix typo in docstring
8b37bef Remove duplicate unittest
0f9361e Fix typo in hooks.py
c8d6059 Docstrings should not start with a space
e7888b2 Fix capital letter in doc
d0ea20e Doc updates
55591cc Watcher utils cleanup
5112f29 Fixed GMR configuration issue
83d06ce Add constraint target to tox.ini and remove 1 dep
0d61667 Updated from global requirements
d8ae88d 'tox -e py27' failed
9eeaa07 Fix typo in docstring from "interprete" to "interpret"
88b04db Fix a typo in watcher.po
1fc59cc Deactivate dashboard plugin until fixed
7714f48 remove redundant word
f741434 Fix a typo in basic_consolidation.py
8cf233a Update Watcher description
56a9dd0 Test code tidy up
f79bed0 Update reno for stable/newton
55537d2 Fixed issue on compute nodes iteration
e621f5d Refactored Tests to load scenarios from file
b2fe413 Updated from global requirements
b6ab86c Remove group_by statement in metric queries
Diffstat (except docs and test files)
-------------------------------------
MANIFEST.in | 6 -
README.rst | 6 +-
devstack/lib/watcher | 2 +
devstack/local.conf.controller | 2 +-
.../infra-optim-exception.json | 16 +
.../plantuml/sequence_overview_watcher_usage.txt | 2 +-
.../plantuml/watcher_db_schema_diagram.txt | 68 +-
.../images/sequence_overview_watcher_usage.png | Bin 46772 -> 46482 bytes
.../strategies/basic-server-consolidation.rst | 96 +++
.../strategies/vm_workload_consolidation.rst | 100 +++
etc/watcher/policy.json | 6 +-
releasenotes/source/conf.py | 3 +
releasenotes/source/index.rst | 3 +-
releasenotes/source/newton.rst | 6 +
requirements.txt | 31 +-
setup.cfg | 4 +-
test-requirements.txt | 12 +-
tox.ini | 16 +-
watcher/api/acl.py | 2 +-
watcher/api/controllers/root.py | 2 +-
watcher/api/controllers/v1/__init__.py | 13 +
watcher/api/controllers/v1/action.py | 2 +-
watcher/api/controllers/v1/audit.py | 59 +-
watcher/api/controllers/v1/audit_template.py | 60 +-
watcher/api/controllers/v1/efficacy_indicator.py | 2 +-
watcher/api/controllers/v1/service.py | 263 ++++++++
watcher/api/controllers/v1/strategy.py | 2 +-
watcher/api/controllers/v1/utils.py | 24 +-
watcher/api/hooks.py | 2 +-
watcher/api/middleware/auth_token.py | 2 +-
watcher/applier/action_plan/default.py | 30 +-
watcher/applier/manager.py | 45 +-
watcher/applier/messaging/event_types.py | 25 -
watcher/applier/rpcapi.py | 43 +-
watcher/applier/workflow_engine/base.py | 9 +-
watcher/applier/workflow_engine/default.py | 17 +-
watcher/cmd/api.py | 8 +-
watcher/cmd/applier.py | 6 +-
watcher/cmd/dbmanage.py | 5 +-
watcher/cmd/decisionengine.py | 6 +-
watcher/cmd/sync.py | 4 +-
watcher/common/ceilometer_helper.py | 6 +-
watcher/common/exception.py | 34 +-
watcher/common/messaging/__init__.py | 0
watcher/common/messaging/events/__init__.py | 0
watcher/common/messaging/events/event.py | 54 --
.../common/messaging/events/event_dispatcher.py | 78 ---
watcher/common/messaging/messaging_handler.py | 120 ----
watcher/common/messaging/notification_handler.py | 47 --
watcher/common/messaging/utils/__init__.py | 0
watcher/common/messaging/utils/observable.py | 57 --
watcher/common/messaging/utils/synchronization.py | 22 -
watcher/common/nova_helper.py | 21 +-
watcher/common/observable.py | 57 ++
watcher/common/rpc.py | 14 +-
watcher/common/service.py | 187 +++---
watcher/common/service_manager.py | 50 ++
watcher/common/synchronization.py | 22 +
watcher/common/utils.py | 49 +-
watcher/conf/__init__.py | 25 +
watcher/conf/_opts.py | 56 ++
watcher/conf/opts.py | 95 +++
watcher/conf/plugins.py | 72 +++
watcher/conf/service.py | 49 ++
watcher/db/api.py | 226 +++++--
watcher/db/sqlalchemy/api.py | 417 +++++++------
watcher/db/sqlalchemy/models.py | 133 ++--
watcher/decision_engine/audit/base.py | 50 +-
watcher/decision_engine/audit/continuous.py | 38 +-
watcher/decision_engine/cluster/history/base.py | 2 +-
watcher/decision_engine/goal/efficacy/specs.py | 4 +-
watcher/decision_engine/manager.py | 49 +-
.../decision_engine/messaging/audit_endpoint.py | 4 +-
watcher/decision_engine/messaging/events.py | 26 -
watcher/decision_engine/model/base.py | 36 ++
watcher/decision_engine/model/collector/base.py | 16 +-
watcher/decision_engine/model/collector/nova.py | 12 +-
watcher/decision_engine/model/mapping.py | 16 +-
watcher/decision_engine/model/model_root.py | 54 +-
watcher/decision_engine/model/notification/base.py | 9 -
watcher/decision_engine/planner/default.py | 6 +-
watcher/decision_engine/rpcapi.py | 41 +-
watcher/decision_engine/scope/__init__.py | 0
watcher/decision_engine/scope/base.py | 38 ++
watcher/decision_engine/scope/default.py | 219 +++++++
watcher/decision_engine/strategy/context/base.py | 41 +-
.../decision_engine/strategy/context/default.py | 10 +-
.../decision_engine/strategy/strategies/base.py | 23 +-
.../strategy/strategies/basic_consolidation.py | 154 ++---
.../strategies/vm_workload_consolidation.py | 85 ++-
.../strategy/strategies/workload_stabilization.py | 70 ++-
watcher/decision_engine/sync.py | 40 +-
watcher/doc.py | 102 ---
watcher/locale/fr/LC_MESSAGES/watcher.po | 2 +-
watcher/notifications/__init__.py | 26 +
watcher/notifications/audit.py | 310 ++++++++++
watcher/notifications/base.py | 212 +++++++
watcher/notifications/exception.py | 55 ++
watcher/notifications/goal.py | 53 ++
watcher/notifications/strategy.py | 53 ++
watcher/objects/__init__.py | 58 +-
watcher/objects/action.py | 162 ++---
watcher/objects/action_plan.py | 182 +++---
watcher/objects/audit.py | 213 ++++---
watcher/objects/audit_template.py | 189 +++---
watcher/objects/base.py | 629 ++++---------------
watcher/objects/efficacy_indicator.py | 62 +-
watcher/objects/fields.py | 144 +++++
watcher/objects/goal.py | 65 +-
watcher/objects/scoring_engine.py | 123 +---
watcher/objects/service.py | 141 +++++
watcher/objects/strategy.py | 120 ++--
watcher/objects/utils.py | 38 +-
watcher/opts.py | 100 ---
.../action_plan/test_default_action_handler.py | 25 +-
.../test_default_workflow_engine.py | 2 +-
.../messaging/event/test_event_dispatcher.py | 84 ---
.../common/messaging/test_messaging_handler.py | 78 ---
.../common/messaging/test_notification_handler.py | 56 --
.../decision_engine/audit/test_audit_handlers.py | 181 ++++--
.../loading/test_collector_loader.py | 3 +-
.../messaging/test_audit_endpoint.py | 4 +-
.../decision_engine/model/data/scenario_1.xml | 47 ++
.../model/data/scenario_1_with_metrics.xml | 8 +
.../model/data/scenario_2_with_metrics.xml | 13 +
.../model/data/scenario_3_with_2_nodes.xml | 8 +
.../model/data/scenario_3_with_metrics.xml | 9 +
.../data/scenario_4_with_1_node_no_instance.xml | 3 +
.../model/data/scenario_5_with_instance_disk_0.xml | 5 +
.../model/data/scenario_6_with_2_nodes.xml | 10 +
.../model/data/scenario_7_with_2_nodes.xml | 10 +
.../model/data/scenario_8_with_4_nodes.xml | 16 +
...nario_9_with_3_active_plus_1_disabled_nodes.xml | 16 +
.../model/faker_cluster_and_metrics.py | 161 +++++
.../decision_engine/model/faker_cluster_state.py | 157 +++++
.../model/faker_metrics_collector.py | 255 ++++++++
.../model/notification/fake_managers.py | 42 +-
.../model/notification/test_notifications.py | 6 +-
.../model/notification/test_nova_notifications.py | 3 +-
.../planner/test_default_planner.py | 23 +-
.../strategy/context/test_strategy_context.py | 17 +-
.../strategies/faker_cluster_and_metrics.py | 270 --------
.../strategy/strategies/faker_cluster_state.py | 414 -------------
.../strategy/strategies/faker_metrics_collector.py | 258 --------
.../strategies/test_basic_consolidation.py | 49 +-
.../strategy/strategies/test_dummy_strategy.py | 12 +-
.../strategy/strategies/test_dummy_with_scorer.py | 3 +-
.../strategies/test_outlet_temp_control.py | 15 +-
.../strategy/strategies/test_uniform_airflow.py | 15 +-
.../strategies/test_vm_workload_consolidation.py | 12 +-
.../strategy/strategies/test_workload_balance.py | 15 +-
.../strategies/test_workload_stabilization.py | 39 +-
watcher_tempest_plugin/config.py | 12 +-
watcher_tempest_plugin/plugin.py | 8 +-
.../services/infra_optim/v1/json/client.py | 49 +-
246 files changed, 10640 insertions(+), 5673 deletions(-)
Requirements updates
--------------------
diff --git a/requirements.txt b/requirements.txt
index 94e2867..0265513 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,2 +8,2 @@ jsonpatch>=1.1 # BSD
-keystoneauth1>=2.10.0 # Apache-2.0
-keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0
+keystoneauth1>=2.14.0 # Apache-2.0
+keystonemiddleware!=4.5.0,>=4.2.0 # Apache-2.0
@@ -13 +13 @@ oslo.cache>=1.5.0 # Apache-2.0
-oslo.config>=3.14.0 # Apache-2.0
+oslo.config!=3.18.0,>=3.14.0 # Apache-2.0
@@ -15 +15 @@ oslo.context>=2.9.0 # Apache-2.0
-oslo.db>=4.10.0 # Apache-2.0
+oslo.db!=4.13.1,!=4.13.2,>=4.11.0 # Apache-2.0
@@ -17 +17 @@ oslo.i18n>=2.1.0 # Apache-2.0
-oslo.log>=1.14.0 # Apache-2.0
+oslo.log>=3.11.0 # Apache-2.0
@@ -19 +19 @@ oslo.messaging>=5.2.0 # Apache-2.0
-oslo.policy>=1.9.0 # Apache-2.0
+oslo.policy>=1.15.0 # Apache-2.0
@@ -23 +23,2 @@ oslo.service>=1.10.0 # Apache-2.0
-oslo.utils>=3.16.0 # Apache-2.0
+oslo.utils>=3.18.0 # Apache-2.0
+oslo.versionedobjects>=1.13.0 # Apache-2.0
@@ -25,3 +26,3 @@ PasteDeploy>=1.5.0 # MIT
-pbr>=1.6 # Apache-2.0
-pecan!=1.0.2,!=1.0.3,!=1.0.4,>=1.0.0 # BSD
-PrettyTable<0.8,>=0.7 # BSD
+pbr>=1.8 # Apache-2.0
+pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD
+PrettyTable<0.8,>=0.7.1 # BSD
@@ -31,2 +32,2 @@ python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0
-python-glanceclient!=2.4.0,>=2.3.0 # Apache-2.0
-python-keystoneclient!=2.1.0,>=2.0.0 # Apache-2.0
+python-glanceclient>=2.5.0 # Apache-2.0
+python-keystoneclient>=3.6.0 # Apache-2.0
@@ -35 +36 @@ python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0
-python-openstackclient>=2.1.0 # Apache-2.0
+python-openstackclient>=3.3.0 # Apache-2.0
@@ -38 +39 @@ SQLAlchemy<1.1.0,>=1.0.10 # MIT
-stevedore>=1.16.0 # Apache-2.0
+stevedore>=1.17.1 # Apache-2.0
@@ -40 +41 @@ taskflow>=1.26.0 # Apache-2.0
-WebOb>=1.2.3 # MIT
+WebOb>=1.6.0 # MIT
diff --git a/test-requirements.txt b/test-requirements.txt
index 0ccc117..cf035ca 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -5 +5 @@
-coverage>=3.6 # Apache-2.0
+coverage>=4.0 # Apache-2.0
@@ -7 +7 @@ doc8 # Apache-2.0
-freezegun # Apache-2.0
+freezegun>=0.3.6 # Apache-2.0
@@ -11 +11 @@ oslotest>=1.10.0 # Apache-2.0
-os-testr>=0.7.0 # Apache-2.0
+os-testr>=0.8.0 # Apache-2.0
@@ -18,2 +18,2 @@ testtools>=1.4.0 # MIT
-oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
-sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
+oslosphinx>=4.7.0 # Apache-2.0
+sphinx!=1.3b1,<1.4,>=1.2.1 # BSD
@@ -23 +23 @@ sphinxcontrib-pecanwsme>=0.8 # Apache-2.0
-reno>=1.8.0 # Apache2
+reno>=1.8.0 # Apache-2.0
More information about the OpenStack-announce
mailing list