python-watcher 15.0.0__tar.gz → 15.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (974) hide show
  1. {python_watcher-15.0.0 → python_watcher-15.1.0}/.zuul.yaml +242 -242
  2. {python_watcher-15.0.0 → python_watcher-15.1.0}/ChangeLog +24 -0
  3. {python_watcher-15.0.0 → python_watcher-15.1.0}/PKG-INFO +12 -3
  4. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/zone_migration.rst +1 -1
  5. {python_watcher-15.0.0 → python_watcher-15.1.0}/python_watcher.egg-info/PKG-INFO +12 -3
  6. {python_watcher-15.0.0 → python_watcher-15.1.0}/python_watcher.egg-info/SOURCES.txt +11 -1
  7. python_watcher-15.1.0/python_watcher.egg-info/pbr.json +1 -0
  8. {python_watcher-15.0.0 → python_watcher-15.1.0}/python_watcher.egg-info/requires.txt +1 -1
  9. python_watcher-15.1.0/releasenotes/notes/add-retries-nova-calls-32455b6fbf7523f1.yaml +7 -0
  10. python_watcher-15.1.0/releasenotes/notes/bug-2098984-zone-migration-instance-not-found-b9ce947dd3e7e020.yaml +9 -0
  11. python_watcher-15.1.0/releasenotes/notes/bug-2109722-cb205216d0c1a836.yaml +13 -0
  12. python_watcher-15.1.0/releasenotes/notes/bug-2131663-b486d36f77d13a5d.yaml +11 -0
  13. python_watcher-15.1.0/releasenotes/notes/bug-2138857-e3505aa4a20a7831.yaml +7 -0
  14. python_watcher-15.1.0/releasenotes/notes/resize-timeout-0f6ede6ec9b644b7.yaml +11 -0
  15. python_watcher-15.1.0/releasenotes/notes/zone-migration-with-attached-volume-without-compute-nodes-ec4b1329e2b58279.yaml +11 -0
  16. python_watcher-15.1.0/releasenotes/notes/zone_migrate_src_type-642186730a4f354e.yaml +10 -0
  17. python_watcher-15.1.0/releasenotes/notes/zone_migration_schema_change-92a9ec8631870c84.yaml +7 -0
  18. {python_watcher-15.0.0 → python_watcher-15.1.0}/requirements.txt +1 -1
  19. {python_watcher-15.0.0 → python_watcher-15.1.0}/tox.ini +1 -1
  20. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/rest_api_version_history.rst +8 -0
  21. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/nova_helper.py +119 -30
  22. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/__init__.py +2 -0
  23. python_watcher-15.1.0/watcher/conf/nova.py +61 -0
  24. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/notification/cinder.py +16 -0
  25. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/notification/nova.py +1 -1
  26. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/zone_migration.py +61 -31
  27. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_audits.py +144 -24
  28. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/base.py +12 -0
  29. python_watcher-15.1.0/watcher/tests/common/test_nova_helper.py +1467 -0
  30. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/faker_cluster_state.py +18 -0
  31. python_watcher-15.0.0/watcher/tests/decision_engine/model/notification/data/instance-live_migration_post-end.json → python_watcher-15.1.0/watcher/tests/decision_engine/model/notification/data/instance-live_migration_post_dest-end.json +2 -2
  32. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/test_cinder_notifications.py +137 -0
  33. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/test_nova_notifications.py +3 -3
  34. python_watcher-15.1.0/watcher/tests/decision_engine/strategy/strategies/test_zone_migration.py +1551 -0
  35. python_watcher-15.0.0/python_watcher.egg-info/pbr.json +0 -1
  36. python_watcher-15.0.0/watcher/tests/common/test_nova_helper.py +0 -775
  37. python_watcher-15.0.0/watcher/tests/decision_engine/strategy/strategies/test_zone_migration.py +0 -872
  38. {python_watcher-15.0.0 → python_watcher-15.1.0}/.coveragerc +0 -0
  39. {python_watcher-15.0.0 → python_watcher-15.1.0}/.mailmap +0 -0
  40. {python_watcher-15.0.0 → python_watcher-15.1.0}/.pre-commit-config.yaml +0 -0
  41. {python_watcher-15.0.0 → python_watcher-15.1.0}/.stestr.conf +0 -0
  42. {python_watcher-15.0.0 → python_watcher-15.1.0}/AUTHORS +0 -0
  43. {python_watcher-15.0.0 → python_watcher-15.1.0}/CONTRIBUTING.rst +0 -0
  44. {python_watcher-15.0.0 → python_watcher-15.1.0}/HACKING.rst +0 -0
  45. {python_watcher-15.0.0 → python_watcher-15.1.0}/LICENSE +0 -0
  46. {python_watcher-15.0.0 → python_watcher-15.1.0}/README.rst +0 -0
  47. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/conf.py +0 -0
  48. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/index.rst +0 -0
  49. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/parameters.yaml +0 -0
  50. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/action-skip-request-with-message.json +0 -0
  51. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/action-skip-request.json +0 -0
  52. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/action-skip-response.json +0 -0
  53. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/action-update-status-message-request.json +0 -0
  54. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/action-update-status-message-response.json +0 -0
  55. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actionplan-cancel-request-cancelling.json +0 -0
  56. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actionplan-cancel-request-pending.json +0 -0
  57. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actionplan-list-detailed-response.json +0 -0
  58. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actionplan-list-response.json +0 -0
  59. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actionplan-show-response.json +0 -0
  60. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actionplan-start-response.json +0 -0
  61. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actions-list-detailed-response.json +0 -0
  62. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actions-list-response.json +0 -0
  63. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/actions-show-response.json +0 -0
  64. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/api-root-response.json +0 -0
  65. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/api-v1-root-response.json +0 -0
  66. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-cancel-request.json +0 -0
  67. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-cancel-response.json +0 -0
  68. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-create-request-continuous.json +0 -0
  69. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-create-request-oneshot.json +0 -0
  70. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-create-response.json +0 -0
  71. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-list-detailed-response.json +0 -0
  72. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-list-response.json +0 -0
  73. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-show-response.json +0 -0
  74. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-update-request.json +0 -0
  75. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audit-update-response.json +0 -0
  76. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audittemplate-create-request-full.json +0 -0
  77. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audittemplate-create-request-minimal.json +0 -0
  78. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audittemplate-create-response.json +0 -0
  79. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audittemplate-list-detailed-response.json +0 -0
  80. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audittemplate-list-response.json +0 -0
  81. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audittemplate-show-response.json +0 -0
  82. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audittemplate-update-request.json +0 -0
  83. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/audittemplate-update-response.json +0 -0
  84. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/datamodel-list-response.json +0 -0
  85. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/goal-list-response.json +0 -0
  86. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/goal-show-response.json +0 -0
  87. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/scoring_engine-list-detailed-response.json +0 -0
  88. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/scoring_engine-list-response.json +0 -0
  89. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/scoring_engine-show-response.json +0 -0
  90. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/service-list-detailed-response.json +0 -0
  91. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/service-list-response.json +0 -0
  92. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/service-show-response.json +0 -0
  93. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/strategy-list-detailed-response.json +0 -0
  94. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/strategy-list-response.json +0 -0
  95. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/strategy-show-response.json +0 -0
  96. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/samples/strategy-state-response.json +0 -0
  97. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-actionplans.inc +0 -0
  98. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-actions.inc +0 -0
  99. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-audits.inc +0 -0
  100. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-audittemplates.inc +0 -0
  101. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-datamodel.inc +0 -0
  102. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-goals.inc +0 -0
  103. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-scoring_engines.inc +0 -0
  104. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-services.inc +0 -0
  105. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-strategies.inc +0 -0
  106. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-v1-webhooks.inc +0 -0
  107. {python_watcher-15.0.0 → python_watcher-15.1.0}/api-ref/source/watcher-api-versions.inc +0 -0
  108. {python_watcher-15.0.0 → python_watcher-15.1.0}/bindep.txt +0 -0
  109. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/lib/watcher +0 -0
  110. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/local.conf.compute +0 -0
  111. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/local.conf.controller +0 -0
  112. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/local_gnocchi.conf.compute +0 -0
  113. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/local_gnocchi.conf.controller +0 -0
  114. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/override-defaults +0 -0
  115. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/plugin.sh +0 -0
  116. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/prometheus.yml +0 -0
  117. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/settings +0 -0
  118. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/upgrade/from_rocky/upgrade-watcher +0 -0
  119. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/upgrade/resources.sh +0 -0
  120. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/upgrade/settings +0 -0
  121. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/upgrade/shutdown.sh +0 -0
  122. {python_watcher-15.0.0 → python_watcher-15.1.0}/devstack/upgrade/upgrade.sh +0 -0
  123. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/dictionary.txt +0 -0
  124. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/ext/__init__.py +0 -0
  125. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/ext/term.py +0 -0
  126. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/ext/versioned_notifications.py +0 -0
  127. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-cancel-end.json +0 -0
  128. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-cancel-error.json +0 -0
  129. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-cancel-start.json +0 -0
  130. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-create.json +0 -0
  131. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-delete.json +0 -0
  132. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-execution-end.json +0 -0
  133. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-execution-error.json +0 -0
  134. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-execution-start.json +0 -0
  135. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action-update.json +0 -0
  136. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-cancel-end.json +0 -0
  137. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-cancel-error.json +0 -0
  138. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-cancel-start.json +0 -0
  139. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-create.json +0 -0
  140. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-delete.json +0 -0
  141. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-execution-end.json +0 -0
  142. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-execution-error.json +0 -0
  143. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-execution-start.json +0 -0
  144. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/action_plan-update.json +0 -0
  145. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-create.json +0 -0
  146. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-delete.json +0 -0
  147. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-planner-end.json +0 -0
  148. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-planner-error.json +0 -0
  149. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-planner-start.json +0 -0
  150. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-strategy-end.json +0 -0
  151. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-strategy-error.json +0 -0
  152. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-strategy-start.json +0 -0
  153. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/audit-update.json +0 -0
  154. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/infra-optim-exception.json +0 -0
  155. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/notification_samples/service-update.json +0 -0
  156. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/requirements.txt +0 -0
  157. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/_static/.placeholder +0 -0
  158. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/admin/apache-mod-wsgi.rst +0 -0
  159. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/admin/gmr.rst +0 -0
  160. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/admin/index.rst +0 -0
  161. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/admin/policy.rst +0 -0
  162. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/architecture.rst +0 -0
  163. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/conf.py +0 -0
  164. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/configuration/configuring.rst +0 -0
  165. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/configuration/index.rst +0 -0
  166. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/configuration/watcher.rst +0 -0
  167. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/api_microversion_history.rst +0 -0
  168. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/concurrency.rst +0 -0
  169. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/contributing.rst +0 -0
  170. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/devstack.rst +0 -0
  171. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/environment.rst +0 -0
  172. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/index.rst +0 -0
  173. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/notifications.rst +0 -0
  174. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/action-plugin.rst +0 -0
  175. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/base-setup.rst +0 -0
  176. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/cdmc-plugin.rst +0 -0
  177. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/goal-plugin.rst +0 -0
  178. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/index.rst +0 -0
  179. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/planner-plugin.rst +0 -0
  180. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/plugins.rst +0 -0
  181. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/scoring-engine-plugin.rst +0 -0
  182. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/plugin/strategy-plugin.rst +0 -0
  183. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/rally_link.rst +0 -0
  184. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/release-guide.rst +0 -0
  185. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/contributor/testing.rst +0 -0
  186. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/datasources/aetos.rst +0 -0
  187. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/datasources/grafana.rst +0 -0
  188. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/datasources/index.rst +0 -0
  189. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/datasources/prometheus.rst +0 -0
  190. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/glossary.rst +0 -0
  191. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/dia/architecture.dia +0 -0
  192. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/dia/functional_data_model.dia +0 -0
  193. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/README.rst +0 -0
  194. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/action_plan_state_machine.txt +0 -0
  195. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/action_state_machine.txt +0 -0
  196. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/audit_state_machine.txt +0 -0
  197. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/sequence_architecture_cdmc_sync.txt +0 -0
  198. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/sequence_create_and_launch_audit.txt +0 -0
  199. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/sequence_create_audit_template.txt +0 -0
  200. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/sequence_from_audit_execution_to_actionplan_creation.txt +0 -0
  201. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/sequence_launch_action_plan.txt +0 -0
  202. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/sequence_launch_action_plan_in_applier.txt +0 -0
  203. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/sequence_overview_watcher_usage.txt +0 -0
  204. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/sequence_trigger_audit_in_decision_engine.txt +0 -0
  205. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/image_src/plantuml/watcher_db_schema_diagram.txt +0 -0
  206. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/action_plan_state_machine.png +0 -0
  207. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/action_state_machine.png +0 -0
  208. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/architecture.svg +0 -0
  209. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/audit_state_machine.png +0 -0
  210. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/functional_data_model.svg +0 -0
  211. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/sequence_architecture_cdmc_sync.png +0 -0
  212. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/sequence_create_and_launch_audit.png +0 -0
  213. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/sequence_create_audit_template.png +0 -0
  214. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/sequence_from_audit_execution_to_actionplan_creation.png +0 -0
  215. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/sequence_launch_action_plan.png +0 -0
  216. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/sequence_launch_action_plan_in_applier.png +0 -0
  217. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/sequence_overview_watcher_usage.png +0 -0
  218. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/sequence_trigger_audit_in_decision_engine.png +0 -0
  219. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/images/watcher_db_schema_diagram.png +0 -0
  220. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/index.rst +0 -0
  221. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/common_configure.rst +0 -0
  222. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/common_prerequisites.rst +0 -0
  223. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/get_started.rst +0 -0
  224. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/index.rst +0 -0
  225. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/install-rdo.rst +0 -0
  226. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/install-ubuntu.rst +0 -0
  227. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/install.rst +0 -0
  228. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/next-steps.rst +0 -0
  229. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/install/verify.rst +0 -0
  230. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/integrations/index.rst +0 -0
  231. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/man/footer.rst +0 -0
  232. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/man/general-options.rst +0 -0
  233. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/man/index.rst +0 -0
  234. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/man/watcher-api.rst +0 -0
  235. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/man/watcher-applier.rst +0 -0
  236. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/man/watcher-db-manage.rst +0 -0
  237. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/man/watcher-decision-engine.rst +0 -0
  238. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/man/watcher-status.rst +0 -0
  239. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/actuation.rst +0 -0
  240. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/basic-server-consolidation.rst +0 -0
  241. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/host_maintenance.rst +0 -0
  242. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/index.rst +0 -0
  243. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/node_resource_consolidation.rst +0 -0
  244. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/noisy_neighbor.rst +0 -0
  245. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/outlet_temp_control.rst +0 -0
  246. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/saving_energy.rst +0 -0
  247. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/storage_capacity_balance.rst +0 -0
  248. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/strategy-template.rst +0 -0
  249. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/uniform_airflow.rst +0 -0
  250. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/vm_workload_consolidation.rst +0 -0
  251. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/workload-stabilization.rst +0 -0
  252. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/strategies/workload_balance.rst +0 -0
  253. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/user/event_type_audit.rst +0 -0
  254. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/user/index.rst +0 -0
  255. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/user/user-guide.rst +0 -0
  256. {python_watcher-15.0.0 → python_watcher-15.1.0}/doc/source/user/ways-to-install.rst +0 -0
  257. {python_watcher-15.0.0 → python_watcher-15.1.0}/etc/apache2/watcher +0 -0
  258. {python_watcher-15.0.0 → python_watcher-15.1.0}/etc/watcher/README-watcher.conf.txt +0 -0
  259. {python_watcher-15.0.0 → python_watcher-15.1.0}/etc/watcher/oslo-config-generator/watcher.conf +0 -0
  260. {python_watcher-15.0.0 → python_watcher-15.1.0}/etc/watcher/oslo-policy-generator/watcher-policy-generator.conf +0 -0
  261. {python_watcher-15.0.0 → python_watcher-15.1.0}/playbooks/generate_prometheus_config.yml +0 -0
  262. {python_watcher-15.0.0 → python_watcher-15.1.0}/playbooks/templates/prometheus.yml.j2 +0 -0
  263. {python_watcher-15.0.0 → python_watcher-15.1.0}/pyproject.toml +0 -0
  264. {python_watcher-15.0.0 → python_watcher-15.1.0}/python_watcher.egg-info/dependency_links.txt +0 -0
  265. {python_watcher-15.0.0 → python_watcher-15.1.0}/python_watcher.egg-info/entry_points.txt +0 -0
  266. {python_watcher-15.0.0 → python_watcher-15.1.0}/python_watcher.egg-info/not-zip-safe +0 -0
  267. {python_watcher-15.0.0 → python_watcher-15.1.0}/python_watcher.egg-info/top_level.txt +0 -0
  268. {python_watcher-15.0.0 → python_watcher-15.1.0}/rally-jobs/README.rst +0 -0
  269. {python_watcher-15.0.0 → python_watcher-15.1.0}/rally-jobs/watcher-watcher.yaml +0 -0
  270. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/.placeholder +0 -0
  271. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/2025.1-prelude-8be97eece4e1d1ff.yaml +0 -0
  272. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/2025.2-prelude-a9f4c7b2e8d15692.yaml +0 -0
  273. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/action-plan-cancel-c54726378019e096.yaml +0 -0
  274. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/action-plan-versioned-notifications-api-e8ca4f5d37aa5b4b.yaml +0 -0
  275. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/action-versioned-notifications-api-ff94fc0f401292d0.yaml +0 -0
  276. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-baremetal-scoper-9ef23f5fb8f0be6a.yaml +0 -0
  277. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-fail-options-to-nop-f44f506dc732f2a1.yaml +0 -0
  278. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-force-field-to-audit-4bcaeedfe27233ad.yaml +0 -0
  279. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-ha-support-b9042255e5b76e42.yaml +0 -0
  280. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-instance-metrics-to-prometheus-datasource-9fba8c174ff845e1.yaml +0 -0
  281. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-name-for-audit-0df1f39f00736f06.yaml +0 -0
  282. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-plugins-parameters-376eb6b0b8978b44.yaml +0 -0
  283. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-power-on-off-a77673d482568a8b.yaml +0 -0
  284. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-scoring-module-fa00d013ed2d614e.yaml +0 -0
  285. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-start-end-time-for-continuous-audit-52c45052cb06d153.yaml +0 -0
  286. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-upgrade-check-framework-5bb9693c8a78931c.yaml +0 -0
  287. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/add-wsgi-module-support-597f479e31979270.yaml +0 -0
  288. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/aetos-datasource-60e50a2338c64c08.yaml +0 -0
  289. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/api-call-retry-fef741ac684c58dd.yaml +0 -0
  290. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/api-microversioning-7999a3ee8073bf32.yaml +0 -0
  291. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/audit-scoper-for-storage-data-model-cdccc803542d22db.yaml +0 -0
  292. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/audit-tag-vm-metadata-47a3e4468748853c.yaml +0 -0
  293. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/audit-versioned-notifications-api-bca7738e16954bad.yaml +0 -0
  294. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/automatic-triggering-audit-8a9b0540d547db60.yaml +0 -0
  295. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/background-jobs-ha-9d3cf3fe356f4705.yaml +0 -0
  296. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/blueprint-add-skip-actions-4a5a997dc1133f13.yaml +0 -0
  297. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bp-audit-scope-exclude-project-511a7720aac00dff.yaml +0 -0
  298. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bp-extend-compute-model-attributes-b56bc093e8637bb4.yaml +0 -0
  299. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2103451-fixes-prometheus-queries-with-multiple-target-0e65d20711d1abe2.yaml +0 -0
  300. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2109494-e5bf401767fa6cd6.yaml +0 -0
  301. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2110947.yaml +0 -0
  302. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2112100-c1e56173cd29a35e.yaml +0 -0
  303. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2112187-763bae283e0b736d.yaml +0 -0
  304. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2113776-4bd314fb46623fbc.yaml +0 -0
  305. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2117726-fix-model-list-api-ref-30cc7ed1c85c0d0e.yaml +0 -0
  306. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2120586-fix-nova-microversion-check-9022a378b75d046f.yaml +0 -0
  307. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/bug-2121601-allow-status-message-updates-in-skipped-state-a8b4c5d7e9f2g3h1.yaml +0 -0
  308. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/build-baremetal-data-model-in-watcher-3023453a47b61dab.yaml +0 -0
  309. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/cdm-scoping-8d9c307bad46bfa1.yaml +0 -0
  310. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/centralise-config-opts-95670987dfbdb0e7.yaml +0 -0
  311. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/change-ram-util-metric-4a3e6984b9dd968d.yaml +0 -0
  312. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/check-strategy-requirements-66f9e9262412f8ec.yaml +0 -0
  313. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/cinder-model-integration-baa394a72a0a33bf.yaml +0 -0
  314. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/cluster-model-objects-wrapper-9c799ea262c56a5b.yaml +0 -0
  315. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/compute-cdm-include-all-instances-f7506ded2d57732f.yaml +0 -0
  316. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/configurable-weights-default-planner-3746b33160bc7347.yaml +0 -0
  317. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/consume-nova-versioned-notifications-f98361b37e546b4d.yaml +0 -0
  318. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/continuously-optimization-35364f4d2c0b81fc.yaml +0 -0
  319. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/cron-based-continuous-audits-c3eedf28d9752b37.yaml +0 -0
  320. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/datasource-query-retry-00cba5f7e68aec39.yaml +0 -0
  321. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/db-migration-e1a705a8b54ccdd2.yaml +0 -0
  322. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/decision-engine-threading-mode-26fc8066dcd499a2.yaml +0 -0
  323. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/define-the-audit-scope-e89edc5051dcf3f2.yaml +0 -0
  324. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/deprecate-ceilometer-datasource-446b0be70fbce28b.yaml +0 -0
  325. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/deprecate-json-formatted-policy-file-3a92379e9f5dd203.yaml +0 -0
  326. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/deprecate-monasca-ds-9065f4d4bee09ab2.yaml +0 -0
  327. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/deprecate-noisy-neighbor-strat-7da910837ae8fa80.yaml +0 -0
  328. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/donot-run-host-migration-strategy-on-disabled-hosts-24084a22d4c8f914.yaml +0 -0
  329. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/drop-operation-not-permitted-exception-14e49b35a3ca00d1.yaml +0 -0
  330. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/drop-patch-delete-post-action-api-37fe4ce5be6500db.yaml +0 -0
  331. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/drop-py-2-7-54f8e806d71f19a7.yaml +0 -0
  332. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/drop-py39-8a9c99678b3e8eeb.yaml +0 -0
  333. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/drop-python-dateutil-dependency-2118404-f5a8b2c1e9d4a6b3.yaml +0 -0
  334. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/drop-python38-support-eeb19a0bc0160sw1.yaml +0 -0
  335. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/dynamic-action-description-0e947b9e7ef2a134.yaml +0 -0
  336. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/efficacy-indicator-95380ad7b84e3be2.yaml +0 -0
  337. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/enhance-watcher-applier-engine-86c676ce8f179e68.yaml +0 -0
  338. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/event-driven-optimization-based-4870f112bef8a560.yaml +0 -0
  339. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/experimental-integrations-490d4cc32444288d.yaml +0 -0
  340. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/file-based-metric-map-c2af62b5067895df.yaml +0 -0
  341. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/fix-action-plan-state-on-failure-69e498d902ada5c5.yaml +0 -0
  342. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/formal-datasource-interface-implementation-222769d55a127d33.yaml +0 -0
  343. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/general-purpose-decision-engine-threadpool-0711b23abfc9d409.yaml +0 -0
  344. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/get-goal-from-strategy-396c9b13a38bb650.yaml +0 -0
  345. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/global-datasource-preference-3ab47b4be09ff3a5.yaml +0 -0
  346. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/gnocchi-watcher-43c25d391fbd3e9c.yaml +0 -0
  347. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/grafana-datasource-b672367c23ffa0c6.yaml +0 -0
  348. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/graph-based-cluster-model-523937a6f5e66537.yaml +0 -0
  349. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/host-maintenance-strategy-41f640927948fb56.yaml +0 -0
  350. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/host-maintenance-strategy-disable-migration-options-a2b72e32736e5446.yaml +0 -0
  351. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/improve-compute-data-model-b427c85e4ed2b6fb.yaml +0 -0
  352. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/jsonschema-validation-79cab05d5295da00.yaml +0 -0
  353. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/make-monasca-client-optional-7e1a96b2ac902867.yaml +0 -0
  354. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/min-required-nova-train-71f124192d88ae52.yaml +0 -0
  355. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/monasca-support-0b0486b8572ac38b.yaml +0 -0
  356. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/multiple-global-efficacy-indicator-fc11c4844a12a7d5.yaml +0 -0
  357. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/node-resource-consolidation-73bc0c0abfeb0b03.yaml +0 -0
  358. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/noisy-neighbor-strategy-a71342740b59dddc.yaml +0 -0
  359. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/notifications-actionplan-cancel-edb2a4a12543e2d0.yaml +0 -0
  360. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/optimization-threshold-21ad38f0470d0e1a.yaml +0 -0
  361. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/persistent-audit-parameters-ae41dd7252ba9672.yaml +0 -0
  362. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/planner-storage-action-plan-26ef37893c5e8648.yaml +0 -0
  363. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/prometheus-datasource-e56f2f7b8f3427c2.yaml +0 -0
  364. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/query-interval-not-query-timeout-ecb6f2c6b1a647e9.yaml +0 -0
  365. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/remove-ceilometer-datasource-8d9ab7d64d61e405.yaml +0 -0
  366. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/remove-nova-legacy-notifications-e1b6d10eff58f30a.yaml +0 -0
  367. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/replace-cold-migrate-to-use-nova-migration-api-cecd9a39ddd3bc58.yaml +0 -0
  368. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/return-error-400-on-bad-parameters-bb964e4f5cadc15c.yaml +0 -0
  369. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/scope-for-data-model-ea9792f90db14343.yaml +0 -0
  370. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/service-versioned-notifications-api-70367b79a565d900.yaml +0 -0
  371. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/show-datamodel-api-6945b744fd5d25d5.yaml +0 -0
  372. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/stale-action-plan-b6a6b08df873c128.yaml +0 -0
  373. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/standard-deviation-strategy-cd1d0c443fdfde9c.yaml +0 -0
  374. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/storage-workload-balance-0ecabbc1791e6894.yaml +0 -0
  375. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/storage_model_enabled_default-48c197f5a540956c.yaml +0 -0
  376. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/support-keystoneclient-option-b30d1ff45f86a2e7.yaml +0 -0
  377. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/support-placement-api-58ce6bef1bbbe98a.yaml +0 -0
  378. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/suspended-audit-state-07f998c94e9d9a47.yaml +0 -0
  379. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/uniform-airflow-strategy-68cdba1419c3f770.yaml +0 -0
  380. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/update-notification-topics-daf6303a63963ee9.yaml +0 -0
  381. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/uwsgi-support-8dcea6961e56dad0.yaml +0 -0
  382. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/volume-migrate-action-fc57b0ce0e4c39ae.yaml +0 -0
  383. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/watcher-notifications-ovo-7b44d52ef6400dd0.yaml +0 -0
  384. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/watcher-planner-selector-84d77549d46f362a.yaml +0 -0
  385. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/watcher-policies-1e86a30f0f11c6fa.yaml +0 -0
  386. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/watcher-service-list-7b2f4b64f71e9b89.yaml +0 -0
  387. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/watcher-versioned-objects-fc5abf5c81c4590c.yaml +0 -0
  388. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/wokload-stablization-strategy-name-9988e554ac2655a2.yaml +0 -0
  389. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/workload-balance-base-on-cpu-or-ram-util-3ff4ee968c32b2ed.yaml +0 -0
  390. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/workload-balance-migration-strategy-a0b05148a57815c0.yaml +0 -0
  391. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/zone-migration-missing-dst-node-bd0377af1f1ed245.yaml +0 -0
  392. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/notes/zone-migration-strategy-10f7656a2a01e607.yaml +0 -0
  393. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/2023.1.rst +0 -0
  394. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/2023.2.rst +0 -0
  395. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/2024.1.rst +0 -0
  396. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/2024.2.rst +0 -0
  397. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/2025.1.rst +0 -0
  398. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/_static/.placeholder +0 -0
  399. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/conf.py +0 -0
  400. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/index.rst +0 -0
  401. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po +0 -0
  402. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po +0 -0
  403. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/newton.rst +0 -0
  404. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/ocata.rst +0 -0
  405. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/pike.rst +0 -0
  406. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/queens.rst +0 -0
  407. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/rocky.rst +0 -0
  408. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/stein.rst +0 -0
  409. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/train.rst +0 -0
  410. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/unreleased.rst +0 -0
  411. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/ussuri.rst +0 -0
  412. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/victoria.rst +0 -0
  413. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/wallaby.rst +0 -0
  414. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/xena.rst +0 -0
  415. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/yoga.rst +0 -0
  416. {python_watcher-15.0.0 → python_watcher-15.1.0}/releasenotes/source/zed.rst +0 -0
  417. {python_watcher-15.0.0 → python_watcher-15.1.0}/setup.cfg +0 -0
  418. {python_watcher-15.0.0 → python_watcher-15.1.0}/setup.py +0 -0
  419. {python_watcher-15.0.0 → python_watcher-15.1.0}/test-requirements.txt +0 -0
  420. {python_watcher-15.0.0 → python_watcher-15.1.0}/tools/test-setup.sh +0 -0
  421. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/__init__.py +0 -0
  422. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/_i18n.py +0 -0
  423. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/__init__.py +0 -0
  424. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/acl.py +0 -0
  425. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/app.py +0 -0
  426. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/app.wsgi +0 -0
  427. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/config.py +0 -0
  428. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/__init__.py +0 -0
  429. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/base.py +0 -0
  430. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/link.py +0 -0
  431. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/root.py +0 -0
  432. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/__init__.py +0 -0
  433. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/action.py +0 -0
  434. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/action_plan.py +0 -0
  435. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/audit.py +0 -0
  436. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/audit_template.py +0 -0
  437. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/collection.py +0 -0
  438. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/data_model.py +0 -0
  439. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/efficacy_indicator.py +0 -0
  440. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/goal.py +0 -0
  441. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/scoring_engine.py +0 -0
  442. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/service.py +0 -0
  443. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/strategy.py +0 -0
  444. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/types.py +0 -0
  445. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/utils.py +0 -0
  446. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/versions.py +0 -0
  447. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/controllers/v1/webhooks.py +0 -0
  448. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/hooks.py +0 -0
  449. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/middleware/__init__.py +0 -0
  450. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/middleware/auth_token.py +0 -0
  451. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/middleware/parsable_error.py +0 -0
  452. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/scheduling.py +0 -0
  453. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/api/wsgi.py +0 -0
  454. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/__init__.py +0 -0
  455. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/action_plan/__init__.py +0 -0
  456. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/action_plan/base.py +0 -0
  457. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/action_plan/default.py +0 -0
  458. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/__init__.py +0 -0
  459. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/base.py +0 -0
  460. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/change_node_power_state.py +0 -0
  461. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/change_nova_service_state.py +0 -0
  462. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/factory.py +0 -0
  463. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/migration.py +0 -0
  464. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/nop.py +0 -0
  465. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/resize.py +0 -0
  466. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/sleep.py +0 -0
  467. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/stop.py +0 -0
  468. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/actions/volume_migration.py +0 -0
  469. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/base.py +0 -0
  470. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/default.py +0 -0
  471. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/loading/__init__.py +0 -0
  472. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/loading/default.py +0 -0
  473. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/manager.py +0 -0
  474. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/messaging/__init__.py +0 -0
  475. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/messaging/trigger.py +0 -0
  476. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/rpcapi.py +0 -0
  477. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/sync.py +0 -0
  478. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/workflow_engine/__init__.py +0 -0
  479. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/workflow_engine/base.py +0 -0
  480. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/applier/workflow_engine/default.py +0 -0
  481. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/cmd/__init__.py +0 -0
  482. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/cmd/dbmanage.py +0 -0
  483. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/cmd/eventlet/__init__.py +0 -0
  484. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/cmd/eventlet/api.py +0 -0
  485. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/cmd/eventlet/applier.py +0 -0
  486. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/cmd/eventlet/decisionengine.py +0 -0
  487. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/cmd/status.py +0 -0
  488. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/cmd/sync.py +0 -0
  489. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/__init__.py +0 -0
  490. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/cinder_helper.py +0 -0
  491. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/clients.py +0 -0
  492. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/config.py +0 -0
  493. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/context.py +0 -0
  494. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/exception.py +0 -0
  495. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/executor.py +0 -0
  496. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/ironic_helper.py +0 -0
  497. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/keystone_helper.py +0 -0
  498. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/loader/__init__.py +0 -0
  499. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/loader/base.py +0 -0
  500. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/loader/default.py +0 -0
  501. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/loader/loadable.py +0 -0
  502. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/metal_helper/__init__.py +0 -0
  503. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/metal_helper/base.py +0 -0
  504. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/metal_helper/constants.py +0 -0
  505. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/metal_helper/factory.py +0 -0
  506. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/metal_helper/ironic.py +0 -0
  507. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/metal_helper/maas.py +0 -0
  508. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/oslo_service_helper.py +0 -0
  509. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/paths.py +0 -0
  510. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/placement_helper.py +0 -0
  511. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/__init__.py +0 -0
  512. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/action.py +0 -0
  513. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/action_plan.py +0 -0
  514. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/audit.py +0 -0
  515. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/audit_template.py +0 -0
  516. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/base.py +0 -0
  517. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/data_model.py +0 -0
  518. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/goal.py +0 -0
  519. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/scoring_engine.py +0 -0
  520. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/service.py +0 -0
  521. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policies/strategy.py +0 -0
  522. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/policy.py +0 -0
  523. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/rpc.py +0 -0
  524. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/scheduling.py +0 -0
  525. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/service.py +0 -0
  526. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/service_manager.py +0 -0
  527. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/common/utils.py +0 -0
  528. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/aetos_client.py +0 -0
  529. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/api.py +0 -0
  530. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/applier.py +0 -0
  531. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/cinder_client.py +0 -0
  532. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/clients_auth.py +0 -0
  533. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/collector.py +0 -0
  534. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/datasources.py +0 -0
  535. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/db.py +0 -0
  536. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/decision_engine.py +0 -0
  537. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/exception.py +0 -0
  538. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/glance_client.py +0 -0
  539. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/gnocchi_client.py +0 -0
  540. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/grafana_client.py +0 -0
  541. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/grafana_translators.py +0 -0
  542. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/ironic_client.py +0 -0
  543. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/keystone_client.py +0 -0
  544. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/maas_client.py +0 -0
  545. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/models.py +0 -0
  546. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/monasca_client.py +0 -0
  547. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/neutron_client.py +0 -0
  548. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/nova_client.py +0 -0
  549. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/opts.py +0 -0
  550. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/paths.py +0 -0
  551. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/placement_client.py +0 -0
  552. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/planner.py +0 -0
  553. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/plugins.py +0 -0
  554. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/prometheus_client.py +0 -0
  555. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/conf/service.py +0 -0
  556. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/__init__.py +0 -0
  557. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/api.py +0 -0
  558. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/migration.py +0 -0
  559. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/purge.py +0 -0
  560. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/__init__.py +0 -0
  561. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/README.rst +0 -0
  562. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/env.py +0 -0
  563. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/script.py.mako +0 -0
  564. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/001_ocata.py +0 -0
  565. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/0f6042416884_add_apscheduler_jobs.py +0 -0
  566. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/15f7375ca737_change_efficiacy_indicator_decimals.py +0 -0
  567. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/3cfc94cecf4e_add_name_for_audit.py +0 -0
  568. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/4b16194c56bc_add_start_end_time.py +0 -0
  569. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/52804f2498c4_add_hostname.py +0 -0
  570. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/609bec748f2a_add_force_field.py +0 -0
  571. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/7150a7d8f228_add_status_message_to_actionplan.py +0 -0
  572. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/a86240e89a29_.py +0 -0
  573. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/d098df6021e2_cron_support_for_audit.py +0 -0
  574. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic/versions/d09a5945e4a0_add_action_description_table.py +0 -0
  575. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/alembic.ini +0 -0
  576. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/api.py +0 -0
  577. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/job_store.py +0 -0
  578. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/migration.py +0 -0
  579. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/db/sqlalchemy/models.py +0 -0
  580. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/__init__.py +0 -0
  581. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/audit/__init__.py +0 -0
  582. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/audit/base.py +0 -0
  583. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/audit/continuous.py +0 -0
  584. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/audit/event.py +0 -0
  585. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/audit/oneshot.py +0 -0
  586. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/__init__.py +0 -0
  587. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/aetos.py +0 -0
  588. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/base.py +0 -0
  589. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/gnocchi.py +0 -0
  590. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/grafana.py +0 -0
  591. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/grafana_translator/__init__.py +0 -0
  592. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/grafana_translator/base.py +0 -0
  593. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/grafana_translator/influxdb.py +0 -0
  594. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/manager.py +0 -0
  595. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/monasca.py +0 -0
  596. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/prometheus.py +0 -0
  597. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/datasources/prometheus_base.py +0 -0
  598. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/gmr.py +0 -0
  599. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/goal/__init__.py +0 -0
  600. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/goal/base.py +0 -0
  601. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/goal/efficacy/__init__.py +0 -0
  602. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/goal/efficacy/base.py +0 -0
  603. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/goal/efficacy/indicators.py +0 -0
  604. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/goal/efficacy/specs.py +0 -0
  605. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/goal/goals.py +0 -0
  606. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/loading/__init__.py +0 -0
  607. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/loading/default.py +0 -0
  608. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/manager.py +0 -0
  609. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/messaging/__init__.py +0 -0
  610. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/messaging/audit_endpoint.py +0 -0
  611. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/messaging/data_model_endpoint.py +0 -0
  612. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/__init__.py +0 -0
  613. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/base.py +0 -0
  614. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/collector/__init__.py +0 -0
  615. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/collector/base.py +0 -0
  616. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/collector/cinder.py +0 -0
  617. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/collector/ironic.py +0 -0
  618. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/collector/manager.py +0 -0
  619. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/collector/nova.py +0 -0
  620. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/element/__init__.py +0 -0
  621. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/element/baremetal_resource.py +0 -0
  622. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/element/base.py +0 -0
  623. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/element/compute_resource.py +0 -0
  624. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/element/instance.py +0 -0
  625. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/element/node.py +0 -0
  626. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/element/storage_resource.py +0 -0
  627. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/element/volume.py +0 -0
  628. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/model_root.py +0 -0
  629. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/notification/__init__.py +0 -0
  630. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/notification/base.py +0 -0
  631. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/model/notification/filtering.py +0 -0
  632. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/planner/__init__.py +0 -0
  633. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/planner/base.py +0 -0
  634. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/planner/manager.py +0 -0
  635. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/planner/node_resource_consolidation.py +0 -0
  636. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/planner/weight.py +0 -0
  637. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/planner/workload_stabilization.py +0 -0
  638. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/rpcapi.py +0 -0
  639. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scheduling.py +0 -0
  640. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scope/__init__.py +0 -0
  641. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scope/baremetal.py +0 -0
  642. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scope/base.py +0 -0
  643. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scope/compute.py +0 -0
  644. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scope/storage.py +0 -0
  645. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scoring/__init__.py +0 -0
  646. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scoring/base.py +0 -0
  647. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scoring/dummy_scorer.py +0 -0
  648. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scoring/dummy_scoring_container.py +0 -0
  649. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/scoring/scoring_factory.py +0 -0
  650. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/service.py +0 -0
  651. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/solution/__init__.py +0 -0
  652. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/solution/base.py +0 -0
  653. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/solution/default.py +0 -0
  654. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/solution/efficacy.py +0 -0
  655. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/solution/solution_comparator.py +0 -0
  656. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/solution/solution_evaluator.py +0 -0
  657. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/__init__.py +0 -0
  658. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/common/__init__.py +0 -0
  659. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/common/level.py +0 -0
  660. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/context/__init__.py +0 -0
  661. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/context/base.py +0 -0
  662. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/context/default.py +0 -0
  663. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/selection/__init__.py +0 -0
  664. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/selection/base.py +0 -0
  665. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/selection/default.py +0 -0
  666. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/__init__.py +0 -0
  667. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/actuation.py +0 -0
  668. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/base.py +0 -0
  669. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/basic_consolidation.py +0 -0
  670. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/dummy_strategy.py +0 -0
  671. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/dummy_with_resize.py +0 -0
  672. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/dummy_with_scorer.py +0 -0
  673. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/host_maintenance.py +0 -0
  674. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/node_resource_consolidation.py +0 -0
  675. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/noisy_neighbor.py +0 -0
  676. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/outlet_temp_control.py +0 -0
  677. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/saving_energy.py +0 -0
  678. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/storage_capacity_balance.py +0 -0
  679. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/uniform_airflow.py +0 -0
  680. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/vm_workload_consolidation.py +0 -0
  681. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/workload_balance.py +0 -0
  682. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/strategy/strategies/workload_stabilization.py +0 -0
  683. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/sync.py +0 -0
  684. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/decision_engine/threading.py +0 -0
  685. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/eventlet.py +0 -0
  686. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/hacking/__init__.py +0 -0
  687. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/hacking/checks.py +0 -0
  688. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/locale/de/LC_MESSAGES/watcher.po +0 -0
  689. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/locale/en_GB/LC_MESSAGES/watcher.po +0 -0
  690. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/__init__.py +0 -0
  691. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/action.py +0 -0
  692. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/action_plan.py +0 -0
  693. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/audit.py +0 -0
  694. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/base.py +0 -0
  695. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/exception.py +0 -0
  696. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/goal.py +0 -0
  697. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/service.py +0 -0
  698. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/notifications/strategy.py +0 -0
  699. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/__init__.py +0 -0
  700. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/action.py +0 -0
  701. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/action_description.py +0 -0
  702. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/action_plan.py +0 -0
  703. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/audit.py +0 -0
  704. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/audit_template.py +0 -0
  705. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/base.py +0 -0
  706. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/efficacy_indicator.py +0 -0
  707. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/fields.py +0 -0
  708. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/goal.py +0 -0
  709. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/scoring_engine.py +0 -0
  710. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/service.py +0 -0
  711. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/objects/strategy.py +0 -0
  712. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/__init__.py +0 -0
  713. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/__init__.py +0 -0
  714. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/base.py +0 -0
  715. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/test_base.py +0 -0
  716. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/test_config.py +0 -0
  717. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/test_hooks.py +0 -0
  718. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/test_root.py +0 -0
  719. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/test_scheduling.py +0 -0
  720. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/test_utils.py +0 -0
  721. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/utils.py +0 -0
  722. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/__init__.py +0 -0
  723. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_actions.py +0 -0
  724. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_actions_plans.py +0 -0
  725. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_audit_templates.py +0 -0
  726. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_data_model.py +0 -0
  727. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_goals.py +0 -0
  728. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_microversions.py +0 -0
  729. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_root.py +0 -0
  730. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_scoring_engines.py +0 -0
  731. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_services.py +0 -0
  732. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_strategies.py +0 -0
  733. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_types.py +0 -0
  734. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_utils.py +0 -0
  735. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/api/v1/test_webhooks.py +0 -0
  736. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/__init__.py +0 -0
  737. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/action_plan/__init__.py +0 -0
  738. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/action_plan/test_default_action_handler.py +0 -0
  739. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/__init__.py +0 -0
  740. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/loading/__init__.py +0 -0
  741. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/loading/test_default_actions_loader.py +0 -0
  742. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/test_change_node_power_state.py +0 -0
  743. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/test_change_nova_service_state.py +0 -0
  744. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/test_migration.py +0 -0
  745. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/test_resize.py +0 -0
  746. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/test_sleep.py +0 -0
  747. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/test_stop.py +0 -0
  748. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/actions/test_volume_migration.py +0 -0
  749. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/messaging/__init__.py +0 -0
  750. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/messaging/test_trigger_action_plan_endpoint.py +0 -0
  751. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/test_applier_manager.py +0 -0
  752. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/test_rpcapi.py +0 -0
  753. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/test_sync.py +0 -0
  754. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/workflow_engine/__init__.py +0 -0
  755. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/workflow_engine/loading/__init__.py +0 -0
  756. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/workflow_engine/loading/test_default_engine_loader.py +0 -0
  757. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/workflow_engine/test_default_workflow_engine.py +0 -0
  758. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/applier/workflow_engine/test_taskflow_action_container.py +0 -0
  759. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/cmd/__init__.py +0 -0
  760. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/cmd/test_api.py +0 -0
  761. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/cmd/test_applier.py +0 -0
  762. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/cmd/test_db_manage.py +0 -0
  763. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/cmd/test_decision_engine.py +0 -0
  764. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/cmd/test_status.py +0 -0
  765. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/__init__.py +0 -0
  766. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/loader/__init__.py +0 -0
  767. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/loader/test_loader.py +0 -0
  768. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/metal_helper/__init__.py +0 -0
  769. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/metal_helper/test_base.py +0 -0
  770. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/metal_helper/test_factory.py +0 -0
  771. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/metal_helper/test_ironic.py +0 -0
  772. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/metal_helper/test_maas.py +0 -0
  773. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_cinder_helper.py +0 -0
  774. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_clients.py +0 -0
  775. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_executor.py +0 -0
  776. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_ironic_helper.py +0 -0
  777. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_keystone_helper.py +0 -0
  778. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_oslo_service_helper.py +0 -0
  779. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_placement_helper.py +0 -0
  780. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_scheduling.py +0 -0
  781. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_service.py +0 -0
  782. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/common/test_utils.py +0 -0
  783. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/conf/__init__.py +0 -0
  784. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/conf/test_list_opts.py +0 -0
  785. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/conf_fixture.py +0 -0
  786. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/config.py +0 -0
  787. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/__init__.py +0 -0
  788. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/base.py +0 -0
  789. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_action.py +0 -0
  790. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_action_description.py +0 -0
  791. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_action_plan.py +0 -0
  792. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_audit.py +0 -0
  793. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_audit_template.py +0 -0
  794. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_efficacy_indicator.py +0 -0
  795. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_goal.py +0 -0
  796. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_migrations.py +0 -0
  797. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_purge.py +0 -0
  798. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_scoring_engine.py +0 -0
  799. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_service.py +0 -0
  800. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/test_strategy.py +0 -0
  801. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/db/utils.py +0 -0
  802. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/__init__.py +0 -0
  803. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/audit/__init__.py +0 -0
  804. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/audit/test_audit_handlers.py +0 -0
  805. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/cluster/__init__.py +0 -0
  806. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/cluster/test_cinder_cdmc.py +0 -0
  807. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/cluster/test_cluster_data_model_collector.py +0 -0
  808. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/cluster/test_nova_cdmc.py +0 -0
  809. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/__init__.py +0 -0
  810. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/grafana_translators/__init__.py +0 -0
  811. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/grafana_translators/test_base.py +0 -0
  812. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/grafana_translators/test_influxdb.py +0 -0
  813. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/test_aetos_helper.py +0 -0
  814. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/test_base.py +0 -0
  815. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/test_gnocchi_helper.py +0 -0
  816. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/test_grafana_helper.py +0 -0
  817. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/test_manager.py +0 -0
  818. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/test_monasca_helper.py +0 -0
  819. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/test_prometheus_base.py +0 -0
  820. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/datasources/test_prometheus_helper.py +0 -0
  821. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/event_consumer/__init__.py +0 -0
  822. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/fake_goals.py +0 -0
  823. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/fake_metal_helper.py +0 -0
  824. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/fake_strategies.py +0 -0
  825. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/loading/__init__.py +0 -0
  826. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/loading/test_collector_loader.py +0 -0
  827. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/loading/test_default_planner_loader.py +0 -0
  828. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/loading/test_default_strategy_loader.py +0 -0
  829. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/loading/test_goal_loader.py +0 -0
  830. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/messaging/__init__.py +0 -0
  831. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/messaging/test_audit_endpoint.py +0 -0
  832. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/messaging/test_data_model_endpoint.py +0 -0
  833. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/__init__.py +0 -0
  834. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/ironic_scenario_1.xml +0 -0
  835. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_1.xml +0 -0
  836. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_10.xml +0 -0
  837. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_11_with_1_node_no_instance.xml +0 -0
  838. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_11_with_2_nodes_2_instances.xml +0 -0
  839. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_1_with_1_node_unavailable.xml +0 -0
  840. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_1_with_all_instances_exclude.xml +0 -0
  841. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_1_with_all_nodes_disable.xml +0 -0
  842. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_1_with_metrics.xml +0 -0
  843. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_2_with_metrics.xml +0 -0
  844. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_3_with_2_nodes.xml +0 -0
  845. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_3_with_metrics.xml +0 -0
  846. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_4_with_1_node_no_instance.xml +0 -0
  847. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_5_with_instance_disk_0.xml +0 -0
  848. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_6_with_2_nodes.xml +0 -0
  849. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_7_with_2_nodes.xml +0 -0
  850. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_8_with_4_nodes.xml +0 -0
  851. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/scenario_9_with_3_active_plus_1_disabled_nodes.xml +0 -0
  852. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/data/storage_scenario_1.xml +0 -0
  853. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/faker_cluster_and_metrics.py +0 -0
  854. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/gnocchi_metrics.py +0 -0
  855. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/monasca_metrics.py +0 -0
  856. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/__init__.py +0 -0
  857. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/capacity.json +0 -0
  858. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-create-end.json +0 -0
  859. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-delete-end.json +0 -0
  860. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-live_migration_force_complete-end.json +0 -0
  861. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-lock.json +0 -0
  862. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-pause-end.json +0 -0
  863. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-power_off-end.json +0 -0
  864. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-power_on-end.json +0 -0
  865. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-rebuild-end.json +0 -0
  866. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-rescue-end.json +0 -0
  867. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-resize_confirm-end.json +0 -0
  868. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-restore-end.json +0 -0
  869. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-resume-end.json +0 -0
  870. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-shelve-end.json +0 -0
  871. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-shutdown-end.json +0 -0
  872. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-soft_delete-end.json +0 -0
  873. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-suspend-end.json +0 -0
  874. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-unlock.json +0 -0
  875. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-unpause-end.json +0 -0
  876. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-unrescue-end.json +0 -0
  877. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-unshelve-end.json +0 -0
  878. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-update-2-1.json +0 -0
  879. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/instance-update.json +0 -0
  880. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario3_instance-update.json +0 -0
  881. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario3_notfound_instance-update.json +0 -0
  882. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario3_notfound_legacy_instance-update.json +0 -0
  883. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario3_service-update-disabled.json +0 -0
  884. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario3_service-update-enabled.json +0 -0
  885. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_bootable-volume-create.json +0 -0
  886. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_capacity.json +0 -0
  887. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_capacity_node_notfound.json +0 -0
  888. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_capacity_pool_notfound.json +0 -0
  889. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_error-volume-create.json +0 -0
  890. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_volume-attach.json +0 -0
  891. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_volume-create.json +0 -0
  892. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_volume-create_pool_notfound.json +0 -0
  893. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_volume-delete.json +0 -0
  894. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_volume-detach.json +0 -0
  895. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_volume-resize.json +0 -0
  896. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/scenario_1_volume-update.json +0 -0
  897. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/service-create.json +0 -0
  898. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/service-delete.json +0 -0
  899. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/data/service-update.json +0 -0
  900. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/fake_managers.py +0 -0
  901. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/notification/test_notifications.py +0 -0
  902. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/test_element.py +0 -0
  903. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/model/test_model.py +0 -0
  904. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/planner/__init__.py +0 -0
  905. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/planner/test_node_resource_consolidation.py +0 -0
  906. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/planner/test_planner_manager.py +0 -0
  907. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/planner/test_weight_planner.py +0 -0
  908. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/planner/test_workload_stabilization_planner.py +0 -0
  909. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scope/__init__.py +0 -0
  910. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scope/fake_scopes.py +0 -0
  911. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scope/test_baremetal.py +0 -0
  912. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scope/test_compute.py +0 -0
  913. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scope/test_storage.py +0 -0
  914. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scoring/__init__.py +0 -0
  915. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scoring/test_dummy_scorer.py +0 -0
  916. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scoring/test_dummy_scoring_container.py +0 -0
  917. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/scoring/test_scoring_factory.py +0 -0
  918. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/solution/__init__.py +0 -0
  919. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/solution/test_default_solution.py +0 -0
  920. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/__init__.py +0 -0
  921. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/context/__init__.py +0 -0
  922. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/context/test_strategy_context.py +0 -0
  923. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/selector/__init__.py +0 -0
  924. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/selector/test_strategy_selector.py +0 -0
  925. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/__init__.py +0 -0
  926. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_actuator.py +0 -0
  927. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_base.py +0 -0
  928. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_basic_consolidation.py +0 -0
  929. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_dummy_strategy.py +0 -0
  930. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_dummy_with_scorer.py +0 -0
  931. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_host_maintenance.py +0 -0
  932. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_node_resource_consolidation.py +0 -0
  933. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_noisy_neighbor.py +0 -0
  934. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_outlet_temp_control.py +0 -0
  935. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_saving_energy.py +0 -0
  936. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_storage_capacity_balance.py +0 -0
  937. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_strategy_endpoint.py +0 -0
  938. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_uniform_airflow.py +0 -0
  939. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_vm_workload_consolidation.py +0 -0
  940. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_workload_balance.py +0 -0
  941. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/strategy/strategies/test_workload_stabilization.py +0 -0
  942. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/test_gmr.py +0 -0
  943. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/test_rpcapi.py +0 -0
  944. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/test_scheduling.py +0 -0
  945. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/test_service.py +0 -0
  946. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/decision_engine/test_sync.py +0 -0
  947. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/fake_policy.py +0 -0
  948. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/fakes.py +0 -0
  949. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/fixtures/__init__.py +0 -0
  950. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/fixtures/watcher.py +0 -0
  951. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/notifications/__init__.py +0 -0
  952. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/notifications/test_action_notification.py +0 -0
  953. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/notifications/test_action_plan_notification.py +0 -0
  954. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/notifications/test_audit_notification.py +0 -0
  955. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/notifications/test_notification.py +0 -0
  956. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/notifications/test_service_notifications.py +0 -0
  957. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/__init__.py +0 -0
  958. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_action.py +0 -0
  959. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_action_description.py +0 -0
  960. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_action_plan.py +0 -0
  961. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_audit.py +0 -0
  962. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_audit_template.py +0 -0
  963. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_efficacy_indicator.py +0 -0
  964. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_goal.py +0 -0
  965. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_objects.py +0 -0
  966. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_scoring_engine.py +0 -0
  967. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_service.py +0 -0
  968. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/test_strategy.py +0 -0
  969. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/objects/utils.py +0 -0
  970. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/policy_fixture.py +0 -0
  971. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/tests/test_threading.py +0 -0
  972. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/version.py +0 -0
  973. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/wsgi/__init__.py +0 -0
  974. {python_watcher-15.0.0 → python_watcher-15.1.0}/watcher/wsgi/api.py +0 -0
