python-watcher 14.1.0__py3-none-any.whl → 15.0.0__py3-none-any.whl

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 (162) hide show
  1. {python_watcher-14.1.0.dist-info → python_watcher-15.0.0.dist-info}/AUTHORS +6 -0
  2. {python_watcher-14.1.0.dist-info → python_watcher-15.0.0.dist-info}/METADATA +7 -5
  3. {python_watcher-14.1.0.dist-info → python_watcher-15.0.0.dist-info}/RECORD +161 -137
  4. {python_watcher-14.1.0.dist-info → python_watcher-15.0.0.dist-info}/entry_points.txt +4 -3
  5. python_watcher-15.0.0.dist-info/pbr.json +1 -0
  6. watcher/api/controllers/rest_api_version_history.rst +9 -0
  7. watcher/api/controllers/v1/action.py +90 -55
  8. watcher/api/controllers/v1/action_plan.py +10 -12
  9. watcher/api/controllers/v1/audit.py +20 -23
  10. watcher/api/controllers/v1/audit_template.py +1 -14
  11. watcher/api/controllers/v1/data_model.py +17 -6
  12. watcher/api/controllers/v1/goal.py +0 -7
  13. watcher/api/controllers/v1/scoring_engine.py +0 -8
  14. watcher/api/controllers/v1/service.py +0 -7
  15. watcher/api/controllers/v1/strategy.py +0 -7
  16. watcher/api/controllers/v1/types.py +11 -0
  17. watcher/api/controllers/v1/utils.py +19 -0
  18. watcher/api/controllers/v1/versions.py +3 -1
  19. watcher/applier/action_plan/default.py +9 -0
  20. watcher/applier/actions/change_nova_service_state.py +2 -4
  21. watcher/applier/actions/migration.py +1 -3
  22. watcher/applier/actions/nop.py +29 -3
  23. watcher/applier/actions/stop.py +169 -0
  24. watcher/applier/workflow_engine/base.py +59 -13
  25. watcher/applier/workflow_engine/default.py +2 -3
  26. watcher/cmd/__init__.py +0 -29
  27. watcher/cmd/eventlet/__init__.py +36 -0
  28. watcher/cmd/{decisionengine.py → eventlet/decisionengine.py} +2 -7
  29. watcher/common/cinder_helper.py +45 -7
  30. watcher/common/clients.py +45 -1
  31. watcher/common/context.py +6 -36
  32. watcher/common/exception.py +9 -4
  33. watcher/common/executor.py +51 -0
  34. watcher/common/keystone_helper.py +13 -0
  35. watcher/common/nova_helper.py +43 -4
  36. watcher/common/oslo_service_helper.py +33 -0
  37. watcher/common/placement_helper.py +1 -1
  38. watcher/common/policies/action.py +11 -0
  39. watcher/common/rpc.py +0 -2
  40. watcher/common/scheduling.py +6 -27
  41. watcher/conf/__init__.py +4 -0
  42. watcher/conf/aetos_client.py +50 -0
  43. watcher/conf/cinder_client.py +3 -3
  44. watcher/conf/collector.py +11 -6
  45. watcher/conf/datasources.py +11 -5
  46. watcher/conf/decision_engine.py +2 -1
  47. watcher/conf/glance_client.py +3 -3
  48. watcher/conf/gnocchi_client.py +3 -3
  49. watcher/conf/ironic_client.py +4 -4
  50. watcher/conf/keystone_client.py +1 -1
  51. watcher/conf/models.py +40 -0
  52. watcher/conf/monasca_client.py +3 -3
  53. watcher/conf/neutron_client.py +3 -3
  54. watcher/conf/nova_client.py +3 -3
  55. watcher/db/sqlalchemy/alembic/env.py +0 -6
  56. watcher/db/sqlalchemy/alembic/versions/15f7375ca737_change_efficiacy_indicator_decimals.py +20 -0
  57. watcher/db/sqlalchemy/alembic/versions/7150a7d8f228_add_status_message_to_actionplan.py +20 -0
  58. watcher/db/sqlalchemy/api.py +44 -5
  59. watcher/db/sqlalchemy/models.py +7 -2
  60. watcher/decision_engine/audit/continuous.py +2 -2
  61. watcher/decision_engine/datasources/aetos.py +67 -0
  62. watcher/decision_engine/datasources/base.py +3 -3
  63. watcher/decision_engine/datasources/manager.py +42 -2
  64. watcher/decision_engine/datasources/monasca.py +14 -5
  65. watcher/decision_engine/datasources/prometheus.py +11 -420
  66. watcher/decision_engine/datasources/prometheus_base.py +480 -0
  67. watcher/decision_engine/messaging/audit_endpoint.py +4 -6
  68. watcher/decision_engine/model/collector/base.py +5 -5
  69. watcher/decision_engine/model/collector/manager.py +24 -1
  70. watcher/decision_engine/model/collector/nova.py +15 -6
  71. watcher/decision_engine/model/element/instance.py +3 -0
  72. watcher/decision_engine/model/model_root.py +15 -0
  73. watcher/decision_engine/model/notification/nova.py +13 -3
  74. watcher/decision_engine/planner/weight.py +2 -0
  75. watcher/decision_engine/service.py +68 -0
  76. watcher/decision_engine/strategy/strategies/base.py +1 -1
  77. watcher/decision_engine/strategy/strategies/host_maintenance.py +64 -18
  78. watcher/decision_engine/strategy/strategies/noisy_neighbor.py +6 -0
  79. watcher/decision_engine/strategy/strategies/workload_balance.py +36 -12
  80. watcher/decision_engine/strategy/strategies/workload_stabilization.py +13 -3
  81. watcher/decision_engine/strategy/strategies/zone_migration.py +20 -6
  82. watcher/decision_engine/threading.py +4 -3
  83. watcher/eventlet.py +11 -6
  84. watcher/locale/de/LC_MESSAGES/watcher.po +1 -5
  85. watcher/locale/en_GB/LC_MESSAGES/watcher.po +1 -8
  86. watcher/notifications/action.py +23 -8
  87. watcher/notifications/action_plan.py +25 -9
  88. watcher/notifications/audit.py +25 -8
  89. watcher/objects/action.py +4 -1
  90. watcher/objects/action_plan.py +5 -1
  91. watcher/objects/audit.py +4 -1
  92. watcher/tests/__init__.py +7 -0
  93. watcher/tests/api/v1/test_actions.py +263 -64
  94. watcher/tests/api/v1/test_actions_plans.py +76 -0
  95. watcher/tests/api/v1/test_audit_templates.py +1 -1
  96. watcher/tests/api/v1/test_audits.py +215 -44
  97. watcher/tests/api/v1/test_data_model.py +103 -3
  98. watcher/tests/api/v1/test_types.py +70 -0
  99. watcher/tests/applier/action_plan/test_default_action_handler.py +68 -0
  100. watcher/tests/applier/actions/test_stop.py +198 -0
  101. watcher/tests/applier/workflow_engine/test_default_workflow_engine.py +282 -0
  102. watcher/tests/applier/workflow_engine/test_taskflow_action_container.py +117 -1
  103. watcher/tests/base.py +7 -1
  104. watcher/tests/cmd/test_api.py +1 -1
  105. watcher/tests/cmd/test_applier.py +1 -1
  106. watcher/tests/cmd/test_decision_engine.py +4 -1
  107. watcher/tests/common/test_cinder_helper.py +181 -3
  108. watcher/tests/common/test_clients.py +11 -7
  109. watcher/tests/common/test_executor.py +38 -0
  110. watcher/tests/common/test_keystone_helper.py +60 -0
  111. watcher/tests/common/test_nova_helper.py +74 -4
  112. watcher/tests/common/test_oslo_service_helper.py +50 -0
  113. watcher/tests/common/test_scheduling.py +3 -11
  114. watcher/tests/db/base.py +16 -0
  115. watcher/tests/db/test_action.py +8 -0
  116. watcher/tests/db/test_action_plan.py +9 -0
  117. watcher/tests/db/test_audit.py +8 -0
  118. watcher/tests/db/test_efficacy_indicator.py +48 -0
  119. watcher/tests/db/test_migrations.py +277 -0
  120. watcher/tests/db/utils.py +4 -2
  121. watcher/tests/decision_engine/cluster/test_nova_cdmc.py +73 -2
  122. watcher/tests/decision_engine/datasources/test_aetos_helper.py +61 -0
  123. watcher/tests/decision_engine/datasources/test_base.py +2 -2
  124. watcher/tests/decision_engine/datasources/test_manager.py +98 -16
  125. watcher/tests/decision_engine/datasources/test_monasca_helper.py +10 -1
  126. watcher/tests/decision_engine/datasources/test_prometheus_base.py +690 -0
  127. watcher/tests/decision_engine/datasources/test_prometheus_helper.py +66 -611
  128. watcher/tests/decision_engine/model/data/scenario_11_with_1_node_no_instance.xml +5 -0
  129. watcher/tests/decision_engine/model/data/scenario_11_with_2_nodes_2_instances.xml +10 -0
  130. watcher/tests/decision_engine/model/faker_cluster_and_metrics.py +0 -6
  131. watcher/tests/decision_engine/model/faker_cluster_state.py +6 -0
  132. watcher/tests/decision_engine/model/gnocchi_metrics.py +2 -2
  133. watcher/tests/decision_engine/model/notification/data/instance-update-2-1.json +90 -0
  134. watcher/tests/decision_engine/model/notification/test_nova_notifications.py +72 -3
  135. watcher/tests/decision_engine/model/test_element.py +10 -0
  136. watcher/tests/decision_engine/planner/test_weight_planner.py +8 -8
  137. watcher/tests/decision_engine/strategy/strategies/test_base.py +21 -8
  138. watcher/tests/decision_engine/strategy/strategies/test_host_maintenance.py +438 -4
  139. watcher/tests/decision_engine/strategy/strategies/test_workload_balance.py +40 -2
  140. watcher/tests/decision_engine/strategy/strategies/test_zone_migration.py +103 -0
  141. watcher/tests/decision_engine/test_scheduling.py +5 -0
  142. watcher/tests/decision_engine/test_service.py +73 -0
  143. watcher/tests/fake_policy.py +1 -0
  144. watcher/tests/fixtures/__init__.py +0 -0
  145. watcher/tests/fixtures/watcher.py +139 -0
  146. watcher/tests/notifications/test_action_notification.py +52 -34
  147. watcher/tests/notifications/test_action_plan_notification.py +40 -24
  148. watcher/tests/notifications/test_audit_notification.py +26 -17
  149. watcher/tests/notifications/test_notification.py +22 -22
  150. watcher/tests/objects/test_action.py +3 -1
  151. watcher/tests/objects/test_objects.py +5 -5
  152. python_watcher-14.1.0.dist-info/pbr.json +0 -1
  153. {python_watcher-14.1.0.data → python_watcher-15.0.0.data}/data/etc/apache2/watcher +0 -0
  154. {python_watcher-14.1.0.data → python_watcher-15.0.0.data}/data/etc/watcher/README-watcher.conf.txt +0 -0
  155. {python_watcher-14.1.0.data → python_watcher-15.0.0.data}/data/etc/watcher/oslo-config-generator/watcher.conf +0 -0
  156. {python_watcher-14.1.0.data → python_watcher-15.0.0.data}/data/etc/watcher/oslo-policy-generator/watcher-policy-generator.conf +0 -0
  157. {python_watcher-14.1.0.data → python_watcher-15.0.0.data}/scripts/watcher-api-wsgi +0 -0
  158. {python_watcher-14.1.0.dist-info → python_watcher-15.0.0.dist-info}/LICENSE +0 -0
  159. {python_watcher-14.1.0.dist-info → python_watcher-15.0.0.dist-info}/WHEEL +0 -0
  160. {python_watcher-14.1.0.dist-info → python_watcher-15.0.0.dist-info}/top_level.txt +0 -0
  161. /watcher/cmd/{api.py → eventlet/api.py} +0 -0
  162. /watcher/cmd/{applier.py → eventlet/applier.py} +0 -0
