diff -pruN 15.0.0-2/.gitignore 2:15.0.0-0ubuntu1/.gitignore
--- 15.0.0-2/.gitignore	2025-09-11 20:57:34.000000000 +0000
+++ 2:15.0.0-0ubuntu1/.gitignore	1970-01-01 00:00:00.000000000 +0000
@@ -1,80 +0,0 @@
-*.py[cod]
-
-# C extensions
-*.so
-
-# Packages
-*.egg*
-dist
-build
-eggs
-parts
-bin
-var
-sdist
-develop-eggs
-.installed.cfg
-lib
-lib64
-
-# Installer logs
-pip-log.txt
-
-# Unit test / coverage reports
-.coverage*
-.tox
-.stestr/
-.venv
-.idea
-.testrepository/
-
-# Translations
-*.mo
-
-# Mr Developer
-.mr.developer.cfg
-.project
-.pydevproject
-
-# Complexity
-output/*.html
-output/*/index.html
-
-# Sphinx
-doc/build
-doc/source/api/*
-doc/source/samples
-doc/source/_static/*.sample
-!doc/source/api/index.rst
-!doc/source/api/v1.rst
-
-# pbr generates these
-AUTHORS
-ChangeLog
-
-# Editors
-*~
-.*.swp
-.*sw?
-
-sftp-config.json
-/.idea/
-/cover/
-.settings/
-.eclipse
-
-cover
-/demo/
-
-
-# Files created by releasenotes build
-releasenotes/build
-
-# Desktop Service Store
-*.DS_Store
-
-# Autogenerated sample config file
-etc/watcher/watcher.conf.sample
-
-# Atom
-.remote-sync.json
diff -pruN 15.0.0-2/.gitreview 2:15.0.0-0ubuntu1/.gitreview
--- 15.0.0-2/.gitreview	2025-09-11 20:57:34.000000000 +0000
+++ 2:15.0.0-0ubuntu1/.gitreview	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-[gerrit]
-host=review.opendev.org
-port=29418
-project=openstack/watcher.git
diff -pruN 15.0.0-2/AUTHORS 2:15.0.0-0ubuntu1/AUTHORS
--- 15.0.0-2/AUTHORS	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/AUTHORS	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1,220 @@
+98k <18552437190@163.com>
+Akihito INOH <aki-inou@rs.jp.nec.com>
+Alexander Chadin <a.chadin@servionica.ru>
+Alexander Chadin <aschadin@sbcloud.ru>
+Alexandr Stavitskiy <stavitskiy@servionica.ru>
+Alfredo Moralejo <amoralej@redhat.com>
+Amy Fong <amy.fong@windriver.com>
+Andrea Frittoli <andrea.frittoli@gmail.com>
+Andreas Jaeger <aj@suse.com>
+Andreas Jaeger <jaegerandi@gmail.com>
+Antoine Cabot <antoine.cabot@b-com.com>
+Anton Khaldin <anton.haldin@gmail.com>
+Atul Pandey <atul.pandey@nectechnologies.in>
+Bin Zhou <zhou.bin9@zte.com.cn>
+Biswajeeban Mishra <mishra@inf.u-szeged.hu>
+Bruno Grazioli <bwg_bruno@hotmail.com>
+BubaVV <vmarkov@mirantis.com>
+Béla Vancsics <vancsics@inf.u-szeged.hu>
+Cao Xuan Hoang <hoangcx@vn.fujitsu.com>
+Chandan Kumar (raukadah) <chkumar@redhat.com>
+Chandan Kumar <chkumar@redhat.com>
+ChangBo Guo(gcb) <eric.guo@easystack.cn>
+Chaozhe.Chen <chaozhe.chen@easystack.cn>
+Chris MacNaughton <chris.macnaughton@canonical.com>
+Chris Spencer <christopher.m.spencer@intel.com>
+Clark Boylan <clark.boylan@gmail.com>
+Daniel Pawlik <daniel.pawlik@corp.ovh.com>
+Dantali0n <info@dantalion.nl>
+Dao Cong Tien <tiendc@vn.fujitsu.com>
+Darren Shaw <ds354m@att.com>
+David TARDIVEL <David.TARDIVEL@b-com.com>
+Doug Hellmann <doug@doughellmann.com>
+Douglas Viroel <dviroel@redhat.com>
+Douglas Viroel <viroel@gmail.com>
+Drew Thorstensen <thorst@us.ibm.com>
+Edwin Zhai <edwin.zhai@intel.com>
+Egor Panfilov <erakli00@gmail.com>
+Erik Olof Gunnar Andersson <eandersson@blizzard.com>
+Fanis Kalimullin <fmkalimullin@gmail.com>
+Feng Shengqin <feng.shengqin@zte.com.cn>
+Flavio Percoco <flaper87@gmail.com>
+ForestLee <lichl@hotmail.com>
+Ghanshyam Mann <gmann@ghanshyammann.com>
+Guang Yee <guang.yee@suse.com>
+Gábor Antal <antal@inf.u-szeged.hu>
+Ha Van Tu <tuhv@vn.fujitsu.com>
+Hervé Beraud <hberaud@redhat.com>
+Hidekazu Nakamura <hid-nakamura@vf.jp.nec.com>
+Hoang Trung Hieu <hieuht@vn.fujitsu.com>
+Ian Wienand <iwienand@redhat.com>
+Iswarya_Vakati <v.iswarya@nectechnologies.in>
+Jaewoo Park <jp655p@att.com>
+James E. Blair <jeblair@redhat.com>
+James Page <james.page@canonical.com>
+Jaromir Wysoglad <jwysogla@redhat.com>
+Jean-Emile DARTOIS <jean-emile.dartois@b-com.com>
+Jeremy Liu <liujiong@gohighsec.com>
+Jiri Podivin <jpodivin@redhat.com>
+Joe Cropper <jwcroppe@us.ibm.com>
+Ken'ichi Ohmichi <ken-oomichi@wx.jp.nec.com>
+Kevin_Zheng <zhengzhenyu@huawei.com>
+Kien Nguyen <kiennt@vn.fujitsu.com>
+Lance Bragstad <lbragstad@gmail.com>
+Larry Rensing <lr699s@att.com>
+LiXiangyu <lixiangyu@cmss.chinamobile.com>
+Lin Yang <lin.a.yang@intel.com>
+Lucian Petrut <lpetrut@cloudbasesolutions.com>
+Luigi Toscano <ltoscano@redhat.com>
+Luong Anh Tuan <tuanla@vn.fujitsu.com>
+M V P Nitesh <m.nitesh@nectechnologies.in>
+Margarita Shakhova <mbshakhova.sbt@sberbank.ru>
+Martin Kopec <mkopec@redhat.com>
+Matt Riedemann <mriedem.os@gmail.com>
+Michael Gugino <michael.gugino@walmart.com>
+Michelle Mandel <mmandel@us.ibm.com>
+Muzammil Mueen <muzammil.mueen@gmail.com>
+Ngo Quoc Cuong <cuongnq@vn.fujitsu.com>
+Nguyen Hai <nguyentrihai93@gmail.com>
+Nguyen Hai Truong <truongnh@vn.fujitsu.com>
+Nguyen Hung Phuong <phuongnh@vn.fujitsu.com>
+Nishant Kumar <nishant.e.kumar@ericsson.com>
+OpenStack Release Bot <infra-root@openstack.org>
+Palimariu Marius <palimarium@gmail.com>
+Pradeep Kumar Singh <ps4openstack@gmail.com>
+Prashanth Hari <prashanth.hari@walmart.com>
+Prudhvi Rao Shedimbi <prudhvi.rao.shedimbi@intel.com>
+Q.hongtao <qihongtao@inspur.com>
+Quang Ngo <quang.ngo@canonical.com>
+Ralf Rantzau <rrantzau@cisco.com>
+Ronelle Landy <rlandy@redhat.com>
+Sampath Priyankara <sam47priya@gmail.com>
+Santhosh Fernandes <santhosh.fernandes@gmail.com>
+Sean McGinnis <sean.mcginnis@gmail.com>
+Sean Mooney <work@seanmooney.info>
+ShangXiao <shangxiaobj@inspur.com>
+Steve Kowalik <steven@wedontsleep.org>
+Steve Wilkerson <sw5822@att.com>
+Sumit Jamgade <sjamgade@suse.com>
+Susanne Balle <sleipnir012@gmail.com>
+Swapnil Kulkarni (coolsvap) <me@coolsvap.net>
+Takashi Kajinami <kajinamit@oss.nttdata.com>
+Takashi Kajinami <tkajinam@redhat.com>
+Takashi Natsume <takanattie@gmail.com>
+Tatiana Kholkina <holkina@selectel.ru>
+Taylor Peoples <tpeoples@us.ibm.com>
+Thierry Carrez <thierry@openstack.org>
+Tin Lam <tl3438@att.com>
+Tobias Urdin <tobias.urdin@binero.com>
+Tobias Urdin <tobias.urdin@binero.se>
+Tomasz Kaczynski <tomasz.kaczynski@intel.com>
+Tomasz Trębski <tomasz.trebski@ts.fujitsu.com>
+Viacheslav Samarin <samarin@servionica.ru>
+Viktor Varga <vvarga@inf.u-szeged.hu>
+Vincent Françoise <Vincent.FRANCOISE@b-com.com>
+Vladimir Ostroverkhov <ostroverkhov@servionica.ru>
+Vu Cong Tuan <tuanvc@vn.fujitsu.com>
+XiaojueGuan <guanalbertjone@gmail.com>
+XieYingYun <smokony@sina.com>
+Yaguo Zhou <zhouyaguo@gmail.com>
+Yatin Kumbhare <yatinkumbhare@gmail.com>
+Yosef Hoffman <yh128t@att.com>
+Yumeng Bao <yumeng_bao@yahoo.com>
+YumengBao <bao.yumeng@zte.com.cn>
+Yumeng_Bao <yumeng_bao@yahoo.com>
+Zhenyu Zheng <zheng.zhenyu@outlook.com>
+Zhenzan Zhou <zhenzan.zhou@intel.com>
+aditi <adi.sky17@gmail.com>
+aditi <aditi.s@nectechnologies.in>
+afanasev.s <afanasev.s@selectel.ru>
+akhiljain23 <akhil.jain@india.nec.com>
+akihito-inoh <aki-inou@rs.jp.nec.com>
+avnish <avnish.pal@nectechnologies.in>
+baiwenteng <baiwenteng@inspur.com>
+caoyuan <cao.yuan@99cloud.net>
+chao liu <liuc@rc.inesa.com>
+chenaidong1 <chen.aidong@zte.com.cn>
+chengebj5238 <chengebj@inspur.com>
+chenghuiyu <yuchenghui@unionpay.com>
+chenke <chen.ke14@zte.com.cn>
+chenker <chen.ke14@zte.com.cn>
+chenming <chenm30@chinaunicom.cn>
+chenxing <chason.chan@foxmail.com>
+cima <cima@zhaw.ch>
+deepak_mourya <deepak.mourya@nectechnologies.in>
+digambar <digambarpatil15@yahoo.co.in>
+ericxiett <eric_xiett@163.com>
+gaofei <gao.fei@inspur.com>
+gaozx <zxgao@fiberhome.com>
+gecong1973 <ge.cong@zte.com.cn>
+gengchc2 <geng.changcai2@zte.com.cn>
+ghanshyam <gmann@ghanshyammann.com>
+haris tanvir <haristanvir@hotmail.com>
+howardlee <lihongweibj@inspur.com>
+inspurericzhang <zhanglf01@inspur.com>
+iswarya_vakati <v.iswarya@nectechnologies.in>
+jacky06 <zhang.min@99cloud.net>
+jaugustine <ja224e@att.com>
+jeremy.zhang <zhangjun_inspur@163.com>
+jgilaber <jgilaber@redhat.com>
+jinquanni <ni.jinquan@zte.com.cn>
+junjie huang <junjie.huang@intel.com>
+licanwei <li.canwei2@zte.com.cn>
+limin0801 <limin.lc@inspur.com>
+lingyongxu <lyxu@fiberhome.com>
+liushuobj <liushuobj@inspur.com>
+liyanhang <liyh@gohighsec.com>
+lvxianguo <lvxianguo@inspur.com>
+m <mandreou@redhat.com>
+maaoyu <maaoyu@inspur.com>
+melissaml <ma.lei@99cloud.net>
+mergalievibragim <mer_eng@mail.ru>
+morenod <dsanzmor@redhat.com>
+pangliye <pangliye@inspur.com>
+pengyuesheng <pengyuesheng@gohighsec.com>
+qinchunhua <qin.chunhua@zte.com.cn>
+qiufossen <qiujunting@inspur.com>
+rajat29 <rajat.sharma@nectechnologies.in>
+ricolin <rico.lin@easystack.cn>
+ricolin <ricolin@ricolky.com>
+root <songwenping@inspur.com>
+sai <saigandham467@gmail.com>
+shangxiaobj <shangxiaobj@inspur.com>
+sharat.sharma <sharat.sharma@nectechnologies.in>
+shubhendu <shubhendu.poothia@nectechnologies.in>
+songwenping <songwenping@inspur.com>
+sue <sugar-2008@163.com>
+sunjia <sunjia@inspur.com>
+suzhengwei <sugar-2008@163.com>
+suzhengwei <suzhengwei@inspur.com>
+the.bling <sudhansu.banerjee@outlook.com>
+ting.wang <ting.wang@easystack.cn>
+unknown <w00345332@szxbz243.huaweiobz.com>
+vmahe <vincent.mahe@b-com.com>
+wangjiaqi07 <wangjiaqi07@inspur.com>
+wangqi <wang.qi@99cloud.net>
+wangxiyuan <wangxiyuan@huawei.com>
+wangzihao <wangzihao@yovole.com>
+watanabe isao <watanabe.isao.openstack@gmail.com>
+weiweigu <gu.weiwei@zte.com.cn>
+wu.chunyang <wu.chunyang@99cloud.net>
+wu.chunyang <wuchunyang@yovole.com>
+xiaoxue <pisces.giu@gmail.com>
+xuanyandong <xuanyandong@inspur.com>
+yanxubin <xbyan@fiberhome.com>
+yuhui_inspur <yuhui@inspur.com>
+zhang.lei <zhang.lei@99cloud.net>
+zhangbailin <zhangbailin@inspur.com>
+zhangdebo <zhangdebo@inspur.com>
+zhangguoqing <zhang.guoqing@99cloud.net>
+zhangjianfeng <kill51216@163.com>
+zhangyanxian <zhang.yanxian@zte.com.cn>
+zhangyanxian <zhangyanxianmail@163.com>
+zhengwei6082 <zhengwei6082@fiberhome.com>
+zhoulinhui <df.some@foxmail.com>
+zhufl <zhu.fanglei@zte.com.cn>
+zhulingjie <easyzlj@gmail.com>
+zhurong <aaronzhu1121@gmail.com>
+zhuzeyu <zhu.zeyu@zte.com.cn>
+zte-hanrong <han.rong3@zte.com.cn>
+鲍昱蒙00205026 <00205026@zte.intra>
diff -pruN 15.0.0-2/ChangeLog 2:15.0.0-0ubuntu1/ChangeLog
--- 15.0.0-2/ChangeLog	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/ChangeLog	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1,1718 @@
+CHANGES
+=======
+
+15.0.0
+------
+
+* Handle missing dst\_pool parameter in zone\_migration
+* Enable storage model collector by default
+* Add 2025.2 release notes prelude
+* Update prometheus-threading parent jop
+* Check result of retype action based on type and status
+* Fix doc section to enable cinder notifications
+* Make Monasca client optional and lazy-load
+* Allow status\_message updates for actions in SKIPPED state
+* Update aetos fake data job to disable real metrics
+* Rename confusing query timeout options
+* Extend compute model attributes
+* Follow up changes for skip-action blueprint
+* Fix missing watcher\_workflow\_engines.taskflow section
+* Fix type mismatch between option and its default
+* Update Overload standard deviation doc
+* Add options to disable migration in host maintenance
+* Fix NovaHelper microversion comparison
+* API changes for skipped actions: patch actions and status\_message
+* Skip actions automatically based on pre\_condition results
+* Validate endpoint\_type option at loading
+* Add \`status\_message\` to objects and notifications
+* Add \`status\_message\` column to Actions, Audits and ActionPlans tables
+* Add parameters to force failures in nop action
+* Add patch call validation based on allowed\_attrs
+* use cinder migrate for swap volume
+* Add Aetos datasource
+* Add new tests to validate GET /infra-optim/v1/data\_model
+* Fix api-ref doc for GET /infra-optim/v1/data\_model
+* Add a new tox environment to run unit tests in threading mode
+* Extend decision engine to support threading mode
+* Replace dateutils usage with datetime and oslo.utils
+* Disable real metrics on devstack injected data jobs
+* Configure watcher tempest's microversion in devstack
+* finalize python 3.9 support removal
+* Add comprehensive release liaison guide for DPL model
+* Fix release notes typo and extra information
+* Drop Code related to OperationNotPermitted exception
+* Drops forbidden patch/delete/post action apis
+* sqlalchemy: Use built-in declarative
+* Drop unused fake class
+* Add crosslinks to strategies table
+* Update workload balance doc per review comments
+* Add doc clarifications for Zone Migration
+* Update Host Maintenance strategy documentation
+* Use KiB as unit for host\_ram\_usage when using prometheus datasource
+* Add debug message to report calculated metric for workload\_balance
+* Add table - level of test/usage per strategy
+* Aggregate by label when querying instance cpu usage in prometheus
+* Drop unused method get\_disabled\_compute\_nodes\_with\_reason
+* Move eventlet command scripts to a different dir
+* Add warning message for experimental integrations
+* Update Workload Balance strategy documentation
+* Add Integrations doc page with support matrix
+* Fix audit creation with no name and no goal or audit\_template
+* Adapt zuul.yaml strategies jobs to include tests with tag 'strategy'
+* devstack: Drop template for mod\_wsgi
+* Set actionplan state to FAILED if any action has failed
+* Add unit test zone migration with\_attached\_volume
+* Drop sg\_core related prometheus var
+* add missing bindeps for docs
+* resolve fixme comments in RequestContext
+* update tests for new oslo.context release
+* Handle missing dst\_node parameter in zone\_migration
+* Added unit test to validate audit creation with no goal and no name
+* Add unit test to check action plan state when a nested action fails
+* Return HTTP code 400 when creating an audit with wrong parameters
+* Add test for missing destination in zone migration
+* Fix incorrect logging format
+* Check logs in some cinder and nova helper tests
+* Add a unit test to check the error when creating an audit with wrong parameters
+* Drop code from Host maintenance strategy migrating instance to disabled hosts
+* Remove deprecated executor in message handling servers
+* Migrate value column of efficacy indicator on load
+* Drop nova command reference from the code
+* Deprecated Noisy Neighbor strategy
+* Set keystone\_client default interface to public
+* Set number of decimal digits in efficacy indicator
+* Add test for EfficacyIndicator value in mysql
+* drop jammy jobs
+* drop suse supprot in the devstack plugin
+* update pre-commit hook versions
+* Add support for pyproject.toml and wsgi module paths
+* [host\_maintenance] Pass des hostname in add\_action solution
+* Make prometheus the default devstack example
+* Add real-data based tests to experimental and weekly pipelines
+* Drop sg\_core prometheus related vars
+* Aggregate by fqdn label instead instance in host cpu metrics
+* Replace watcherclient functional job with python-watcherclient-functional
+* Imported Translations from Zanata
+* Query by fqdn\_label instead of instance for host metrics
+* Update master for stable/2025.1
+
+14.0.0
+------
+
+* Do not collect node\_exporter cpu metrics in prometheus job
+* Add epoxy prelude
+* Replace deprecated abc.abstractproperty
+* Drop implicit test dependency on iso8601
+* Enable prometheus datasource in watcher-prometheus-integration job
+* Enable prometheus and node\_exporter from devstack-plugin-prometheus
+* Deprecate Monasca data source
+* Further database refactoring
+* pre-commit: Integrate bandit
+* Remove unused os-api-ref from test requirements
+* Drop import fallback for Python 2
+* Add support for instance metrics to prometheus datasource
+* Drop bandit B320 profile to fix tox -e bandit interface
+* Add Tempest test for Prometheus integration
+* Add prometheus data source for watcher decision engine
+* Imported Translations from Zanata
+* Remove ceilometer datasource
+* X-Project-Name key in test code was duplicated
+* Fix create\_continuous\_audit\_with\_wrong\_interval test assert
+* Update gate jobs as per the 2025.1 cycle testing runtime
+* Fix incompatiablity between apscheduler and eventlet
+* [pre-commit] enforce pre-commit checks in ci
+* [docs] apply sphinx-lint to docs
+* Replace deprecated configure\_auth\_token\_middleware
+* reno: Update master for unmaintained/2023.1
+* Remove default override for config options policy\_file
+* [pre-commit] Fix execute and shebang lines
+* [eventlet] Ensure unit tests are monkey patched
+* [tox] update tox.ini to enable debugging
+* [pre-commit] fix typos and configure codespell
+* Update python versions, drop py3.8
+* Update master for stable/2024.2
+* Drop unnecessary 'x' bit from doc config file
+* Run watcher-db-manage in grenade testing from venv
+* [pre-commit] Add initial pre-commit config
+* tox: Drop envdir
+* Replace deprecated datetime.utcnow()
+* Remove workaround for eventlet < 0.27.0
+* Convert CRLF to LF
+* Bump hacking
+* Replace deprecated LegacyEngineFacade
+
+13.0.0
+------
+
+* Imported Translations from Zanata
+* SQLAlchemy 2.0: Omnibus fixes patch
+* reno: Update master for unmaintained/zed
+* Fix oslo.db >= 15.0.0 compatibility
+* Update master for stable/2024.1
+* reno: Update master for unmaintained/xena
+* reno: Update master for unmaintained/wallaby
+* reno: Update master for unmaintained/victoria
+* reno: Update master for unmaintained/yoga
+
+12.0.0.0rc1
+-----------
+
+* Update python classifier in setup.cfg
+* Add MAAS support
+* Update action json schema
+* Fix object tests
+* vm workload consolidation: use actual host metrics
+* Handle deprecated "cpu\_util" metric
+* Avoid performing retries in case of missing resources
+* Improve vm\_consolidation logging
+* vm workload consolidation: allow cold migrations
+* Unblock the CI gate
+* Update master for stable/2023.2
+
+11.0.0
+------
+
+* Add timeout option for Grafana request
+* Imported Translations from Zanata
+* Fix watcher comment
+* Imported Translations from Zanata
+* Update master for stable/2023.1
+
+10.0.0
+------
+
+* update saving\_energy docs
+* Modify saving\_energy log info
+* Fix passenv in tox.ini
+* Use new get\_rpc\_client API from oslo.messaging
+* Move queue declaration to project level
+* Fix compatibility with oslo.db 12.1.0
+* Switch to 2023.1 Python3 unit tests and generic template name
+* Update master for stable/zed
+
+9.0.0.0rc1
+----------
+
+* Imported Translations from Zanata
+* remove unicode from code
+* Tests: fix requirements for unit tests
+* Watcher DB upgrde compatibility consideration for add\_apscheduler\_jobs
+* Add Python3 zed unit tests
+* Update master for stable/yoga
+
+8.0.0
+-----
+
+* Remove ceilometerclient dependecy
+* Add Python3 yoga unit tests
+* Update master for stable/xena
+
+7.0.0
+-----
+
+* BugFix:  Prevent float type variables from being passed to random
+* Use Block Storage API v3 instead of API v2
+* use HTTPStatus instead of direct code
+* Add watcher dashboard to devstack documentation
+* Changed minversion in tox to 3.18.0
+* Manage constraints with testenv install\_command
+* Use py3 as the default runtime for tox
+* Enable tls-proxy as default in test jobs
+* setup.cfg: Replace dashes with underscores
+* Replace deprecated with\_lockmode with with\_for\_update
+* Add Python3 xena unit tests
+* Update master for stable/wallaby
+* requirements: Drop os-testr
+
+6.0.0
+-----
+
+* [goal] Deprecate the JSON formatted policy file
+* Fix gate requirement checks job
+* incorrect name in unit test
+* Use common rpc pattern for all services
+* Drop lower-constraints
+* remove bandit B322 check
+* Fix missing self argument in instances\_no\_attached
+* Fix parameter passed to IronicNodeNotFound exception
+* Imported Translations from Zanata
+* Remove the unused coding style modules
+* Remove usage of six
+* Bump py37 to py38 in tox.ini
+* Remove six
+* Add Python3 wallaby unit tests
+* Update master for stable/victoria
+* [goal] Migrate testing to ubuntu focal
+
+5.0.0
+-----
+
+* Use importlib to take place of im module
+* Implements base method for time series metrics
+* Native Zuul v3 watcher-grenade job + some cleanup
+* option to rollback action\_plan when it fails
+* resize action don't support revert
+* Watcher API supports strategy name when creating audit template
+* Revert "Don't revert Migrate action"
+* remove mox3
+* voting watcher-grenade
+* Check if scope is None
+* Use uwsgi binary from path and mark grenade non-voting
+* Use unittest.mock instead of mock
+* Cap jsonschema 3.2.0 as the minimal version
+* Compatible with old scope format
+* Use unittest.mock instead of third party mock
+* Switch to newer openstackdocstheme and reno versions
+* Fix requirements check
+* Remove translation sections from setup.cfg
+* hacking: force explicit import of python's mock
+* Use unittest.mock instead of third party mock
+* Fix hacking min version to 3.0.1
+* Monkey patch original current\_thread \_active
+* Add py38 package metadata
+* Remove future imports
+* Remove Babel requirement
+* Imported Translations from Zanata
+* Add Python3 victoria unit tests
+* Update master for stable/ussuri
+* Remove six[8] remove requirement&low-requirement
+* Remove six[7]
+
+4.0.0.0rc1
+----------
+
+* convert EfficacyIndicator.value to float type
+* Remove six[6]
+* Remove six[5]
+* Remove six[4]
+* Remove six[3]
+* Remove six[2]
+* Remove six[1]
+* update description about audit argument interval
+* remove wsmeext.sphinxext
+* Cleanup py27 support
+* Block Sphinx 3.0.0
+* Update hacking for Python3
+* Removed py27 in testing doc
+* Add procname for uwsgi based service watcher-api
+* just set necessary config options
+* simplify doc directory
+* Add config option enable\_webhooks\_auth
+* api-ref: Add webhook API reference
+* Doc: Add EVENT audit description
+* Community Goal: Project PTL & Contrib Docs Update
+* Add api version history
+* releasenotes: Fix reference url
+* Add releasenote for event-driven-optimization-based
+* doc: move Concurrency doc to admin guide
+* doc for event type audit
+* Move install doc to user guide
+* Update user guide doc
+* Add webhook api
+* Fix duplicated words issue like "an active instance instance"
+* Add audit type: event
+* Add list datamodel microversion to api-ref
+* Add a new microversion for data model API
+* Releasenote for decision engine threadpool
+* Use enum class define microversions
+* Start README.rst with a better title
+* Change self.node to self.nodes in model\_root
+* Documentation on concurrency for contributors
+* replace host\_url with application\_url
+* Migrate grenade jobs to py3
+* [ussuri][goal] Drop python 2.7 support and testing
+* Refactoring the codes about getting used and free resources
+* Use threadpool when building compute data model
+* General purpose threadpool for decision engine
+* tox: Keeping going with docs
+* Switch to Ussuri jobs
+* Don't throw exception when missing metrics
+* Remove print()
+* Update master for stable/train
+
+3.0.0.0rc1
+----------
+
+* Fix damodel list return None error When has a compute node
+* Fix misspelling
+* skip deleted instance when creating datamodel
+* Fix unit test failed
+* Watcher planner slector releasenote
+* Set strategy planner
+* Get planner from solution
+* Build pdf docs
+* update test about cinderclient v1
+* correct watcher project for oslo\_config
+* Add node resource consolidation planner
+* Watcher Planner Selector
+* Add releasenote about bp show-datamodel-api
+* node resource consolidation
+* Fix misspell word
+* Remove redundant word 'strategy'
+* Add node\_resource\_consolidation doc
+* Add watcher-specs link to readme.rst
+* Add get node used and free resources
+* Implement watcher datamodel list in watcher-api
+* Implement watcher datamodel list in watcher-decision-engine
+* Add api-ref doc for data model api
+* add audit parameter to do\_execute
+* improve strategies tempest
+* add placement min\_microversion
+* set compute min\_microversion
+* [train][goal] Define new 'watcher-tempest-functional-ipv6-only' job
+* Remove unused disk\_capacity field
+* Don't revert Migrate action
+* update workload\_balance strategy
+* update node resource capacity for basic\_consolidation
+* update host\_maintenance strategy
+* update noisy\_neighbor strategy
+* update outlet\_temp\_control strategy
+* add releasenote for bp improve-compute-data-model
+* update vm\_workload\_consolidation strategy
+* Remove resource used fields from ComputeNode
+* Fix var src\_extra\_specs error
+* Remove stale comment in method execute()
+* Add resource capacity property
+* Getting data from placement when updating datamodel
+* replace disk\_capacity by disk
+* set disk field to disk capacity
+* Check resource class before using
+* remove id field from CDM
+* Update api-ref location
+* Improve Compute Data Model
+* Add call\_retry for ModelBuilder for error recovery
+* Remove useless gconfig process in watcher/api/scheduling.py
+* Optimize method list\_opts() in watcher/conf/opts.py
+* Fix watcher/conf/applier.py default worker value
+* Remove useless \_opts.py
+* Baseclass for ModelBuilder with audit scope
+* Move datasources folder into decision\_engine
+* Add reource\_name for save\_energy in action input parameter field
+* Add get\_compute\_node\_by\_uuid
+* Resolve aggregate error in workload\_stabilization
+* Remove redundant human\_id fields when creating and updating datamodel
+* Replace human\_id with name in grafana doc
+* Add marker option for get\_instance\_list()
+* remove baremetal nodes when building CDM
+* Add reource\_name for zone\_migration in action input parameter field
+* Grafana proxy datasource to retrieve metrics
+* Add reource\_name in action input parameter field
+* Add get\_node\_by\_name
+* Reduce the query time of the instances when call get\_instance\_list()
+* remove baremetal nodes from hypversior list
+* Remove notifier\_driver option in Watcher devstack
+* Improve logging in building of nova data model
+* Releasenote for grafana datasource
+* improve OptGroup consistency across configuration
+* Blacklist sphinx 2.1.0 (autodoc bug)
+* Add Python 3 Train unit tests
+* Fix invalid assert states
+* Add name field for test data
+* Add uWSGI support
+* Add name for instance in Watcher datamodel
+* Documentation configuring grafana datasource
+* Configure nova notification\_format for grenade
+* Fix placement\_client group help docs generation
+* Improve the configuration parameters for grafana
+* Configure nova notification format in non-grenade CI jobs
+* improve the process of instance\_created.end
+* remove tail\_log
+* Update strategy doc
+* Implement the configuration for Grafana datasource
+* Fix missing print format
+* typo ceilometer url
+* Replace removed exceptions and prevent regression
+* Define a new InstanceNotMapped exception
+* Move datasource query\_retry into baseclass
+* Fix base enable\_plugin branch for grenade run
+* Remove dead code
+* Map instance to its node
+* update contraints url
+* Backwards compatibility for node parameter
+* Fix property access in test\_global\_preference\* tests
+* Add Placement helper
+* Cleanup ConfFixture
+* Fix string formatting
+* check instance state for instance.update
+* add strategy tempest job
+* Remove apidoc
+* Optimize NovaHelper.get\_compute\_node\_by\_hostname
+* Optimize hypervisor API calls
+* Add missing ws separator between words
+* Group instance methods together in nova\_helper
+* Audit API supports new force option
+* Optimize NovaClusterDataModelCollector.add\_instance\_node
+* Fix test\_metric\_file\_override metric from backend
+* Add force field to Audit
+* Remove 2.56 version compatibility check
+* Require nova\_client.api\_version >= 2.56
+* Improve exceptions and logging in ds manager
+* Improve DevStack documentation to support metrics
+* formal datasource interface implementation
+* Improve Gnocchi and Monasca datasource tests
+* Allow using file to override metric map
+* support-keystoneclient-option
+* Fix typo in ceilometer datasource
+* Handle no nova CDM in notification code
+* Remove unused utilities file
+* Update migration notification
+* Remove bandit from lower-constraints
+* Update Sphinx requirement
+* Fix Stein version in watcher-status docs
+* Add doc/requirements.txt to venv tox target
+* Remove dead code from NovaClusterDataModelCollector
+* Enhance the collector\_plugins option help text
+* Use base\_strategy's add\_action\_migrate method
+* Fix\_inappropriate\_name
+* update api version history
+* allow building docs without ceilometer client
+* pass default\_config\_dirs variable for config initialization
+* docs: fix link to install guide from user guide
+* Remove watcher.openstack.common=WARN from \_DEFAULT\_LOG\_LEVELS
+* Add force field to api-ref
+* Fix API version header
+* Remove unused exceptions
+* Fix bandit runs with 1.6.0
+* Allow for global datasources preference from config
+* Use the common logging setup function in devstack runs
+* Fix reraising of exceptions
+* Using node replace resource\_id in method add\_action\_disable\_node()
+* Put the method add\_migration() in base.py
+* update wsme types
+* Add tempest voting
+* Resolve problems with audit scope and add tests
+* Replace git.openstack.org with opendev.org
+* Add hardware.cpu\_util in workload\_stabilization
+* Drop use of git.openstack.org
+* OpenDev Migration Patch
+* separate launching audit scheduler
+* Replace HOST\_IP to SERVICE\_HOST
+* remove py35
+* Uncap jsonschema
+* Fix docs gate failed
+* Adapt Watcher to Python3.7
+* Move eventlet monkey patch code
+* Fix lower-constraint deps handling
+* Fix openstack-tox-lower-constraint TIMED\_OUT Error
+* Update meeting schedule to new bi-weekly format
+* Make datasource methods match names of metrics
+* Replace openstack.org git:// URLs with https://
+* Imported Translations from Zanata
+* Update master for stable/stein
+
+2.0.0
+-----
+
+* Move client function test to watcher-tempest-plugin
+* Access to action's uuid by key
+* Migrate legacy jobs to Ubuntu Bionic
+* releasenote for data model scope
+* Fix unittest failed
+* Remove unused type check 'int' in audit.py
+* Generalize exceptions & structure of strategies
+* scope for datamodel
+* Fix inappropriate description about the audit\_state\_machine.png
+*     improve \_collect\_aggregates
+* Provide two arguments to exception's message
+* make ceilometer client import optional
+* Fix uniform airflow strategy config parameter
+* Fix outlet\_temp\_control config parameter
+* remove config parameter 'datasource'
+* Add the define of vm\_workload\_consolidation job
+* change config parameter from 'datasource' to 'datasources'
+* Move datasources metric mappings out of base.py
+* function get\_sd return 0 early if len(hosts) is 0
+* Update storage\_balance job
+* Add storage balance job
+* Update user guide
+* Fix E731 error
+* trivial
+* [Trivial fix] Do not use self in classmethod
+* Add grenade job
+* Update hacking version
+* Add version api ref
+* update api-ref for audit start/end time
+* Use template for lower-constraints
+* Remove unused modules
+* Add host maintenance tempest
+* Fix mailing list archive URL
+* Fix stop\_watcher function
+* Deprecate Ceilometer Datasource
+* Fix doc about nova notifications
+* Remove hostname-related playbooks
+* audit create request can't set scope
+* Change openstack-dev to openstack-discuss channel
+* Increase the unit test coverage of host\_maintenance.py
+* update doc for install ubuntu
+* Fix spelling error in the comments of file host\_maintenance.py
+* Add audit scoper for baremetal data model
+* Increase the unit test coverage of vm\_workload\_consolidation.py
+* Fix audit\_template\_uuid description
+* start tls-proxy (if enabled) before checking for api
+* remove older api doc
+* Add missing ws separator between words
+* Update doc for vm\_workload\_consolidation strategy
+* Increase the unit test coverage of cinder\_helper.py
+* Increase the unit test coverage of nova\_helper.py
+* Fix version header in the response
+* Enhance Watcher Applier Engine
+* Remove unsuitable brackets
+* Imported Translations from Zanata
+* To avoid ambiguity for flavor\_id
+* Fix accessing to optional cinder pool attributes
+* Add cover job
+* Remove redundant docstring
+* optimize get\_instances\_by\_node
+* Adjust the same format as above
+* Make watcherclient-tempest-functional test non-voting
+* Add detailed unit test documentation for watcher
+* Update min tox version to 2.0
+* Fix parameter type for cinder pool
+* update datamodel by nova notifications
+* API Microversioning
+* remove set\_host\_offline
+* Watcher doesn't need paramiko
+* Don't need nova notifications
+* Fix oslo\_versionedobjects warnings
+* Add framework for watcher-status upgrade check
+* Update documentation regarding DataSource for strategies
+* Use limit -1 for nova servers list
+* tenant\_id should be project\_id in instance element
+* add start and end time for continuous audit
+* Remove uses of rpc\_backend (oslo\_config)
+* Don't quote {posargs} in tox.ini
+* Do not pass www\_authenticate\_uri to RequestContext
+* remove nova legacy notifications
+* Fix link to Watcher API
+* Fix audit creation with named goal and strategy
+* Provide region name while initialize clients
+* Add efficacy indicators for workload\_stabilization strategy
+* ignore .testrepository
+* Fix wrong audit scope
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* Follow the new PTI for building docs
+* Imported Translations from Zanata
+* Remove warning log in common.context
+* Remove hosts if can't find hosts in host agrregate
+* Fix goal method in policy
+* import zuul job settings from project-config
+* Remove -u root as mysql is executed with root user
+* Improve logs of Workload Stabilization strategy
+* Imported Translations from Zanata
+* Add hostname to API Reference
+* Update reno for stable/rocky
+
+1.12.0
+------
+
+* Fix TypeError in LOG.debug
+* fix unit test:test\_execute\_audit\_with\_interval\_no\_job
+* improve strategy doc
+* remove get\_flavor\_instance
+* Fix unittest MismatchError
+* only check decision engine service
+* remove extra'\_' and space
+* remove voluptuous
+* Update watcher-db-manage help doc
+* Fix strategies with additional time to initialize CDM
+* Add apscheduler\_jobs table to models
+* Fix AttributeError exception
+
+1.11.0
+------
+
+* Rescheduling continuous audits from FAILED nodes
+* Add HA support
+* Add noisy neighbor strategy doc
+* Fix service task interval
+* Add noisy neighbor description
+* remove LOG definitions that have not been used
+* trivial: fix strategy name
+* update Ubuntu version from 14.04 to 16.04
+* Update host\_maintenance doc
+* Check job before removing it
+* update monascaclient version
+* Sync CDM among Decision Engines by using notification pool
+* Add actionplan list detail api ref
+* Remove help message about ZeroMQ driver
+* Switch to stestr
+* Remove non-voting jobs from gate queue
+* Remove undefined job
+* Triggers the api-ref-jobs to publish wather api reference
+* Fix unit test error
+* Use jsonschema to validate efficacy indicators
+* fix the rule name
+* Correcting url in action\_plan policy
+
+1.10.0
+------
+
+* fix tox python3 overrides
+* replace windows line endings with unix line endings
+* Restore requirements versions
+* Switch to oslo\_messaging.ConfFixture.transport\_url
+* Add API Reference for Watcher
+* Amend the spelling error of a word
+* add doc for host\_maintenance
+* Update pypi url to new url
+* Update storage CDM collector
+* Replace port 35357 with 5000 for test\_clients.py
+* Add Cinder Cluster Data Model Collector test case
+* add strategy host\_maintenance
+* Trivial: update url to new url
+* Fix to reuse RabbitMQ connection
+* Refactor watcher API for Action Plan Start
+* Update auth\_url in install docs
+* Updated tests on bug, when get list returns deleted items
+* Fix the openstack endpoint create failed
+* Update the default value for nova api\_verison
+* Moved do\_execute method to AuditHandler class
+* Fix typo in StorageCapacityBalance
+* Grouped \_add\_\*\_filters methods together
+* Replace of private \_create methods in tests
+* Exclude Project By Audit Scope
+* add strategy doc:storage capacity balance
+* Update requirements
+
+1.9.0
+-----
+
+* add unittest for execute\_audit in audit/continuous.py
+* amend delete action policy
+* Replace cold migration to use Nova migration API
+* Add release notes link to README
+* Trivial fix of saving\_energy strategy doc
+* Update auth\_uri option to www\_authenticate\_uri
+* Added \_get\_model\_list base method for all get\_\*\_list methods
+* Trivial fix of user guide doc
+* zuulv3 optimization
+* Enable mutable config in Watcher
+* Several fixes of strategies docs
+* set one worker for watcherclient-tempest-functional job
+* Remove obsolete playbooks of legacy jobs
+* Updated from global requirements
+* add lower-constraints job
+* Replaced deprecated oslo\_messaging\_rabbit section
+* ZuulV3 jobs
+* Delete the unnecessary '-'
+* Fix sort of \*list command output
+* Remove version/date from CLI documentation
+* Adding driver to mysql connection URL
+* Updated from global requirements
+* ignore useless WARNING log message
+* Updated from global requirements
+* Add the missing markups for the hyperlink titles
+* Change the outdated links to the latest links in README
+* basic\_cons fix
+* Revert "Update OpenStack Installation Tutorial to Rocky"
+* Add parameter aggregation\_method for basic\_consolidation
+* Imported Translations from Zanata
+* Delete the unnecessary '-'
+* Update OpenStack Installation Tutorial to Rocky
+* Add parameter aggregation\_method for work\_stab
+* basic\_consolidation trivial fix
+* Fix Uuid and virtual\_free elements load error
+* Fix exception string format
+* Imported Translations from Zanata
+* Add the missing title of Configuration Guide
+* Fix change\_nova\_service\_state action
+* Updated Hacking doc
+* [Trivialfix]Modify a grammatical error
+* Fix old url links in doc
+* Add a hacking rule for string interpolation at logging
+* Complete schema of workload\_stabilization strategy
+* filter exclude instances during migration
+* Fix grammar errors
+* workload\_stabilization trivial fix
+* Updated from global requirements
+* Imported Translations from Zanata
+* Add support for networkx v2.0
+* Updated from global requirements
+* Fix some dead link in docs
+* Update meeting time on odd weeks
+* fix misspelling of 'return'
+* Add missing release notes
+* Imported Translations from Zanata
+* Update reno for stable/queens
+
+1.8.0
+-----
+
+* Zuul: Remove project name
+* Fix issues with aggregate and granularity attributes
+* Repalce Chinese double quotes to English double quotes
+* Fix get\_compute\_node\_by\_hostname in nova\_helper
+* Add zone migration strategy document
+* Updated from global requirements
+* Fixed AttributeError in storage\_model
+* Update zone\_migration comment
+* Zuul: Remove project name
+* Updated from global requirements
+* [Doc] Add actuator strategy doc
+* Imported Translations from Zanata
+* Remove redundant import alias
+* Fix strategy state
+* Add datasources to strategies
+
+1.7.0
+-----
+
+* Add baremetal strategy validation
+* Strategy requirements
+* Add zone migration strategy
+* Fix workload\_stabilization unavailable nodes and instances
+* Update unreachable link
+* Updated from global requirements
+* Fix compute api ref link
+* Adapt workload\_balance strategy to multiple datasource backend
+* Adapt noisy\_neighbor strategy to multiple datasource backend
+* Adapt basic\_consolidation strategy to multiple datasource backend
+* check audit name length
+* Audit scoper for storage CDM
+* Imported Translations from Zanata
+* Update link address
+* Fix tempest devstack error
+* Add storage capacity balance Strategy
+* Updated from global requirements
+* Adapt workload\_stabilization strategy to new datasource backend
+* Updated from global requirements
+* Update pike install supermark to queens
+* Add the title of API Guide
+* Fix compute scope test bug
+* Add baremetal data model
+* Set apscheduler logs to WARN level
+* Fix configuration doc link
+* update audit API description
+* update action API description
+* use current weighted sd as min\_sd when starting to simulate migrations
+* correct audit parameter typo
+* Updated from global requirements
+* Fix watcher audit list command
+* check actionplan state when deleting actionplan
+* TrivialFix: remove redundant import alias
+* check audit state when deleting audit
+* reset job interval when audit was updated
+* Updated from global requirements
+* Fix releasenotes build
+* Update getting scoped storage CDM
+* Updated from global requirements
+* Fix 'unable to exclude instance'
+* Register default policies in code
+* listen to 'compute.instance.rebuild.end' event
+
+1.6.0
+-----
+
+* Updated from global requirements
+* bug fix remove volume migration type 'cold'
+* Add and identify excluded instances in compute CDM
+* Server with PAUSE status can also live-migrate
+* Fix migrate action with migration\_type 'cold'
+* Updated from global requirements
+* Add Datasource Abstraction
+* Make gnocchi as default datasource
+* Updated from global requirements
+* Fix Bug Unable to get scoped data model
+* listen to 'compute.instance.resize.confirm.end' event
+* Notifications Changes Multiple Global Efficacy
+* 'get\_volume\_type\_by\_backendname' returns a list
+* Add app.wsgi to target of pep8
+* [Doc] Fix ubuntu version in devstack installation
+* Remove setting of version/release from releasenotes
+* Updated from global requirements
+* Updated from global requirements
+* Migrate to Zuul v3
+*  Fix test runner config issues with os-testr 1.0.0
+* Multiple global efficacy
+* Do not use “-y” for package install
+* check task\_state in the live\_migrate\_instance
+* Change HTTP to HTTPS
+* Updated from global requirements
+* Can't cancell CONTINUOUS audit
+* add name for audit, update audit notifications
+* Update doc and add release note about cdm-scoping
+* Update the useful links for Rally job
+* update API ref doc for ScoringEngine
+* Fix the strategy path of outlet\_temp\_control.py
+* Optimize the link address
+* Imported Translations from Zanata
+* Fix a typo
+* Unify the oslo\_log import usage
+* Optimise indentation for db client
+* Correct the schema format
+* add name for audit, changes for watcher api/db
+
+1.5.0
+-----
+
+* Update the nova api\_version default value to 2.53
+* Correct the instance migration link
+* Optimize check\_migrated in cinder\_helper.py
+* Optimize live\_migrate\_instance
+* Updated from global requirements
+* Add saving energy strategy description
+* Add documentation about saving energy strategy
+* Invoke version\_string in watcher/version.py directly
+* Fix \_build\_instance\_node for building Compute CDM
+* writing convention: do not use “-y” for package install
+* Update OpenStack Installation Tutorial to pike
+* Remove explicitly enable neutron
+* Fix the telemetry-measurements hyperlink for strategies
+* optimize update\_audit\_state
+* Optimize the import format by pep8
+* Remove the unnecessary word
+* Fix TypeError in function chunkify
+* Fix action plan state change when action failed
+* Remove installation guide for openSUSE and SLES
+* Notification Cancel Action Plan
+* Fix migrate action failure
+* Add exception log when migrate action failed
+* Add cdm-scoping
+* [Doc] Fix host option
+* Use Property setters
+* Update the description for controller node
+* Updated from global requirements
+* cleanup test-requirements
+* Update the "IAAS" to "IaaS"
+* Correct the link for watcher cli
+* Update the documentation link for doc migration
+* extend-node-status
+* Updated from global requirements
+* Fix Watcher DB schema creation
+* Fix Action 'change\_node\_power\_state' FAILED
+* Updated from global requirements
+* Fix incorrect config section name of configure doc
+* Fix Gate Failure
+* Remove redundant right parenthesis
+* Utils: fix usage of strtime
+* Update the documentation link for doc migration
+* iso8601.is8601.Utc No Longer Exists
+* Remove the unused rootwrap config
+* Remove unused efficacy indicators
+* Replace DbMigrationError with DBMigrationError
+* Replace default gnocchi endpoint type
+* Fix gnocchiclient creation
+* Fix DEFAULT\_SCHEMA to validate host\_aggreates
+* Updated from global requirements
+* Modify display\_name in strategy documentation
+* [Trivialfix]Fix typos in watcher
+* Restrict existing strategies to their default scope
+* Update default Nova API version to 2.53(Pike)
+* Fix to use . to source script files
+* Fix to use "." to source script files
+* Update the documentation link for doc migration
+* Updated from global requirements
+* Updated from global requirements
+* Remove unnecessary dict.keys() method calls (api)
+* Update the documention for doc migration
+* Remove watcher\_tempest\_plugin
+* Updated from global requirements
+* Fix KeyError exception
+* Remove pbr warnerrors
+* Adjust the action state judgment logic
+* Update reno for stable/pike
+
+1.4.0
+-----
+
+* workload balance base on cpu or ram util
+* [Doc] Fix db creation
+* get\_config\_opts method was overwritten
+* Replace map/filter lambda with comprehensions
+* change ram util metric
+* Fix failure to load storage plugin
+* Fix exception.ComputeNodeNotFound
+* Updated from global requirements
+* Change exception class from monascaclient
+* Fix gnocchi repository URL in local.conf.controller
+* Fix ironic client input parameter
+* Fix show db version in README
+* Removed unnecessary setUp calls in tests
+* Fix compute CDM to include disabled compute node
+* Update State diagram of Action Plan
+* Modification of statistic\_aggregation method
+* Fix incorrect action status in notifications
+* Added Actuator Strategy
+* [Doc] Update software version
+* Fix continuous audit fails once it fails
+* Updated from global requirements
+* Fix Hardcoded availability zone in nova-helper
+* Saving Energy Strategy
+
+1.3.0
+-----
+
+* Fix gate-watcher-python27-ubuntu-xenial FAILURE
+* dynamic action description
+* [Doc] Add cinder to architecture diagram
+* Add release notes for Pike
+* [Doc] Add Configure Cinder Notifications
+* Update the documention for doc migration
+* Remove all sphinx warnings
+* Update the documention for doc migration
+* Replace voluptuous with JSONSchema in BaseAction
+* Update URLs in documents according to document migration
+* Updated from global requirements
+* Remove testenv for install-guide
+* Add volume migrate action
+* Fix devstack plugin
+* Enable migration to rely on nova-scheduler
+* Update default ironic endpoint type
+* Updated from global requirements
+* remove useless logging
+* New cron type for audit interval
+* Fix dbmanage upgrade and downgrade
+* Update weekly meetings time in docs
+* Add title to administrator guide
+* Abort operation for live migration
+* [Doc] Add gnocchi to system architecture diagram
+* Ignore autogenerated sample config file
+* bug fix: Can't get sample through CeilometerHelper
+* Replace voluptuous with JSONSchema to validate change\_node\_power\_state
+* move doc/source/webapi content to doc/source/api
+* Cinder model integration
+* Update Documentation link in README
+* Adapt watcher documentation for new standards
+* Replace default neutron endpoint type
+* switch to openstackdocs theme
+* Replace default glance endpoint type
+* Fix test\_list\_with\_limit failed
+* Replace the usage of 'manager' with 'os\_primary'
+* Updated from global requirements
+* avoid repeated actions in the solution
+* Update .gitignore
+* Pass environment variables of proxy to tox
+* Enable some off-by-default checks
+* Updated from global requirements
+* Fix get\_action\_plan\_list filter error
+* node.status for vm\_workload\_consolidation
+* Noisy Neighbor Strategy
+* Updated from global requirements
+* fix Keyerror in test\_nova\_cdmc
+* Add action for compute node power on/off
+* Replace voluptuous with JSONSchema to validate migration action
+* Updated from global requirements
+* Replace voluptuous with JSONSchema to validate change\_nova\_service\_state
+* Replace voluptuous with JSONSchema to validate resize action
+* Replace voluptuous with JSONSchema to validate sleep action
+* Replace voluptuous with JSONSchema to validate nop action
+* Remove log translations and hacking
+* Remove deprecated oslo\_messaging.get\_transport
+
+1.2.0
+-----
+
+* Cancel Action Plan
+* fix multinode tempest test failure
+* Updated from global requirements
+* Add rm to whitelist\_externals in tox.ini
+* Remove usage of parameter enforce\_type
+* Replace default cinder endpoint type
+* Add action description
+* Watcher official install-guide
+* Trivial fix typos
+* Replace oslo\_utils.timeutils.isotime
+* Updated from global requirements
+* Deleted audit record still get by 'audit list'cmd
+* Versioned Notifications for service object
+* fix clod\_migrate problem
+* Change cinder api\_version to '3' in default
+* Updated from global requirements
+* doc error for WeightPlanner
+* Remove the deprecated tempest.test.attr
+* Replace assertRaisesRegexp with assertRaisesRegex
+* Updated from global requirements
+* [bugfix]for division use accurate division
+* Fix a typo
+* Updated from global requirements
+* Add Watcher JobStore for background jobs
+* Updated from global requirements
+* Add host\_aggregates in exclude rule of audit scope
+* replace nova endpoint
+* Add 'rm -f .testrepository/times.dbm' command in testenv
+* [Doc] fix local.conf.compute
+* [bugfix]retry is reached but action still success
+* use instance data replace exception.NoDataFound
+* Set access\_policy for messaging's dispatcher
+* Fix devstack plugin
+* [Doc]  messaging -> messagingv2
+* Add ironicclient
+
+1.1.0
+-----
+
+* Updated from global requirements
+* Added suspended audit state
+* Add gnocchi support in uniform\_airflow strategy
+* Add Apache License Content in index.rst
+* Optimize the link address
+* correct syntax error
+* Updated from global requirements
+* exception when running 'watcher actionplan start XXX'
+* Optimize the link address
+* Add gnocchi support in outlet\_temp\_control strategy
+* fixed syntax error in json
+* Replace py34 with py35
+* Add gnocchi support in workload\_balance strategy
+* Add gnocchi plugin support for devstack
+* Updated from global requirements
+* Run Watcher-API behind mod-wsgi
+* oslo messaging notifications driver update
+* Use tox to generate a sample configuration file
+* Added tempest test for workload\_stabilization
+* Add gnocchi support in VM-Workload-Consolidation strategy
+* Updated from global requirements
+* Fix for remove verbose option
+* Use HostAddressOpt for opts that accept IP and hostnames
+* Add gnocchi support in workload\_stabilization strategy
+* Prevent the migration of VM with 'optimize' False in VM metadata
+* Add period input parameter to vm workload consolidation and outlet temp control strategy
+* Add endpoint\_type option for openstack clients
+* Updated from global requirements
+* Add gnocchi support in basic\_consolidation strategy
+* Imported Translations from Zanata
+* Remove log translations
+* Add Gnocchi datasource
+* exception when running 'watcher service list'
+* Remove old oslo.messaging transport aliases
+* stale the action plan
+* Local copy of scenario test base class
+* set eager=True for actionplan.list
+* Use https instead of http
+* Updated from global requirements
+* Reduced the code complexity
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Adding instance metadata into cluster data model
+* Add Apache License content in conf.py file
+* [Fix gate]Update test requirement
+* Remove unused PNG files  in image\_src directory
+* Updated from global requirements
+* Fix no endpoints of ceilometer in devstack environment setup
+* Fix some typos in vm\_workload\_consolidation.py
+* Optimize audit process
+* Reactivate watcher dashboard plugin in devstack/local.conf.controller
+* Add SUPERSEDED description
+* Add Action Notification
+* Switch to use test\_utils.call\_until\_true
+* Adding additional details to notification logs
+* Add checking audit state
+* Fix the mapping between the instance and the node
+* Remove support for py34
+* Fix that remove 'strategy' attribute does not work
+* Fix spelling error in NotificationEndpoint classes
+* Fix log level error to warning
+* Fix incorrect auto trigger flag
+* Using items() instead of six.iteritems()
+* Update reno for stable/ocata
+
+1.0.0
+-----
+
+* Added action\_plan.execution.\* actions
+* Added action\_plan.create|update|delete notifs
+* Add release note for action plan notifications
+* Add first alembic version for db migration
+* Use RPC cast() to be asynchronous
+* Updated graph model to use attr\_dict
+* Fix context error for user
+* Idiomatic loop for calculate\_num\_migrations
+* Fix multinode tempest test failure
+
+0.34.0
+------
+
+* add Ocata release notes
+* Add period input parameter to basic strategy
+* Fix invalid mock on ceilometerclient
+* Documentation update
+* Updated from global requirements
+* New Applier Workflow Engine
+* Remove obsolete Resource element
+* Graph cluster model instead of mapping one
+* Fix building of model with a  scoped exclusion rule
+* Fix broken gates because of wrong pip command
+* Fix test\_clients\_monasca failure
+* Updated from global requirements
+* New default planner
+* Modify the field in tox.ini
+* Add action plan SUPERSEDED state
+* Fix dummy strategy to use input parameters
+* Updated from global requirements
+* Update Server Consolidation global efficacy
+* Fix a typo in watcher/objects/base.py
+* resolve KeyError exception
+* Enable notification for vm task state update
+* Should use glanceclient to get images
+* Multi datasource support for Basic Consolidation
+* Added Monasca Helper
+* Removed unnecessary utf-8 encoding
+* Updated from global requirements
+* Enable coverage report in console output
+* Fix TypeError if no input\_parameters added
+* Update configuration document
+* Add additional depencencies of CentOS 7
+* Fix reference http
+* remove incorrect inline comment
+* Add auto\_trigger support to watcher
+* Fix variable name error
+* Updated from global requirements
+* Updated from global requirements
+* Fix bad CDMC update on reception of service.update
+
+0.33.0
+------
+
+* Implemented clients and auth config module
+* Implemented wacther decision engine config module
+* Documentation for Uniform Airflow Migration Strategy Fixed issues
+* Implemented applier config module
+* Implemented planner config module
+* Implemented db config module
+* Implemented exception config module
+* Implemented paths config module
+* remove unused log
+* Repair log parameter error
+* multinode devstack update for live-migration
+* Function call pass parameter error
+* Documentation for Workload Balance Migration Strategy Fixed comments and added the doc primitive call
+* Specific exception for stale cluster state was added
+* Implemented utils config module
+* Fix CI failures
+* improve statistic\_aggregation
+* Unnecessary exception
+* update strategy table when parameters\_spec changes
+* Implemented api config module
+* Updated from global requirements
+* Updated from global requirements
+* Improve the instruction of vm\_workload\_consolidation
+* Fix method name in doc/source/dev/plugin/action-plugin.rst
+* Repairing unit test failures
+* Fix some incorrect description in doc
+* [Doc] Fix example code of goal plugin
+* Use uuidutils instead of uuid.uuid4()
+* Modify the variable assignment errors
+* Show team and repo badges on README
+* Fix 'ImportError' when docbuild
+* Fix one ref that does not work
+* Updated from global requirements
+* Add periods input parameter
+* Solve some spelling mistakes
+* Remove redundan lines
+* Documentation for Outlet Temperature Based Strategy Fixed outstanding comments
+* Change hardware.cpu\_util in workload\_stabilization
+* Fix inconsistent descriptions in docstring in action\_plan.py
+* Removed nullable flag from audit\_id in ActionPlan
+* Replaces uuid.uuid4 with uuidutils.generate\_uuid()
+* Fixed update of WatcherObject fields on update
+* Fix some typos in action.py & action\_plan.py & audit.py
+* [Doc] Fix default value in workload\_stabilization
+* Fix the wrong ref for 'Compute node'
+
+0.32.0
+------
+
+* Implemented base + moved plugins & service conf
+* Add audit.planner events
+* Add audit.strategy events
+* Implemented audit.delete notification
+* Implemented audit.create notification
+* Implemented audit.update notification
+* Update devstack plugin to add notification param
+* Added notification\_level config option
+* Removed status\_topic config parameter
+* Remove stale notification code
+* Added notifications documentation page
+* Added support for versioned notifications
+* Add doc for vm\_workload\_consolidation strategy
+* Fix rally gate test
+* Updated from global requirements
+* Add doc for workload-stabilization spec
+* Fix the typo in efficacy\_indicator module
+* Fix NoMetricValuesForInstance error
+* Use oslo\_log instead of logging
+* optimized 'find\_instance()'
+* Fix workload stabilization strategy to ignore disabled hosts
+* Added Tempest API tests for /scoring\_engines
+* Remove unused SUBMITTED audit state
+* Added action\_plan ObjectField for Action
+* Added audit & strategy ObjectField for ActionPlan
+* Added goal & strategy ObjectField for Audit
+* Added goal+strategy ObjectField for AuditTemplate
+* Added 'goal' ObjectField for Strategy object
+* Refactored Watcher objects to use OVO
+* Removed deadline, version, extra & host\_aggregate
+* Eager loading on One-to-X foreign keys
+* [Doc] Fix strategy list optional argument
+* Use Enum value instead of String Value Fixing Gating Issue
+* Change "Openstack" to "OpenStack"
+* Avoid use xx=[] for parameter to initialize it's value
+* Transform KB into MB and normalize CPU
+* Updated from global requirements
+* Delete python bytecode file
+* Add strategy template doc
+* Drop MANIFEST.in - it's not needed by pbr
+* Add Audit Scope Handler
+* Add service object to the watcher\_db\_schema
+* Add service supervisor
+* Updated from global requirements
+* Added Model base class + related doc
+* Add RECOMMENDED state
+* Enable release notes translation
+* Added composite unique name constraints
+* Added missing test on GMR plugin
+* Moved Watcher doc plugin outside main package
+* Stop adding ServiceAvailable group option
+* HasLength() rewritten to assertEqual()
+* Updated from global requirements
+* Fix typo in docstring
+* Remove duplicate unittest
+* Fix typo in hooks.py
+* Docstrings should not start with a space
+* Fix capital letter in doc
+* Doc updates
+* Watcher utils cleanup
+* Fixed GMR configuration issue
+* Add constraint target to tox.ini and remove 1 dep
+* Updated from global requirements
+* 'tox -e py27' failed
+* Fix typo in docstring from "interprete" to "interpret"
+* Fix a typo in watcher.po
+* Deactivate dashboard plugin until fixed
+* remove redundant word
+* Fix a typo in basic\_consolidation.py
+* Update Watcher description
+* Test code tidy up
+* Update reno for stable/newton
+* Fixed issue on compute nodes iteration
+* Refactored Tests to load scenarios from file
+* Updated from global requirements
+* Remove group\_by statement in metric queries
+
+0.30.0
+------
+
+* Add rally-jobs folder to get rally support
+* Log CDM structure before+after executing strategy
+* Fixed Tempest test due to notification issues
+* Use memory mode for sqlite in db test
+* Added tests on API hooks and related context
+* When action plan is empty, its state is incorrect
+* Use parameters instead of config for workload stabilization
+* Add documentation for Scoring Module
+* Implemented GMR plugin to show CDM structures
+* Fix incorrect strings and formatting
+* Modify use of assertTrue(A in B)
+* Fixed indentation
+* The default value of 'is\_admin\_project'
+
+0.29.0
+------
+
+* Add release notes for Newton blueprints
+* TrivialFix: Remove cfg import unused
+* TrivialFix: Remove logging import unused
+* Remove unused LOG
+* Update configuration section for notifications
+* Doc on how to add notification endpoints
+* Notification and CDM partial update
+* Remove unreachable line
+* Added start/end date params on ceilometer queries
+* Correct watcher reraising of exception
+* Check unspecified parameters create audit
+* Fix loading of plugin configuration parameters
+* Add Scoring Module implementation
+* Add unit tests for continuous.py
+* Updated from global requirements
+* Fixed flaky tempest test
+* Remove pot files
+* Updated from global requirements
+* Added strategy ID + Action Plan syncing
+* Fixes to get cluster data model
+* Updated from global requirements
+* Fix double self.\_goal definition
+* Scheduler of decision\_engine fix
+* Updated from global requirements
+* Clean imports in code
+* Modify libvirt\_opts="-d -l" to libvirtd\_opts="-d -l"
+* Rename (pre/post)condition to (pre/post)\_condition
+* Add unit tests for nova\_helper.py
+* Updated from global requirements
+* Removed unused function in uniform airflow
+* Update the home-page info with the developer documentation
+* Updated from global requirements
+* Refactored the compute model and its elements
+* Use more specific asserts
+* Merged metrics\_engine package into decision\_engine
+* Updated DE architecture doc + 'period' param
+* Added DE Background Scheduler w/ model sync jobs
+* Cluster data model collector plugin documentation
+* Loadable Cluster Data Model Collectors
+* Updated from global requirements
+* Add scoring engines to database and API layers
+* Implement goal\_id, strategy\_id and host\_aggregate into Audit api
+* use parameters to set the threshold
+* Updated from global requirements
+* Fixed Basic optim tempest test
+* Fix 2 occurrences of typo: "occured" --> "occurred"
+* Add hacking checks to watcher
+* Update docs links to docs.openstack.org
+* Remove discover from test-requirements
+* Updated from global requirements
+* Fix typos and messages in strategies
+* Remove unused columns parameters in watcher/db/api
+* test\_context\_hook\_before\_method failed
+* Fix dict.keys() PY3 compatible
+
+0.28.0
+------
+
+* There are some spelling errors in the code
+* Add Python 3.5 classifier and venv
+* Update unitaty tests to verify strategy and goal name
+* Bad goal and strategy name for Airflow Optimization
+* Fix unittest in test\_api.py
+* Optimize local.conf.controller file to enable watche-dashboard
+* Add continuously optimization
+* Add Desktop Service Store to .gitignore file
+* Documentation for strategy parameters
+* Updated from global requirements
+* Add installation from Debian packages section
+* Add new documentation section for Watcher policies rules
+* Update executor to eventlet
+* Add policies for API access control to watcher project
+* Fix watcher doc build error
+* Fix field type to audit\_type
+* Remove duplicate unittest
+* Fix link error in base-setup.rst
+* Fix failing Tempest tests
+* Enable strategy parameters
+* Update Docs links to docs.openstack.org
+* add dependency for 3rd-party plugins
+* Make default Planner generic to handle new action
+* Modify IRC weekly meeting time
+* Uniform Airflow migration strategy implementation
+* Updated from global requirements
+* Centralize plugin loaders in watcher/applier
+* Add importing modules instead of classes
+* Centralize plugin loaders in decision engine
+* Add goal\_name field in strategy
+* Updated from global requirements
+* Use disabled/enabled to change service state
+* Check if nova-service is already disabled
+* Add bandit in tox -e pep8
+* Added filter operators
+* Fix StrategyContext to use the strategy\_id in the Audit Template
+* Use proper theme for release notes
+* Fix releasenotes generation
+* Documentation on goal and efficacy
+* Added efficacy indicators to /action\_plans
+* Added pre/post execution methods to strategies
+* Added EfficacyIndicator object
+* Added efficacy specification to /goals
+* Add reno for release notes management
+* Added EfficacyIndicator model in DB
+* Decoupled Goal from Strategy
+* Fix broken link in doc
+* Added missing config section for autogeneration
+* Updated from global requirements
+* Added audit\_template filter to /audits/detail
+* Add fix for hardware.cpu.util meter in sd-strategy
+* Add fix for \_\_init\_\_() error
+* Updated tempest test creds retrieval mechanism
+
+0.27.0
+------
+
+* Documentation for plugins-parameters
+* Workload balance migration strategy implementation
+* Watcher plugins table in Guru meditation reports
+* Enabled config parameters to plugins
+* Add Overload standard deviation strategy
+* Add goal name as filter for strategy list cmd
+* Update Watcher documentation
+* Updated from global requirements
+* Added cold VM migration support
+* Add goal\_name & strategy\_name in /audit\_templates
+* Replace assertEqual(None, \*) with assertIsNone in tests
+* Fix lazy translation issue with watcher-db-manage
+* Fixed flaky tempest test
+* Removed telemetry tag from tempest tests
+* Updated from global requirements
+* Fix for statistic\_aggregation
+* Remove direct access to dbapi
+* Updated from global requirements
+* Fix documentation watcher sql database
+* Watcher DB class diagram
+* Added .pot file
+* Remove [watcher\_goals] config section
+* Remove watcher\_goals section from devstack plugin
+* Documentation update for get-goal-from-strategy
+* Updated purge to now include goals and strategies
+* Syncer now syncs stale audit templates
+* Add strategy\_id & goal\_id fields in audit template
+* Refactored Strategy selector to select from DB
+* Added /strategies endpoint in Watcher API
+* Add Goal in BaseStrategy + Goal API reads from DB
+* DB sync for Strategies
+* Added Strategy model
+* Added Goal object + goal syncing
+* Added Goal model into Watcher DB
+* Log "https" if using SSL
+* [nova\_helper] get keypair name by every admin users
+* Remove using of UUID field in POST methods of Watcher API
+* Refactored DE and Applier to use oslo.service
+* Refactored Watcher API service
+* Updated from global requirements
+* Removed unused 'alarm' field
+* Add parameters verification when Audit is being created
+* correct the available disk, memory calculating Source data are misused in outlet temperature strategy. This patch fixes it
+* Upgrade Watcher Tempest tests for multinode
+* Update .coveragerc to ignore abstract methods
+* Updated from global requirements
+* Fix for deleting audit template
+* Remove unused logging import and LOG global var
+* Updated from global requirements
+
+0.26.0
+------
+
+* Added missing support for resource states in unicode format in VM workload consolidation strategy
+* Disabled PATCH, POST and DELETE for /actions
+* Added information on plugin mechanism to glossary
+* Invalid states for Action Plan in the glossary
+* Integrated consolidation strategy with watcher
+* Added oslo.context to requirements.txt
+
+0.25.0
+------
+
+* Remove the watcher sample configuration file
+* Updated action-plugin doc to refer to Voluptuous
+* Rename variable vm\_avg\_cpu\_util
+* renamed "efficiency" with "efficacy" Closes-Bug:#1558468
+* Remove true/false return from action.execute()
+* Updated from global requirements
+* Documentation on purge command
+* Added purge script for soft deleted objects
+* Added Mixin-related filters on DB queries
+* Updated from global requirements
+* Refactored check for invalid goal
+* Renamed api.py to base.py in metrics engine
+* Re-generated the watcher.pot
+* Added Disk Capacity in cluster-data-model
+* Removing unicode from README.rst
+
+0.24.0
+------
+
+* Doc on how to set up a thirdparty project
+* Remove tests omission from coverage target in tox.ini
+* add Goal into RESTful Web API (v1) documentation
+* Updated Strategy plugin doc
+* Doc on how to implement a custom Watcher planner
+* Add Watcher dashboard to the list of projects
+* Doc on how to implement a custom Watcher action
+* Fixed wrongly used assertEqual method
+* Improve DevStack documentation for beginners
+* Added support for live migration on non-shared storage
+* Updated Watcher doc to mention Tempest tests
+* RST directive to discover and generate drivers doc
+* Rename 'TRIGGERED' state as 'PENDING'
+* Fixed type in get\_audit\_template\_by\_name method
+* Updated from global requirements
+* Cleanup in tests/\_\_init\_\_.py
+* Update nova service state
+* Replace "Triggered" state by "Pending" state
+* Add start directory for oslo\_debug\_helper
+* Add missing requirements
+* Updated from global requirements
+* Re-enable related Tempest test
+* Useless return statement in validate\_sort\_dir
+* Pass parameter to the query in get\_last\_sample\_values
+* Remove unused function and argument
+* Added goal filter in Watcher API
+* Improve variable names in strategy implementations
+* Added unit tests on actions
+* Clean imports in code
+* Add Voluptuous to validate the action parameters
+* Remove KEYSTONE\_CATALOG\_BACKEND from DevStack plugin
+* Cleanup in test\_objects.py
+* Better cleanup for Tempest tests
+* Ceilometer client instantiation fixup
+* Update the default version of Neutron API
+* Sync with openstack/requirements master branch
+* Delete linked actions when deleting an action plan
+
+0.23.2
+------
+
+* Add IRC information into contributing page
+* Update docs for password auth configuration options
+* Remove references to SERVERS\_CONSOLIDATION
+* Create OpenStackClients convenience class
+* Added Tempest scenario for BASIC\_CONSOLIDATION
+* Use install instead of mkdir for DevStack dirs
+* Removed unused parameter in dt\_deserializer()
+* Remove unused parameter in Actions API controller
+* Define self.client in MessagingCore
+* Remove InvalidParameterValue exception
+* Tempest API tests on /actions
+* GET on an action\_plan provides first\_action\_uuid
+* Fixed ActionPlanNotFound typo in msg\_fmt
+
+0.23.1
+------
+
+* Fixed tempest test bug
+
+0.23.0
+------
+
+* Action plan state transition - payload validation
+* Add 'workers' section into configuration doc
+* API Tempest tests on goals
+* Fix HTML warnings on HTML doc
+* Action Plan state - Changed STARTING to TRIGGERED
+* Tempest scenario - execute a dummy strategy
+* Added doc8
+* Add reference to Ceilometer developer guide
+* API Tempest tests on Action plans
+* Re-organize the Wacher documentation Home Page
+* Fix 'Module index' broken HTTP link
+* API Tempest tests on Audits
+* Refactored existing tempest API tests
+* Renamed Status to State
+* Update the user-guide to explain the main steps
+* Refactor Commands section
+* Use taskflow library for building and executing action plans
+* Removed unused parameters from api controllers
+* Validate audit template UUID on audit create
+* Add diagrams to the architecture doc page
+* Fix Warnings generated while building of HTML docu
+* Reduced the complexity of the execute() method
+* Missing super() in API collection controllers
+* Remove shadow BaseException class
+* Replace message with msg\_fmt for custom exceptions
+* Removed use of deprecated LOG.warn method
+* Add a dynamic loading of Actions handlers in the Watcher Applier
+* Update API documentation for action plan
+* Renamed diskInfo.py
+* Fix extraction of \_LI \_LW \_LE \_LC for translation
+* Clean up flake8 ignore list
+* Move terminology definition to class related
+* Keep py3.X compatibility for urllib
+* Use dict.items() dirrectly instead of six.iteritems
+* Test: make enforce\_type=True in CONF.set\_override and fix error
+* Remove incorrect spaces for libvirt\_opts value
+* Add a generic and extensible way to describe the flow of actions
+* Add a dynamic loading of the Watcher Planner implementation
+* Add a common generic dynamic loader for watcher
+* Add the possibility to store several parameters for an Action
+* Changed testr to os-testr
+* Strategy goals should be required in conf
+* Use assertTrue/False instead of assertEqual(T/F)
+* Implement DevStack plugin
+* Remove useless Meta-Action
+
+0.22.0
+------
+
+* outlet Temperature based migration strategy
+* Move Audit-template management in DefaultStrategyContext
+* Remove duplicated nova wrapper
+* Move glossary.rst to root folder of doc
+* Remove string concatenation in favor of string formatting
+* Remove useless event factory
+* Rename NovaWrapper to NovaClient
+* i18n - Make string translatable
+* Change default strategy to DummyStrategy
+* Add Creative Commons Attribution header to documentation
+* Code refactoring - StrategyContext and Auditendpoint
+* Remove \*.pyc files before running tox tests
+* Add missing parameter in prepare\_service for api
+* Fix generation of watcher config file
+* Rename command to audit
+* 'admin\_user' opt (and others) imported twice
+* Removed duplicated function prepare\_service()
+* Internationalization (i18n) - Enable French locale
+* Include terminology definition from docstring
+* Remove pragma no cover from code
+* Tidy up - Watcher Decision Engine package
+* Typo in ClusteStateNotDefined
+* Some tests are ignored
+* Tidy up - Rename Base
+* Refactored Watcher codebase to add py34 support
+* Added unit tests on nova wrapper
+* Removed H404, H405, H305 ignore in pep8
+* Removed unnecessary code from basic\_consolidation
+* Remove unreachable code in basic\_consolidation.py
+* Rename Mapper to Mapping
+* Tidy up - Primitive
+* Remove references to removed watcher/openstack directory
+* Removed py33, pypy support
+* Remove alembic revision of watcher db
+* Add Apache license header to all rst documentation
+* Rename Command to Action
+* Update the glossary to lay down Watcher terminology
+* Rename command to action\_plan
+* Removed unused enum
+* Rename Meta-Action to Action
+* Add a checker for the documentation
+* Rename efficiency to efficacy
+* Fix Watcher Applier variables in CamelCase
+* Remove duplicate setup in Watcher API main()
+* Cleanup deprecated documentation
+* Provide detailed information on architecture
+
+0.21.0
+------
+
+* Update configuration section for rabbitmq
+* Created a glossary to lay down Watcher terminology
+* Update documentation regarding Ceilometer API V2
+* Fixed missing attribute in the data model
+* Removed py26 support
+* Code refactoring - Watcher Applier package
+* Removed old (and unused) openstack/oslo libs
+* Fixed doc generation warning
+* add missing keystoneclient dependency
+* Added priority level to Nop action
+* Removed 'watcher\_messaging' to use oslo.messaging
+* Improve OpenStack clients API
+* Added 'dummy' entrypoint within watcher\_strategies
+* Fixed tense consistency (used past) in statuses
+* Added LaunchActionPlanCommand's init super call
+* Explained KEYSTONE\_SERVICE\_PROJECT\_NAME variable
+* Added missing super call in DefaultApplier's init
+* AMQP Channel have to be set espacially to 'watcher'
+* Updated the config sample file generation command
+* Code refactoring - Watcher Decision Engine package
+* Strategy plugins documentation
+* Update requirements from OS Global Requirements
+* Made Decision Engine extensible via stevedore
+* Integration of Ceilometer in Watcher
+* Update configuration file sample
+* Fix config loading when running the watcher-api
+* Fix tiny typo on configuration doc
+* Avoid dividing zero
+* Should use watcher/common/context.py for consistency
+* Update policy.py
+* Watcher notification listener is associated with an executor which integrates the listener with a specific I/O handling framework. blocking executor should be the default one
+* Update Rabbit MQ server configuration extract
+* Use a single command to create the 3 watcher endpoints
+* Use i18n directly
+* Use olso.log directly
+* refactoring documentation
+* Change stackforge to openstack, corrected some heading underlines
+* use https instead of http for doc link
+* update Watcher mission
+* consolidation of watcher
+* update config file sample
+* update documentation
+* fix dependencies version
+* Documention fixes
+* initial version
+* Added .gitreview
diff -pruN 15.0.0-2/PKG-INFO 2:15.0.0-0ubuntu1/PKG-INFO
--- 15.0.0-2/PKG-INFO	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/PKG-INFO	2025-10-01 10:47:31.356960800 +0000
@@ -0,0 +1,100 @@
+Metadata-Version: 2.1
+Name: python-watcher
+Version: 15.0.0
+Summary: OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack-based clouds.
+Home-page: https://docs.openstack.org/watcher/latest/
+Author: OpenStack
+Author-email: openstack-discuss@lists.openstack.org
+Classifier: Environment :: OpenStack
+Classifier: Intended Audience :: Information Technology
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Requires-Python: >=3.10
+License-File: LICENSE
+Requires-Dist: apscheduler>=3.5.1
+Requires-Dist: debtcollector>=1.2.0
+Requires-Dist: eventlet>=0.27.0
+Requires-Dist: jsonpatch>=1.21
+Requires-Dist: keystoneauth1>=3.4.0
+Requires-Dist: jsonschema>=3.2.0
+Requires-Dist: keystonemiddleware>=4.21.0
+Requires-Dist: lxml>=4.5.1
+Requires-Dist: croniter>=0.3.20
+Requires-Dist: os-resource-classes>=0.4.0
+Requires-Dist: oslo.concurrency>=3.26.0
+Requires-Dist: oslo.cache>=1.29.0
+Requires-Dist: oslo.config>=6.8.0
+Requires-Dist: oslo.context>=2.21.0
+Requires-Dist: oslo.db>=4.44.0
+Requires-Dist: oslo.i18n>=3.20.0
+Requires-Dist: oslo.log>=3.37.0
+Requires-Dist: oslo.messaging>=14.1.0
+Requires-Dist: oslo.policy>=4.5.0
+Requires-Dist: oslo.reports>=1.27.0
+Requires-Dist: oslo.serialization>=2.25.0
+Requires-Dist: oslo.service[threading]>=4.2.1
+Requires-Dist: oslo.upgradecheck>=1.3.0
+Requires-Dist: oslo.utils>=7.0.0
+Requires-Dist: oslo.versionedobjects>=1.32.0
+Requires-Dist: PasteDeploy>=1.5.2
+Requires-Dist: pbr>=3.1.1
+Requires-Dist: pecan>=1.3.2
+Requires-Dist: PrettyTable>=0.7.2
+Requires-Dist: gnocchiclient>=7.0.1
+Requires-Dist: python-cinderclient>=3.5.0
+Requires-Dist: python-glanceclient>=2.9.1
+Requires-Dist: python-keystoneclient>=3.15.0
+Requires-Dist: python-neutronclient>=6.7.0
+Requires-Dist: python-novaclient>=14.1.0
+Requires-Dist: python-observabilityclient>=1.1.0
+Requires-Dist: python-openstackclient>=3.14.0
+Requires-Dist: python-ironicclient>=2.5.0
+Requires-Dist: SQLAlchemy>=1.2.5
+Requires-Dist: stevedore>=1.28.0
+Requires-Dist: taskflow>=3.8.0
+Requires-Dist: WebOb>=1.8.5
+Requires-Dist: WSME>=0.9.2
+Requires-Dist: networkx>=2.4
+Requires-Dist: microversion_parse>=0.2.1
+Requires-Dist: futurist>=1.8.0
+Provides-Extra: monasca
+Requires-Dist: python-monascaclient>=1.12.0; extra == "monasca"
+
+=======
+Watcher
+=======
+
+.. image:: https://governance.openstack.org/tc/badges/watcher.svg
+    :target: https://governance.openstack.org/tc/reference/tags/index.html
+
+.. Change things from this point on
+
+..
+      Except where otherwise noted, this document is licensed under Creative
+      Commons Attribution 3.0 License.  You can view the license at:
+
+          https://creativecommons.org/licenses/by/3.0/
+
+OpenStack Watcher provides a flexible and scalable resource optimization
+service for multi-tenant OpenStack-based clouds.
+Watcher provides a robust framework to realize a wide range of cloud
+optimization goals, including the reduction of data center
+operating costs, increased system performance via intelligent virtual machine
+migration, increased energy efficiency and more!
+
+* Free software: Apache license
+* Wiki: https://wiki.openstack.org/wiki/Watcher
+* Source: https://opendev.org/openstack/watcher
+* Bugs: https://bugs.launchpad.net/watcher
+* Documentation: https://docs.openstack.org/watcher/latest/
+* Release notes: https://docs.openstack.org/releasenotes/watcher/
+* Design specifications: https://specs.openstack.org/openstack/watcher-specs/
+
diff -pruN 15.0.0-2/debian/changelog 2:15.0.0-0ubuntu1/debian/changelog
--- 15.0.0-2/debian/changelog	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/changelog	2025-10-02 15:44:29.000000000 +0000
@@ -1,382 +1,478 @@
-watcher (15.0.0-2) unstable; urgency=medium
+watcher (2:15.0.0-0ubuntu1) questing; urgency=medium
 
-  * Display cat /tmp/sphinx-err-*.log if sphinx doc build fails.
-  * Add fix-term.py-for-latest-docutils.patch (Closes: #1118332).
+  * New upstream release for OpenStack Flamingo (LP: #2125956).
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 24 Oct 2025 11:15:25 +0200
+ -- Myles Penner <myles.penner@canonical.com>  Thu, 02 Oct 2025 08:44:29 -0700
 
-watcher (15.0.0-1) unstable; urgency=medium
+watcher (2:15.0.0~rc1-0ubuntu1) questing; urgency=medium
 
-  * New upstream release.
+  * New upstream release for OpenStack Flamingo (LP: #2125012).
+  * d/p/skip-tests.patch: Refresh.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 01 Oct 2025 22:45:37 +0200
+ -- Myles Penner <myles.penner@canonical.com>  Thu, 25 Sep 2025 13:42:28 -0700
 
-watcher (15.0.0~rc1-2) unstable; urgency=medium
+watcher (2:14.0.0+git2025070714.bbe30f93-0ubuntu1) questing; urgency=medium
 
-  * Uploading to unstable.
+  [ Guillaume Boutry ]
+  * d/gbp.conf, .launchpad.yaml: Sync from cloud-archive-tools for
+    flamingo.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 29 Sep 2025 11:15:39 +0200
+  [ Myles Penner ]
+  * New upstream release for OpenStack Flamingo. (LP: #2116155)
+  * d/s/options: Ignore .launchpad.yaml when generating diffs.
+  * d/p/skip-tests.patch: Refresh.
+  * d/control: Align (Build-)Depends with upstream.
 
-watcher (15.0.0~rc1-1) experimental; urgency=medium
+ -- Myles Penner <myles.penner@canonical.com>  Fri, 18 Jul 2025 14:22:34 -0700
 
-  * New upstream release.
-  * Fixed (build-)depends for this release.
-  * Removed OSSN-0094_use_cinder_migrate_for_swap_volume.patch applied
-    upstream.
+watcher (2:14.0.0-0ubuntu1) plucky; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 16 Sep 2025 12:41:31 +0200
+  [ Guillaume Boutry ]
+  * d/watch: Track Epoxy series releases.
+  * .launchpad.yaml: Sync from cloud-archive-tools for epoxy.
 
-watcher (14.0.0-3) unstable; urgency=high
+  [ Myles Penner ]
+  * New upstream release for OpenStack Epoxy.
+  * d/p/skip-tests.patch: Refresh patch.
+  * d/control: Align (Build-)Depends with upstream.
 
-  * A vulnerability has been identified in OpenStack Nova and OpenStack Watcher
-    in conjunction with volume swap operations performed by the Watcher
-    service. Under specific circumstances, this can lead to a situation where
-    two Nova libvirt instances could reference the same block device, allowing
-    accidental information disclosure to the unauthorized instance. Added
-    upstream patch: OSSN-0094_use_cinder_migrate_for_swap_volume.patch.
-    (Closes: #1111692).
+ -- Myles Penner <myles.penner@canonical.com>  Thu, 03 Apr 2025 08:23:43 -0700
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 21 Aug 2025 10:27:37 +0200
+watcher (2:13.0.0+git2025030311.77a30ef2-0ubuntu1) plucky; urgency=medium
 
-watcher (14.0.0-2) unstable; urgency=medium
+  * New upstream release for OpenStack Epoxy.
+  * Dropped further-database-refactoring.patch already merged to upstream
 
-  * Add export OS_OSLO_MESSAGING_RABBIT__PROCESSNAME for all daemons.
+ -- Myles Penner <myles.penner@canonical.com>  Tue, 04 Mar 2025 09:27:16 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 11 Jul 2025 14:45:24 +0200
+watcher (2:13.0.0+git2025021409.5f6fbaea-0ubuntu1) plucky; urgency=medium
 
-watcher (14.0.0-1) unstable; urgency=medium
+  * New upstream snapshot for OpenStack Epoxy.
+  * d/control: Align dependencies with upstream.
+  * d/p/further-database-refactoring.patch: Cherry pick proposed fix to
+    refactor SQLAlchemy layer for improved eventlet compatibility
+    (LP: #2067815).
 
-  * New upstream release.
+ -- James Page <james.page@ubuntu.com>  Fri, 14 Feb 2025 11:57:49 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 02 Apr 2025 14:02:07 +0200
+watcher (2:13.0.0+git2025011510.0b78f31e-0ubuntu1) plucky; urgency=medium
 
-watcher (14.0.0~rc1-2) unstable; urgency=medium
+  * New upstream release for OpenStack Epoxy.
+  * d/p/lp2086710{-pre*}.patch: Drop, included in release.
+  * d/p/skip-tests.patch: Refreshed.
+  * d/control: Remove unnecessary build dependencies.
 
-  * Uploading to unstable.
+ -- Guillaume Boutry <guillaume.boutry@canonical.com>  Tue, 21 Jan 2025 09:14:11 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 28 Mar 2025 21:10:31 +0100
+watcher (2:13.0.0-0ubuntu2) plucky; urgency=medium
 
-watcher (14.0.0~rc1-1) experimental; urgency=medium
+  * d/gbp.conf, .launchpad.yaml: Sync from cloud-archive-tools for
+    epoxy.
+  * d/p/lp2086710{-pre*}.patch: Cherry pick fix and associated commits
+    for compatibility between Python >= 3.12, Eventlet and watchers use
+    of apscheduler background threads (LP: #2086710).
 
-  * New upstream release.
-  * Fixed (build-)depends for this release.
+ -- James Page <james.page@ubuntu.com>  Thu, 09 Jan 2025 09:48:30 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 14 Mar 2025 10:50:32 +0100
+watcher (2:13.0.0-0ubuntu1) oracular; urgency=medium
 
-watcher (13.0.0-2) unstable; urgency=medium
+  * New upstream release for OpenStack Dalmatian.
 
-  * Switch to pybuild (Closes: #1090709).
+ -- James Page <james.page@ubuntu.com>  Thu, 03 Oct 2024 10:39:49 +0100
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 18 Dec 2024 13:51:43 +0100
+watcher (2:13.0.0~rc1-0ubuntu1) oracular; urgency=medium
 
-watcher (13.0.0-1) unstable; urgency=medium
+  * d/gbp.conf: upstream-branch -> upstream-dalmatian.
+  * New upstream release for OpenStack Dalmatian.
 
-  * New upstream release.
+ -- James Page <james.page@ubuntu.com>  Wed, 25 Sep 2024 11:06:47 +0100
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 02 Oct 2024 16:28:58 +0200
+watcher (2:12.0.0+git2024080716.a9dc3794-0ubuntu1) oracular; urgency=medium
 
-watcher (13.0.0~rc1-2) unstable; urgency=medium
+  * New upstream snapshot for OpenStack Dalmatian.
 
-  * Uploading to unstable.
+ -- James Page <james.page@ubuntu.com>  Mon, 12 Aug 2024 13:31:01 +0100
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 20 Sep 2024 17:32:29 +0200
+watcher (2:12.0.0-0ubuntu1) noble; urgency=medium
 
-watcher (13.0.0~rc1-1) experimental; urgency=medium
+  * New upstream release for OpenStack Caracal.
+  * d/p/oslo.db-15.0.0-compatibility.patch: Drop, included in release.
 
-  * New upstream release.
+ -- James Page <james.page@ubuntu.com>  Fri, 05 Apr 2024 15:35:14 +0100
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 17 Sep 2024 11:31:06 +0200
+watcher (2:12.0.0~rc1-0ubuntu2) noble; urgency=medium
 
-watcher (12.0.0+git.2024.06.01.a9dc3794a69c-1) unstable; urgency=medium
+  * d/p/oslo.db-15.0.0-compatibility.patch: Cherry pick inflight
+    compatibility patch for oslo.db >= 15.0.0.
 
-  * New upstream release based on latest commit fixing FTBFS (Closes: #1073462)
+ -- James Page <james.page@ubuntu.com>  Wed, 27 Mar 2024 10:35:51 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 23 Jul 2024 03:51:20 +0200
+watcher (2:12.0.0~rc1-0ubuntu1) noble; urgency=medium
 
-watcher (12.0.0-1) unstable; urgency=medium
+  * New upstream release candidate for OpenStack Caracal
 
-  * New upstream release.
-  * Uploading to unstable.
+  -- Felipe Reyes <felipe.reyes@canonical.com>  Tue, 19 Mar 2024 13:39:50 -0300
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 04 Apr 2024 12:36:53 +0200
+watcher (2:11.0.0+git2024020610.c95ce4ec-0ubuntu1) noble; urgency=medium
 
-watcher (12.0.0~rc1-1) experimental; urgency=medium
+  [ Corey Bryant ]
+  * d/gbp.conf, .launchpad.yaml: Sync from cloud-archive-tools for
+    caracal.
 
-  * New upstream release.
-  * Do not run MaaS tests, as we don't have the python3-libmaas package in
-    Debian.
+  [ James Page ]
+  * New upstream snapshot for OpenStack Caracal.
+  * d/control: Add libmaas to BD's.
+  * d/control: Add missing Pre-Depends on ucf.
+  * d/control: Add misc:Pre-Depends to packages with services.
 
- -- Thomas Goirand <zigo@debian.org>  Sun, 17 Mar 2024 14:23:37 +0100
+ -- James Page <james.page@ubuntu.com>  Tue, 06 Feb 2024 11:20:44 +0000
 
-watcher (11.0.0-1) unstable; urgency=medium
+watcher (2:11.0.0-0ubuntu1) mantic; urgency=medium
 
-  * New upstream release.
-  * Uploading to unstable.
+  * New upstream release for OpenStack Bobcat.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 05 Oct 2023 11:26:40 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 04 Oct 2023 09:29:17 -0400
 
-watcher (11.0.0~rc1-1) experimental; urgency=medium
+watcher (2:10.0.0+git2023090714.1e11c490-0ubuntu1) mantic; urgency=medium
 
-  * New upstream release.
-  * Fix (build-)depends for this release.
+  * d/gbp.conf, .launchpad.yaml: Sync from cloud-archive-tools for
+    bobcat.
+  * New upstream snapshot for OpenStack Bobcat.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 14 Sep 2023 10:42:48 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 07 Sep 2023 14:51:29 -0400
 
-watcher (10.0.0-4) unstable; urgency=medium
+watcher (2:10.0.0-0ubuntu1) lunar; urgency=medium
 
-  * Cleans better (Closes: #1048142).
+  * New upstream release for OpenStack Antelope.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 21 Aug 2023 16:32:21 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 23 Mar 2023 15:28:43 -0400
 
-watcher (10.0.0-3) unstable; urgency=medium
+watcher (2:10.0.0~rc1-0ubuntu1) lunar; urgency=medium
 
-  * Removed obsolete lsb-base depends.
+  * d/watch: Drop major version.
+  * New upstream release for OpenStack Antelope.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 19 Jun 2023 14:59:59 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 28 Feb 2023 17:47:04 -0500
 
-watcher (10.0.0-2) unstable; urgency=medium
+watcher (2:9.0.0+git2023011011.60033227-0ubuntu1) lunar; urgency=medium
 
-  * Uploading to unstable.
+  * New upstream snapshot for OpenStack Antelope.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 19 Jun 2023 14:53:33 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 10 Jan 2023 11:17:49 -0500
 
-watcher (10.0.0-1) experimental; urgency=medium
+watcher (2:9.0.0-0ubuntu1) kinetic; urgency=medium
 
-  * New upstream release.
+  * d/watch: Scope to 9.x series
+  * New upstream release for OpenStack Zed.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 22 Mar 2023 14:53:36 +0100
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 05 Oct 2022 16:27:54 -0400
 
-watcher (10.0.0~rc1-1) experimental; urgency=medium
+watcher (2:8.0.0+git2022091214.a43b040e-0ubuntu1) kinetic; urgency=medium
 
-  * New upstream release.
-  * Removed versions of (build-)depends when satisfied in Bookworm.
+  * New upstream snapshot for OpenStack Zed.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 01 Mar 2023 16:37:59 +0100
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 12 Sep 2022 14:12:49 -0400
 
-watcher (9.0.0-1) unstable; urgency=medium
+watcher (2:8.0.0+git2022071416.b57eac12-0ubuntu1) kinetic; urgency=medium
 
-  * New upstream release.
-  * Removed Fix-compatibility-with-oslo.db-12.1.0.patch applied upstream.
+  * New upstream snapshot for OpenStack Zed.
+  * d/control: Ensure openstack-pkg-tools has CIS hardening for log files
+    and pkgos_adduser.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 06 Oct 2022 11:07:38 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 14 Jul 2022 16:52:22 -0400
 
-watcher (9.0.0~rc1-3) unstable; urgency=medium
+watcher (2:8.0.0+git2022060611.b57eac12-0ubuntu1) kinetic; urgency=medium
 
-  * Uploading to unstable.
+  * New upstream snapshot for OpenStack Zed.
+  * d/control: Update standards version to 4.6.1.
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 24 Sep 2022 17:00:00 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 06 Jun 2022 11:19:21 -0400
 
-watcher (9.0.0~rc1-2) experimental; urgency=medium
+watcher (2:8.0.0-0ubuntu1) jammy; urgency=medium
 
-  * Add Fix-compatibility-with-oslo.db-12.1.0.patch.
+  * d/watch: Scope to 8.x series
+  * New upstream release for OpenStack Yoga.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 21 Sep 2022 10:03:59 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 31 Mar 2022 08:26:05 -0400
 
-watcher (9.0.0~rc1-1) experimental; urgency=medium
+watcher (2:7.0.0+git2022011310.01d74d0a-0ubuntu1) jammy; urgency=medium
 
-  * New upstream release.
-  * Add python3-webtest to build-depends.
-  * Fixed version of oslo.concurrency to >= 5.0.1.
+  * New upstream snapshot for OpenStack Yoga.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/control: Bump debhelper compat to 13.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 14 Sep 2022 13:57:49 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 13 Jan 2022 10:03:44 -0500
 
-watcher (8.0.0-1) unstable; urgency=medium
+watcher (2:7.0.0+git2021120910.e4fab0ce-0ubuntu1) jammy; urgency=medium
 
-  * New upstream release.
+  * New upstream snapshot for OpenStack Yoga.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 30 Mar 2022 22:48:20 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 09 Dec 2021 10:39:54 -0500
 
-watcher (8.0.0~rc1-2) unstable; urgency=medium
+watcher (2:7.0.0-0ubuntu1) impish; urgency=medium
 
-  * Uploading to unstable.
+  * d/watch: Scope to 7.x series
+  * New upstream release for OpenStack Xena.
 
- -- Thomas Goirand <zigo@debian.org>  Sun, 27 Mar 2022 16:02:29 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 06 Oct 2021 13:07:52 -0400
 
-watcher (8.0.0~rc1-1) experimental; urgency=medium
+watcher (2:6.0.0+git2021090911.6dd2f2a9-0ubuntu1) impish; urgency=medium
 
-  * New upstream release.
-  * Removed Remove_ceilometerclient_dependecy.patch applied upstream.
+  * New upstream snapshot for OpenStack Xena.
+  * d/p/skip-tests.patch: Updated for new failing test.
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 12 Mar 2022 17:15:29 +0100
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 09 Sep 2021 11:09:57 -0400
 
-watcher (7.0.0-2) unstable; urgency=medium
+watcher (2:6.0.0+git2021061406.86381515-0ubuntu1) impish; urgency=medium
 
-  * Removed python3-ceilometerclient from (build-)depends.
+  * New upstream snapshot for OpenStack Xena.
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 11 Feb 2022 14:15:03 +0100
+ -- Chris MacNaughton <chris.macnaughton@ubuntu.com>  Mon, 14 Jun 2021 07:22:46 +0000
 
-watcher (7.0.0-1) unstable; urgency=medium
+watcher (2:6.0.0-0ubuntu1) hirsute; urgency=medium
 
-  * New upstream release.
+  * New upstream release for OpenStack Wallaby.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 06 Oct 2021 21:54:25 +0200
+ -- Chris MacNaughton <chris.macnaughton@ubuntu.com>  Wed, 14 Apr 2021 12:27:41 +0000
 
-watcher (7.0.0~rc1-2) unstable; urgency=medium
+watcher (2:6.0.0~rc1-0ubuntu1) hirsute; urgency=medium
 
-  * Uploading to unstable.
+  * d/watch: Scope to 6.x series
+  * New upstream release for OpenStack Wallaby.
+  * d/control: Update (Build-)Depends to align with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 01 Oct 2021 11:27:10 +0200
+ -- Chris MacNaughton <chris.macnaughton@ubuntu.com>  Wed, 24 Mar 2021 11:01:08 +0000
 
-watcher (7.0.0~rc1-1) experimental; urgency=medium
+watcher (2:5.0.0+git2020121013.204b2766-0ubuntu1) hirsute; urgency=medium
 
-  * New upstream release.
-  * Removed python3-os-testr from build-depends.
-  * Blacklist test_create_continuous_audit_with_wrong_interval().
+  * Increment epoch to align with new snapshot plan.
+  * New upstream snapshot for OpenStack Wallaby.
+  * d/rules: Update to explicitly setup PBR's version.
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 17 Sep 2021 11:45:28 +0200
+ -- Chris MacNaughton <chris.macnaughton@ubuntu.com>  Thu, 10 Dec 2020 13:53:13 +0000
 
-watcher (6.0.0-2) unstable; urgency=medium
+watcher (1:5.1.0~b1~git2020120812.d8c7ad66-0ubuntu1) hirsute; urgency=medium
 
-  * Upload to unstable.
+  * New upstream snapshot for OpenStack Wallaby.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 16 Aug 2021 14:38:52 +0200
+ -- Chris MacNaughton <chris.macnaughton@ubuntu.com>  Tue, 08 Dec 2020 12:44:06 +0000
 
-watcher (6.0.0-1) experimental; urgency=medium
+watcher (1:5.0.0-0ubuntu1) groovy; urgency=medium
 
-  * New upstream release.
+  * New upstream release for OpenStack Victoria.
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 15 Apr 2021 17:38:56 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 15 Oct 2020 09:52:38 -0400
 
-watcher (6.0.0~rc1-1) experimental; urgency=medium
+watcher (1:5.0.0~rc1-0ubuntu1) groovy; urgency=medium
 
-  * Tune watcher-api-uwsgi.ini for performance.
-  * New upstream release.
-  * Removed (build-)depends versions when satisfied in Bullseye.
-  * Fixed (build-)depends for this release.
-  * debhelper-compat 11.
-  * d/rules: removed --with systemd.
-  * Added removed-sphinxcontrib.httpdomain-from-sphinx-ext.patch.
+  [ Chris MacNaughton ]
+  * d/control: Update VCS paths for move to lp:~ubuntu-openstack-dev.
+  * d/watch: Scope to 5.x series.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 23 Mar 2021 14:37:58 +0100
+  [ Corey Bryant ]
+  * New upstream release candidate for OpenStack Victoria.
 
-watcher (5.0.0-1) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 09 Oct 2020 13:36:44 -0400
 
-  * New upstream release.
-  * Uploading to unstable.
-  * Fixed debian/watch.
-  * Add a debian/salsa-ci.yml.
+watcher (1:5.0.0~b3~git2020091408.583c9460-0ubuntu1) groovy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 17 Oct 2020 21:20:10 +0200
+  * New upstream snapshot for OpenStack Victoria.
 
-watcher (5.0.0~rc1-1) experimental; urgency=medium
+ -- Chris MacNaughton <chris.macnaughton@canonical.com>  Mon, 14 Sep 2020 08:51:57 +0000
 
-  * New upstream release.
-  * Fixed (build-)depends for this release.
+watcher (1:5.0.0~b2~git2020073016.fa56bc71-0ubuntu1) groovy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 01 Oct 2020 10:03:47 +0200
+  * New upstream snapshot for OpenStack Victoria.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/control, d/rules: Switch to debhelper compat 12 and pybuild.
+  * d/control, d/copyright: Update upstream URL.
 
-watcher (4.0.0-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 30 Jul 2020 16:13:37 -0400
 
-  * Added --serial when running tests (Closes: #918648).
+watcher (1:5.0.0~b1~git2020063007.f7f5659b-0ubuntu1) groovy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 13 May 2020 22:57:19 +0200
+  * New upstream snapshot for OpenStack Victoria.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/drop-sphinxcontrib-rsvgconverter.patch: Refreshed.
+  * d/p/skip-tests.patch: Refreshed.
+  * d/p/monkey-patch-original-current-thread.patch: Removed. Upstream landed
+    the change.
+  * d/control: Update Standards-Version to 4.5.0.
 
-watcher (4.0.0-1) unstable; urgency=medium
+ -- Chris MacNaughton <chris.macnaughton@canonical.com>  Tue, 30 Jun 2020 07:47:39 +0000
 
-  * New upstream release.
+watcher (1:4.0.0-0ubuntu1) groovy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 13 May 2020 19:12:11 +0200
+  * New upstream release for OpenStack Ussuri (LP: #1877642).
+  * d/p/monkey-patch-original-current-thread.patch: Cherry-picked from
+    https://review.opendev.org/#/c/728397/. This fixes service failures
+    with Python 3.8 (LP: #1863021)
+  * d/watch: Scope to 4.x series.
+  * d/watch: Update to point at tarballs.opendev.org.
 
-watcher (4.0.0~rc2-1) unstable; urgency=medium
+ -- Chris MacNaughton <chris.macnaughton@canonical.com>  Fri, 15 May 2020 09:28:34 +0000
 
-  * New upstream release.
-  * Uploading to unstable.
+watcher (1:4.0.0~b3~git2020041014.f3c427bd-0ubuntu1) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 09 May 2020 21:52:06 +0200
+  * New upstream snapshot for OpenStack Ussuri.
+  * d/watcher-common.postinst.in: Set ownership and permissions for all /var/lib
+    files and directories.
 
-watcher (4.0.0~rc1-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 10 Apr 2020 14:15:44 -0400
 
-  * New upstream release.
-  * Fixed (build-)depends for this release.
-  * Removed patch applied upstream: fix-taskflow-2.2.patch.
+watcher (1:4.0.0~b3~git2020032633.c17e96d3-0ubuntu1) focal; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 23 Apr 2020 12:26:49 +0200
+  * New upstream snapshot for OpenStack Ussuri.
+  * d/watcher-common.postinst: Refactor to standardise /etc, /var/lib and
+    /var/log ownership and permissions (LP: #1859422).
 
-watcher (3.0.0-3) unstable; urgency=medium
+ -- James Page <james.page@ubuntu.com>  Thu, 26 Mar 2020 13:00:37 +0000
 
-  * d/patches: Add fix-taskflow-2.2.patch (Closes: #951942)
-  * d/control: Fix python3-taskflow version
+watcher (1:4.0.0~b2~git2020021315.2591b036-0ubuntu1) focal; urgency=medium
 
- -- Michal Arbet <michal.arbet@ultimum.io>  Wed, 04 Mar 2020 17:48:15 +0000
+  * New upstream snapshot for OpenStack Ussuri.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/skip-tests.patch: Rebased.
 
-watcher (3.0.0-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 13 Feb 2020 15:40:03 -0500
 
-  [ Ondřej Nový ]
-  * Bump Standards-Version to 4.4.1.
+watcher (1:3.0.0-0ubuntu1) eoan; urgency=medium
 
-  [ Thomas Goirand ]
-  * Uploading to unstable.
+  * New upstream release for OpenStack Train.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 22 Oct 2019 22:59:17 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 16 Oct 2019 12:50:03 -0400
 
-watcher (3.0.0-1) experimental; urgency=medium
+watcher (1:3.0.0~rc1-0ubuntu1) eoan; urgency=medium
 
-  * New upstream release.
-  * Remove /usr/etc from python3-watcher.
+  * New upstream release candidate for OpenStack Train.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/t/watcher-daemons: Avoid usage of IDENTIFIED BY on GRANT, enabling
+    compatibility with MySQL 8.
+  * d/p/drop-sphinxcontrib-rsvgconverter.patch: Drop
+    sphinxcontrib.rsvgconverter as it is currently not packaged for Ubuntu.
+  * d/rules: Re-enable py37 tests.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 16 Oct 2019 19:33:22 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 26 Sep 2019 09:22:32 -0400
 
-watcher (3.0.0~rc1-1) experimental; urgency=medium
+watcher (1:3.0.0~b2~git2019073117.f2020a92-0ubuntu1) eoan; urgency=medium
 
-  [ Ondřej Nový ]
-  * Use debhelper-compat instead of debian/compat.
-  * Bump Standards-Version to 4.4.0.
+  * New upstream snapshot for OpenStack Train.
 
-  [ Thomas Goirand ]
-  * New upstream release.
-  * Fixed (build-)depends for this release.
-  * Removed switch-to-GreenThreadPoolExecutor.patch applied upstream.
-  * Fix running unit tests.
-  * Add remove-sphinxcontrib.rsvgconverter.patch.
+ -- Sahid Orentino Ferdjaoui <sahid.ferdjaoui@canonical.com>  Wed, 31 Jul 2019 17:28:06 +0200
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 01 Oct 2019 10:33:58 +0200
+watcher (1:3.0.0~b1~git2019062011.37b11fa4-0ubuntu1) eoan; urgency=medium
 
-watcher (2.0.0-5) unstable; urgency=medium
+  * New upstream release 3.0.0~b1.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/rules: Fix binary name to generate confile files.
+  * d/rules: Fix binary name to generate policy sample.
 
-  * Uploading to unstable.
+ -- Sahid Orentino Ferdjaoui <sahid.ferdjaoui@canonical.com>  Tue, 25 Jun 2019 09:46:15 +0100
 
- -- Michal Arbet <michal.arbet@ultimum.io>  Wed, 17 Jul 2019 20:10:41 +0200
+watcher (1:2.0.0-0ubuntu1) disco; urgency=medium
 
-watcher (2.0.0-4) experimental; urgency=medium
+  * New upstream release for OpenStack Stein.
 
-  * d/control:
-      - Bump openstack-pkg-tools to version 99
-      - Add me to uploaders field
-  * d/copyright: Add me to copyright file
+ -- James Page <james.page@ubuntu.com>  Fri, 12 Apr 2019 10:28:06 +0100
 
- -- Michal Arbet <michal.arbet@ultimum.io>  Thu, 02 May 2019 18:01:53 +0200
+watcher (1:2.0.0~rc1-0ubuntu1) disco; urgency=medium
 
-watcher (2.0.0-3) experimental; urgency=medium
+  * New upstream release candidate for OpenStack Stein.
 
-  * Add export TZ=UTC in debian/rules (Closes: #918712).
+ -- James Page <james.page@ubuntu.com>  Fri, 22 Mar 2019 11:36:28 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 17 Apr 2019 23:58:55 +0200
+watcher (1:1.13.0~b1~git2019031950.807857c8-0ubuntu1) disco; urgency=medium
 
-watcher (2.0.0-2) experimental; urgency=medium
+  * New upstream snapshot for OpenStack Stein.
+  * d/p/*: Refresh.
 
-  * Removed python3- prefix when calling conf generators.
+ -- James Page <james.page@ubuntu.com>  Tue, 19 Mar 2019 12:03:02 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 17 Apr 2019 13:27:48 +0200
+watcher (1:1.13.0~b1~git2019013109.0e46dec6-0ubuntu1) disco; urgency=medium
 
-watcher (2.0.0-1) experimental; urgency=medium
+  * New upstream snapshot for OpenStack Stein.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 31 Jan 2019 09:14:00 -0500
+
+watcher (1:1.13.0~b1~git2018112258.63afd825-0ubuntu2) disco; urgency=medium
+
+  * d/tests: Improve autopkgtests to make use of mysql and rabbitmq during
+    testing.
+
+ -- James Page <james.page@ubuntu.com>  Fri, 23 Nov 2018 10:10:31 +0000
+
+watcher (1:1.13.0~b1~git2018112258.63afd825-0ubuntu1) disco; urgency=medium
+
+  * New upstream snapshot for OpenStack Stein.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- James Page <james.page@ubuntu.com>  Thu, 22 Nov 2018 10:26:27 +0000
+
+watcher (1:1.12.0-0ubuntu4) disco; urgency=medium
+
+  * d/control,rules,python*,d/tests/*: Drop Python 2 support.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 20 Nov 2018 09:40:26 -0500
+
+watcher (1:1.12.0-0ubuntu3) cosmic; urgency=medium
+
+  * d/p/skip-tests.patch: Skip tests that periodically fail.
+    https://bugs.launchpad.net/bugs/1790129.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 31 Aug 2018 09:25:43 -0400
+
+watcher (1:1.12.0-0ubuntu2) cosmic; urgency=medium
+
+  * Additional support for Python 3:
+    - d/control: Drop python(3)-watcher conflicts on each other.
+    - d/python(3)-watcher.postinst: Ensure alternatives priority is 300
+      for Py2 and 200 for Py3.
+    - d/tests/control: Run Py3 tests first due to alternatives priority.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 30 Aug 2018 15:49:09 -0400
+
+watcher (1:1.12.0-0ubuntu1) cosmic; urgency=medium
 
-  [ Thomas Goirand ]
   * New upstream release.
-  * Fixed startup script description.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/rules: Skip Py3.7 tests until they run successfully upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 09 Aug 2018 10:41:04 -0400
+
+watcher (1:1.10.0-0ubuntu1) cosmic; urgency=medium
+
   * New upstream release.
-  * Fixed (build-)depends for this release. Freezegun upstream b-requirement
-    downgraded to 0.3.9.
-  * Removed fix-import-sphinx-Directive.patch applied upstream.
-  * Add switch-to-GreenThreadPoolExecutor.patch.
-  * Standards-Version: 4.3.0.
-  * Removed versions of packages when satisfied in Buster.
-  * Run different types of unit tests separately to avoid hangs.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/fix-import-sphinx-Directive.patch: Dropped. Fixed in new upstream
+    release.
 
-  [ Ondřej Nový ]
-  * d/control: Use team+openstack@tracker.debian.org as maintainer
-  * Running wrap-and-sort -bast
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 19 Jun 2018 08:56:49 -0400
+
+watcher (1:1.8.0-5ubuntu1) cosmic; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 20 Jun 2018 13:59:53 +0200
+  * Merge from Debian unstable.  Remaining changes:
+    - d/control, d/rules: Add Python 2.7 support and python-watcher package.
+    - d/control: Support Python 2.7 first and Python 3.x as alternative.
+      watcher-common depends on python-watcher by default and python3-watcher
+      as alternative.
+    - d/control: move all other python run-time dependencies to
+      python(3)-watcher packages.
+    - d/control: Enable autopkgtest-pkg-python testsuite.
+    - d/rules: Add Python 2.7 support.
+    - d/python(3)-watcher.post*, d/python(3)-watcher.prerm: update-alternatives
+      is used to enable correct shebangs for Python binaries.
+    - d/tests/*: Add Python 2/3 autopkgtests for watcher daemons and shebangs.
+    - d/watch: Get tarball from tarballs.openstack.org.
+    - d/gbp.conf: Retain for gbp and pristine-tar config.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 15 Jun 2018 16:19:55 -0400
 
 watcher (1.8.0-5) unstable; urgency=medium
 
@@ -416,6 +512,49 @@ watcher (1.8.0-1) unstable; urgency=medi
 
  -- Thomas Goirand <zigo@debian.org>  Tue, 20 Feb 2018 23:35:48 +0100
 
+watcher (1:1.8.0-0ubuntu1) bionic; urgency=medium
+
+  * New upstream release candidate for OpenStack Queens.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 14 Feb 2018 08:49:32 -0500
+
+watcher (1:1.7.0-0ubuntu2) bionic; urgency=medium
+
+  * d/watcher-common.postinst, d/watcher-common.postrm:
+    Fix package install failure. (LP: #1746792)
+
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 01 Feb 2018 14:49:11 -0500
+
+watcher (1:1.7.0-0ubuntu1) bionic; urgency=medium
+
+  [ James Page ]
+  * d/watcher-common.install: Drop install of policy.json.
+
+  [ Corey Bryant ]
+  * New upstream release for OpenStack Queens.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 25 Jan 2018 09:55:43 -0500
+
+watcher (1:1.6.0-0ubuntu1) bionic; urgency=medium
+
+  * New upstream release for OpenStack Queens.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/*: wrap-and-sort -bast.
+  * d/control: Update Standards-Version to 4.1.2.
+  * d/control: Drop dh-systemd. Not needed with debhelper 10.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 11 Dec 2017 16:13:53 -0500
+
+watcher (1:1.5.0-0ubuntu1) bionic; urgency=medium
+
+  * New upstream milestone for OpenStack Queens.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/drop-openstackdoctheme.patch: Dropped. No longer needed.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 16 Nov 2017 13:56:03 -0500
+
 watcher (1.4.1-3) unstable; urgency=medium
 
   * Fixed encoding of pt.po (Closes: #881578).
@@ -457,6 +596,83 @@ watcher (1.4.1-1) experimental; urgency=
 
  -- Thomas Goirand <zigo@debian.org>  Thu, 19 Oct 2017 16:11:45 +0200
 
+watcher (1:1.4.1-0ubuntu1) artful; urgency=medium
+
+  * New upstream point release for OpenStack Pike.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 28 Aug 2017 13:45:32 -0400
+
+watcher (1:1.4.0-0ubuntu1) artful; urgency=medium
+
+  * New upstream release candidate for OpenStack Pike.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 16 Aug 2017 22:06:19 -0400
+
+watcher (1:1.3.0-0ubuntu1) artful; urgency=medium
+
+  * d/control: Drop python-oslosphinx and add python-openstackdocstheme.
+  * New upstream release for OpenStack Pike.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/drop-openstackdoctheme.patch: Temporarily drop openstackdocstheme
+    sphinx extension until sphinx>=1.6.2 is available.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 01 Aug 2017 09:25:15 -0400
+
+watcher (1:1.2.0-0ubuntu1) artful; urgency=medium
+
+  * d/control: Add python-ironicclient to (Build-)Depends.
+  * New upstream release for OpenStack Pike.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- James Page <james.page@ubuntu.com>  Tue, 13 Jun 2017 13:12:08 +0100
+
+watcher (1:1.1.0-0ubuntu1) artful; urgency=medium
+
+  * New upstream release for OpenStack Pike.
+  * Align (Build-)Depends with upstream milestone.
+
+ -- James Page <james.page@ubuntu.com>  Fri, 28 Apr 2017 14:05:30 +0100
+
+watcher (1:1.0.1-0ubuntu1) zesty; urgency=medium
+
+  * New upstream release.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 16 Feb 2017 16:48:19 -0500
+
+watcher (1:1.0.0-0ubuntu1) zesty; urgency=medium
+
+  * New upstream release. 
+
+ -- Chuck Short <zulcss@ubuntu.com>  Thu, 09 Feb 2017 11:27:49 -0500
+
+watcher (1:0.34.0-0ubuntu2) zesty; urgency=medium
+
+  * d/watch: Point to tarballs instead of git tag. 
+
+ -- Chuck Short <zulcss@ubuntu.com>  Wed, 08 Feb 2017 12:54:34 -0500
+
+watcher (0.34.0-0ubuntu1) zesty; urgency=medium
+
+  * New upstream release. 
+  * d/control: Align (Build-)Depends with upstream.
+  * d/patches/patch-requirements.txt-to-allow-sqla-1.4.patch: Dropped no
+    longer needed.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 30 Jan 2017 14:24:55 -0500
+
+watcher (0.33.0-0ubuntu1) zesty; urgency=medium
+
+  * d/gbp.conf: Update gbp configuration file.
+  * d/control: Update Vcs-* links and maintainers.
+  * New upstream release.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/also-package-alembic-migration.patch: Dropped. MANIFEST.in has been
+    removed from upstream source in favor of pbr.
+  * d/p/patch-requirements.txt-to-allow-sqla-1.4.patch: Rebased.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 04 Jan 2017 16:00:57 -0500
+
 watcher (0.30.0-5) unstable; urgency=medium
 
   * Team upload.
diff -pruN 15.0.0-2/debian/control 2:15.0.0-0ubuntu1/debian/control
--- 15.0.0-2/debian/control	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/control	2025-10-02 15:44:29.000000000 +0000
@@ -1,138 +1,140 @@
 Source: watcher
 Section: net
 Priority: optional
-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian OpenStack <openstack-devel@lists.alioth.debian.org>
 Uploaders:
  Thomas Goirand <zigo@debian.org>,
- Michal Arbet <michal.arbet@ultimum.io>,
 Build-Depends:
- debhelper-compat (= 11),
+ debhelper-compat (= 13),
  dh-python,
- openstack-pkg-tools,
+ openstack-pkg-tools (>= 119ubuntu1~),
  po-debconf,
  python3-all,
- python3-pbr,
+ python3-pbr (>= 3.1.1),
  python3-setuptools,
- python3-sphinx,
+ python3-sphinx (>= 2.1.1),
 Build-Depends-Indep:
- python3-apscheduler,
- python3-cinderclient,
- python3-coverage,
- python3-croniter,
- python3-ddt,
- python3-debtcollector,
- python3-eventlet,
- python3-freezegun,
- python3-futurist,
- python3-glanceclient,
- python3-gnocchiclient,
- python3-hacking,
- python3-ironicclient,
- python3-jsonpatch,
- python3-jsonschema,
- python3-keystoneauth1,
- python3-keystoneclient,
- python3-keystonemiddleware,
- python3-lxml,
- python3-microversion-parse,
- python3-networkx,
- python3-neutronclient,
- python3-novaclient,
- python3-observabilityclient (>= 1.1.0),
- python3-openstackclient,
- python3-openstackdocstheme,
- python3-os-api-ref,
- python3-os-resource-classes,
- python3-oslo.cache,
- python3-oslo.concurrency,
- python3-oslo.config,
- python3-oslo.context,
- python3-oslo.db,
- python3-oslo.i18n,
- python3-oslo.log,
- python3-oslo.messaging,
- python3-oslo.policy,
- python3-oslo.reports,
- python3-oslo.serialization,
- python3-oslo.service (>= 4.2.1),
- python3-oslo.upgradecheck,
- python3-oslo.utils,
- python3-oslo.versionedobjects,
- python3-oslotest,
- python3-pastedeploy,
- python3-pecan,
- python3-prettytable,
- python3-sphinxcontrib-pecanwsme,
- python3-sphinxcontrib.apidoc,
- python3-sqlalchemy,
- python3-stestr,
- python3-stevedore,
- python3-taskflow,
- python3-testscenarios,
- python3-testtools,
- python3-webob,
- python3-webtest,
- python3-wsme,
-Standards-Version: 4.5.1
-Vcs-Browser: https://salsa.debian.org/openstack-team/services/watcher
-Vcs-Git: https://salsa.debian.org/openstack-team/services/watcher.git
-Homepage: https://github.com/openstack/watcher
+ python3-apscheduler (>= 3.5.1),
+ python3-cinderclient (>= 1:3.5.0),
+ python3-croniter (>= 0.3.20),
+ python3-ddt (>= 1.2.1),
+ python3-debtcollector (>= 1.2.0),
+ python3-eventlet (>= 0.27.0),
+ python3-freezegun (>= 0.3.10),
+ python3-futurist (>= 1.8.0),
+ python3-glanceclient (>= 1:2.9.1),
+ python3-gnocchiclient (>= 7.0.1),
+ python3-hacking (>= 1.1.0),
+ python3-ironicclient (>= 2.5.0),
+ python3-jsonpatch (>= 1.21),
+ python3-jsonschema (>= 3.2.0),
+ python3-keystoneauth1 (>= 3.4.0),
+ python3-keystoneclient (>= 1:3.15.0),
+ python3-keystonemiddleware (>= 4.21.0),
+ python3-libmaas (>= 0.6.8),
+ python3-lxml (>= 4.5.1),
+ python3-microversion-parse (>= 0.2.1),
+ python3-mock (>= 2.0.0),
+ python3-monascaclient (>= 1.12.0),
+ python3-networkx (>= 2.4),
+ python3-neutronclient (>= 1:6.7.0),
+ python3-novaclient (>= 2:14.1.0),
+ python3-observabilityclient,
+ python3-openstackclient (>= 3.14.0),
+ python3-openstackdocstheme (>= 2.2.1),
+ python3-os-api-ref (>= 1.4.0),
+ python3-os-resource-classes (>= 0.4.0),
+ python3-os-testr (>= 1.0.0),
+ python3-oslo.cache (>= 1.29.0),
+ python3-oslo.concurrency (>= 3.26.0),
+ python3-oslo.config (>= 1:6.8.0),
+ python3-oslo.context (>= 1:2.21.0),
+ python3-oslo.db (>= 4.44.0),
+ python3-oslo.i18n (>= 3.20.0),
+ python3-oslo.log (>= 3.37.0),
+ python3-oslo.messaging (>= 14.1.0),
+ python3-oslo.policy (>= 4.3.0),
+ python3-oslo.reports (>= 1.27.0),
+ python3-oslo.serialization (>= 2.25.0),
+ python3-oslo.service (>= 1.30.0),
+ python3-oslo.upgradecheck (>= 1.3.0),
+ python3-oslo.utils (>= 7.0.0),
+ python3-oslo.versionedobjects (>= 1.32.0),
+ python3-oslotest (>= 1:3.3.0),
+ python3-pastedeploy (>= 1.5.2),
+ python3-pecan (>= 1.3.2),
+ python3-prettytable (>= 0.7.2),
+ python3-sphinxcontrib-pecanwsme (>= 0.8.0),
+ python3-sphinxcontrib.apidoc (>= 0.2.0),
+ python3-sphinxcontrib.svg2pdfconverter (>= 0.1.0),
+ python3-sqlalchemy (>= 1.2.5),
+ python3-stestr (>= 2.0.0),
+ python3-stevedore (>= 1:1.28.0),
+ python3-taskflow (>= 3.8.0),
+ python3-testscenarios (>= 0.5.0),
+ python3-testtools (>= 2.3.0),
+ python3-voluptuous,
+ python3-webob (>= 1:1.8.5),
+ python3-webtest (>= 2.0.27),
+ python3-wsme (>= 0.9.2),
+Standards-Version: 4.6.1
+Vcs-Git: https://git.launchpad.net/~ubuntu-openstack-dev/ubuntu/+source/watcher
+Homepage: https://opendev.org/openstack/watcher
+Testsuite: autopkgtest-pkg-python
 
 Package: python3-watcher
 Section: python
 Architecture: all
 Depends:
- python3-apscheduler,
- python3-cinderclient,
- python3-croniter,
- python3-debtcollector,
- python3-eventlet,
- python3-futurist,
- python3-glanceclient,
- python3-gnocchiclient,
- python3-ironicclient,
- python3-jsonpatch,
- python3-jsonschema,
- python3-keystoneauth1,
- python3-keystoneclient,
- python3-keystonemiddleware,
- python3-lxml,
- python3-microversion-parse,
- python3-networkx,
- python3-neutronclient,
- python3-novaclient,
- python3-observabilityclient (>= 1.1.0),
- python3-openstackclient,
- python3-os-resource-classes,
- python3-oslo.cache,
- python3-oslo.concurrency,
- python3-oslo.config,
- python3-oslo.context,
- python3-oslo.db,
- python3-oslo.i18n,
- python3-oslo.log,
- python3-oslo.messaging,
- python3-oslo.policy,
- python3-oslo.reports,
- python3-oslo.serialization,
- python3-oslo.service (>= 4.2.1),
- python3-oslo.upgradecheck,
- python3-oslo.utils,
- python3-oslo.versionedobjects,
- python3-pastedeploy,
- python3-pbr,
- python3-pecan,
- python3-prettytable,
- python3-sqlalchemy,
- python3-stevedore,
- python3-taskflow,
- python3-webob,
- python3-wsme,
+ python3-apscheduler (>= 3.5.1),
+ python3-cinderclient (>= 1:3.5.0),
+ python3-croniter (>= 0.3.20),
+ python3-futurist (>= 1.8.0),
+ python3-glanceclient (>= 1:2.9.1),
+ python3-gnocchiclient (>= 7.0.1),
+ python3-ironicclient (>= 2.5.0),
+ python3-jsonpatch (>= 1.21),
+ python3-jsonschema (>= 3.2.0),
+ python3-keystoneauth1 (>= 3.4.0),
+ python3-keystoneclient (>= 1:3.15.0),
+ python3-keystonemiddleware (>= 4.21.0),
+ python3-lxml (>= 4.5.1),
+ python3-microversion-parse (>= 0.2.1),
+ python3-monascaclient (>= 1.12.0),
+ python3-networkx (>= 2.4),
+ python3-neutronclient (>= 1:6.7.0),
+ python3-novaclient (>= 2:14.1.0),
+ python3-openstackclient (>= 3.14.0),
+ python3-os-resource-classes (>= 0.4.0),
+ python3-oslo.cache (>= 1.29.0),
+ python3-oslo.concurrency (>= 3.26.0),
+ python3-oslo.config (>= 1:6.8.0),
+ python3-oslo.context (>= 1:2.21.0),
+ python3-oslo.db (>= 4.44.0),
+ python3-oslo.i18n (>= 3.20.0),
+ python3-oslo.log (>= 3.37.0),
+ python3-oslo.messaging (>= 14.1.0),
+ python3-oslo.policy (>= 4.3.0),
+ python3-oslo.reports (>= 1.27.0),
+ python3-oslo.serialization (>= 2.25.0),
+ python3-oslo.service (>= 1.30.0),
+ python3-oslo.upgradecheck (>= 1.3.0),
+ python3-oslo.utils (>= 7.0.0),
+ python3-oslo.versionedobjects (>= 1.32.0),
+ python3-pastedeploy (>= 1.5.2),
+ python3-pbr (>= 3.1.1),
+ python3-pecan (>= 1.3.2),
+ python3-prettytable (>= 0.7.2),
+ python3-sqlalchemy (>= 1.2.5),
+ python3-stevedore (>= 1:1.28.0),
+ python3-taskflow (>= 3.8.0),
+ python3-voluptuous,
+ python3-webob (>= 1:1.8.5),
+ python3-wsme (>= 0.9.2),
  ${misc:Depends},
  ${python3:Depends},
-Conflicts:
- python-watcher,
-Description: OpenStack Cloud Optimization as a Service - Python libraries
+Description: OpenStack Cloud Optimization as a Service - Python 3 libraries
  OpenStack Watcher provides a flexible and scalable resource optimization
  service for multi-tenant OpenStack-based clouds. Watcher provides a complete
  optimization loop-including everything from a metrics receiver, complex event
@@ -141,18 +143,22 @@ Description: OpenStack Cloud Optimizatio
  goals, including the reduction of data center operating costs, increased
  system performance via intelligent virtual machine migration, increased energy
  efficiency-and more!
+ .
+ This package contains the Python 3 libraries that are part of Watcher.
 
 Package: watcher-api
 Architecture: all
+Pre-Depends:
+ ucf,
+ ${misc:Pre-Depends},
 Depends:
  adduser,
  debconf,
- python3-keystoneclient,
- python3-openstackclient,
+ net-tools,
  q-text-as-data,
  watcher-common (= ${binary:Version}),
  ${misc:Depends},
- ${python3:Depends},
+ ${ostack-lsb-base},
 Description: OpenStack Cloud Optimization as a Service - API server
  OpenStack Watcher provides a flexible and scalable resource optimization
  service for multi-tenant OpenStack-based clouds. Watcher provides a complete
@@ -167,10 +173,12 @@ Description: OpenStack Cloud Optimizatio
 
 Package: watcher-applier
 Architecture: all
+Pre-Depends:
+ ${misc:Pre-Depends},
 Depends:
  watcher-common (= ${binary:Version}),
  ${misc:Depends},
- ${python3:Depends},
+ ${ostack-lsb-base},
 Description: OpenStack Cloud Optimization as a Service - Applier
  OpenStack Watcher provides a flexible and scalable resource optimization
  service for multi-tenant OpenStack-based clouds. Watcher provides a complete
@@ -185,6 +193,8 @@ Description: OpenStack Cloud Optimizatio
 
 Package: watcher-common
 Architecture: all
+Pre-Depends:
+ ucf,
 Depends:
  adduser,
  dbconfig-common,
@@ -192,7 +202,6 @@ Depends:
  python3-watcher (= ${binary:Version}),
  sqlite3,
  ${misc:Depends},
- ${python3:Depends},
 Description: OpenStack Cloud Optimization as a Service - common files
  OpenStack Watcher provides a flexible and scalable resource optimization
  service for multi-tenant OpenStack-based clouds. Watcher provides a complete
@@ -208,10 +217,12 @@ Description: OpenStack Cloud Optimizatio
 
 Package: watcher-decision-engine
 Architecture: all
+Pre-Depends:
+ ${misc:Pre-Depends},
 Depends:
  watcher-common (= ${binary:Version}),
  ${misc:Depends},
- ${python3:Depends},
+ ${ostack-lsb-base},
 Description: OpenStack Cloud Optimization as a Service - Decision Engine
  OpenStack Watcher provides a flexible and scalable resource optimization
  service for multi-tenant OpenStack-based clouds. Watcher provides a complete
diff -pruN 15.0.0-2/debian/copyright 2:15.0.0-0ubuntu1/debian/copyright
--- 15.0.0-2/debian/copyright	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/copyright	2025-10-02 15:44:29.000000000 +0000
@@ -1,6 +1,6 @@
 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: watcher
-Source: https://github.com/openstack/watcher
+Source: https://opendev.org/openstack/watcher
 
 Files: *
 Copyright: (c) 2012-2016, OpenStack Foundation <openstack-dev@lists.openstack.org>
@@ -21,7 +21,6 @@ License: Apache-2.0
 
 Files: debian/*
 Copyright: (c) Thomas Goirand <zigo@debian.org>
-           (c) Michal Arbet <michal.arbet@ultimum.io>
 License: Apache-2.0
 
 License: Apache-2.0
diff -pruN 15.0.0-2/debian/debian_control_vars 2:15.0.0-0ubuntu1/debian/debian_control_vars
--- 15.0.0-2/debian/debian_control_vars	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/debian_control_vars	2025-10-02 15:44:29.000000000 +0000
@@ -0,0 +1 @@
+ostack-lsb-base= lsb-base  (>= 3.0-6)
diff -pruN 15.0.0-2/debian/gbp.conf 2:15.0.0-0ubuntu1/debian/gbp.conf
--- 15.0.0-2/debian/gbp.conf	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/gbp.conf	2025-10-02 15:44:29.000000000 +0000
@@ -0,0 +1,9 @@
+[DEFAULT]
+debian-branch = master
+upstream-tag = %(version)s
+pristine-tar = True
+upstream-branch = upstream-flamingo
+
+[buildpackage]
+export-dir = ../build-area
+prebuild = [ ! -f .launchpad.yaml ] || rm .launchpad.yaml
diff -pruN 15.0.0-2/debian/patches/also-package-alembic-migration.patch 2:15.0.0-0ubuntu1/debian/patches/also-package-alembic-migration.patch
--- 15.0.0-2/debian/patches/also-package-alembic-migration.patch	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/patches/also-package-alembic-migration.patch	2025-10-02 15:44:29.000000000 +0000
@@ -3,7 +3,9 @@ Author: Thomas Goirand <zigo@debian.org>
 Forwarded: no
 Last-Update: 2017-10-20
 
---- /dev/null	2017-10-16 21:43:57.398818308 +0000
-+++ b/MANIFEST.in	2017-10-20 10:20:52.575637567 +0000
+Index: watcher/MANIFEST.in
+===================================================================
+--- /dev/null
++++ watcher/MANIFEST.in
 @@ -0,0 +1 @@
 +recursive-include watcher/db *
diff -pruN 15.0.0-2/debian/patches/drop-sphinxcontrib-rsvgconverter.patch 2:15.0.0-0ubuntu1/debian/patches/drop-sphinxcontrib-rsvgconverter.patch
--- 15.0.0-2/debian/patches/drop-sphinxcontrib-rsvgconverter.patch	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/patches/drop-sphinxcontrib-rsvgconverter.patch	2025-10-02 15:44:29.000000000 +0000
@@ -0,0 +1,17 @@
+Description: Drop sphinxcontrib.rsvgconverter as it is currently
+  not packaged for Ubuntu.
+Author: Corey Bryant <corey.bryant@canonical.com>
+Forwarded: No
+
+Index: watcher/doc/source/conf.py
+===================================================================
+--- watcher.orig/doc/source/conf.py
++++ watcher/doc/source/conf.py
+@@ -40,7 +40,6 @@ extensions = [
+     'oslo_config.sphinxconfiggen',
+     'openstackdocstheme',
+     'sphinx.ext.napoleon',
+-    'sphinxcontrib.rsvgconverter',
+ ]
+ 
+ wsme_protocols = ['restjson']
diff -pruN 15.0.0-2/debian/patches/fix-term.py-for-latest-docutils.patch 2:15.0.0-0ubuntu1/debian/patches/fix-term.py-for-latest-docutils.patch
--- 15.0.0-2/debian/patches/fix-term.py-for-latest-docutils.patch	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/patches/fix-term.py-for-latest-docutils.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,38 +0,0 @@
-Description: Fix term.py for latest docutils
- The WatcherTerm.run() method where self.result (a ViewList) was being passed
- to nested_parse, but the source information was not properly set up.
-Author: Thomas Goirand <zigo@debian.org>
-Bug-Debian: https://bugs.debian.org/1118332
-Forwarded: https://review.opendev.org/c/openstack/watcher/+/964762
-Last-Update: 2025-10-24
-
-Index: watcher/doc/ext/term.py
-===================================================================
---- watcher.orig/doc/ext/term.py
-+++ watcher/doc/ext/term.py
-@@ -37,11 +37,22 @@ class BaseWatcherDirective(rst.Directive
- 
-     def add_line(self, line, *lineno):
-         """Append one line of generated reST to the output."""
--        self.result.append(line, rst.directives.unchanged, *lineno)
-+        # Provide a proper source string to avoid issues with newer docutils
-+        # Try to get the actual source file, fallback to class name
-+        source = getattr(self.state.document, 'current_source', None)
-+        if source is None:
-+            source = f'<watcher-{self.__class__.__name__.lower()}>'
-+
-+        # Handle lineno properly - use the first arg from *lineno if provided, otherwise use self.lineno
-+        actual_lineno = lineno[0] if lineno else getattr(self, "lineno", 0)
-+
-+        # For newer docutils, ensure source is always a string
-+        self.result.append(line, source, actual_lineno)
- 
-     def add_textblock(self, textblock):
--        for line in textblock.splitlines():
--            self.add_line(line)
-+        base_lineno = getattr(self, "lineno", 0)
-+        for i, line in enumerate(textblock.splitlines()):
-+            self.add_line(line, base_lineno + i)
- 
-     def add_object_docstring(self, obj):
-         obj_raw_docstring = obj.__doc__ or ""
diff -pruN 15.0.0-2/debian/patches/remove-sphinxcontrib.rsvgconverter.patch 2:15.0.0-0ubuntu1/debian/patches/remove-sphinxcontrib.rsvgconverter.patch
--- 15.0.0-2/debian/patches/remove-sphinxcontrib.rsvgconverter.patch	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/patches/remove-sphinxcontrib.rsvgconverter.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,18 +0,0 @@
-Description: Remove sphinxcontrib.rsvgconverter
- This isn't packaged in Debian.
-Author: Thomas Goirand <zigo@debian.org>
-Forwarded: not-needed
-Last-Update: 2019-10-02
-
-Index: watcher/doc/source/conf.py
-===================================================================
---- watcher.orig/doc/source/conf.py
-+++ watcher/doc/source/conf.py
-@@ -40,7 +40,6 @@ extensions = [
-     'oslo_config.sphinxconfiggen',
-     'openstackdocstheme',
-     'sphinx.ext.napoleon',
--    'sphinxcontrib.rsvgconverter',
- ]
- 
- wsme_protocols = ['restjson']
diff -pruN 15.0.0-2/debian/patches/removed-sphinxcontrib.httpdomain-from-sphinx-ext.patch 2:15.0.0-0ubuntu1/debian/patches/removed-sphinxcontrib.httpdomain-from-sphinx-ext.patch
--- 15.0.0-2/debian/patches/removed-sphinxcontrib.httpdomain-from-sphinx-ext.patch	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/patches/removed-sphinxcontrib.httpdomain-from-sphinx-ext.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-Description: Removed sphinxcontrib.httpdomain from sphinx ext.
-Author: Thomas Goirand <zigo@debian.org>
-Forwarded: no
-Last-Update: 2021-03-23
-
---- watcher-6.0.0~rc1.orig/doc/source/conf.py
-+++ watcher-6.0.0~rc1/doc/source/conf.py
-@@ -32,7 +32,6 @@ sys.path.insert(0, os.path.abspath('./')
- extensions = [
-     'oslo_config.sphinxext',
-     'sphinx.ext.viewcode',
--    'sphinxcontrib.httpdomain',
-     'sphinxcontrib.pecanwsme.rest',
-     'stevedore.sphinxext',
-     'ext.term',
diff -pruN 15.0.0-2/debian/patches/series 2:15.0.0-0ubuntu1/debian/patches/series
--- 15.0.0-2/debian/patches/series	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/patches/series	2025-10-02 15:44:29.000000000 +0000
@@ -1,4 +1,3 @@
+drop-sphinxcontrib-rsvgconverter.patch
+skip-tests.patch
 also-package-alembic-migration.patch
-remove-sphinxcontrib.rsvgconverter.patch
-removed-sphinxcontrib.httpdomain-from-sphinx-ext.patch
-fix-term.py-for-latest-docutils.patch
diff -pruN 15.0.0-2/debian/patches/skip-tests.patch 2:15.0.0-0ubuntu1/debian/patches/skip-tests.patch
--- 15.0.0-2/debian/patches/skip-tests.patch	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/patches/skip-tests.patch	2025-10-02 15:44:29.000000000 +0000
@@ -0,0 +1,65 @@
+Description: Skip tests that periodically fail.
+Author: Corey Bryant <corey.bryant@canonical.com>
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1790129
+            https://bugs.launchpad.net/bugs/1933708
+
+Index: watcher/watcher/tests/decision_engine/strategy/strategies/test_workload_balance.py
+===================================================================
+--- watcher.orig/watcher/tests/decision_engine/strategy/strategies/test_workload_balance.py
++++ watcher/watcher/tests/decision_engine/strategy/strategies/test_workload_balance.py
+@@ -18,6 +18,7 @@
+ #
+ import collections
+ from unittest import mock
++import testtools
+ 
+ from watcher.applier.loading import default
+ from watcher.common import utils
+@@ -61,6 +62,7 @@ class TestWorkloadBalance(TestBaseStrate
+         self.strategy._meter = 'instance_cpu_usage'
+         self.strategy._granularity = 300
+ 
++    @testtools.skip("Skipped by Ubuntu - bug/1790129")
+     def test_group_hosts_by_cpu_util(self):
+         model = self.fake_c_cluster.generate_scenario_6_with_2_nodes()
+         self.m_c_model.return_value = model
+Index: watcher/watcher/tests/objects/test_action_description.py
+===================================================================
+--- watcher.orig/watcher/tests/objects/test_action_description.py
++++ watcher/watcher/tests/objects/test_action_description.py
+@@ -16,6 +16,7 @@
+ 
+ import datetime
+ from unittest import mock
++import testtools
+ 
+ from oslo_utils import timeutils
+ 
+@@ -51,6 +52,7 @@ class TestActionDescriptionObject(base.D
+         self.assertIsInstance(action_desc[0], objects.ActionDescription)
+         self.assertEqual(self.context, action_desc[0]._context)
+ 
++    @testtools.skip("Skipped by Ubuntu - bug/1790129")
+     @mock.patch.object(db_api.Connection, 'create_action_description')
+     def test_create(self, mock_create_action_desc):
+         mock_create_action_desc.return_value = self.fake_action_desc
+Index: watcher/watcher/tests/api/v1/test_audits.py
+===================================================================
+--- watcher.orig/watcher/tests/api/v1/test_audits.py
++++ watcher/watcher/tests/api/v1/test_audits.py
+@@ -13,6 +13,7 @@
+ import datetime
+ from datetime import timezone
+ import itertools
++import testtools
+ from unittest import mock
+ from urllib import parse as urlparse
+ 
+@@ -787,6 +788,7 @@ class TestPost(TestPostBase):
+         self.assertEqual(audit_dict['interval'], response.json['interval'])
+         self.assertTrue(utils.is_uuid_like(response.json['uuid']))
+ 
++    @testtools.skip("Skipped by Ubuntu - bug/1790129")
+     @mock.patch.object(deapi.DecisionEngineAPI, 'trigger_audit')
+     def test_create_continuous_audit_with_wrong_interval(self,
+                                                          mock_trigger_audit):
diff -pruN 15.0.0-2/debian/python3-watcher.install 2:15.0.0-0ubuntu1/debian/python3-watcher.install
--- 15.0.0-2/debian/python3-watcher.install	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/python3-watcher.install	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-/usr
diff -pruN 15.0.0-2/debian/rules 2:15.0.0-0ubuntu1/debian/rules
--- 15.0.0-2/debian/rules	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/rules	2025-10-02 15:44:29.000000000 +0000
@@ -1,20 +1,23 @@
 #!/usr/bin/make -f
 
-include /usr/share/openstack-pkg-tools/pkgos.make
+export PYBUILD_NAME=watcher
+
+PYTHON3S:=$(shell py3versions -vr)
+
+DEBVERS ?= $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
+VERSION ?= $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[-].*//' -e 's/[+].*//' -e 's/~git.*//g' -e 's/~/./g')
+export PBR_VERSION=$(VERSION)
 