@@ -1,140 +1,65 @@
1
- - job:
2
- name: watcher-tempest-actuator
3
- parent: watcher-tempest-multinode
4
- vars:
5
- tempest_test_regex: watcher_tempest_plugin.tests.scenario.test_execute_actuator
1
+ - nodeset:
2
+ name: openstack-three-node-noble
3
+ nodes:
4
+ - name: controller
5
+ label: ubuntu-noble
6
+ - name: compute1
7
+ label: ubuntu-noble
8
+ - name: compute2
9
+ label: ubuntu-noble
10
+ groups:
11
+ # Node where tests are executed and test results collected
12
+ - name: tempest
13
+ nodes:
14
+ - controller
15
+ # Nodes running the compute service
16
+ - name: compute
17
+ nodes:
18
+ - controller
19
+ - compute1
20
+ - compute2
21
+ # Nodes that are not the controller
22
+ - name: subnode
23
+ nodes:
24
+ - compute1
25
+ - compute2
26
+ # Switch node for multinode networking setup
27
+ - name: switch
28
+ nodes:
29
+ - controller
30
+ # Peer nodes for multinode networking setup
31
+ - name: peers
32
+ nodes:
33
+ - compute1
34
+ - compute2
6
35
 
7
36
  - job:
8
- name: watcher-tempest-strategies
9
- parent: watcher-tempest-multinode
10
- vars:
11
- tempest_concurrency: 1
12
- # All tests inside watcher_tempest_plugin.tests.scenario with tag "strategy"
13
- # or test_execute_strategies file
14
- # excluding tests with tag "real_load"
15
- tempest_test_regex: (^watcher_tempest_plugin.tests.scenario)(.*\[.*\bstrategy\b.*\].*)|(^watcher_tempest_plugin.tests.scenario.test_execute_strategies)
16
- tempest_exclude_regex: .*\[.*\breal_load\b.*\].*
17
-
18
- - job:
19
- name: watcher-tempest-multinode
20
- parent: watcher-tempest-functional
21
- nodeset: openstack-two-node-noble
22
- roles:
23
- - zuul: openstack/tempest
24
- group-vars:
25
- subnode:
26
- devstack_local_conf:
27
- post-config:
28
- $WATCHER_CONF:
29
- watcher_cluster_data_model_collectors.compute:
30
- period: 120
31
- watcher_cluster_data_model_collectors.baremetal:
32
- period: 120
33
- watcher_cluster_data_model_collectors.storage:
34
- period: 120
35
- $CINDER_CONF:
36
- # enable notifications in compute node, by default they are only
37
- # configured in the controller
38
- oslo_messaging_notifications:
39
- driver: messagingv2
40
- devstack_services:
41
- watcher-api: false
42
- watcher-decision-engine: true
43
- watcher-applier: false
44
- c-bak: false
45
- ceilometer: false
46
- ceilometer-acompute: false
47
- ceilometer-acentral: false
48
- ceilometer-anotification: false
49
- watcher: false
50
- gnocchi-api: false
51
- gnocchi-metricd: false
52
- rabbit: false
53
- mysql: false
37
+ name: watcher-tempest-gnocchi
38
+ parent: watcher-tempest-base-two-node
39
+ description: |
40
+ Watcher multinode devstack tempest job with Gnocchi as datasource. This
41
+ job uses fake metrics injection and does not requires ceilometer-acompute
42
+ to be enabled.
54
43
  vars:
