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

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 

20 

21from oslo_config import cfg 

22from oslo_log import log 

23 

24from watcher.applier.action_plan import default 

25 

26LOG = log.getLogger(__name__) 

27CONF = cfg.CONF 

28 

29 

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) 

35 

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) 

44 

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