notifyme 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,8 +20,8 @@ module NotifyMe
20
20
 
21
21
  default_from_email = 'notifyme@' + default_host
22
22
 
23
- param[:subject] = "NotifyMe report: %s"
24
- param[:subject] = param[:subject] % task.name
23
+ param[:subject] = "NotifyMe report (#{fact(:hostname)} # #{fact(:ipaddress)}): #{task.name}"
24
+ param[:subject] = param[:subject] %
25
25
 
26
26
  param[:from_email] ||= param[:account]
27
27
  param[:from_email] ||= default_from_email
data/lib/notifyme/log.rb CHANGED
@@ -35,6 +35,10 @@ module NotifyMe
35
35
  @parameters = parameters
36
36
  end
37
37
 
38
+ def fact(name)
39
+ Facter.fact(name).value
40
+ end
41
+
38
42
  def can_log?(task)
39
43
  history = @@log_history[task.name]
40
44
  return true if history.nil?
@@ -73,6 +77,13 @@ module NotifyMe
73
77
  def to_xml(task)
74
78
  require 'rexml/document'
75
79
  xml = REXML::Element.new 'task'
80
+
81
+ extra_task_info.each do |k, v|
82
+ el = REXML::Element.new k.to_s
83
+ el.text = v.to_s
84
+ xml.add_element el
85
+ end
86
+
76
87
  fields.each do |f|
77
88
  el = REXML::Element.new f.to_s
78
89
  el.text = task.send(f)
@@ -83,7 +94,7 @@ module NotifyMe
83
94
 
84
95
  def to_csv(task)
85
96
  require 'csv'
86
- row = []
97
+ row = extra_task_info.values
87
98
  fields.each do |f|
88
99
  row << task.send(f)
89
100
  end
@@ -92,6 +103,11 @@ module NotifyMe
92
103
 
93
104
  def to_text(task)
94
105
  output = ''
106
+ output << "\nSystem info:\n---------------\n"
107
+ extra_task_info.each do |k, v|
108
+ output << "#{k}: #{v}\n"
109
+ end
110
+ output << "\nTask info:\n---------------\n"
95
111
  fields.each do |f|
96
112
  output << "#{f}: #{task.send(f)}\n"
97
113
  end
@@ -99,7 +115,7 @@ module NotifyMe
99
115
  end
100
116
 
101
117
  def to_hash(task)
102
- hash = {}
118
+ hash = extra_task_info
103
119
  fields.each do |f|
104
120
  hash[f] = task.send(f)
105
121
  end
@@ -109,6 +125,14 @@ module NotifyMe
109
125
  def fields
110
126
  [:name, :sleep_time, :start_run_time, :end_run_time, :result]
111
127
  end
128
+
129
+ def extra_task_info
130
+ {
131
+ :hostname => fact(:hostname),
132
+ :ipaddress => fact(:ipaddress),
133
+ :system => fact(:lsbdistdescription)
134
+ }
135
+ end
112
136
  end
113
137
  end
114
138
  end
@@ -1,6 +1,6 @@
1
1
  module NotifyMe
2
2
 
3
- VERSION = '1.1.3'
3
+ VERSION = '1.1.4'
4
4
  DEFAULT_CONFIG_FILE = "/root/.notifyme/notifyme_config.rb"
5
5
 
6
6
  autoload :Task, 'notifyme/task'
data/lib/notifyme.rb CHANGED
@@ -2,4 +2,5 @@ require 'rubygems'
2
2
  require 'thread'
3
3
  require 'fileutils'
4
4
  require 'syslog'
5
+ require 'facter'
5
6
  require 'notifyme/start'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notifyme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-16 00:00:00.000000000 Z
12
+ date: 2013-01-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: daemons
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.1.13
62
+ - !ruby/object:Gem::Dependency
63
+ name: facter
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 1.6.17
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.6.17
62
78
  description: NotifyMe takes care more than one tasks and process their results for
63
79
  you, it's similar to *NIX's cronjob but can do more.
64
80
  email: xianhua.zhou@gmail.com