55
44
  devstack_localrc:
56
45
  GNOCCHI_ARCHIVE_POLICY_TEMPEST: "ceilometer-low-rate"
57
46
  CEILOMETER_PIPELINE_INTERVAL: 15
58
- devstack_services:
59
- ceilometer-acompute: false
60
- ceilometer-acentral: true
61
- ceilometer-anotification: true
62
- devstack_local_conf:
63
- post-config:
64
- $WATCHER_CONF:
65
- watcher_cluster_data_model_collectors.compute:
66
- period: 120
67
- watcher_cluster_data_model_collectors.baremetal:
68
- period: 120
69
- watcher_cluster_data_model_collectors.storage:
70
- period: 120
71
- $CINDER_CONF:
72
- # enable notifications in compute node, by default they are only
73
- # configured in the controller
74
- oslo_messaging_notifications:
75
- driver: messagingv2
76
- test-config:
77
- $TEMPEST_CONFIG:
78
- compute:
79
- min_compute_nodes: 2
80
- min_microversion: 2.56
81
- compute-feature-enabled:
82
- live_migration: true
83
- block_migration_for_live_migration: true
84
- placement:
85
- min_microversion: 1.29
86
- telemetry:
87
- ceilometer_polling_interval: 15
88
- devstack_plugins:
89
- ceilometer: https://opendev.org/openstack/ceilometer
90
47
 
