Class: FriendlyMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_proxy_reports/friendly_message.rb

Instance Method Summary collapse

Constructor Details

#initialize(result) ⇒ FriendlyMessage

Returns a new instance of FriendlyMessage.



2
3
4
5
6
7
# File 'lib/smart_proxy_reports/friendly_message.rb', line 2

def initialize(result)
  @result = result
  @result_tree = @result["result"]
  @task_tree = @result["task"]
  @module_args_tree = @result_tree.dig("invocation", "module_args")
end

Instance Method Details

#copy_messageObject



79
80
81
# File 'lib/smart_proxy_reports/friendly_message.rb', line 79

def copy_message
  "Copy #{@module_args_tree["_original_basename"]} to #{@result_tree["dest"]}"
end

#cron_messageObject



75
76
77
# File 'lib/smart_proxy_reports/friendly_message.rb', line 75

def cron_message
  "Cron job: #{@module_args_tree["minute"]} #{@module_args_tree["hour"]} #{@module_args_tree["day"]} #{@module_args_tree["month"]} #{@module_args_tree["weekday"]} #{@module_args_tree["job"]} and disabled: #{@module_args_tree["disabled"]}"
end

#generate_messageObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/smart_proxy_reports/friendly_message.rb', line 9

def generate_message
  msg = "N/A"
  return msg if @task_tree.nil? || @task_tree["action"].nil?
  return @result_tree["msg"] if @result["failed"]

  case @task_tree["action"]
  when "ansible.builtin.package", "package" then msg = package_message
  when "ansible.builtin.known_hosts", "known_hosts" then msg = known_hosts_message
  when "ansible.builtin.pip", "pip" then msg = pip_message
  when "ansible.builtin.template", "template" then msg = template_message
  when "ansible.builtin.service", "service" then msg = service_message
  when "ansible.builtin.unarchive", "unarchive" then msg = unarchive_message
  when "ansible.builtin.group", "group" then msg = group_message
  when "ansible.builtin.user", "user" then msg = user_message
  when "ansible.builtin.cron", "cron" then msg = cron_message
  when "ansible.builtin.copy", "copy" then msg = copy_message
  when "ansible.builtin.command", "ansible.builtin.shell", "command", "shell" then msg = @result_tree["stdout_lines"]
  end
  msg
rescue StandardError => e
  logger.debug "Unable to parse result (#{e.message}): #{@result.inspect}"
  msg
end

#group_messageObject



67
68
69
# File 'lib/smart_proxy_reports/friendly_message.rb', line 67

def group_message
  "User group #{@result_tree["name"]} is #{@result_tree["state"]} with gid: #{@result_tree["gid"]}"
end

#human_readable_array(array, length = 10) ⇒ Object



33
34
35
36
37
# File 'lib/smart_proxy_reports/friendly_message.rb', line 33

def human_readable_array(array, length = 10)
  return array if array.nil?
  return array.slice(0, length).join(", ") + " and more" if array.length > length
  array.join(", ")
end

#known_hosts_messageObject



46
47
48
# File 'lib/smart_proxy_reports/friendly_message.rb', line 46

def known_hosts_message
  "#{@module_args_tree["name"]} is #{@module_args_tree["state"]} in #{@module_args_tree["path"]}"
end

#package_messageObject



39
40
41
42
43
44
# File 'lib/smart_proxy_reports/friendly_message.rb', line 39

def package_message
  packages = human_readable_array(@module_args_tree["name"])
  state = "present"
  state = @module_args_tree["state"] unless @module_args_tree["state"].nil?
  "Package(s) #{packages} are #{state}"
end

#pip_messageObject



50
51
52
53
# File 'lib/smart_proxy_reports/friendly_message.rb', line 50

def pip_message
  packages = human_readable_array(@module_args_tree["name"]) || "contained in #{@module_args_tree["requirements"]}"
  "Package(s) #{packages} are #{@module_args_tree["state"]}"
end

#service_messageObject



59
60
61
# File 'lib/smart_proxy_reports/friendly_message.rb', line 59

def service_message
  "Service #{@result_tree["name"]} is #{@result_tree["state"]} and enabled: #{@result_tree["enabled"]}"
end

#template_messageObject



55
56
57
# File 'lib/smart_proxy_reports/friendly_message.rb', line 55

def template_message
  "Render template #{@module_args_tree["_original_basename"]} to #{@result_tree["dest"]}"
end

#unarchive_messageObject



63
64
65
# File 'lib/smart_proxy_reports/friendly_message.rb', line 63

def unarchive_message
  "Archive #{@module_args_tree["src"]} unpacked into #{@module_args_tree["dest"]}"
end

#user_messageObject



71
72
73
# File 'lib/smart_proxy_reports/friendly_message.rb', line 71

def user_message
  "User #{@result_tree["name"]} is #{@result_tree["state"]} with uid: #{@result_tree["uid"]}"
end