Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

# (c) 2015, Andrew Gaffney <andrew@agaffney.org> 

# (c) 2017 Ansible Project 

# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 

 

# Make coding more python3-ish 

from __future__ import (absolute_import, division, print_function) 

__metaclass__ = type 

 

DOCUMENTATION = ''' 

callback: actionable 

type: stdout 

short_description: shows only items that need attention 

description: 

- Use this callback when you dont care about OK nor Skipped. 

- This callback suppresses any non Failed or Changed status. 

version_added: "2.1" 

extends_documentation_fragment: 

- default_callback 

requirements: 

- set as stdout callback in configuration 

''' 

 

from ansible.plugins.callback.default import CallbackModule as CallbackModule_default 

 

 

class CallbackModule(CallbackModule_default): 

 

CALLBACK_VERSION = 2.0 

CALLBACK_TYPE = 'stdout' 

CALLBACK_NAME = 'actionable' 

 

def __init__(self): 

self.super_ref = super(CallbackModule, self) 

self.super_ref.__init__() 

self.last_task = None 

self.shown_title = False 

 

def v2_playbook_on_handler_task_start(self, task): 

self.super_ref.v2_playbook_on_handler_task_start(task) 

self.shown_title = True 

 

def v2_playbook_on_task_start(self, task, is_conditional): 

self.last_task = task 

self.shown_title = False 

 

def display_task_banner(self): 

if not self.shown_title: 

self.super_ref.v2_playbook_on_task_start(self.last_task, None) 

self.shown_title = True 

 

def v2_runner_on_failed(self, result, ignore_errors=False): 

self.display_task_banner() 

self.super_ref.v2_runner_on_failed(result, ignore_errors) 

 

def v2_runner_on_ok(self, result): 

if result._result.get('changed', False): 

self.display_task_banner() 

self.super_ref.v2_runner_on_ok(result) 

 

def v2_runner_on_unreachable(self, result): 

self.display_task_banner() 

self.super_ref.v2_runner_on_unreachable(result) 

 

def v2_runner_on_skipped(self, result): 

pass 

 

def v2_playbook_on_include(self, included_file): 

pass 

 

def v2_runner_item_on_ok(self, result): 

if result._result.get('changed', False): 

self.display_task_banner() 

self.super_ref.v2_runner_item_on_ok(result) 

 

def v2_runner_item_on_skipped(self, result): 

pass 

 

def v2_runner_item_on_failed(self, result): 

self.display_task_banner() 

self.super_ref.v2_runner_item_on_failed(result)