91
48
  - job:
92
- name: watcher-tempest-functional
49
+ name: watcher-tempest-base
93
50
  parent: devstack-tempest
51
+ description: |
52
+ Watcher single node devstack tempest base job template.
53
+ abstract: true
94
54
  timeout: 7200
95
- required-projects: &base_required_projects
55
+ required-projects: &tempest_base_required_projects
96
56
  - openstack/ceilometer
97
57
  - openstack/python-openstackclient
98
58
  - openstack/python-watcherclient
99
59
  - openstack/watcher
100
60
  - openstack/watcher-tempest-plugin
101
61
  - openstack/tempest
102
- vars: &base_vars
103
- devstack_plugins:
104
- watcher: https://opendev.org/openstack/watcher
105
- devstack_services:
106
- watcher-api: true
107
- watcher-decision-engine: true
108
- watcher-applier: true
109
- tempest: true
110
- s-account: false
111
- s-container: false
112
- s-object: false
113
- s-proxy: false
114
- tempest_plugins:
115
- - watcher-tempest-plugin
116
- tempest_test_regex: watcher_tempest_plugin.tests.api
117
- tox_envlist: all
118
- zuul_copy_output:
119
- /etc/hosts: logs
120
-
121
- - job:
122
- name: watcher-tempest-functional-ipv6-only
123
- parent: devstack-tempest-ipv6
124
- description: |
125
- Watcher devstack tempest tests job for IPv6-only deployment
126
- required-projects: *base_required_projects
127
- vars: *base_vars
128
-
129
- - job:
130
- name: watcher-grenade
131
- parent: grenade
132
- required-projects:
133
- - openstack/watcher
134
- - openstack/python-watcherclient
135
- - openstack/watcher-tempest-plugin
136
- vars: *base_vars
137
- irrelevant-files: &irrelevent_files
62
+ irrelevant-files: &irrelevant_files
138
63
  - ^(test-|)requirements.txt$