@@ -18,6 +18,7 @@ BubaVV <vmarkov@mirantis.com>
18
18
  Béla Vancsics <vancsics@inf.u-szeged.hu>
19
19
  Cao Xuan Hoang <hoangcx@vn.fujitsu.com>
20
20
  Chandan Kumar (raukadah) <chkumar@redhat.com>
21
+ Chandan Kumar <chkumar@redhat.com>
21
22
  ChangBo Guo(gcb) <eric.guo@easystack.cn>
22
23
  Chaozhe.Chen <chaozhe.chen@easystack.cn>
23
24
  Chris MacNaughton <chris.macnaughton@canonical.com>
@@ -51,6 +52,7 @@ Iswarya_Vakati <v.iswarya@nectechnologies.in>
51
52
  Jaewoo Park <jp655p@att.com>
52
53
  James E. Blair <jeblair@redhat.com>
53
54
  James Page <james.page@canonical.com>
55
+ Jaromir Wysoglad <jwysogla@redhat.com>
54
56
  Jean-Emile DARTOIS <jean-emile.dartois@b-com.com>
55
57
  Jeremy Liu <liujiong@gohighsec.com>
56
58
  Jiri Podivin <jpodivin@redhat.com>
@@ -83,6 +85,7 @@ Pradeep Kumar Singh <ps4openstack@gmail.com>
83
85
  Prashanth Hari <prashanth.hari@walmart.com>