-export TZ=UTC
+include /usr/share/openstack-pkg-tools/pkgos.make
 
 %:
 	dh $@ --buildsystem=pybuild --with python3,sphinxdoc
 
-override_dh_auto_clean:
-	python3 setup.py clean
+override_dh_clean:
+	dh_clean
 	rm -f debian/watcher-common.config debian/watcher-common.postinst debian/watcher-api.config debian/watcher-api.postinst
 	rm -rf debian/*.upstart debian/*.service
-	rm -rf debian/watcher-common.postrm debian/*.templates debian/po debian/*.init
-	rm -rf build .stestr doc/source/_static/watcher.conf.sample *.egg-info
-	find . -iname '*.pyc' -delete
-	for i in $$(find . -type d -iname __pycache__) ; do rm -rf $$i ; done
+	rm -rf debian/watcher-common.postrm debian/*.templates debian/po
 
 override_dh_auto_build:
 	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func watcher-common.config
@@ -25,22 +28,17 @@ override_dh_auto_build:
 	pkgos-merge-templates watcher-api watcher endpoint
 	pkgos-merge-templates watcher-common watcher db rabbit ksat
 
+override_dh_auto_clean:
+	python3 setup.py clean
+
 override_dh_auto_install:
 	echo "Do nothing..."
 
 override_dh_install:
-	pkgos-dh_auto_install --no-py2 --in-tmp
+	pkgos-dh_auto_install --no-py2
 
 ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.api\.(?!.*test_hooks\.TestContextHook\.test_context_hook_before_method.*|.*v1\.test_audits\.TestPost\.test_create_continuous_audit_with_wrong_interval.*)'
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.applier.*'
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.cmd.*'
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.common\.(?!.*test_clients\.TestClients\.test_clients_ironic.*|.*metal_helper\.test_maas.*)'
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.conf.*'
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.db.*'
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.decision_engine.*'
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.notifications.*'
-	pkgos-dh_auto_test --no-py2 --serial 'watcher\.tests\.objects.*'
+	pkgos-dh_auto_test --no-py2 'watcher\.tests\.(?!.*api\.test_hooks\.TestContextHook\.test_context_hook_before_method.*)'
 endif
 
 	rm -rf $(CURDIR)/debian/python3-watcher/usr/etc
@@ -72,11 +70,6 @@ endif
 	dh_install
 	dh_missing --fail-missing
 
-	rm -rf debian/python3-watcher/usr/etc
-
-	mkdir -p $(CURDIR)/debian/watcher-api/usr/bin
-	cp watcher/api/app.wsgi $(CURDIR)/debian/watcher-api/usr/bin/watcher-wsgi-api
-
 	# Disable https in default setup, as this makes our CI fail
 	pkgos-fix-config-default $(CURDIR)/debian/watcher-common/usr/share/watcher-common/watcher.conf keystone_authtoken auth_protocol http
 
@@ -88,10 +81,7 @@ override_dh_auto_test:
 
 override_dh_sphinxdoc:
 ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
-	set -e ; set -x ; if ! PYTHON=python3 PYTHONPATH=. python3 -m sphinx $(SPHINXOPTS) -b html doc/source $(CURDIR)/debian/watcher-doc/usr/share/doc/watcher-doc/html ; then \
-		cat /tmp/sphinx-err-*.log ; \
-		false ; \
-	fi
+	PYTHON=python3 PYTHONPATH=. python3 -m sphinx $(SPHINXOPTS) -b html doc/source $(CURDIR)/debian/watcher-doc/usr/share/doc/watcher-doc/html
 	touch $(CURDIR)/debian/watcher-doc/usr/share/doc/watcher-doc/html/_static/toggle.js
 	dh_sphinxdoc
 endif
diff -pruN 15.0.0-2/debian/salsa-ci.yml 2:15.0.0-0ubuntu1/debian/salsa-ci.yml
--- 15.0.0-2/debian/salsa-ci.yml	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/salsa-ci.yml	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-include:
-  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
-  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
diff -pruN 15.0.0-2/debian/source/options 2:15.0.0-0ubuntu1/debian/source/options
--- 15.0.0-2/debian/source/options	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/source/options	2025-10-02 15:44:29.000000000 +0000
@@ -1 +1,2 @@
 extend-diff-ignore = "^[.]gitreview$"
+extend-diff-ignore = "^.launchpad.yaml"
diff -pruN 15.0.0-2/debian/tests/control 2:15.0.0-0ubuntu1/debian/tests/control
--- 15.0.0-2/debian/tests/control	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/tests/control	2025-10-02 15:44:29.000000000 +0000
@@ -0,0 +1,11 @@
+Tests:
+ watcher-daemons,
+Depends:
+ crudini,
+ mysql-server,
+ rabbitmq-server,
+ watcher-api,
+ watcher-applier,
+ watcher-decision-engine,
+Restrictions:
+ needs-root allow-stderr,
diff -pruN 15.0.0-2/debian/tests/watcher-daemons 2:15.0.0-0ubuntu1/debian/tests/watcher-daemons
--- 15.0.0-2/debian/tests/watcher-daemons	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/tests/watcher-daemons	2025-10-02 15:44:29.000000000 +0000
@@ -0,0 +1,46 @@
+#!/bin/bash
+#---------------------
+# Testing watcher-daemons
+#---------------------
+set -e
+
+mysql -u root << EOF
+CREATE USER 'watcher'@'localhost' IDENTIFIED BY 'changeme';
+CREATE USER 'watcher'@'%' IDENTIFIED BY 'changeme';
+CREATE DATABASE watcher;
+GRANT ALL PRIVILEGES ON watcher.* TO 'watcher'@'localhost';
+GRANT ALL PRIVILEGES ON watcher.* TO 'watcher'@'%';
+EOF
+
+
+DAEMONS=('watcher-api' 'watcher-applier' 'watcher-decision-engine')
+
+crudini --set /etc/watcher/watcher.conf database connection "mysql+pymysql://watcher:changeme@localhost/watcher"
+
+watcher-db-manage upgrade
+
+for daemon in "${DAEMONS[@]}"; do
+    systemctl restart $daemon
+done
+
+ret=0
+
+for daemon in "${DAEMONS[@]}"; do
+    TIMEOUT=50
+    while [ "$TIMEOUT" -gt 0 ]; do
+        if systemctl is-active $daemon > /dev/null; then
+            echo "OK"
+            break
+        fi
+        TIMEOUT=$((TIMEOUT - 1))
+        sleep 0.1
+    done
+
+    if [ "$TIMEOUT" -le 0 ]; then
+        echo "ERROR: ${daemon} IS NOT RUNNING"
+        ret=1
+    fi
+done
+
+exit $ret
+ -ae
diff -pruN 15.0.0-2/debian/watch 2:15.0.0-0ubuntu1/debian/watch
--- 15.0.0-2/debian/watch	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/watch	2025-10-02 15:44:29.000000000 +0000
@@ -1,3 +1,3 @@
 version=3
-opts="uversionmangle=s/\.0rc/~rc/;s/\.0b1/~b1/;s/\.0b2/~b2/;s/\.0b3/~b3/" \
-https://github.com/openstack/watcher/tags .*/(\d[brc\d\.]+)\.tar\.gz
+opts="uversionmangle=s/\.0(b|rc)/~$1/" \
+https://tarballs.opendev.org/openstack/watcher/ python_watcher-(\d{1,2}\.\d.*)\.tar\.gz
diff -pruN 15.0.0-2/debian/watcher-api-uwsgi.ini 2:15.0.0-0ubuntu1/debian/watcher-api-uwsgi.ini
--- 15.0.0-2/debian/watcher-api-uwsgi.ini	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/watcher-api-uwsgi.ini	1970-01-01 00:00:00.000000000 +0000
@@ -1,88 +0,0 @@
-[uwsgi]
-############################
-### Generic UWSGI config ###
-############################
-
-# Override the default size for headers from the 4k default.
-buffer-size = 65535
-
-# This avoids error 104: "Connection reset by peer"
-rem-header = Content-Length
-
-# This is running standalone
-master = true
-
-# uwsgi recommends this to prevent thundering herd on accept.
-thunder-lock = true
-
-plugins = python3
-
-# This ensures that file descriptors aren't shared between the WSGI application processes.
-lazy-apps = true
-
-# Log from the wsgi application: needs python3-pastescript as runtime depends.
-paste-logger = true
-
-# automatically kill workers if master dies
-no-orphans = true
-
-# exit instead of brutal reload on SIGTERM
-die-on-term = true
-
-##########################
-### Performance tuning ###
-##########################
-# Threads and processes
-enable-threads = true
-
-# For max perf, set this to number of core*2
-processes = 8
-
-# This was benchmarked as a good value
-threads = 32
-
-# This is the number of sockets in the queue.
-# It improves a lot performances. This is comparable
-# to the Apache ServerLimit/MaxClients option.
-listen = 100
-
-##################################
-### OpenStack service specific ###
-##################################
-env = OS_OSLO_MESSAGING_RABBIT__PROCESSNAME=watcher-api
-
-# These are used in the gate.
-# The http-auto-chunked / http-chunked-input
-# are mandatory, specific to Glance, and are
-# the reasons why Glance doesn't work on Apache
-socket-timeout = 10
-http-auto-chunked = true
-http-chunked-input = true
-http-raw-body = true
-chmod-socket = 666
-lazy-apps = true
-add-header = Connection: close
-enable-threads = true
-exit-on-reload = true
-die-on-term = true
-
-# This is the standard port for the WSGI application, listening on all available IPs
-logto = /var/log/watcher/watcher-api.log
-name = watcher-api
-uid = watcher
-gid = watcher
-chdir = /var/lib/watcher
-wsgi-file = /usr/bin/watcher-wsgi-api
-
-# This is controled by the init script using the --http-socket
-# or using the --https thing. https will be activated if a file
-# /etc/watcher/ssl/private/*.pem is found. In both case, port 9292
-# on all IPs will be used.
-# The partern to search for the private key file is:
-# find /etc/watcher/ssl/private -type f -iname '*.pem' | head -n 1
-# and for the certificate:
-# find /etc/watcher/ssl/private -type f -iname '*.crt' | head -n 1
-# just drop files there and restart the daemon, and you'll have
-# SSL up and running.
-#http-socket = :9292
-#https 0.0.0.0:9292,foobar.crt,foobar.key
diff -pruN 15.0.0-2/debian/watcher-api.init.in 2:15.0.0-0ubuntu1/debian/watcher-api.init.in
--- 15.0.0-2/debian/watcher-api.init.in	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/watcher-api.init.in	2025-10-02 15:44:29.000000000 +0000
@@ -12,6 +12,6 @@
 ### END INIT INFO
 
 # Author: Thomas Goirand <zigo@debian.org>