139
64
  - ^.*\.rst$
140
65
  - ^api-ref/.*$
@@ -145,63 +70,32 @@
145
70
  - ^setup.cfg$
146
71
  - ^tools/.*$
147
72
  - ^tox.ini$
148
-
149
- - job:
150
- name: watcher-sg-core-tempest-base
151
- parent: devstack-tempest
152
- nodeset: openstack-two-node-noble
153
- description: |
154
- This job is for testing watcher and sg-core/prometheus installation
155
- abstract: true
156
- pre-run:
157
- - playbooks/generate_prometheus_config.yml
158
- irrelevant-files: *irrelevent_files
159
- timeout: 7800
160
- required-projects: &base_sg_required_projects
161
- - openstack/aodh
162
- - openstack/ceilometer
163
- - openstack/tempest
164
- - openstack-k8s-operators/sg-core
165
- - openstack/watcher
166
- - openstack/python-watcherclient
167
- - openstack/watcher-tempest-plugin
168
- - openstack/devstack-plugin-prometheus
169
- vars:
73
+ vars: &tempest_base_vars
170
74
  configure_swap_size: 8192
171
75
  devstack_plugins:
172
76
  ceilometer: https://opendev.org/openstack/ceilometer
173
- aodh: https://opendev.org/openstack/aodh
174
- sg-core: https://github.com/openstack-k8s-operators/sg-core
175
77
  watcher: https://opendev.org/openstack/watcher
