[watcher] python-watcher 1.4.0 (pike)
We are pleased to announce the release of: python-watcher 1.4.0: OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack- based clouds. This release is part of the pike stable 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.4.0 ^^^^^ New Features * Add notifications related to Action object. * Added the functionality to filter out instances which have metadata field 'optimize' set to False. For now, this is only available for the basic_consolidation strategy (if "check_optimize_metadata" configuration option is enabled). * Added binding between apscheduler job and Watcher decision engine service. It will allow to provide HA support in the future. * Enhancement of vm_workload_consolidation strategy by using 'memory.resident' metric in place of 'memory.usage', as memory.usage shows the memory usage inside guest-os and memory.resident represents volume of RAM used by instance on host machine. * There is new ability to create Watcher continuous audits with cron interval. It means you may use, for example, optional argument '-- interval "*/5 * * * *"' to launch audit every 5 minutes. These jobs are executed on a best effort basis and therefore, we recommend you to use a minimal cron interval of at least one minute. * Add description property for dynamic action. Admin can see detail information of any specify action. * Added gnocchi support as data source for metrics. Administrator can change data source for each strategy using config file. * Added using of JSONSchema instead of voluptuous to validate Actions. * Added strategy to identify and migrate a Noisy Neighbor - a low priority VM that negatively affects peformance of a high priority VM by over utilizing Last Level Cache. * Add notifications related to Service object. * Added volume migrate action Changes in python-watcher 1.3.0..1.4.0 -------------------------------------- d5b6e0a [Doc] Fix db creation 13b89c8 get_config_opts method was overwritten d218e6f Replace map/filter lambda with comprehensions d2f70f9 change ram util metric 985c6c4 Fix failure to load storage plugin 5b741b2 Fix exception.ComputeNodeNotFound 382f641 Updated from global requirements 5da5db8 Change exception class from monascaclient b43633f Fix ironic client input parameter d5a7d76 Fix show db version in README 7836276 Fix compute CDM to include disabled compute node 3043e57 Update State diagram of Action Plan 4f38595 Modification of statistic_aggregation method 30def6f Fix incorrect action status in notifications 0b31828 Added Actuator Strategy 398974a [Doc] Update software version 3a29b4e Fix continuous audit fails once it fails 8024dbf Updated from global requirements dac0924 Fix Hardcoded availability zone in nova-helper 5a28ac7 Saving Energy Strategy a24b7f0 dynamic action description c03668c [Doc] Add cinder to architecture diagram aab1824 Add release notes for Pike c121789 [Doc] Add Configure Cinder Notifications f733fbe Update the documention for doc migration bff76de Add volume migrate action 22ee0aa Ignore autogenerated sample config file Diffstat (except docs and test files) ------------------------------------- .gitignore | 3 + .../plantuml/action_plan_state_machine.txt | 4 +- .../strategies/vm_workload_consolidation.rst | 4 +- ...rsioned-notifications-api-ff94fc0f401292d0.yaml | 3 + .../audit-tag-vm-metadata-47a3e4468748853c.yaml | 6 + .../notes/background-jobs-ha-9d3cf3fe356f4705.yaml | 4 + .../change-ram-util-metric-4a3e6984b9dd968d.yaml | 8 + ...n-based-continuous-audits-c3eedf28d9752b37.yaml | 7 + ...ynamic-action-description-0e947b9e7ef2a134.yaml | 4 + .../notes/gnocchi-watcher-43c25d391fbd3e9c.yaml | 4 + .../jsonschema-validation-79cab05d5295da00.yaml | 3 + .../noisy-neighbor-strategy-a71342740b59dddc.yaml | 5 + ...rsioned-notifications-api-70367b79a565d900.yaml | 3 + .../volume-migrate-action-fc57b0ce0e4c39ae.yaml | 4 + requirements.txt | 8 +- setup.cfg | 4 + test-requirements.txt | 2 +- watcher/api/controllers/v1/action.py | 12 + watcher/api/middleware/auth_token.py | 4 +- watcher/applier/actions/volume_migration.py | 252 +++++++++++++++ watcher/applier/sync.py | 44 +++ watcher/applier/workflow_engine/base.py | 25 +- watcher/applier/workflow_engine/default.py | 23 +- watcher/cmd/applier.py | 4 + watcher/common/cinder_helper.py | 210 ++++++++++++- watcher/common/clients.py | 2 +- watcher/common/exception.py | 9 + watcher/common/keystone_helper.py | 124 ++++++++ watcher/common/nova_helper.py | 32 +- watcher/common/utils.py | 7 + watcher/conf/__init__.py | 2 + watcher/conf/collector.py | 37 +++ watcher/datasource/gnocchi.py | 12 + watcher/datasource/monasca.py | 2 +- watcher/db/sqlalchemy/alembic/README.rst | 2 +- .../d09a5945e4a0_add_action_description_table.py | 32 ++ watcher/db/sqlalchemy/api.py | 71 +++++ watcher/db/sqlalchemy/models.py | 14 + watcher/decision_engine/audit/continuous.py | 9 +- watcher/decision_engine/goal/__init__.py | 3 +- watcher/decision_engine/goal/goals.py | 24 ++ watcher/decision_engine/model/collector/manager.py | 6 +- watcher/decision_engine/planner/weight.py | 4 +- watcher/decision_engine/scope/default.py | 8 +- .../strategy/strategies/__init__.py | 11 +- .../strategy/strategies/actuation.py | 99 ++++++ .../decision_engine/strategy/strategies/base.py | 8 + .../strategy/strategies/outlet_temp_control.py | 11 + .../strategy/strategies/saving_energy.py | 201 ++++++++++++ .../strategies/vm_workload_consolidation.py | 6 +- watcher/objects/__init__.py | 1 + watcher/objects/action_description.py | 141 +++++++++ .../decision_engine/audit/test_audit_handlers.py | 23 ++ .../model/faker_cluster_and_metrics.py | 4 +- .../strategy/strategies/test_actuator.py | 37 +++ .../strategy/strategies/test_saving_energy.py | 237 ++++++++++++++ 78 files changed, 3115 insertions(+), 147 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 7a18c2f..0a62ff1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8 +8 @@ jsonpatch>=1.1 # BSD -keystoneauth1>=3.0.1 # Apache-2.0 +keystoneauth1>=3.1.0 # Apache-2.0 @@ -34,2 +34,2 @@ python-ceilometerclient>=2.5.0 # Apache-2.0 -python-cinderclient>=3.0.0 # Apache-2.0 -python-glanceclient>=2.7.0 # Apache-2.0 +python-cinderclient>=3.1.0 # Apache-2.0 +python-glanceclient>=2.8.0 # Apache-2.0 @@ -37 +37 @@ python-keystoneclient>=3.8.0 # Apache-2.0 -python-monascaclient>=1.1.0 # Apache-2.0 +python-monascaclient>=1.7.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 84a7d89..9283979 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -18 +18 @@ testtools>=1.4.0 # MIT -openstackdocstheme>=1.11.0 # Apache-2.0 +openstackdocstheme>=1.16.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org