84
86
  Prudhvi Rao Shedimbi <prudhvi.rao.shedimbi@intel.com>
85
87
  Q.hongtao <qihongtao@inspur.com>
88
+ Quang Ngo <quang.ngo@canonical.com>
86
89
  Ralf Rantzau <rrantzau@cisco.com>
87
90
  Ronelle Landy <rlandy@redhat.com>
88
91
  Sampath Priyankara <sam47priya@gmail.com>
@@ -123,6 +126,7 @@ Zhenyu Zheng <zheng.zhenyu@outlook.com>
123
126
  Zhenzan Zhou <zhenzan.zhou@intel.com>
124
127
  aditi <adi.sky17@gmail.com>
125
128
  aditi <aditi.s@nectechnologies.in>
129
+ afanasev.s <afanasev.s@selectel.ru>
126
130
  akhiljain23 <akhil.jain@india.nec.com>
127
131
  akihito-inoh <aki-inou@rs.jp.nec.com>
128
132
  avnish <avnish.pal@nectechnologies.in>
@@ -152,6 +156,7 @@ iswarya_vakati <v.iswarya@nectechnologies.in>
152
156
  jacky06 <zhang.min@99cloud.net>
153
157
  jaugustine <ja224e@att.com>
154
158
  jeremy.zhang <zhangjun_inspur@163.com>