176
- devstack-plugin-prometheus: https://opendev.org/openstack/devstack-plugin-prometheus
177
78
  devstack_services:
178
- ceilometer-acompute: true
179
79
  watcher-api: true
180
80
  watcher-decision-engine: true
181
81
  watcher-applier: true
182
82
  tempest: true
183
- # We do not need Swift in this job so disable it for speed
184
- # Swift services
185
83
  s-account: false
186
84
  s-container: false
187
85
  s-object: false
188
86
  s-proxy: false
189
- # Prometheus related service
190
- prometheus: true
191
- node_exporter: true
87
+ ceilometer-acentral: true
88
+ ceilometer-anotification: true
89
+ # ceilometer-acompute disabled by default since most jobs use fake data
90
+ ceilometer-acompute: false
91
+ tempest_plugins:
92
+ - watcher-tempest-plugin
192
93
  devstack_localrc:
193
- CEILOMETER_BACKENDS: "sg-core"
194
94
  CEILOMETER_PIPELINE_INTERVAL: 15
195
95
  CEILOMETER_ALARM_THRESHOLD: 6000000000
196
- PROMETHEUS_CONFIG_FILE: "/home/zuul/prometheus.yml"
197
96
  devstack_local_conf:
198
97
  post-config:
199
- $WATCHER_CONF:
200
- watcher_datasources:
201
- datasources: prometheus
202
- prometheus_client:
203
- host: 127.0.0.1
204
- port: 9090
98
+ $WATCHER_CONF: &watcher_conf_base
205
99
  watcher_cluster_data_model_collectors.compute:
