Coverage for watcher/applier/messaging/trigger.py: 90%
21 statements
« prev ^ index » next coverage.py v7.8.2, created at 2025-06-17 12:22 +0000
« prev ^ index » next coverage.py v7.8.2, created at 2025-06-17 12:22 +0000
1# -*- encoding: utf-8 -*-
2# Copyright (c) 2015 b<>com
3#
4# Authors: Jean-Emile DARTOIS <jean-emile.dartois@b-com.com>
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15# implied.
16# See the License for the specific language governing permissions and
17# limitations under the License.
18#
19import futurist
21from oslo_config import cfg
22from oslo_log import log
24from watcher.applier.action_plan import default
26LOG = log.getLogger(__name__)
27CONF = cfg.CONF
30class TriggerActionPlan(object):
31 def __init__(self, applier_manager):
32 self.applier_manager = applier_manager
33 workers = CONF.watcher_applier.workers
34 self.executor = futurist.GreenThreadPoolExecutor(max_workers=workers)
36 def do_launch_action_plan(self, context, action_plan_uuid):
37 try:
38 cmd = default.DefaultActionPlanHandler(context,
39 self.applier_manager,
40 action_plan_uuid)
41 cmd.execute()
42 except Exception as e:
43 LOG.exception(e)
45 def launch_action_plan(self, context, action_plan_uuid):
46 LOG.debug("Trigger ActionPlan %s", action_plan_uuid)
47 # submit
48 self.executor.submit(self.do_launch_action_plan, context,
49 action_plan_uuid)
50 return action_plan_uuid