-DESC="OpenStack Watcher Api (watcher-api)"
+DESC="OpenStack Watcher Api"
 PROJECT_NAME=watcher
 NAME=${PROJECT_NAME}-api
diff -pruN 15.0.0-2/debian/watcher-applier.init.in 2:15.0.0-0ubuntu1/debian/watcher-applier.init.in
--- 15.0.0-2/debian/watcher-applier.init.in	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/watcher-applier.init.in	2025-10-02 15:44:29.000000000 +0000
@@ -12,7 +12,6 @@
 ### END INIT INFO
 
 # Author: Thomas Goirand <zigo@debian.org>
-DESC="OpenStack Watcher Applier (watcher-applier)"
+DESC="OpenStack Watcher Applier"
 PROJECT_NAME=watcher
 NAME=${PROJECT_NAME}-applier
-export OS_OSLO_MESSAGING_RABBIT__PROCESSNAME=watcher-applier
diff -pruN 15.0.0-2/debian/watcher-common.postinst.in 2:15.0.0-0ubuntu1/debian/watcher-common.postinst.in
--- 15.0.0-2/debian/watcher-common.postinst.in	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/watcher-common.postinst.in	2025-10-02 15:44:29.000000000 +0000
@@ -32,6 +32,15 @@ if [ "$1" = "configure" ] || [ "$1" = "r
 		su -s /bin/sh -c 'watcher-db-manage --config-file /etc/watcher/watcher.conf create_schema' watcher
 	fi
 	db_stop
+
+    chown watcher:adm /var/log/watcher
+    chmod 0750 /var/log/watcher
+
+    find /etc/watcher -exec chown root:watcher "{}" +
+    find /etc/watcher -type f -exec chmod 0640 "{}" + -o -type d -exec chmod 0750 "{}" +
+
+    find /var/lib/watcher -exec chown watcher:watcher "{}" +
+    find /var/lib/watcher -type f -exec chmod 0640 "{}" + -o -type d -exec chmod 0750 "{}" +
 fi
 
 #DEBHELPER#
diff -pruN 15.0.0-2/debian/watcher-decision-engine.init.in 2:15.0.0-0ubuntu1/debian/watcher-decision-engine.init.in
--- 15.0.0-2/debian/watcher-decision-engine.init.in	2025-10-24 09:15:25.000000000 +0000
+++ 2:15.0.0-0ubuntu1/debian/watcher-decision-engine.init.in	2025-10-02 15:44:29.000000000 +0000
@@ -12,7 +12,6 @@
 ### END INIT INFO
 
 # Author: Thomas Goirand <zigo@debian.org>
-DESC="OpenStack Watcher Decision Engine (watcher-decision-engine)"
+DESC="OpenStack Watcher Decision Engine"
 PROJECT_NAME=watcher
 NAME=${PROJECT_NAME}-decision-engine
-export OS_OSLO_MESSAGING_RABBIT__PROCESSNAME=watcher-decision-engine
diff -pruN 15.0.0-2/python_watcher.egg-info/PKG-INFO 2:15.0.0-0ubuntu1/python_watcher.egg-info/PKG-INFO
--- 15.0.0-2/python_watcher.egg-info/PKG-INFO	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/python_watcher.egg-info/PKG-INFO	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1,100 @@
+Metadata-Version: 2.1
+Name: python-watcher
+Version: 15.0.0
+Summary: OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack-based clouds.
+Home-page: https://docs.openstack.org/watcher/latest/
+Author: OpenStack
+Author-email: openstack-discuss@lists.openstack.org
+Classifier: Environment :: OpenStack
+Classifier: Intended Audience :: Information Technology
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Requires-Python: >=3.10
+License-File: LICENSE
+Requires-Dist: apscheduler>=3.5.1
+Requires-Dist: debtcollector>=1.2.0
+Requires-Dist: eventlet>=0.27.0
+Requires-Dist: jsonpatch>=1.21
+Requires-Dist: keystoneauth1>=3.4.0
+Requires-Dist: jsonschema>=3.2.0
+Requires-Dist: keystonemiddleware>=4.21.0
+Requires-Dist: lxml>=4.5.1
+Requires-Dist: croniter>=0.3.20
+Requires-Dist: os-resource-classes>=0.4.0
+Requires-Dist: oslo.concurrency>=3.26.0
+Requires-Dist: oslo.cache>=1.29.0
+Requires-Dist: oslo.config>=6.8.0
+Requires-Dist: oslo.context>=2.21.0
+Requires-Dist: oslo.db>=4.44.0
+Requires-Dist: oslo.i18n>=3.20.0
+Requires-Dist: oslo.log>=3.37.0
+Requires-Dist: oslo.messaging>=14.1.0
+Requires-Dist: oslo.policy>=4.5.0
+Requires-Dist: oslo.reports>=1.27.0
+Requires-Dist: oslo.serialization>=2.25.0
+Requires-Dist: oslo.service[threading]>=4.2.1
+Requires-Dist: oslo.upgradecheck>=1.3.0
+Requires-Dist: oslo.utils>=7.0.0
+Requires-Dist: oslo.versionedobjects>=1.32.0
+Requires-Dist: PasteDeploy>=1.5.2
+Requires-Dist: pbr>=3.1.1
+Requires-Dist: pecan>=1.3.2
+Requires-Dist: PrettyTable>=0.7.2
+Requires-Dist: gnocchiclient>=7.0.1
+Requires-Dist: python-cinderclient>=3.5.0
+Requires-Dist: python-glanceclient>=2.9.1
+Requires-Dist: python-keystoneclient>=3.15.0
+Requires-Dist: python-neutronclient>=6.7.0
+Requires-Dist: python-novaclient>=14.1.0
+Requires-Dist: python-observabilityclient>=1.1.0
+Requires-Dist: python-openstackclient>=3.14.0
+Requires-Dist: python-ironicclient>=2.5.0
+Requires-Dist: SQLAlchemy>=1.2.5
+Requires-Dist: stevedore>=1.28.0
+Requires-Dist: taskflow>=3.8.0
+Requires-Dist: WebOb>=1.8.5
+Requires-Dist: WSME>=0.9.2
+Requires-Dist: networkx>=2.4
+Requires-Dist: microversion_parse>=0.2.1
+Requires-Dist: futurist>=1.8.0
+Provides-Extra: monasca
+Requires-Dist: python-monascaclient>=1.12.0; extra == "monasca"
+
+=======
+Watcher
+=======
+
+.. image:: https://governance.openstack.org/tc/badges/watcher.svg
+    :target: https://governance.openstack.org/tc/reference/tags/index.html
+
+.. Change things from this point on
+
+..
+      Except where otherwise noted, this document is licensed under Creative
+      Commons Attribution 3.0 License.  You can view the license at:
+
+          https://creativecommons.org/licenses/by/3.0/
+
+OpenStack Watcher provides a flexible and scalable resource optimization
+service for multi-tenant OpenStack-based clouds.
+Watcher provides a robust framework to realize a wide range of cloud
+optimization goals, including the reduction of data center
+operating costs, increased system performance via intelligent virtual machine
+migration, increased energy efficiency and more!
+
+* Free software: Apache license
+* Wiki: https://wiki.openstack.org/wiki/Watcher
+* Source: https://opendev.org/openstack/watcher
+* Bugs: https://bugs.launchpad.net/watcher
+* Documentation: https://docs.openstack.org/watcher/latest/
+* Release notes: https://docs.openstack.org/releasenotes/watcher/
+* Design specifications: https://specs.openstack.org/openstack/watcher-specs/
+
diff -pruN 15.0.0-2/python_watcher.egg-info/SOURCES.txt 2:15.0.0-0ubuntu1/python_watcher.egg-info/SOURCES.txt
--- 15.0.0-2/python_watcher.egg-info/SOURCES.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/python_watcher.egg-info/SOURCES.txt	2025-10-01 10:47:31.000000000 +0000
@@ -0,0 +1,960 @@
+.coveragerc
+.mailmap
+.pre-commit-config.yaml
+.stestr.conf
+.zuul.yaml
+AUTHORS
+CONTRIBUTING.rst
+ChangeLog
+HACKING.rst
+LICENSE
+README.rst
+bindep.txt
+pyproject.toml
+requirements.txt
+setup.cfg
+setup.py
+test-requirements.txt
+tox.ini
+api-ref/source/conf.py
+api-ref/source/index.rst
+api-ref/source/parameters.yaml
+api-ref/source/watcher-api-v1-actionplans.inc
+api-ref/source/watcher-api-v1-actions.inc
+api-ref/source/watcher-api-v1-audits.inc
+api-ref/source/watcher-api-v1-audittemplates.inc
+api-ref/source/watcher-api-v1-datamodel.inc
+api-ref/source/watcher-api-v1-goals.inc
+api-ref/source/watcher-api-v1-scoring_engines.inc
+api-ref/source/watcher-api-v1-services.inc
+api-ref/source/watcher-api-v1-strategies.inc
+api-ref/source/watcher-api-v1-webhooks.inc
+api-ref/source/watcher-api-versions.inc
+api-ref/source/samples/action-skip-request-with-message.json
+api-ref/source/samples/action-skip-request.json
+api-ref/source/samples/action-skip-response.json
+api-ref/source/samples/action-update-status-message-request.json
+api-ref/source/samples/action-update-status-message-response.json
+api-ref/source/samples/actionplan-cancel-request-cancelling.json
+api-ref/source/samples/actionplan-cancel-request-pending.json
+api-ref/source/samples/actionplan-list-detailed-response.json
+api-ref/source/samples/actionplan-list-response.json
+api-ref/source/samples/actionplan-show-response.json
+api-ref/source/samples/actionplan-start-response.json
+api-ref/source/samples/actions-list-detailed-response.json
+api-ref/source/samples/actions-list-response.json
+api-ref/source/samples/actions-show-response.json
+api-ref/source/samples/api-root-response.json
+api-ref/source/samples/api-v1-root-response.json
+api-ref/source/samples/audit-cancel-request.json
+api-ref/source/samples/audit-cancel-response.json
+api-ref/source/samples/audit-create-request-continuous.json
+api-ref/source/samples/audit-create-request-oneshot.json
+api-ref/source/samples/audit-create-response.json
+api-ref/source/samples/audit-list-detailed-response.json
+api-ref/source/samples/audit-list-response.json
+api-ref/source/samples/audit-show-response.json
+api-ref/source/samples/audit-update-request.json
+api-ref/source/samples/audit-update-response.json
+api-ref/source/samples/audittemplate-create-request-full.json
+api-ref/source/samples/audittemplate-create-request-minimal.json
+api-ref/source/samples/audittemplate-create-response.json
+api-ref/source/samples/audittemplate-list-detailed-response.json
+api-ref/source/samples/audittemplate-list-response.json
+api-ref/source/samples/audittemplate-show-response.json
+api-ref/source/samples/audittemplate-update-request.json
+api-ref/source/samples/audittemplate-update-response.json
+api-ref/source/samples/datamodel-list-response.json
+api-ref/source/samples/goal-list-response.json
+api-ref/source/samples/goal-show-response.json
+api-ref/source/samples/scoring_engine-list-detailed-response.json
+api-ref/source/samples/scoring_engine-list-response.json
+api-ref/source/samples/scoring_engine-show-response.json
+api-ref/source/samples/service-list-detailed-response.json
+api-ref/source/samples/service-list-response.json
+api-ref/source/samples/service-show-response.json
+api-ref/source/samples/strategy-list-detailed-response.json
+api-ref/source/samples/strategy-list-response.json
+api-ref/source/samples/strategy-show-response.json
+api-ref/source/samples/strategy-state-response.json
+devstack/local.conf.compute
+devstack/local.conf.controller
+devstack/local_gnocchi.conf.compute
+devstack/local_gnocchi.conf.controller
+devstack/override-defaults
+devstack/plugin.sh
+devstack/prometheus.yml
+devstack/settings
+devstack/lib/watcher
+devstack/upgrade/resources.sh
+devstack/upgrade/settings
+devstack/upgrade/shutdown.sh
+devstack/upgrade/upgrade.sh
+devstack/upgrade/from_rocky/upgrade-watcher
+doc/dictionary.txt
+doc/requirements.txt
+doc/ext/__init__.py
+doc/ext/term.py
+doc/ext/versioned_notifications.py
+doc/notification_samples/action-cancel-end.json
+doc/notification_samples/action-cancel-error.json
+doc/notification_samples/action-cancel-start.json
+doc/notification_samples/action-create.json
+doc/notification_samples/action-delete.json
+doc/notification_samples/action-execution-end.json
+doc/notification_samples/action-execution-error.json
+doc/notification_samples/action-execution-start.json
+doc/notification_samples/action-update.json
+doc/notification_samples/action_plan-cancel-end.json
+doc/notification_samples/action_plan-cancel-error.json
+doc/notification_samples/action_plan-cancel-start.json
+doc/notification_samples/action_plan-create.json
+doc/notification_samples/action_plan-delete.json
+doc/notification_samples/action_plan-execution-end.json
+doc/notification_samples/action_plan-execution-error.json
+doc/notification_samples/action_plan-execution-start.json
+doc/notification_samples/action_plan-update.json
+doc/notification_samples/audit-create.json
+doc/notification_samples/audit-delete.json
+doc/notification_samples/audit-planner-end.json
+doc/notification_samples/audit-planner-error.json
+doc/notification_samples/audit-planner-start.json
+doc/notification_samples/audit-strategy-end.json
+doc/notification_samples/audit-strategy-error.json
+doc/notification_samples/audit-strategy-start.json
+doc/notification_samples/audit-update.json
+doc/notification_samples/infra-optim-exception.json
+doc/notification_samples/service-update.json
+doc/source/architecture.rst
+doc/source/conf.py
+doc/source/glossary.rst
+doc/source/index.rst
+doc/source/_static/.placeholder
+doc/source/admin/apache-mod-wsgi.rst
+doc/source/admin/gmr.rst
+doc/source/admin/index.rst
+doc/source/admin/policy.rst
+doc/source/configuration/configuring.rst
+doc/source/configuration/index.rst
+doc/source/configuration/watcher.rst
+doc/source/contributor/api_microversion_history.rst
+doc/source/contributor/concurrency.rst
+doc/source/contributor/contributing.rst
+doc/source/contributor/devstack.rst
+doc/source/contributor/environment.rst
+doc/source/contributor/index.rst
+doc/source/contributor/notifications.rst
+doc/source/contributor/rally_link.rst
+doc/source/contributor/release-guide.rst
+doc/source/contributor/testing.rst
+doc/source/contributor/plugin/action-plugin.rst
+doc/source/contributor/plugin/base-setup.rst
+doc/source/contributor/plugin/cdmc-plugin.rst
+doc/source/contributor/plugin/goal-plugin.rst
+doc/source/contributor/plugin/index.rst
+doc/source/contributor/plugin/planner-plugin.rst
+doc/source/contributor/plugin/plugins.rst
+doc/source/contributor/plugin/scoring-engine-plugin.rst
+doc/source/contributor/plugin/strategy-plugin.rst
+doc/source/datasources/aetos.rst
+doc/source/datasources/grafana.rst
+doc/source/datasources/index.rst
+doc/source/datasources/prometheus.rst
+doc/source/image_src/dia/architecture.dia
+doc/source/image_src/dia/functional_data_model.dia
+doc/source/image_src/plantuml/README.rst
+doc/source/image_src/plantuml/action_plan_state_machine.txt
+doc/source/image_src/plantuml/action_state_machine.txt
+doc/source/image_src/plantuml/audit_state_machine.txt
+doc/source/image_src/plantuml/sequence_architecture_cdmc_sync.txt
+doc/source/image_src/plantuml/sequence_create_and_launch_audit.txt
+doc/source/image_src/plantuml/sequence_create_audit_template.txt
+doc/source/image_src/plantuml/sequence_from_audit_execution_to_actionplan_creation.txt
+doc/source/image_src/plantuml/sequence_launch_action_plan.txt
+doc/source/image_src/plantuml/sequence_launch_action_plan_in_applier.txt
+doc/source/image_src/plantuml/sequence_overview_watcher_usage.txt
+doc/source/image_src/plantuml/sequence_trigger_audit_in_decision_engine.txt
+doc/source/image_src/plantuml/watcher_db_schema_diagram.txt
+doc/source/images/action_plan_state_machine.png
+doc/source/images/action_state_machine.png
+doc/source/images/architecture.svg
+doc/source/images/audit_state_machine.png
+doc/source/images/functional_data_model.svg
+doc/source/images/sequence_architecture_cdmc_sync.png
+doc/source/images/sequence_create_and_launch_audit.png
+doc/source/images/sequence_create_audit_template.png
+doc/source/images/sequence_from_audit_execution_to_actionplan_creation.png
+doc/source/images/sequence_launch_action_plan.png
+doc/source/images/sequence_launch_action_plan_in_applier.png
+doc/source/images/sequence_overview_watcher_usage.png
+doc/source/images/sequence_trigger_audit_in_decision_engine.png
+doc/source/images/watcher_db_schema_diagram.png
+doc/source/install/common_configure.rst
+doc/source/install/common_prerequisites.rst
+doc/source/install/get_started.rst
+doc/source/install/index.rst
+doc/source/install/install-rdo.rst
+doc/source/install/install-ubuntu.rst
+doc/source/install/install.rst
+doc/source/install/next-steps.rst
+doc/source/install/verify.rst
+doc/source/integrations/index.rst
+doc/source/man/footer.rst
+doc/source/man/general-options.rst
+doc/source/man/index.rst
+doc/source/man/watcher-api.rst
+doc/source/man/watcher-applier.rst
+doc/source/man/watcher-db-manage.rst
+doc/source/man/watcher-decision-engine.rst
+doc/source/man/watcher-status.rst
+doc/source/strategies/actuation.rst
+doc/source/strategies/basic-server-consolidation.rst
+doc/source/strategies/host_maintenance.rst
+doc/source/strategies/index.rst
+doc/source/strategies/node_resource_consolidation.rst
+doc/source/strategies/noisy_neighbor.rst
+doc/source/strategies/outlet_temp_control.rst
+doc/source/strategies/saving_energy.rst
+doc/source/strategies/storage_capacity_balance.rst
+doc/source/strategies/strategy-template.rst
+doc/source/strategies/uniform_airflow.rst
+doc/source/strategies/vm_workload_consolidation.rst
+doc/source/strategies/workload-stabilization.rst
+doc/source/strategies/workload_balance.rst
+doc/source/strategies/zone_migration.rst
+doc/source/user/event_type_audit.rst
+doc/source/user/index.rst
+doc/source/user/user-guide.rst
+doc/source/user/ways-to-install.rst
+etc/apache2/watcher
+etc/watcher/README-watcher.conf.txt
+etc/watcher/oslo-config-generator/watcher.conf
+etc/watcher/oslo-policy-generator/watcher-policy-generator.conf
+playbooks/generate_prometheus_config.yml
+playbooks/templates/prometheus.yml.j2
+python_watcher.egg-info/PKG-INFO
+python_watcher.egg-info/SOURCES.txt
+python_watcher.egg-info/dependency_links.txt
+python_watcher.egg-info/entry_points.txt
+python_watcher.egg-info/not-zip-safe
+python_watcher.egg-info/pbr.json
+python_watcher.egg-info/requires.txt
+python_watcher.egg-info/top_level.txt
+rally-jobs/README.rst
+rally-jobs/watcher-watcher.yaml
+releasenotes/notes/.placeholder
+releasenotes/notes/2025.1-prelude-8be97eece4e1d1ff.yaml
+releasenotes/notes/2025.2-prelude-a9f4c7b2e8d15692.yaml
+releasenotes/notes/action-plan-cancel-c54726378019e096.yaml
+releasenotes/notes/action-plan-versioned-notifications-api-e8ca4f5d37aa5b4b.yaml
+releasenotes/notes/action-versioned-notifications-api-ff94fc0f401292d0.yaml
+releasenotes/notes/add-baremetal-scoper-9ef23f5fb8f0be6a.yaml
+releasenotes/notes/add-fail-options-to-nop-f44f506dc732f2a1.yaml
+releasenotes/notes/add-force-field-to-audit-4bcaeedfe27233ad.yaml
+releasenotes/notes/add-ha-support-b9042255e5b76e42.yaml
+releasenotes/notes/add-instance-metrics-to-prometheus-datasource-9fba8c174ff845e1.yaml
+releasenotes/notes/add-name-for-audit-0df1f39f00736f06.yaml
+releasenotes/notes/add-plugins-parameters-376eb6b0b8978b44.yaml
+releasenotes/notes/add-power-on-off-a77673d482568a8b.yaml
+releasenotes/notes/add-scoring-module-fa00d013ed2d614e.yaml
+releasenotes/notes/add-start-end-time-for-continuous-audit-52c45052cb06d153.yaml
+releasenotes/notes/add-upgrade-check-framework-5bb9693c8a78931c.yaml
+releasenotes/notes/add-wsgi-module-support-597f479e31979270.yaml
+releasenotes/notes/aetos-datasource-60e50a2338c64c08.yaml
+releasenotes/notes/api-call-retry-fef741ac684c58dd.yaml
+releasenotes/notes/api-microversioning-7999a3ee8073bf32.yaml
+releasenotes/notes/audit-scoper-for-storage-data-model-cdccc803542d22db.yaml
+releasenotes/notes/audit-tag-vm-metadata-47a3e4468748853c.yaml
+releasenotes/notes/audit-versioned-notifications-api-bca7738e16954bad.yaml
+releasenotes/notes/automatic-triggering-audit-8a9b0540d547db60.yaml
+releasenotes/notes/background-jobs-ha-9d3cf3fe356f4705.yaml
+releasenotes/notes/blueprint-add-skip-actions-4a5a997dc1133f13.yaml
+releasenotes/notes/bp-audit-scope-exclude-project-511a7720aac00dff.yaml
+releasenotes/notes/bp-extend-compute-model-attributes-b56bc093e8637bb4.yaml
+releasenotes/notes/bug-2103451-fixes-prometheus-queries-with-multiple-target-0e65d20711d1abe2.yaml
+releasenotes/notes/bug-2109494-e5bf401767fa6cd6.yaml
+releasenotes/notes/bug-2110947.yaml
+releasenotes/notes/bug-2112100-c1e56173cd29a35e.yaml
+releasenotes/notes/bug-2112187-763bae283e0b736d.yaml
+releasenotes/notes/bug-2113776-4bd314fb46623fbc.yaml
+releasenotes/notes/bug-2117726-fix-model-list-api-ref-30cc7ed1c85c0d0e.yaml
+releasenotes/notes/bug-2120586-fix-nova-microversion-check-9022a378b75d046f.yaml
+releasenotes/notes/bug-2121601-allow-status-message-updates-in-skipped-state-a8b4c5d7e9f2g3h1.yaml
+releasenotes/notes/build-baremetal-data-model-in-watcher-3023453a47b61dab.yaml
+releasenotes/notes/cdm-scoping-8d9c307bad46bfa1.yaml
+releasenotes/notes/centralise-config-opts-95670987dfbdb0e7.yaml
+releasenotes/notes/change-ram-util-metric-4a3e6984b9dd968d.yaml
+releasenotes/notes/check-strategy-requirements-66f9e9262412f8ec.yaml
+releasenotes/notes/cinder-model-integration-baa394a72a0a33bf.yaml
+releasenotes/notes/cluster-model-objects-wrapper-9c799ea262c56a5b.yaml
+releasenotes/notes/compute-cdm-include-all-instances-f7506ded2d57732f.yaml
+releasenotes/notes/configurable-weights-default-planner-3746b33160bc7347.yaml
+releasenotes/notes/consume-nova-versioned-notifications-f98361b37e546b4d.yaml
+releasenotes/notes/continuously-optimization-35364f4d2c0b81fc.yaml
+releasenotes/notes/cron-based-continuous-audits-c3eedf28d9752b37.yaml
+releasenotes/notes/datasource-query-retry-00cba5f7e68aec39.yaml
+releasenotes/notes/db-migration-e1a705a8b54ccdd2.yaml
+releasenotes/notes/decision-engine-threading-mode-26fc8066dcd499a2.yaml
+releasenotes/notes/define-the-audit-scope-e89edc5051dcf3f2.yaml
+releasenotes/notes/deprecate-ceilometer-datasource-446b0be70fbce28b.yaml
+releasenotes/notes/deprecate-json-formatted-policy-file-3a92379e9f5dd203.yaml
+releasenotes/notes/deprecate-monasca-ds-9065f4d4bee09ab2.yaml
+releasenotes/notes/deprecate-noisy-neighbor-strat-7da910837ae8fa80.yaml
+releasenotes/notes/donot-run-host-migration-strategy-on-disabled-hosts-24084a22d4c8f914.yaml
+releasenotes/notes/drop-operation-not-permitted-exception-14e49b35a3ca00d1.yaml
+releasenotes/notes/drop-patch-delete-post-action-api-37fe4ce5be6500db.yaml
+releasenotes/notes/drop-py-2-7-54f8e806d71f19a7.yaml
+releasenotes/notes/drop-py39-8a9c99678b3e8eeb.yaml
+releasenotes/notes/drop-python-dateutil-dependency-2118404-f5a8b2c1e9d4a6b3.yaml
+releasenotes/notes/drop-python38-support-eeb19a0bc0160sw1.yaml
+releasenotes/notes/dynamic-action-description-0e947b9e7ef2a134.yaml
+releasenotes/notes/efficacy-indicator-95380ad7b84e3be2.yaml
+releasenotes/notes/enhance-watcher-applier-engine-86c676ce8f179e68.yaml
+releasenotes/notes/event-driven-optimization-based-4870f112bef8a560.yaml
+releasenotes/notes/experimental-integrations-490d4cc32444288d.yaml
+releasenotes/notes/file-based-metric-map-c2af62b5067895df.yaml
+releasenotes/notes/fix-action-plan-state-on-failure-69e498d902ada5c5.yaml
+releasenotes/notes/formal-datasource-interface-implementation-222769d55a127d33.yaml
+releasenotes/notes/general-purpose-decision-engine-threadpool-0711b23abfc9d409.yaml
+releasenotes/notes/get-goal-from-strategy-396c9b13a38bb650.yaml
+releasenotes/notes/global-datasource-preference-3ab47b4be09ff3a5.yaml
+releasenotes/notes/gnocchi-watcher-43c25d391fbd3e9c.yaml
+releasenotes/notes/grafana-datasource-b672367c23ffa0c6.yaml
+releasenotes/notes/graph-based-cluster-model-523937a6f5e66537.yaml
+releasenotes/notes/host-maintenance-strategy-41f640927948fb56.yaml
+releasenotes/notes/host-maintenance-strategy-disable-migration-options-a2b72e32736e5446.yaml
+releasenotes/notes/improve-compute-data-model-b427c85e4ed2b6fb.yaml
+releasenotes/notes/jsonschema-validation-79cab05d5295da00.yaml
+releasenotes/notes/make-monasca-client-optional-7e1a96b2ac902867.yaml
+releasenotes/notes/min-required-nova-train-71f124192d88ae52.yaml
+releasenotes/notes/monasca-support-0b0486b8572ac38b.yaml
+releasenotes/notes/multiple-global-efficacy-indicator-fc11c4844a12a7d5.yaml
+releasenotes/notes/node-resource-consolidation-73bc0c0abfeb0b03.yaml
+releasenotes/notes/noisy-neighbor-strategy-a71342740b59dddc.yaml
+releasenotes/notes/notifications-actionplan-cancel-edb2a4a12543e2d0.yaml
+releasenotes/notes/optimization-threshold-21ad38f0470d0e1a.yaml
+releasenotes/notes/persistent-audit-parameters-ae41dd7252ba9672.yaml
+releasenotes/notes/planner-storage-action-plan-26ef37893c5e8648.yaml
+releasenotes/notes/prometheus-datasource-e56f2f7b8f3427c2.yaml
+releasenotes/notes/query-interval-not-query-timeout-ecb6f2c6b1a647e9.yaml
+releasenotes/notes/remove-ceilometer-datasource-8d9ab7d64d61e405.yaml
+releasenotes/notes/remove-nova-legacy-notifications-e1b6d10eff58f30a.yaml
+releasenotes/notes/replace-cold-migrate-to-use-nova-migration-api-cecd9a39ddd3bc58.yaml
+releasenotes/notes/return-error-400-on-bad-parameters-bb964e4f5cadc15c.yaml
+releasenotes/notes/scope-for-data-model-ea9792f90db14343.yaml
+releasenotes/notes/service-versioned-notifications-api-70367b79a565d900.yaml
+releasenotes/notes/show-datamodel-api-6945b744fd5d25d5.yaml
+releasenotes/notes/stale-action-plan-b6a6b08df873c128.yaml
+releasenotes/notes/standard-deviation-strategy-cd1d0c443fdfde9c.yaml
+releasenotes/notes/storage-workload-balance-0ecabbc1791e6894.yaml
+releasenotes/notes/storage_model_enabled_default-48c197f5a540956c.yaml
+releasenotes/notes/support-keystoneclient-option-b30d1ff45f86a2e7.yaml
+releasenotes/notes/support-placement-api-58ce6bef1bbbe98a.yaml
+releasenotes/notes/suspended-audit-state-07f998c94e9d9a47.yaml
+releasenotes/notes/uniform-airflow-strategy-68cdba1419c3f770.yaml
+releasenotes/notes/update-notification-topics-daf6303a63963ee9.yaml
+releasenotes/notes/uwsgi-support-8dcea6961e56dad0.yaml
+releasenotes/notes/volume-migrate-action-fc57b0ce0e4c39ae.yaml
+releasenotes/notes/watcher-notifications-ovo-7b44d52ef6400dd0.yaml
+releasenotes/notes/watcher-planner-selector-84d77549d46f362a.yaml
+releasenotes/notes/watcher-policies-1e86a30f0f11c6fa.yaml
+releasenotes/notes/watcher-service-list-7b2f4b64f71e9b89.yaml
+releasenotes/notes/watcher-versioned-objects-fc5abf5c81c4590c.yaml
+releasenotes/notes/wokload-stablization-strategy-name-9988e554ac2655a2.yaml
+releasenotes/notes/workload-balance-base-on-cpu-or-ram-util-3ff4ee968c32b2ed.yaml
+releasenotes/notes/workload-balance-migration-strategy-a0b05148a57815c0.yaml
+releasenotes/notes/zone-migration-missing-dst-node-bd0377af1f1ed245.yaml
+releasenotes/notes/zone-migration-strategy-10f7656a2a01e607.yaml
+releasenotes/source/2023.1.rst
+releasenotes/source/2023.2.rst
+releasenotes/source/2024.1.rst
+releasenotes/source/2024.2.rst
+releasenotes/source/2025.1.rst
+releasenotes/source/conf.py
+releasenotes/source/index.rst
+releasenotes/source/newton.rst
+releasenotes/source/ocata.rst
+releasenotes/source/pike.rst
+releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
+releasenotes/source/stein.rst
+releasenotes/source/train.rst
+releasenotes/source/unreleased.rst
+releasenotes/source/ussuri.rst
+releasenotes/source/victoria.rst
+releasenotes/source/wallaby.rst
+releasenotes/source/xena.rst
+releasenotes/source/yoga.rst
+releasenotes/source/zed.rst
+releasenotes/source/_static/.placeholder
+releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
+releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
+tools/test-setup.sh
+watcher/__init__.py
+watcher/_i18n.py
+watcher/eventlet.py
+watcher/version.py
+watcher/api/__init__.py
+watcher/api/acl.py
+watcher/api/app.py
+watcher/api/app.wsgi
+watcher/api/config.py
+watcher/api/hooks.py
+watcher/api/scheduling.py
+watcher/api/wsgi.py
+watcher/api/controllers/__init__.py
+watcher/api/controllers/base.py
+watcher/api/controllers/link.py
+watcher/api/controllers/rest_api_version_history.rst
+watcher/api/controllers/root.py
+watcher/api/controllers/v1/__init__.py
+watcher/api/controllers/v1/action.py
+watcher/api/controllers/v1/action_plan.py
+watcher/api/controllers/v1/audit.py
+watcher/api/controllers/v1/audit_template.py
+watcher/api/controllers/v1/collection.py
+watcher/api/controllers/v1/data_model.py
+watcher/api/controllers/v1/efficacy_indicator.py
+watcher/api/controllers/v1/goal.py
+watcher/api/controllers/v1/scoring_engine.py
+watcher/api/controllers/v1/service.py
+watcher/api/controllers/v1/strategy.py
+watcher/api/controllers/v1/types.py
+watcher/api/controllers/v1/utils.py
+watcher/api/controllers/v1/versions.py
+watcher/api/controllers/v1/webhooks.py
+watcher/api/middleware/__init__.py
+watcher/api/middleware/auth_token.py
+watcher/api/middleware/parsable_error.py
+watcher/applier/__init__.py
+watcher/applier/base.py
+watcher/applier/default.py
+watcher/applier/manager.py
+watcher/applier/rpcapi.py
+watcher/applier/sync.py
+watcher/applier/action_plan/__init__.py
+watcher/applier/action_plan/base.py
+watcher/applier/action_plan/default.py
+watcher/applier/actions/__init__.py
+watcher/applier/actions/base.py
+watcher/applier/actions/change_node_power_state.py
+watcher/applier/actions/change_nova_service_state.py
+watcher/applier/actions/factory.py
+watcher/applier/actions/migration.py
+watcher/applier/actions/nop.py
+watcher/applier/actions/resize.py
+watcher/applier/actions/sleep.py
+watcher/applier/actions/stop.py
+watcher/applier/actions/volume_migration.py
+watcher/applier/loading/__init__.py
+watcher/applier/loading/default.py
+watcher/applier/messaging/__init__.py
+watcher/applier/messaging/trigger.py
+watcher/applier/workflow_engine/__init__.py
+watcher/applier/workflow_engine/base.py
+watcher/applier/workflow_engine/default.py
+watcher/cmd/__init__.py
+watcher/cmd/dbmanage.py
+watcher/cmd/status.py
+watcher/cmd/sync.py
+watcher/cmd/eventlet/__init__.py
+watcher/cmd/eventlet/api.py
+watcher/cmd/eventlet/applier.py
+watcher/cmd/eventlet/decisionengine.py
+watcher/common/__init__.py
+watcher/common/cinder_helper.py
+watcher/common/clients.py
+watcher/common/config.py
+watcher/common/context.py
+watcher/common/exception.py
+watcher/common/executor.py
+watcher/common/ironic_helper.py
+watcher/common/keystone_helper.py
+watcher/common/nova_helper.py
+watcher/common/oslo_service_helper.py
+watcher/common/paths.py
+watcher/common/placement_helper.py
+watcher/common/policy.py
+watcher/common/rpc.py
+watcher/common/scheduling.py
+watcher/common/service.py
+watcher/common/service_manager.py
+watcher/common/utils.py
+watcher/common/loader/__init__.py
+watcher/common/loader/base.py
+watcher/common/loader/default.py
+watcher/common/loader/loadable.py
+watcher/common/metal_helper/__init__.py
+watcher/common/metal_helper/base.py
+watcher/common/metal_helper/constants.py
+watcher/common/metal_helper/factory.py
+watcher/common/metal_helper/ironic.py
+watcher/common/metal_helper/maas.py
+watcher/common/policies/__init__.py
+watcher/common/policies/action.py
+watcher/common/policies/action_plan.py
+watcher/common/policies/audit.py
+watcher/common/policies/audit_template.py
+watcher/common/policies/base.py
+watcher/common/policies/data_model.py
+watcher/common/policies/goal.py
+watcher/common/policies/scoring_engine.py
+watcher/common/policies/service.py
+watcher/common/policies/strategy.py
+watcher/conf/__init__.py
+watcher/conf/aetos_client.py
+watcher/conf/api.py
+watcher/conf/applier.py
+watcher/conf/cinder_client.py
+watcher/conf/clients_auth.py
+watcher/conf/collector.py
+watcher/conf/datasources.py
+watcher/conf/db.py
+watcher/conf/decision_engine.py
+watcher/conf/exception.py
+watcher/conf/glance_client.py
+watcher/conf/gnocchi_client.py
+watcher/conf/grafana_client.py
+watcher/conf/grafana_translators.py
+watcher/conf/ironic_client.py
+watcher/conf/keystone_client.py
+watcher/conf/maas_client.py
+watcher/conf/models.py
+watcher/conf/monasca_client.py
+watcher/conf/neutron_client.py
+watcher/conf/nova_client.py
+watcher/conf/opts.py
+watcher/conf/paths.py
+watcher/conf/placement_client.py
+watcher/conf/planner.py
+watcher/conf/plugins.py
+watcher/conf/prometheus_client.py
+watcher/conf/service.py
+watcher/db/__init__.py
+watcher/db/api.py
+watcher/db/migration.py
+watcher/db/purge.py
+watcher/db/sqlalchemy/__init__.py
+watcher/db/sqlalchemy/alembic.ini
+watcher/db/sqlalchemy/api.py
+watcher/db/sqlalchemy/job_store.py
+watcher/db/sqlalchemy/migration.py
+watcher/db/sqlalchemy/models.py
+watcher/db/sqlalchemy/alembic/README.rst
+watcher/db/sqlalchemy/alembic/env.py
+watcher/db/sqlalchemy/alembic/script.py.mako
+watcher/db/sqlalchemy/alembic/versions/001_ocata.py
+watcher/db/sqlalchemy/alembic/versions/0f6042416884_add_apscheduler_jobs.py
+watcher/db/sqlalchemy/alembic/versions/15f7375ca737_change_efficiacy_indicator_decimals.py
+watcher/db/sqlalchemy/alembic/versions/3cfc94cecf4e_add_name_for_audit.py
+watcher/db/sqlalchemy/alembic/versions/4b16194c56bc_add_start_end_time.py
+watcher/db/sqlalchemy/alembic/versions/52804f2498c4_add_hostname.py
+watcher/db/sqlalchemy/alembic/versions/609bec748f2a_add_force_field.py
+watcher/db/sqlalchemy/alembic/versions/7150a7d8f228_add_status_message_to_actionplan.py
+watcher/db/sqlalchemy/alembic/versions/a86240e89a29_.py
+watcher/db/sqlalchemy/alembic/versions/d098df6021e2_cron_support_for_audit.py
+watcher/db/sqlalchemy/alembic/versions/d09a5945e4a0_add_action_description_table.py
+watcher/decision_engine/__init__.py
+watcher/decision_engine/gmr.py
+watcher/decision_engine/manager.py
+watcher/decision_engine/rpcapi.py
+watcher/decision_engine/scheduling.py
+watcher/decision_engine/service.py
+watcher/decision_engine/sync.py
+watcher/decision_engine/threading.py
+watcher/decision_engine/audit/__init__.py
+watcher/decision_engine/audit/base.py
+watcher/decision_engine/audit/continuous.py
+watcher/decision_engine/audit/event.py
+watcher/decision_engine/audit/oneshot.py
+watcher/decision_engine/datasources/__init__.py
+watcher/decision_engine/datasources/aetos.py
+watcher/decision_engine/datasources/base.py
+watcher/decision_engine/datasources/gnocchi.py
+watcher/decision_engine/datasources/grafana.py
+watcher/decision_engine/datasources/manager.py
+watcher/decision_engine/datasources/monasca.py
+watcher/decision_engine/datasources/prometheus.py
+watcher/decision_engine/datasources/prometheus_base.py
+watcher/decision_engine/datasources/grafana_translator/__init__.py
+watcher/decision_engine/datasources/grafana_translator/base.py
+watcher/decision_engine/datasources/grafana_translator/influxdb.py
+watcher/decision_engine/goal/__init__.py
+watcher/decision_engine/goal/base.py
+watcher/decision_engine/goal/goals.py
+watcher/decision_engine/goal/efficacy/__init__.py
+watcher/decision_engine/goal/efficacy/base.py
+watcher/decision_engine/goal/efficacy/indicators.py
+watcher/decision_engine/goal/efficacy/specs.py
+watcher/decision_engine/loading/__init__.py
+watcher/decision_engine/loading/default.py
+watcher/decision_engine/messaging/__init__.py
+watcher/decision_engine/messaging/audit_endpoint.py
+watcher/decision_engine/messaging/data_model_endpoint.py
+watcher/decision_engine/model/__init__.py
+watcher/decision_engine/model/base.py
+watcher/decision_engine/model/model_root.py
+watcher/decision_engine/model/collector/__init__.py
+watcher/decision_engine/model/collector/base.py
+watcher/decision_engine/model/collector/cinder.py
+watcher/decision_engine/model/collector/ironic.py
+watcher/decision_engine/model/collector/manager.py
+watcher/decision_engine/model/collector/nova.py
+watcher/decision_engine/model/element/__init__.py
+watcher/decision_engine/model/element/baremetal_resource.py
+watcher/decision_engine/model/element/base.py
+watcher/decision_engine/model/element/compute_resource.py
+watcher/decision_engine/model/element/instance.py
+watcher/decision_engine/model/element/node.py
+watcher/decision_engine/model/element/storage_resource.py
+watcher/decision_engine/model/element/volume.py
+watcher/decision_engine/model/notification/__init__.py
+watcher/decision_engine/model/notification/base.py
+watcher/decision_engine/model/notification/cinder.py
+watcher/decision_engine/model/notification/filtering.py
+watcher/decision_engine/model/notification/nova.py
+watcher/decision_engine/planner/__init__.py
+watcher/decision_engine/planner/base.py
+watcher/decision_engine/planner/manager.py
+watcher/decision_engine/planner/node_resource_consolidation.py
+watcher/decision_engine/planner/weight.py
+watcher/decision_engine/planner/workload_stabilization.py
+watcher/decision_engine/scope/__init__.py
+watcher/decision_engine/scope/baremetal.py
+watcher/decision_engine/scope/base.py
+watcher/decision_engine/scope/compute.py
+watcher/decision_engine/scope/storage.py
+watcher/decision_engine/scoring/__init__.py
+watcher/decision_engine/scoring/base.py
+watcher/decision_engine/scoring/dummy_scorer.py
+watcher/decision_engine/scoring/dummy_scoring_container.py
+watcher/decision_engine/scoring/scoring_factory.py
+watcher/decision_engine/solution/__init__.py
+watcher/decision_engine/solution/base.py
+watcher/decision_engine/solution/default.py
+watcher/decision_engine/solution/efficacy.py
+watcher/decision_engine/solution/solution_comparator.py
+watcher/decision_engine/solution/solution_evaluator.py
+watcher/decision_engine/strategy/__init__.py
+watcher/decision_engine/strategy/common/__init__.py
+watcher/decision_engine/strategy/common/level.py
+watcher/decision_engine/strategy/context/__init__.py
+watcher/decision_engine/strategy/context/base.py
+watcher/decision_engine/strategy/context/default.py
+watcher/decision_engine/strategy/selection/__init__.py
+watcher/decision_engine/strategy/selection/base.py
+watcher/decision_engine/strategy/selection/default.py
+watcher/decision_engine/strategy/strategies/__init__.py
+watcher/decision_engine/strategy/strategies/actuation.py
+watcher/decision_engine/strategy/strategies/base.py
+watcher/decision_engine/strategy/strategies/basic_consolidation.py
+watcher/decision_engine/strategy/strategies/dummy_strategy.py
+watcher/decision_engine/strategy/strategies/dummy_with_resize.py
+watcher/decision_engine/strategy/strategies/dummy_with_scorer.py
+watcher/decision_engine/strategy/strategies/host_maintenance.py
+watcher/decision_engine/strategy/strategies/node_resource_consolidation.py
+watcher/decision_engine/strategy/strategies/noisy_neighbor.py
+watcher/decision_engine/strategy/strategies/outlet_temp_control.py
+watcher/decision_engine/strategy/strategies/saving_energy.py
+watcher/decision_engine/strategy/strategies/storage_capacity_balance.py
+watcher/decision_engine/strategy/strategies/uniform_airflow.py
+watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py
+watcher/decision_engine/strategy/strategies/workload_balance.py
+watcher/decision_engine/strategy/strategies/workload_stabilization.py
+watcher/decision_engine/strategy/strategies/zone_migration.py
+watcher/hacking/__init__.py
+watcher/hacking/checks.py
+watcher/locale/de/LC_MESSAGES/watcher.po
+watcher/locale/en_GB/LC_MESSAGES/watcher.po
+watcher/notifications/__init__.py
+watcher/notifications/action.py
+watcher/notifications/action_plan.py
+watcher/notifications/audit.py
+watcher/notifications/base.py
+watcher/notifications/exception.py
+watcher/notifications/goal.py
+watcher/notifications/service.py
+watcher/notifications/strategy.py
+watcher/objects/__init__.py
+watcher/objects/action.py
+watcher/objects/action_description.py
+watcher/objects/action_plan.py
+watcher/objects/audit.py
+watcher/objects/audit_template.py
+watcher/objects/base.py
+watcher/objects/efficacy_indicator.py
+watcher/objects/fields.py
+watcher/objects/goal.py
+watcher/objects/scoring_engine.py
+watcher/objects/service.py
+watcher/objects/strategy.py
+watcher/tests/__init__.py
+watcher/tests/base.py
+watcher/tests/conf_fixture.py
+watcher/tests/config.py
+watcher/tests/fake_policy.py
+watcher/tests/fakes.py
+watcher/tests/policy_fixture.py
+watcher/tests/test_threading.py
+watcher/tests/api/__init__.py
+watcher/tests/api/base.py
+watcher/tests/api/test_base.py
+watcher/tests/api/test_config.py
+watcher/tests/api/test_hooks.py
+watcher/tests/api/test_root.py
+watcher/tests/api/test_scheduling.py
+watcher/tests/api/test_utils.py
+watcher/tests/api/utils.py
+watcher/tests/api/v1/__init__.py
+watcher/tests/api/v1/test_actions.py
+watcher/tests/api/v1/test_actions_plans.py
+watcher/tests/api/v1/test_audit_templates.py
+watcher/tests/api/v1/test_audits.py
+watcher/tests/api/v1/test_data_model.py
+watcher/tests/api/v1/test_goals.py
+watcher/tests/api/v1/test_microversions.py
+watcher/tests/api/v1/test_root.py
+watcher/tests/api/v1/test_scoring_engines.py
+watcher/tests/api/v1/test_services.py
+watcher/tests/api/v1/test_strategies.py
+watcher/tests/api/v1/test_types.py
+watcher/tests/api/v1/test_utils.py
+watcher/tests/api/v1/test_webhooks.py
+watcher/tests/applier/__init__.py
+watcher/tests/applier/test_applier_manager.py
+watcher/tests/applier/test_rpcapi.py
+watcher/tests/applier/test_sync.py
+watcher/tests/applier/action_plan/__init__.py
+watcher/tests/applier/action_plan/test_default_action_handler.py
+watcher/tests/applier/actions/__init__.py
+watcher/tests/applier/actions/test_change_node_power_state.py
+watcher/tests/applier/actions/test_change_nova_service_state.py
+watcher/tests/applier/actions/test_migration.py
+watcher/tests/applier/actions/test_resize.py
+watcher/tests/applier/actions/test_sleep.py
+watcher/tests/applier/actions/test_stop.py
+watcher/tests/applier/actions/test_volume_migration.py
+watcher/tests/applier/actions/loading/__init__.py
+watcher/tests/applier/actions/loading/test_default_actions_loader.py
+watcher/tests/applier/messaging/__init__.py
+watcher/tests/applier/messaging/test_trigger_action_plan_endpoint.py
+watcher/tests/applier/workflow_engine/__init__.py
+watcher/tests/applier/workflow_engine/test_default_workflow_engine.py
+watcher/tests/applier/workflow_engine/test_taskflow_action_container.py
+watcher/tests/applier/workflow_engine/loading/__init__.py
+watcher/tests/applier/workflow_engine/loading/test_default_engine_loader.py
+watcher/tests/cmd/__init__.py
+watcher/tests/cmd/test_api.py
+watcher/tests/cmd/test_applier.py
+watcher/tests/cmd/test_db_manage.py
+watcher/tests/cmd/test_decision_engine.py
+watcher/tests/cmd/test_status.py
+watcher/tests/common/__init__.py
+watcher/tests/common/test_cinder_helper.py
+watcher/tests/common/test_clients.py
+watcher/tests/common/test_executor.py
+watcher/tests/common/test_ironic_helper.py
+watcher/tests/common/test_keystone_helper.py
+watcher/tests/common/test_nova_helper.py
+watcher/tests/common/test_oslo_service_helper.py
+watcher/tests/common/test_placement_helper.py
+watcher/tests/common/test_scheduling.py
+watcher/tests/common/test_service.py
+watcher/tests/common/test_utils.py
+watcher/tests/common/loader/__init__.py
+watcher/tests/common/loader/test_loader.py
+watcher/tests/common/metal_helper/__init__.py
+watcher/tests/common/metal_helper/test_base.py
+watcher/tests/common/metal_helper/test_factory.py
+watcher/tests/common/metal_helper/test_ironic.py
+watcher/tests/common/metal_helper/test_maas.py
+watcher/tests/conf/__init__.py
+watcher/tests/conf/test_list_opts.py
+watcher/tests/db/__init__.py
+watcher/tests/db/base.py
+watcher/tests/db/test_action.py
+watcher/tests/db/test_action_description.py
+watcher/tests/db/test_action_plan.py
+watcher/tests/db/test_audit.py
+watcher/tests/db/test_audit_template.py
+watcher/tests/db/test_efficacy_indicator.py
+watcher/tests/db/test_goal.py
+watcher/tests/db/test_migrations.py
+watcher/tests/db/test_purge.py
+watcher/tests/db/test_scoring_engine.py
+watcher/tests/db/test_service.py
+watcher/tests/db/test_strategy.py
+watcher/tests/db/utils.py
+watcher/tests/decision_engine/__init__.py
+watcher/tests/decision_engine/fake_goals.py
+watcher/tests/decision_engine/fake_metal_helper.py
+watcher/tests/decision_engine/fake_strategies.py
+watcher/tests/decision_engine/test_gmr.py
+watcher/tests/decision_engine/test_rpcapi.py
+watcher/tests/decision_engine/test_scheduling.py
+watcher/tests/decision_engine/test_service.py
+watcher/tests/decision_engine/test_sync.py
+watcher/tests/decision_engine/audit/__init__.py
+watcher/tests/decision_engine/audit/test_audit_handlers.py
+watcher/tests/decision_engine/cluster/__init__.py
+watcher/tests/decision_engine/cluster/test_cinder_cdmc.py
+watcher/tests/decision_engine/cluster/test_cluster_data_model_collector.py
+watcher/tests/decision_engine/cluster/test_nova_cdmc.py
+watcher/tests/decision_engine/datasources/__init__.py
+watcher/tests/decision_engine/datasources/test_aetos_helper.py
+watcher/tests/decision_engine/datasources/test_base.py
+watcher/tests/decision_engine/datasources/test_gnocchi_helper.py
+watcher/tests/decision_engine/datasources/test_grafana_helper.py
+watcher/tests/decision_engine/datasources/test_manager.py
+watcher/tests/decision_engine/datasources/test_monasca_helper.py
+watcher/tests/decision_engine/datasources/test_prometheus_base.py
+watcher/tests/decision_engine/datasources/test_prometheus_helper.py
+watcher/tests/decision_engine/datasources/grafana_translators/__init__.py
+watcher/tests/decision_engine/datasources/grafana_translators/test_base.py
+watcher/tests/decision_engine/datasources/grafana_translators/test_influxdb.py
+watcher/tests/decision_engine/event_consumer/__init__.py
+watcher/tests/decision_engine/loading/__init__.py
+watcher/tests/decision_engine/loading/test_collector_loader.py
+watcher/tests/decision_engine/loading/test_default_planner_loader.py
+watcher/tests/decision_engine/loading/test_default_strategy_loader.py
+watcher/tests/decision_engine/loading/test_goal_loader.py
+watcher/tests/decision_engine/messaging/__init__.py
+watcher/tests/decision_engine/messaging/test_audit_endpoint.py
+watcher/tests/decision_engine/messaging/test_data_model_endpoint.py
+watcher/tests/decision_engine/model/__init__.py
+watcher/tests/decision_engine/model/faker_cluster_and_metrics.py
+watcher/tests/decision_engine/model/faker_cluster_state.py
+watcher/tests/decision_engine/model/gnocchi_metrics.py
+watcher/tests/decision_engine/model/monasca_metrics.py
+watcher/tests/decision_engine/model/test_element.py
+watcher/tests/decision_engine/model/test_model.py
+watcher/tests/decision_engine/model/data/ironic_scenario_1.xml
+watcher/tests/decision_engine/model/data/scenario_1.xml
+watcher/tests/decision_engine/model/data/scenario_10.xml
+watcher/tests/decision_engine/model/data/scenario_11_with_1_node_no_instance.xml
+watcher/tests/decision_engine/model/data/scenario_11_with_2_nodes_2_instances.xml
+watcher/tests/decision_engine/model/data/scenario_1_with_1_node_unavailable.xml
+watcher/tests/decision_engine/model/data/scenario_1_with_all_instances_exclude.xml
+watcher/tests/decision_engine/model/data/scenario_1_with_all_nodes_disable.xml
+watcher/tests/decision_engine/model/data/scenario_1_with_metrics.xml
+watcher/tests/decision_engine/model/data/scenario_2_with_metrics.xml
+watcher/tests/decision_engine/model/data/scenario_3_with_2_nodes.xml
+watcher/tests/decision_engine/model/data/scenario_3_with_metrics.xml
+watcher/tests/decision_engine/model/data/scenario_4_with_1_node_no_instance.xml
+watcher/tests/decision_engine/model/data/scenario_5_with_instance_disk_0.xml
+watcher/tests/decision_engine/model/data/scenario_6_with_2_nodes.xml
+watcher/tests/decision_engine/model/data/scenario_7_with_2_nodes.xml
+watcher/tests/decision_engine/model/data/scenario_8_with_4_nodes.xml
+watcher/tests/decision_engine/model/data/scenario_9_with_3_active_plus_1_disabled_nodes.xml
+watcher/tests/decision_engine/model/data/storage_scenario_1.xml
+watcher/tests/decision_engine/model/notification/__init__.py
+watcher/tests/decision_engine/model/notification/fake_managers.py
+watcher/tests/decision_engine/model/notification/test_cinder_notifications.py
+watcher/tests/decision_engine/model/notification/test_notifications.py
+watcher/tests/decision_engine/model/notification/test_nova_notifications.py
+watcher/tests/decision_engine/model/notification/data/capacity.json
+watcher/tests/decision_engine/model/notification/data/instance-create-end.json
+watcher/tests/decision_engine/model/notification/data/instance-delete-end.json
+watcher/tests/decision_engine/model/notification/data/instance-live_migration_force_complete-end.json
+watcher/tests/decision_engine/model/notification/data/instance-live_migration_post-end.json
+watcher/tests/decision_engine/model/notification/data/instance-lock.json
+watcher/tests/decision_engine/model/notification/data/instance-pause-end.json
+watcher/tests/decision_engine/model/notification/data/instance-power_off-end.json
+watcher/tests/decision_engine/model/notification/data/instance-power_on-end.json
+watcher/tests/decision_engine/model/notification/data/instance-rebuild-end.json
+watcher/tests/decision_engine/model/notification/data/instance-rescue-end.json
+watcher/tests/decision_engine/model/notification/data/instance-resize_confirm-end.json
+watcher/tests/decision_engine/model/notification/data/instance-restore-end.json
+watcher/tests/decision_engine/model/notification/data/instance-resume-end.json
+watcher/tests/decision_engine/model/notification/data/instance-shelve-end.json
+watcher/tests/decision_engine/model/notification/data/instance-shutdown-end.json
+watcher/tests/decision_engine/model/notification/data/instance-soft_delete-end.json
+watcher/tests/decision_engine/model/notification/data/instance-suspend-end.json
+watcher/tests/decision_engine/model/notification/data/instance-unlock.json
+watcher/tests/decision_engine/model/notification/data/instance-unpause-end.json
+watcher/tests/decision_engine/model/notification/data/instance-unrescue-end.json
+watcher/tests/decision_engine/model/notification/data/instance-unshelve-end.json
+watcher/tests/decision_engine/model/notification/data/instance-update-2-1.json
+watcher/tests/decision_engine/model/notification/data/instance-update.json
+watcher/tests/decision_engine/model/notification/data/scenario3_instance-update.json
+watcher/tests/decision_engine/model/notification/data/scenario3_notfound_instance-update.json
+watcher/tests/decision_engine/model/notification/data/scenario3_notfound_legacy_instance-update.json
+watcher/tests/decision_engine/model/notification/data/scenario3_service-update-disabled.json
+watcher/tests/decision_engine/model/notification/data/scenario3_service-update-enabled.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_bootable-volume-create.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_capacity.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_capacity_node_notfound.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_capacity_pool_notfound.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_error-volume-create.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_volume-attach.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_volume-create.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_volume-create_pool_notfound.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_volume-delete.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_volume-detach.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_volume-resize.json
+watcher/tests/decision_engine/model/notification/data/scenario_1_volume-update.json
+watcher/tests/decision_engine/model/notification/data/service-create.json
+watcher/tests/decision_engine/model/notification/data/service-delete.json
+watcher/tests/decision_engine/model/notification/data/service-update.json
+watcher/tests/decision_engine/planner/__init__.py
+watcher/tests/decision_engine/planner/test_node_resource_consolidation.py
+watcher/tests/decision_engine/planner/test_planner_manager.py
+watcher/tests/decision_engine/planner/test_weight_planner.py
+watcher/tests/decision_engine/planner/test_workload_stabilization_planner.py
+watcher/tests/decision_engine/scope/__init__.py
+watcher/tests/decision_engine/scope/fake_scopes.py
+watcher/tests/decision_engine/scope/test_baremetal.py
+watcher/tests/decision_engine/scope/test_compute.py
+watcher/tests/decision_engine/scope/test_storage.py
+watcher/tests/decision_engine/scoring/__init__.py
+watcher/tests/decision_engine/scoring/test_dummy_scorer.py
+watcher/tests/decision_engine/scoring/test_dummy_scoring_container.py
+watcher/tests/decision_engine/scoring/test_scoring_factory.py
+watcher/tests/decision_engine/solution/__init__.py
+watcher/tests/decision_engine/solution/test_default_solution.py
+watcher/tests/decision_engine/strategy/__init__.py
+watcher/tests/decision_engine/strategy/context/__init__.py
+watcher/tests/decision_engine/strategy/context/test_strategy_context.py
+watcher/tests/decision_engine/strategy/selector/__init__.py
+watcher/tests/decision_engine/strategy/selector/test_strategy_selector.py
+watcher/tests/decision_engine/strategy/strategies/__init__.py
+watcher/tests/decision_engine/strategy/strategies/test_actuator.py
+watcher/tests/decision_engine/strategy/strategies/test_base.py
+watcher/tests/decision_engine/strategy/strategies/test_basic_consolidation.py
+watcher/tests/decision_engine/strategy/strategies/test_dummy_strategy.py
+watcher/tests/decision_engine/strategy/strategies/test_dummy_with_scorer.py
+watcher/tests/decision_engine/strategy/strategies/test_host_maintenance.py
+watcher/tests/decision_engine/strategy/strategies/test_node_resource_consolidation.py
+watcher/tests/decision_engine/strategy/strategies/test_noisy_neighbor.py
+watcher/tests/decision_engine/strategy/strategies/test_outlet_temp_control.py
+watcher/tests/decision_engine/strategy/strategies/test_saving_energy.py
+watcher/tests/decision_engine/strategy/strategies/test_storage_capacity_balance.py
+watcher/tests/decision_engine/strategy/strategies/test_strategy_endpoint.py
+watcher/tests/decision_engine/strategy/strategies/test_uniform_airflow.py
+watcher/tests/decision_engine/strategy/strategies/test_vm_workload_consolidation.py
+watcher/tests/decision_engine/strategy/strategies/test_workload_balance.py
+watcher/tests/decision_engine/strategy/strategies/test_workload_stabilization.py
+watcher/tests/decision_engine/strategy/strategies/test_zone_migration.py
+watcher/tests/fixtures/__init__.py
+watcher/tests/fixtures/watcher.py
+watcher/tests/notifications/__init__.py
+watcher/tests/notifications/test_action_notification.py
+watcher/tests/notifications/test_action_plan_notification.py
+watcher/tests/notifications/test_audit_notification.py
+watcher/tests/notifications/test_notification.py
+watcher/tests/notifications/test_service_notifications.py
+watcher/tests/objects/__init__.py
+watcher/tests/objects/test_action.py
+watcher/tests/objects/test_action_description.py
+watcher/tests/objects/test_action_plan.py
+watcher/tests/objects/test_audit.py
+watcher/tests/objects/test_audit_template.py
+watcher/tests/objects/test_efficacy_indicator.py
+watcher/tests/objects/test_goal.py
+watcher/tests/objects/test_objects.py
+watcher/tests/objects/test_scoring_engine.py
+watcher/tests/objects/test_service.py
+watcher/tests/objects/test_strategy.py
+watcher/tests/objects/utils.py
+watcher/wsgi/__init__.py
+watcher/wsgi/api.py
\ No newline at end of file
diff -pruN 15.0.0-2/python_watcher.egg-info/dependency_links.txt 2:15.0.0-0ubuntu1/python_watcher.egg-info/dependency_links.txt
--- 15.0.0-2/python_watcher.egg-info/dependency_links.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/python_watcher.egg-info/dependency_links.txt	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 15.0.0-2/python_watcher.egg-info/entry_points.txt 2:15.0.0-0ubuntu1/python_watcher.egg-info/entry_points.txt
--- 15.0.0-2/python_watcher.egg-info/entry_points.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/python_watcher.egg-info/entry_points.txt	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1,81 @@
+[console_scripts]
+watcher-api = watcher.cmd.eventlet.api:main
+watcher-applier = watcher.cmd.eventlet.applier:main
+watcher-db-manage = watcher.cmd.dbmanage:main
+watcher-decision-engine = watcher.cmd.eventlet.decisionengine:main
+watcher-status = watcher.cmd.status:main
+watcher-sync = watcher.cmd.sync:main
+
+[oslo.config.opts]
+watcher = watcher.conf.opts:list_opts
+
+[oslo.policy.enforcer]
+watcher = watcher.common.policy:get_enforcer
+
+[oslo.policy.policies]
+watcher = watcher.common.policies:list_rules
+
+[watcher.database.migration_backend]
+sqlalchemy = watcher.db.sqlalchemy.migration
+
+[watcher_actions]
+change_node_power_state = watcher.applier.actions.change_node_power_state:ChangeNodePowerState
+change_nova_service_state = watcher.applier.actions.change_nova_service_state:ChangeNovaServiceState
+migrate = watcher.applier.actions.migration:Migrate
+nop = watcher.applier.actions.nop:Nop
+resize = watcher.applier.actions.resize:Resize
+sleep = watcher.applier.actions.sleep:Sleep
+stop = watcher.applier.actions.stop:Stop
+volume_migrate = watcher.applier.actions.volume_migration:VolumeMigrate
+
+[watcher_cluster_data_model_collectors]
+baremetal = watcher.decision_engine.model.collector.ironic:BaremetalClusterDataModelCollector
+compute = watcher.decision_engine.model.collector.nova:NovaClusterDataModelCollector
+storage = watcher.decision_engine.model.collector.cinder:CinderClusterDataModelCollector
+
+[watcher_goals]
+airflow_optimization = watcher.decision_engine.goal.goals:AirflowOptimization
+cluster_maintaining = watcher.decision_engine.goal.goals:ClusterMaintaining
+dummy = watcher.decision_engine.goal.goals:Dummy
+hardware_maintenance = watcher.decision_engine.goal.goals:HardwareMaintenance
+noisy_neighbor = watcher.decision_engine.goal.goals:NoisyNeighborOptimization
+saving_energy = watcher.decision_engine.goal.goals:SavingEnergy
+server_consolidation = watcher.decision_engine.goal.goals:ServerConsolidation
+thermal_optimization = watcher.decision_engine.goal.goals:ThermalOptimization
+unclassified = watcher.decision_engine.goal.goals:Unclassified
+workload_balancing = watcher.decision_engine.goal.goals:WorkloadBalancing
+
+[watcher_planners]
+node_resource_consolidation = watcher.decision_engine.planner.node_resource_consolidation:NodeResourceConsolidationPlanner
+weight = watcher.decision_engine.planner.weight:WeightPlanner
+workload_stabilization = watcher.decision_engine.planner.workload_stabilization:WorkloadStabilizationPlanner
+
+[watcher_scoring_engine_containers]
+dummy_scoring_container = watcher.decision_engine.scoring.dummy_scoring_container:DummyScoringContainer
+
+[watcher_scoring_engines]
+dummy_scorer = watcher.decision_engine.scoring.dummy_scorer:DummyScorer
+
+[watcher_strategies]
+actuator = watcher.decision_engine.strategy.strategies.actuation:Actuator
+basic = watcher.decision_engine.strategy.strategies.basic_consolidation:BasicConsolidation
+dummy = watcher.decision_engine.strategy.strategies.dummy_strategy:DummyStrategy
+dummy_with_resize = watcher.decision_engine.strategy.strategies.dummy_with_resize:DummyWithResize
+dummy_with_scorer = watcher.decision_engine.strategy.strategies.dummy_with_scorer:DummyWithScorer
+host_maintenance = watcher.decision_engine.strategy.strategies.host_maintenance:HostMaintenance
+node_resource_consolidation = watcher.decision_engine.strategy.strategies.node_resource_consolidation:NodeResourceConsolidation
+noisy_neighbor = watcher.decision_engine.strategy.strategies.noisy_neighbor:NoisyNeighbor
+outlet_temperature = watcher.decision_engine.strategy.strategies.outlet_temp_control:OutletTempControl
+saving_energy = watcher.decision_engine.strategy.strategies.saving_energy:SavingEnergy
+storage_capacity_balance = watcher.decision_engine.strategy.strategies.storage_capacity_balance:StorageCapacityBalance
+uniform_airflow = watcher.decision_engine.strategy.strategies.uniform_airflow:UniformAirflow
+vm_workload_consolidation = watcher.decision_engine.strategy.strategies.vm_workload_consolidation:VMWorkloadConsolidation
+workload_balance = watcher.decision_engine.strategy.strategies.workload_balance:WorkloadBalance
+workload_stabilization = watcher.decision_engine.strategy.strategies.workload_stabilization:WorkloadStabilization
+zone_migration = watcher.decision_engine.strategy.strategies.zone_migration:ZoneMigration
+
+[watcher_workflow_engines]
+taskflow = watcher.applier.workflow_engine.default:DefaultWorkFlowEngine
+
+[wsgi_scripts]
+watcher-api-wsgi = watcher.api.wsgi:initialize_wsgi_app
diff -pruN 15.0.0-2/python_watcher.egg-info/not-zip-safe 2:15.0.0-0ubuntu1/python_watcher.egg-info/not-zip-safe
--- 15.0.0-2/python_watcher.egg-info/not-zip-safe	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/python_watcher.egg-info/not-zip-safe	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 15.0.0-2/python_watcher.egg-info/pbr.json 2:15.0.0-0ubuntu1/python_watcher.egg-info/pbr.json
--- 15.0.0-2/python_watcher.egg-info/pbr.json	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/python_watcher.egg-info/pbr.json	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1 @@
+{"git_version": "61cca16d", "is_release": true}
\ No newline at end of file
diff -pruN 15.0.0-2/python_watcher.egg-info/requires.txt 2:15.0.0-0ubuntu1/python_watcher.egg-info/requires.txt
--- 15.0.0-2/python_watcher.egg-info/requires.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/python_watcher.egg-info/requires.txt	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1,49 @@
+apscheduler>=3.5.1
+debtcollector>=1.2.0
+eventlet>=0.27.0
+jsonpatch>=1.21
+keystoneauth1>=3.4.0
+jsonschema>=3.2.0
+keystonemiddleware>=4.21.0
+lxml>=4.5.1
+croniter>=0.3.20
+os-resource-classes>=0.4.0
+oslo.concurrency>=3.26.0
+oslo.cache>=1.29.0
+oslo.config>=6.8.0
+oslo.context>=2.21.0
+oslo.db>=4.44.0
+oslo.i18n>=3.20.0
+oslo.log>=3.37.0
+oslo.messaging>=14.1.0
+oslo.policy>=4.5.0
+oslo.reports>=1.27.0
+oslo.serialization>=2.25.0
+oslo.service[threading]>=4.2.1
+oslo.upgradecheck>=1.3.0
+oslo.utils>=7.0.0
+oslo.versionedobjects>=1.32.0
+PasteDeploy>=1.5.2
+pbr>=3.1.1
+pecan>=1.3.2
+PrettyTable>=0.7.2
+gnocchiclient>=7.0.1
+python-cinderclient>=3.5.0
+python-glanceclient>=2.9.1
+python-keystoneclient>=3.15.0
+python-neutronclient>=6.7.0
+python-novaclient>=14.1.0
+python-observabilityclient>=1.1.0
+python-openstackclient>=3.14.0
+python-ironicclient>=2.5.0
+SQLAlchemy>=1.2.5
+stevedore>=1.28.0
+taskflow>=3.8.0
+WebOb>=1.8.5
+WSME>=0.9.2
+networkx>=2.4
+microversion_parse>=0.2.1
+futurist>=1.8.0
+
+[monasca]
+python-monascaclient>=1.12.0
diff -pruN 15.0.0-2/python_watcher.egg-info/top_level.txt 2:15.0.0-0ubuntu1/python_watcher.egg-info/top_level.txt
--- 15.0.0-2/python_watcher.egg-info/top_level.txt	1970-01-01 00:00:00.000000000 +0000
+++ 2:15.0.0-0ubuntu1/python_watcher.egg-info/top_level.txt	2025-10-01 10:47:30.000000000 +0000
@@ -0,0 +1 @@
+watcher
diff -pruN 15.0.0-2/setup.cfg 2:15.0.0-0ubuntu1/setup.cfg
--- 15.0.0-2/setup.cfg	2025-09-11 20:57:34.000000000 +0000
+++ 2:15.0.0-0ubuntu1/setup.cfg	2025-10-01 10:47:31.356960800 +0000
@@ -1,120 +1,112 @@
 [metadata]
 name = python-watcher
 summary = OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack-based clouds.
-description_file =
-    README.rst
+description_file = 
+	README.rst
 author = OpenStack
 author_email = openstack-discuss@lists.openstack.org
 home_page = https://docs.openstack.org/watcher/latest/
 python_requires = >=3.10
-classifier =
-    Environment :: OpenStack
-    Intended Audience :: Information Technology
-    Intended Audience :: System Administrators
-    License :: OSI Approved :: Apache Software License
-    Operating System :: POSIX :: Linux
-    Programming Language :: Python
-    Programming Language :: Python :: Implementation :: CPython
-    Programming Language :: Python :: 3 :: Only
-    Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.10
-    Programming Language :: Python :: 3.11
-    Programming Language :: Python :: 3.12
+classifier = 
+	Environment :: OpenStack
+	Intended Audience :: Information Technology
+	Intended Audience :: System Administrators
+	License :: OSI Approved :: Apache Software License
+	Operating System :: POSIX :: Linux
+	Programming Language :: Python
+	Programming Language :: Python :: Implementation :: CPython
+	Programming Language :: Python :: 3 :: Only
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3.10
+	Programming Language :: Python :: 3.11
+	Programming Language :: Python :: 3.12
 
 [files]
-packages =
-    watcher
-data_files =
-    etc/ = etc/*
+packages = 
+	watcher
+data_files = 
+	etc/ = etc/*
 
 [options.extras_require]
-monasca =
-    python-monascaclient>=1.12.0
+monasca = 
+	python-monascaclient>=1.12.0
 
 [entry_points]
-oslo.config.opts =
-    watcher = watcher.conf.opts:list_opts
-
-oslo.policy.policies =
-    watcher = watcher.common.policies:list_rules
-
-oslo.policy.enforcer =
-    watcher = watcher.common.policy:get_enforcer
-
-console_scripts =
-    watcher-api = watcher.cmd.eventlet.api:main
-    watcher-db-manage = watcher.cmd.dbmanage:main
-    watcher-decision-engine = watcher.cmd.eventlet.decisionengine:main
-    watcher-applier = watcher.cmd.eventlet.applier:main
-    watcher-sync = watcher.cmd.sync:main
-    watcher-status = watcher.cmd.status:main
-
-wsgi_scripts =
-    watcher-api-wsgi = watcher.api.wsgi:initialize_wsgi_app
-
-watcher.database.migration_backend =
-    sqlalchemy = watcher.db.sqlalchemy.migration
-
-watcher_goals =
-    unclassified = watcher.decision_engine.goal.goals:Unclassified
-    dummy = watcher.decision_engine.goal.goals:Dummy
-    server_consolidation = watcher.decision_engine.goal.goals:ServerConsolidation
-    thermal_optimization = watcher.decision_engine.goal.goals:ThermalOptimization
-    workload_balancing = watcher.decision_engine.goal.goals:WorkloadBalancing
-    airflow_optimization = watcher.decision_engine.goal.goals:AirflowOptimization
-    noisy_neighbor = watcher.decision_engine.goal.goals:NoisyNeighborOptimization
-    saving_energy = watcher.decision_engine.goal.goals:SavingEnergy
-    hardware_maintenance = watcher.decision_engine.goal.goals:HardwareMaintenance
-    cluster_maintaining = watcher.decision_engine.goal.goals:ClusterMaintaining
-
-watcher_scoring_engines =
-    dummy_scorer = watcher.decision_engine.scoring.dummy_scorer:DummyScorer
-
-watcher_scoring_engine_containers =
-    dummy_scoring_container = watcher.decision_engine.scoring.dummy_scoring_container:DummyScoringContainer
-
-watcher_strategies =
-    dummy = watcher.decision_engine.strategy.strategies.dummy_strategy:DummyStrategy
-    dummy_with_scorer = watcher.decision_engine.strategy.strategies.dummy_with_scorer:DummyWithScorer
-    dummy_with_resize = watcher.decision_engine.strategy.strategies.dummy_with_resize:DummyWithResize
-    actuator = watcher.decision_engine.strategy.strategies.actuation:Actuator
-    basic = watcher.decision_engine.strategy.strategies.basic_consolidation:BasicConsolidation
-    outlet_temperature = watcher.decision_engine.strategy.strategies.outlet_temp_control:OutletTempControl
-    saving_energy =  watcher.decision_engine.strategy.strategies.saving_energy:SavingEnergy
-    vm_workload_consolidation = watcher.decision_engine.strategy.strategies.vm_workload_consolidation:VMWorkloadConsolidation
-    workload_stabilization = watcher.decision_engine.strategy.strategies.workload_stabilization:WorkloadStabilization
-    workload_balance = watcher.decision_engine.strategy.strategies.workload_balance:WorkloadBalance
-    uniform_airflow = watcher.decision_engine.strategy.strategies.uniform_airflow:UniformAirflow
-    noisy_neighbor = watcher.decision_engine.strategy.strategies.noisy_neighbor:NoisyNeighbor
-    storage_capacity_balance = watcher.decision_engine.strategy.strategies.storage_capacity_balance:StorageCapacityBalance
-    zone_migration = watcher.decision_engine.strategy.strategies.zone_migration:ZoneMigration
-    host_maintenance = watcher.decision_engine.strategy.strategies.host_maintenance:HostMaintenance
-    node_resource_consolidation = watcher.decision_engine.strategy.strategies.node_resource_consolidation:NodeResourceConsolidation
-
-watcher_actions =
-    migrate = watcher.applier.actions.migration:Migrate
-    nop = watcher.applier.actions.nop:Nop
-    sleep = watcher.applier.actions.sleep:Sleep
-    change_nova_service_state = watcher.applier.actions.change_nova_service_state:ChangeNovaServiceState
-    resize = watcher.applier.actions.resize:Resize
-    change_node_power_state = watcher.applier.actions.change_node_power_state:ChangeNodePowerState
-    volume_migrate = watcher.applier.actions.volume_migration:VolumeMigrate
-    stop = watcher.applier.actions.stop:Stop
-
-watcher_workflow_engines =
-    taskflow = watcher.applier.workflow_engine.default:DefaultWorkFlowEngine
-
-watcher_planners =
-    weight = watcher.decision_engine.planner.weight:WeightPlanner
-    workload_stabilization  = watcher.decision_engine.planner.workload_stabilization:WorkloadStabilizationPlanner
-    node_resource_consolidation  = watcher.decision_engine.planner.node_resource_consolidation:NodeResourceConsolidationPlanner
-
-watcher_cluster_data_model_collectors =
-    compute = watcher.decision_engine.model.collector.nova:NovaClusterDataModelCollector
-    storage = watcher.decision_engine.model.collector.cinder:CinderClusterDataModelCollector
-    baremetal = watcher.decision_engine.model.collector.ironic:BaremetalClusterDataModelCollector
+oslo.config.opts = 
+	watcher = watcher.conf.opts:list_opts
+oslo.policy.policies = 
+	watcher = watcher.common.policies:list_rules
+oslo.policy.enforcer = 
+	watcher = watcher.common.policy:get_enforcer
+console_scripts = 
+	watcher-api = watcher.cmd.eventlet.api:main
+	watcher-db-manage = watcher.cmd.dbmanage:main
+	watcher-decision-engine = watcher.cmd.eventlet.decisionengine:main
+	watcher-applier = watcher.cmd.eventlet.applier:main
+	watcher-sync = watcher.cmd.sync:main
+	watcher-status = watcher.cmd.status:main
+wsgi_scripts = 
+	watcher-api-wsgi = watcher.api.wsgi:initialize_wsgi_app
+watcher.database.migration_backend = 
+	sqlalchemy = watcher.db.sqlalchemy.migration
+watcher_goals = 
+	unclassified = watcher.decision_engine.goal.goals:Unclassified
+	dummy = watcher.decision_engine.goal.goals:Dummy
+	server_consolidation = watcher.decision_engine.goal.goals:ServerConsolidation
+	thermal_optimization = watcher.decision_engine.goal.goals:ThermalOptimization
+	workload_balancing = watcher.decision_engine.goal.goals:WorkloadBalancing
+	airflow_optimization = watcher.decision_engine.goal.goals:AirflowOptimization
+	noisy_neighbor = watcher.decision_engine.goal.goals:NoisyNeighborOptimization
+	saving_energy = watcher.decision_engine.goal.goals:SavingEnergy
+	hardware_maintenance = watcher.decision_engine.goal.goals:HardwareMaintenance
+	cluster_maintaining = watcher.decision_engine.goal.goals:ClusterMaintaining
+watcher_scoring_engines = 
+	dummy_scorer = watcher.decision_engine.scoring.dummy_scorer:DummyScorer
+watcher_scoring_engine_containers = 
+	dummy_scoring_container = watcher.decision_engine.scoring.dummy_scoring_container:DummyScoringContainer
+watcher_strategies = 
+	dummy = watcher.decision_engine.strategy.strategies.dummy_strategy:DummyStrategy
+	dummy_with_scorer = watcher.decision_engine.strategy.strategies.dummy_with_scorer:DummyWithScorer
+	dummy_with_resize = watcher.decision_engine.strategy.strategies.dummy_with_resize:DummyWithResize
+	actuator = watcher.decision_engine.strategy.strategies.actuation:Actuator
+	basic = watcher.decision_engine.strategy.strategies.basic_consolidation:BasicConsolidation
+	outlet_temperature = watcher.decision_engine.strategy.strategies.outlet_temp_control:OutletTempControl
+	saving_energy =  watcher.decision_engine.strategy.strategies.saving_energy:SavingEnergy
+	vm_workload_consolidation = watcher.decision_engine.strategy.strategies.vm_workload_consolidation:VMWorkloadConsolidation
+	workload_stabilization = watcher.decision_engine.strategy.strategies.workload_stabilization:WorkloadStabilization
+	workload_balance = watcher.decision_engine.strategy.strategies.workload_balance:WorkloadBalance
+	uniform_airflow = watcher.decision_engine.strategy.strategies.uniform_airflow:UniformAirflow
+	noisy_neighbor = watcher.decision_engine.strategy.strategies.noisy_neighbor:NoisyNeighbor
+	storage_capacity_balance = watcher.decision_engine.strategy.strategies.storage_capacity_balance:StorageCapacityBalance
+	zone_migration = watcher.decision_engine.strategy.strategies.zone_migration:ZoneMigration
+	host_maintenance = watcher.decision_engine.strategy.strategies.host_maintenance:HostMaintenance
+	node_resource_consolidation = watcher.decision_engine.strategy.strategies.node_resource_consolidation:NodeResourceConsolidation
+watcher_actions = 
+	migrate = watcher.applier.actions.migration:Migrate
+	nop = watcher.applier.actions.nop:Nop
+	sleep = watcher.applier.actions.sleep:Sleep
+	change_nova_service_state = watcher.applier.actions.change_nova_service_state:ChangeNovaServiceState
+	resize = watcher.applier.actions.resize:Resize
+	change_node_power_state = watcher.applier.actions.change_node_power_state:ChangeNodePowerState
+	volume_migrate = watcher.applier.actions.volume_migration:VolumeMigrate
+	stop = watcher.applier.actions.stop:Stop
+watcher_workflow_engines = 
+	taskflow = watcher.applier.workflow_engine.default:DefaultWorkFlowEngine
+watcher_planners = 
+	weight = watcher.decision_engine.planner.weight:WeightPlanner
+	workload_stabilization  = watcher.decision_engine.planner.workload_stabilization:WorkloadStabilizationPlanner
+	node_resource_consolidation  = watcher.decision_engine.planner.node_resource_consolidation:NodeResourceConsolidationPlanner
+watcher_cluster_data_model_collectors = 
+	compute = watcher.decision_engine.model.collector.nova:NovaClusterDataModelCollector
+	storage = watcher.decision_engine.model.collector.cinder:CinderClusterDataModelCollector
+	baremetal = watcher.decision_engine.model.collector.ironic:BaremetalClusterDataModelCollector
 
 [codespell]
 skip = *.po,*.js,*.css,*.html,*.svg,HACKING.py,*hacking*,*build*,*_static*,doc/dictionary.txt,*.pyc,*.inv,*.gz,*.jpg,*.png,*.vsd,*.graffle,*.json
-count =
+count = 
 quiet-level = 4
+
+[egg_info]
+tag_build = 
+tag_date = 0
+