206
100
  period: 120
207
101
  watcher_cluster_data_model_collectors.baremetal:
@@ -212,92 +106,167 @@
212
106
  enable_extended_attributes: true
213
107
  nova_client:
214
108
  api_version: "2.96"
109
+ nova:
110
+ migration_max_retries: 120
111
+ migration_interval: 1
112
+ $CINDER_CONF:
113
+ oslo_messaging_notifications:
114
+ driver: messagingv2
215
115
  test-config:
216
116
  $TEMPEST_CONFIG:
217
117
  compute:
218
118
  min_compute_nodes: 2
219
119
  min_microversion: 2.56
220
- compute-feature-enabled:
221
- live_migration: true
222
- block_migration_for_live_migration: true
120
+ max_microversion: 2.96
223
121
  placement:
224
122
  min_microversion: 1.29
225
- service_available:
226
- sg_core: True
227
- telemetry_services:
228
- metric_backends: prometheus
229
123
  telemetry:
230
- disable_ssl_certificate_validation: True
124
+ disable_ssl_certificate_validation: true
231
125
  ceilometer_polling_interval: 15
232
- optimize:
233
- datasource: prometheus
234
- extended_attributes_nova_microversion: "2.96"
235
- data_model_collectors_period: 120
236
- tempest_plugins:
237
- - watcher-tempest-plugin
238
- # All tests inside watcher_tempest_plugin.tests.scenario with tag "strategy"
239
- # and test_execute_strategies, test_data_model files
240
- # excluding tests with tag "real_load"
241
- tempest_test_regex: (watcher_tempest_plugin.tests.scenario)(.*\[.*\bstrategy\b.*\].*)|(watcher_tempest_plugin.tests.scenario.(test_execute_strategies|test_data_model))
242
- tempest_exclude_regex: .*\[.*\breal_load\b.*\].*
126
+ # tempest variables
243
127
  tempest_concurrency: 1
128
+ # Run only API tests
129
+ tempest_test_regex: watcher_tempest_plugin.tests.api
244
130
  tox_envlist: all
245
131
  zuul_copy_output:
246
- /etc/prometheus/prometheus.yml: logs
132
+ /etc/hosts: logs
133
+
134
+ - job:
135
+ name: watcher-tempest-base-two-node
136
+ parent: watcher-tempest-base
137
+ nodeset: openstack-two-node-noble
138
+ abstract: true
139
+ description: |
140
+ Watcher multinode devstack tempest job base template.
141
+ vars:
142
+ devstack_local_conf:
143
+ test-config:
144
+ $TEMPEST_CONFIG:
145
+ compute-feature-enabled:
146
+ live_migration: true
147
+ block_migration_for_live_migration: true
148
+ optimize:
149
+ run_extended_attributes_tests: true
150
+ # tempest variables
151
+ tempest_test_regex: watcher_tempest_plugin.tests\.(api|scenario)
152
+ # excluding tests with tag "real_load"
153
+ tempest_exclude_regex: .*\[.*\breal_load\b.*\].*
247
154
  group-vars:
248
155
  subnode:
249
156
  devstack_plugins:
250
157
  ceilometer: https://opendev.org/openstack/ceilometer
251
- devstack-plugin-prometheus: https://opendev.org/openstack/devstack-plugin-prometheus
158
+ watcher: https://opendev.org/openstack/watcher
252
159
  devstack_services:
253
- ceilometer-acompute: true
254
- sg-core: false
255
- prometheus: false
256
- node_exporter: true
160
+ # Not needed for jobs with fake metrics injection
161
+ ceilometer-acompute: false
162
+ ceilometer-acentral: false
163
+ ceilometer-anotification: false
164
+ c-bak: false
165
+ gnocchi-api: false
166
+ gnocchi-metricd: false
167
+ rabbit: false
168
+ mysql: false
169
+ watcher-api: false
170
+ watcher-applier: false
171
+ watcher-decision-engine: true
257
172
  devstack_localrc:
258
- CEILOMETER_BACKEND: "none"
259
173
  CEILOMETER_BACKENDS: "none"
260
174
  devstack_local_conf:
261
175
  post-config:
262
- $WATCHER_CONF:
263
- watcher_cluster_data_model_collectors.compute:
264
- period: 120
265
- watcher_cluster_data_model_collectors.baremetal:
266
- period: 120
267
- watcher_cluster_data_model_collectors.storage:
268
- period: 120
176
+ $CINDER_CONF:
177
+ # enable notifications in compute node, by default they are only
178
+ # configured in the controller
179
+ oslo_messaging_notifications:
180
+ driver: messagingv2
181
+ $WATCHER_CONF: *watcher_conf_base
182
+
183
+ - job:
184
+ name: watcher-tempest-api-ipv6-only
185
+ parent: devstack-tempest-ipv6
186
+ description: |
187
+ Watcher single node devstack tempest job for IPv6-only deployment.
188
+ required-projects: *tempest_base_required_projects
189
+ vars: *tempest_base_vars
190
+ irrelevant-files: *irrelevant_files
269
191
 
270
192
  - job:
271
- name: watcher-prometheus-integration
272
- parent: watcher-sg-core-tempest-base
193
+ name: watcher-grenade
194
+ parent: grenade
195
+ required-projects: *tempest_base_required_projects
196
+ vars:
197
+ <<: *tempest_base_vars
198
+ devstack_plugins:
199
+ watcher: https://opendev.org/openstack/watcher
200
+ irrelevant-files: *irrelevant_files
201
+
202
+ - job:
203
+ name: watcher-tempest-prometheus
204
+ parent: watcher-tempest-base-two-node
205
+ description: |
206
+ Watcher multinode devstack tempest job with Prometheus as datasource.
207
+ This job uses fake metrics injection and does not require ceilometer-acompute
208
+ and node_exporter to be enabled.
209
+ pre-run:
210
+ - playbooks/generate_prometheus_config.yml
211
+ required-projects:
212
+ - openstack/aodh
213
+ - openstack-k8s-operators/sg-core
214
+ - openstack/devstack-plugin-prometheus
273
215
  vars:
216
+ devstack_plugins:
217
+ aodh: https://opendev.org/openstack/aodh
218
+ sg-core: https://github.com/openstack-k8s-operators/sg-core
219
+ devstack-plugin-prometheus: https://opendev.org/openstack/devstack-plugin-prometheus
274
220
  devstack_services:
275
- ceilometer-acompute: false
221
+ prometheus: true
222
+ # Node exporter service is disable since job uses fake metrics injection
276
223
  node_exporter: false
224
+ devstack_localrc:
225
+ CEILOMETER_BACKENDS: "sg-core"
226
+ PROMETHEUS_CONFIG_FILE: "/home/zuul/prometheus.yml"
227
+ devstack_local_conf:
228
+ post-config:
229
+ $WATCHER_CONF: &watcher_conf_prom
230
+ watcher_datasources:
231
+ datasources: prometheus
232
+ prometheus_client:
233
+ host: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
234
+ port: 9090
235
+ test-config:
236
+ $TEMPEST_CONFIG:
237
+ service_available:
238
+ sg_core: true
239
+ telemetry_services:
240
+ metric_backends: prometheus
241
+ optimize:
242
+ datasource: prometheus
243
+ zuul_copy_output:
244
+ /etc/prometheus/prometheus.yml: logs
277
245
  group-vars:
278
246
  subnode:
247
+ devstack_plugins:
248
+ devstack-plugin-prometheus: https://opendev.org/openstack/devstack-plugin-prometheus
279
249
  devstack_services:
280
- ceilometer-acompute: false
250
+ sg-core: false
251
+ prometheus: false
281
252
  node_exporter: false
253
+ devstack_local_conf:
254
+ post-config:
255
+ $WATCHER_CONF: *watcher_conf_prom
282
256
 
283
257
  - job:
