
pip 23.1 removed the "setup.py install" fallback for projects that do not have pyproject.toml and now uses a pyproject.toml which is vendored in pip [1][2]. pip 24.2 has now deprecated a similar fallback to "setup.py develop" and plans to fully remove this in pip 25.0 [3][4][5]. pbr supports editable installs since 6.0.0 pip 25.1 has now been released and the removal is complete. by adding our own minimal pyproject.toml to ensure we are using the correct build system. This change also requires that we adapt how we generate our wsgi entry point. when pyproject.toml is used the wsgi console script is not generated in an editbale install such as is used in devstck To adress this we need to refactor our usage of our wsgi applciation to use a module path instead. This change does not remove the declaration of our wsgi_scrtip entry point but it shoudl be considered deprecated and it will be removed in the future. To unblock the gate the devstack plugin is modifed to to deploy using the wsgi module instead of the console script. Finally supprot for the mod_wsgi wsgi mode is removed. that was deprecated in devstack a few cycle ago and support was removed in I8823e98809ed6b66c27dbcf21a00eea68ef403e8 [1] https://pip.pypa.io/en/stable/news/#v23-1 [2] https://github.com/pypa/pip/issues/8368 [3] https://pip.pypa.io/en/stable/news/#v24-2 [4] https://github.com/pypa/pip/issues/11457 [5] https://ichard26.github.io/blog/2024/08/whats-new-in-pip-24.2/ Closes-Bug: #2109608 Depends-on: https://review.opendev.org/c/openstack/watcher/+/948502 Change-Id: Iad77939ab0403c5720c549f96edfc77d2b7d90ee
116 lines
5.7 KiB
INI
116 lines
5.7 KiB
INI
[metadata]
|
|
name = python-watcher
|
|
summary = OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack-based clouds.
|
|
description_file =
|
|
README.rst
|
|
author = OpenStack
|
|
author_email = openstack-discuss@lists.openstack.org
|
|
home_page = https://docs.openstack.org/watcher/latest/
|
|
# TODO(sean-k-mooney): bump to >= 3.10 before m3.
|
|
python_requires = >=3.9
|
|
classifier =
|
|
Environment :: OpenStack
|
|
Intended Audience :: Information Technology
|
|
Intended Audience :: System Administrators
|
|
License :: OSI Approved :: Apache Software License
|
|
Operating System :: POSIX :: Linux
|
|
Programming Language :: Python
|
|
Programming Language :: Python :: Implementation :: CPython
|
|
Programming Language :: Python :: 3 :: Only
|
|
Programming Language :: Python :: 3
|
|
Programming Language :: Python :: 3.10
|
|
Programming Language :: Python :: 3.11
|
|
Programming Language :: Python :: 3.12
|
|
|
|
[files]
|
|
packages =
|
|
watcher
|
|
data_files =
|
|
etc/ = etc/*
|
|
|
|
[entry_points]
|
|
oslo.config.opts =
|
|
watcher = watcher.conf.opts:list_opts
|
|
|
|
oslo.policy.policies =
|
|
watcher = watcher.common.policies:list_rules
|
|
|
|
oslo.policy.enforcer =
|
|
watcher = watcher.common.policy:get_enforcer
|
|
|
|
console_scripts =
|
|
watcher-api = watcher.cmd.api:main
|
|
watcher-db-manage = watcher.cmd.dbmanage:main
|
|
watcher-decision-engine = watcher.cmd.decisionengine:main
|
|
watcher-applier = watcher.cmd.applier:main
|
|
watcher-sync = watcher.cmd.sync:main
|
|
watcher-status = watcher.cmd.status:main
|
|
|
|
wsgi_scripts =
|
|
watcher-api-wsgi = watcher.api.wsgi:initialize_wsgi_app
|
|
|
|
watcher.database.migration_backend =
|
|
sqlalchemy = watcher.db.sqlalchemy.migration
|
|
|
|
watcher_goals =
|
|
unclassified = watcher.decision_engine.goal.goals:Unclassified
|
|
dummy = watcher.decision_engine.goal.goals:Dummy
|
|
server_consolidation = watcher.decision_engine.goal.goals:ServerConsolidation
|
|
thermal_optimization = watcher.decision_engine.goal.goals:ThermalOptimization
|
|
workload_balancing = watcher.decision_engine.goal.goals:WorkloadBalancing
|
|
airflow_optimization = watcher.decision_engine.goal.goals:AirflowOptimization
|
|
noisy_neighbor = watcher.decision_engine.goal.goals:NoisyNeighborOptimization
|
|
saving_energy = watcher.decision_engine.goal.goals:SavingEnergy
|
|
hardware_maintenance = watcher.decision_engine.goal.goals:HardwareMaintenance
|
|
cluster_maintaining = watcher.decision_engine.goal.goals:ClusterMaintaining
|
|
|
|
watcher_scoring_engines =
|
|
dummy_scorer = watcher.decision_engine.scoring.dummy_scorer:DummyScorer
|
|
|
|
watcher_scoring_engine_containers =
|
|
dummy_scoring_container = watcher.decision_engine.scoring.dummy_scoring_container:DummyScoringContainer
|
|
|
|
watcher_strategies =
|
|
dummy = watcher.decision_engine.strategy.strategies.dummy_strategy:DummyStrategy
|
|
dummy_with_scorer = watcher.decision_engine.strategy.strategies.dummy_with_scorer:DummyWithScorer
|
|
dummy_with_resize = watcher.decision_engine.strategy.strategies.dummy_with_resize:DummyWithResize
|
|
actuator = watcher.decision_engine.strategy.strategies.actuation:Actuator
|
|
basic = watcher.decision_engine.strategy.strategies.basic_consolidation:BasicConsolidation
|
|
outlet_temperature = watcher.decision_engine.strategy.strategies.outlet_temp_control:OutletTempControl
|
|
saving_energy = watcher.decision_engine.strategy.strategies.saving_energy:SavingEnergy
|
|
vm_workload_consolidation = watcher.decision_engine.strategy.strategies.vm_workload_consolidation:VMWorkloadConsolidation
|
|
workload_stabilization = watcher.decision_engine.strategy.strategies.workload_stabilization:WorkloadStabilization
|
|
workload_balance = watcher.decision_engine.strategy.strategies.workload_balance:WorkloadBalance
|
|
uniform_airflow = watcher.decision_engine.strategy.strategies.uniform_airflow:UniformAirflow
|
|
noisy_neighbor = watcher.decision_engine.strategy.strategies.noisy_neighbor:NoisyNeighbor
|
|
storage_capacity_balance = watcher.decision_engine.strategy.strategies.storage_capacity_balance:StorageCapacityBalance
|
|
zone_migration = watcher.decision_engine.strategy.strategies.zone_migration:ZoneMigration
|
|
host_maintenance = watcher.decision_engine.strategy.strategies.host_maintenance:HostMaintenance
|
|
node_resource_consolidation = watcher.decision_engine.strategy.strategies.node_resource_consolidation:NodeResourceConsolidation
|
|
|
|
watcher_actions =
|
|
migrate = watcher.applier.actions.migration:Migrate
|
|
nop = watcher.applier.actions.nop:Nop
|
|
sleep = watcher.applier.actions.sleep:Sleep
|
|
change_nova_service_state = watcher.applier.actions.change_nova_service_state:ChangeNovaServiceState
|
|
resize = watcher.applier.actions.resize:Resize
|
|
change_node_power_state = watcher.applier.actions.change_node_power_state:ChangeNodePowerState
|
|
volume_migrate = watcher.applier.actions.volume_migration:VolumeMigrate
|
|
|
|
watcher_workflow_engines =
|
|
taskflow = watcher.applier.workflow_engine.default:DefaultWorkFlowEngine
|
|
|
|
watcher_planners =
|
|
weight = watcher.decision_engine.planner.weight:WeightPlanner
|
|
workload_stabilization = watcher.decision_engine.planner.workload_stabilization:WorkloadStabilizationPlanner
|
|
node_resource_consolidation = watcher.decision_engine.planner.node_resource_consolidation:NodeResourceConsolidationPlanner
|
|
|
|
watcher_cluster_data_model_collectors =
|
|
compute = watcher.decision_engine.model.collector.nova:NovaClusterDataModelCollector
|
|
storage = watcher.decision_engine.model.collector.cinder:CinderClusterDataModelCollector
|
|
baremetal = watcher.decision_engine.model.collector.ironic:BaremetalClusterDataModelCollector
|
|
|
|
[codespell]
|
|
skip = *.po,*.js,*.css,*.html,*.svg,HACKING.py,*hacking*,*build*,*_static*,doc/dictionary.txt,*.pyc,*.inv,*.gz,*.jpg,*.png,*.vsd,*.graffle,*.json
|
|
count =
|
|
quiet-level = 4 |