[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/
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 :: 2
    Programming Language :: Python :: 2.7
    Programming Language :: Python :: 3
    Programming Language :: Python :: 3.5

[files]
packages =
    watcher
data_files =
    etc/ = etc/*

[global]
setup-hooks =
    pbr.hooks.setup_hook

[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

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

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

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


[compile_catalog]
directory = watcher/locale
domain = watcher

[update_catalog]
domain = watcher
output_dir = watcher/locale
input_file = watcher/locale/watcher.pot

[extract_messages]
keywords = _ gettext ngettext l_ lazy_gettext _LI _LW _LE _LC
mapping_file = babel.cfg
output_file = watcher/locale/watcher.pot