284
- name: watcher-aetos-integration
285
- parent: watcher-sg-core-tempest-base
258
+ name: watcher-tempest-aetos
259
+ parent: watcher-tempest-prometheus
286
260
  description: |
287
- This job tests Watcher with Aetos reverse-proxy for Prometheus
288
- using Keystone authentication instead of direct Prometheus access.
261
+ Watcher multinode devstack tempest job with Aetos reverse-proxy for
262
+ Prometheus, using Keystone authentication instead of direct Prometheus access.
263
+ This job uses fake metrics injection and does not require ceilometer-acompute
264
+ and node_exporter to be enabled.
289
265
  required-projects:
290
266
  - openstack/python-observabilityclient
291
267
  - openstack/aetos
292
268
  vars: &aetos_vars
293
- devstack_services:
294
- ceilometer-acompute: false
295
- node_exporter: false
296
269
  devstack_plugins:
297
- ceilometer: https://opendev.org/openstack/ceilometer
298
- sg-core: https://github.com/openstack-k8s-operators/sg-core
299
- watcher: https://opendev.org/openstack/watcher
300
- devstack-plugin-prometheus: https://opendev.org/openstack/devstack-plugin-prometheus
301
270
  aetos: https://opendev.org/openstack/aetos
302
271
  devstack_local_conf:
303
272
  post-config:
@@ -309,31 +278,29 @@
309
278
  region_name: RegionOne
310
279
  fqdn_label: fqdn
311
280
  instance_uuid_label: resource
312
- test-config:
313
- $TEMPEST_CONFIG:
314
- optimize:
315
- datasource: prometheus
316
- group-vars:
317
- subnode:
318
- devstack_services:
319
- ceilometer-acompute: false
320
- node_exporter: false
321
281
 
322
282
  - job:
323
- name: watcher-prometheus-integration-realdata
324
- parent: watcher-sg-core-tempest-base
283
+ name: watcher-tempest-prometheus-realdata
284
+ parent: watcher-tempest-prometheus
285
+ nodeset: openstack-three-node-noble
286
+ description: |
287
+ Watcher multinode devstack tempest job with Prometheus as datasource and
288
+ real workload data. This job is executed on a three-node setup to have
289
+ pure controller and compute nodes and avoid resource competition.
325
290
  vars: &realdata_vars
326
291
  devstack_services:
327
- ceilometer-acompute: true
328
- node_exporter: true
292
+ ceilometer-acompute: false
293
+ node_exporter: false
294
+ n-cpu: false
329
295
  devstack_localrc:
330
296
  NODE_EXPORTER_COLLECTOR_EXCLUDE: ""
297
+ CEILOMETER_PIPELINE_INTERVAL: 15
331
298
  devstack_local_conf:
332
299
  test-config:
333
300
  $TEMPEST_CONFIG:
334
301
  optimize:
335
302
  datasource: ""
336
- real_workload_period: 300
303
+ real_workload_period: 480 # 8 minutes
337
304
  # All tests inside watcher_tempest_plugin.tests.scenario with tag "real_load"
338
305
  tempest_test_regex: (^watcher_tempest_plugin.tests.scenario)(.*\[.*\breal_load\b.*\].*)
339
306
  tempest_exclude_regex: ""
@@ -342,15 +309,26 @@
342
309
  devstack_services:
343
310
  ceilometer-acompute: true
344
311
  node_exporter: true
312
+ n-cpu: true
345
313
  devstack_localrc:
346
- NODE_EXPORTER_COLLECTOR_EXCLUDE: ""
314
+ CEILOMETER_PIPELINE_INTERVAL: 15
347
315
 
348
316
  - job:
349
- name: watcher-prometheus-integration-threading
350
- parent: watcher-prometheus-integration
351
- vars:
317
+ name: watcher-tempest-prometheus-threading
318
+ parent: watcher-tempest-prometheus
319
+ description: |
320
+ Watcher multinode devstack tempest job with Prometheus as datasource and
321
+ threading mode enabled in specific services.
322
+ vars: &threading_vars
352
323
  devstack_localrc:
353
324
  'SYSTEMD_ENV_VARS["watcher-decision-engine"]': OS_WATCHER_DISABLE_EVENTLET_PATCHING=true
325
+ devstack_local_conf:
326
+ post-config:
327
+ $WATCHER_CONF:
328
+ DEFAULT:
329
+ print_thread_pool_stats: true
330
+ group-vars:
331
+ subnode: *threading_vars
354
332
 
355
333
  - job:
356
334
  name: openstack-tox-py312-threading
@@ -361,11 +339,28 @@
361
339
  tox_envlist: py3-threading
362
340
 
363
341
  - job:
364
- name: watcher-aetos-integration-realdata
365
- parent: watcher-aetos-integration
342
+ name: watcher-tempest-aetos-realdata
343
+ parent: watcher-tempest-aetos
344
+ nodeset: openstack-three-node-noble
345
+ description: |
346
+ Watcher multinode devstack tempest job with Aetos reverse-proxy and real
347
+ workload data. This job is executed on a three-node setup to have
348
+ pure controller and compute nodes and avoid resource competition.
366
349
  vars: *realdata_vars
367
350
  group-vars: *realdata_group_vars
368
351
 
352
+ # TODO(dviroel): Remove this job when we update other projects that depend on
353
+ # its definition.
354
+ - job:
355
+ name: watcher-tempest-functional
356
+ parent: watcher-tempest-base
357
+
358
+ # TODO(dviroel): Remove this job when we update other projects that depend on
359
+ # its definition (e.g.: openstack/aetos)
360
+ - job:
361
+ name: watcher-aetos-integration
362
+ parent: watcher-tempest-aetos
363
+
369
364
  - project:
370
365
  queue: watcher
371
366
  templates:
@@ -377,26 +372,31 @@
377
372
  check:
378
373
  jobs:
379
374
  - openstack-tox-py312-threading
380
- - watcher-tempest-functional
381
375
  - watcher-grenade
382
- - watcher-tempest-strategies
383
- - watcher-tempest-actuator
376
+ - watcher-tempest-api-ipv6-only
377
+ - watcher-tempest-gnocchi
384
378
  - python-watcherclient-functional:
385
- files:
379
+ files: &watcherclient_functional_files
386
380
  - ^watcher/api/*
387
- - watcher-tempest-functional-ipv6-only
388
- - watcher-prometheus-integration
389
- - watcher-prometheus-integration-threading
390
- - watcher-aetos-integration
381
+ - watcher-tempest-prometheus
382
+ - watcher-tempest-prometheus-threading
383
+ - watcher-tempest-aetos
391
384
  gate:
392
385
  jobs:
393
- - watcher-tempest-functional
394
- - watcher-tempest-functional-ipv6-only
386
+ - openstack-tox-py312-threading
387
+ - watcher-grenade
388
+ - watcher-tempest-api-ipv6-only
389
+ - watcher-tempest-gnocchi
390
+ - python-watcherclient-functional:
391
+ files: *watcherclient_functional_files
392
+ - watcher-tempest-prometheus
393
+ - watcher-tempest-prometheus-threading
394
+ - watcher-tempest-aetos
395
395
  experimental:
396
396
  jobs:
397
- - watcher-prometheus-integration-realdata
398
- - watcher-aetos-integration-realdata
397
+ - watcher-tempest-prometheus-realdata
398
+ - watcher-tempest-aetos-realdata
399
399
  periodic-weekly:
400
400
  jobs:
401
- - watcher-prometheus-integration-realdata
402
- - watcher-aetos-integration-realdata
401
+ - watcher-tempest-prometheus-realdata
402
+ - watcher-tempest-aetos-realdata
@@ -1,6 +1,30 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 15.1.0
5
+ ------
6
+
7
+ * Revert "Update migration notification"
8
+ * Move real data jobs nodeset to three nodes (two computes + 1 controller)
9
+ * Retry calls to nova API when connection errors are detected
10
+ * update unit tests for nova\_helper module
11
+ * Make VM resize timeout configurable with migration defaults
12
+ * Make VM migrations timeout configurable and apply reasonable defaults
13
+ * Consolidate and improve Zuul CI job definitions
14
+ * Fix zone migration to accept dst\_pool or dst\_type
15
+ * use the correct package name for microversion-parse
16
+ * Ignore cinder notifications if the Storage model is empty
17
+ * Fix zone migration instance not found issue
18
+ * Add unit tests for instance and volume not found in model
19
+ * Add missing 1.6 API doc in rest version history
20
+ * Improve unit tests for zone migration strategy
21
+ * Support zone migration audit without compute\_nodes
22
+ * Allow volume and vm migrations in zone\_migration
23
+ * Add test for zone\_migration with instances and volumes
24
+ * Use src\_type to filter volumes in zone migration
25
+ * Update TOX\_CONSTRAINTS\_FILE for stable/2025.2
26
+ * Update .gitreview for stable/2025.2
27
+
4
28
  15.0.0
5
29
  ------
6
30
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: python-watcher
3
- Version: 15.0.0
3
+ Version: 15.1.0
4
4
  Summary: OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack-based clouds.
5
5
  Home-page: https://docs.openstack.org/watcher/latest/
6
6
  Author: OpenStack
@@ -63,10 +63,19 @@ Requires-Dist: taskflow>=3.8.0
63
63
  Requires-Dist: WebOb>=1.8.5
64
64
  Requires-Dist: WSME>=0.9.2
65
65
  Requires-Dist: networkx>=2.4
66
- Requires-Dist: microversion_parse>=0.2.1
66
+ Requires-Dist: microversion-parse>=0.2.1
67
67
  Requires-Dist: futurist>=1.8.0
68
68
  Provides-Extra: monasca
69
69
  Requires-Dist: python-monascaclient>=1.12.0; extra == "monasca"
70
+ Dynamic: author
71
+ Dynamic: author-email
72
+ Dynamic: classifier
73
+ Dynamic: description
74
+ Dynamic: home-page
75
+ Dynamic: license-file
76
+ Dynamic: requires-dist
77
+ Dynamic: requires-python
78
+ Dynamic: summary
70
79
 
71
80
  =======
72
81
  Watcher
@@ -126,7 +126,7 @@ parameter type default required description
126
126
  volumes migrate.
127
127
  ``dst_pool`` string None Optional Storage pool to which
128
128
  volumes migrate.
129
- ``src_type`` string None Required Source volume type.
129
+ ``src_type`` string None Optional Source volume type.
130
130
  ``dst_type`` string None Required Destination volume type
131
131
  ============= ======= ======== ========= ========================
132
132