159
+ jgilaber <jgilaber@redhat.com>
155
160
  jinquanni <ni.jinquan@zte.com.cn>
156
161
  junjie huang <junjie.huang@intel.com>
157
162
  licanwei <li.canwei2@zte.com.cn>
@@ -164,6 +169,7 @@ m <mandreou@redhat.com>
164
169
  maaoyu <maaoyu@inspur.com>
165
170
  melissaml <ma.lei@99cloud.net>
166
171
  mergalievibragim <mer_eng@mail.ru>
172
+ morenod <dsanzmor@redhat.com>
167
173
  pangliye <pangliye@inspur.com>
168
174
  pengyuesheng <pengyuesheng@gohighsec.com>
169
175
  qinchunhua <qin.chunhua@zte.com.cn>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-watcher
3
- Version: 14.1.0
3
+ Version: 15.0.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
@@ -17,10 +17,11 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
- Requires-Python: >=3.9
20
+ Requires-Python: >=3.10
21
21
  License-File: LICENSE
22
22
  License-File: AUTHORS
23
23
  Requires-Dist: apscheduler >=3.5.1
24
+ Requires-Dist: debtcollector >=1.2.0
24
25
  Requires-Dist: eventlet >=0.27.0
25
26
  Requires-Dist: jsonpatch >=1.21
26
27
  Requires-Dist: keystoneauth1 >=3.4.0
@@ -40,7 +41,7 @@ Requires-Dist: oslo.messaging >=14.1.0
40
41
  Requires-Dist: oslo.policy >=4.5.0
41
42
  Requires-Dist: oslo.reports >=1.27.0
42
43
  Requires-Dist: oslo.serialization >=2.25.0
43
- Requires-Dist: oslo.service >=1.30.0
44
+ Requires-Dist: oslo.service[threading] >=4.2.1
44
45
  Requires-Dist: oslo.upgradecheck >=1.3.0
45
46
  Requires-Dist: oslo.utils >=7.0.0
46
47
  Requires-Dist: oslo.versionedobjects >=1.32.0
@@ -52,10 +53,9 @@ Requires-Dist: gnocchiclient >=7.0.1
52
53
  Requires-Dist: python-cinderclient >=3.5.0
53
54
  Requires-Dist: python-glanceclient >=2.9.1
54
55
  Requires-Dist: python-keystoneclient >=3.15.0
55
- Requires-Dist: python-monascaclient >=1.12.0
56
56
  Requires-Dist: python-neutronclient >=6.7.0
57
57
  Requires-Dist: python-novaclient >=14.1.0
58
- Requires-Dist: python-observabilityclient >=0.3.0
58
+ Requires-Dist: python-observabilityclient >=1.1.0
59
59
  Requires-Dist: python-openstackclient >=3.14.0
60
60
  Requires-Dist: python-ironicclient >=2.5.0
61
61
  Requires-Dist: SQLAlchemy >=1.2.5
@@ -66,6 +66,8 @@ Requires-Dist: WSME >=0.9.2
66
66
  Requires-Dist: networkx >=2.4
67
67
  Requires-Dist: microversion-parse >=0.2.1
68
68
  Requires-Dist: futurist >=1.8.0
69
+ Provides-Extra: monasca
70
+ Requires-Dist: python-monascaclient >=1.12.0 ; extra == 'monasca'
69
71
 
70
72
  =======
71
73
  Watcher