lrc_handler 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 737fa2ad6b5b97e3cd79363e0e7429b575b37e78
4
- data.tar.gz: ddeaf8c06ae83ec8313d2292b002942034e0ab2c
3
+ metadata.gz: b26c6c4d52ceefdd8d519142f5230e5ee4b3436e
4
+ data.tar.gz: 8aff525c170fe6dc141edfcae3ecb297c53e2477
5
5
  SHA512:
6
- metadata.gz: bb97900a9be6dd451700827e9abe744bbd8631ccf497d8562b3fdd10a7c7a4c5fe2d0df0e3e688fef13a4dc7e1e985445dbde3d669072dbb19398a177129b821
7
- data.tar.gz: 7ef8f62349e2974de5b079636d7cc48098d5cf196fc787b6e923219a71b41de49602cd0baa065b8debe0c1ba2225137d9e6f6b3ba8ae6c0005fbd9361b7ff985
6
+ metadata.gz: 6ea58873681971f39ff5e49153daa2dd699c4ab46aa432c0a52c947f123386deca48157d88495c69d8b67513a8f3078acfbbfa1d4dc4a9518622e9f777a639d2
7
+ data.tar.gz: 5a35e052299efaf82172c2b453244d8059d0b951e5315890722b1093e06b4e1ccc17a01018a4094915e8b0a7f978c9cf29adbb83cdc823a17bf3d67be42dd042
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # changelog
2
2
 
3
+ ## v 0.1.3
4
+
5
+ - fix ruby syntax (rubocop compliant)
6
+ - remove debug informations
7
+ - add version chef in report
8
+
3
9
  ## v 0.1.2
4
10
 
5
11
  - fix HTTPS capability
data/README.md CHANGED
@@ -24,4 +24,17 @@ lrc_server_options :url => 'https://lrc.lbn.fr'
24
24
  lrc_reports_upload true
25
25
  # add following line to manage reports verbosity. Allowed values are debug, notice and error
26
26
  lrc_reports_level "notice"
27
- ```
27
+ ```
28
+
29
+ ## packaging
30
+
31
+ Edit the `lib\lbn_report_chef\version.rb` with a new version
32
+
33
+ run the following command:
34
+
35
+ ```sh
36
+ gem build lrc_handler.gemspec
37
+ gem push lrc_handler-x.x.x.gem
38
+ ```
39
+
40
+ gem push require that you can login to rubygems.org
@@ -1,3 +1,4 @@
1
+ # import files
1
2
  require "#{File.dirname(__FILE__)}/lrc_reporting"
2
3
  require "#{File.dirname(__FILE__)}/lrc_resource_reporter"
3
4
  require "#{File.dirname(__FILE__)}/lrc_uploader"
@@ -15,32 +16,30 @@ module ChefHandlerLrc
15
16
  def lrc_server_options(options = {})
16
17
  options[:client_key] = client_key || '/etc/chef/client.pem' unless options[:client_key]
17
18
  raise 'No LRC URL! Please provide a URL' unless options[:url]
18
- @lrc_uploader = LrcUploader.new(options)
19
- # set uploader if handlers are already created
20
- @lrc_report_handler.uploader = @lrc_uploader if @lrc_report_handler
21
- @lrc_reporter.uploader = @lrc_uploader if @lrc_reporter
19
+ @lrc_uploader = LrcUploader.new(options)
20
+ @lrc_report_handler.uploader = @lrc_uploader if @lrc_report_handler
21
+ @lrc_reporter.uploader = @lrc_uploader if @lrc_reporter
22
22
  end
23
23
 
24
24
  def lrc_reports_upload(upload, mode = 1)
25
- if upload
26
- case mode
27
- when 1
28
- @lrc_reporter = LrcResourceReporter.new(nil)
29
- @lrc_reporter.uploader = @lrc_uploader
30
- @lrc_reporter.log_level = @lrc_reports_level
31
- if Chef::Config[:event_handlers].is_a?(Array)
32
- Chef::Config[:event_handlers].push @lrc_reporter
33
- else
34
- Chef::Config[:event_handlers] = [@lrc_reporter]
35
- end
36
- when 2
37
- @lrc_report_handler = LrcReporting.new
38
- @lrc_report_handler.uploader = @lrc_uploader
39
- report_handlers << @lrc_report_handler
40
- exception_handlers << @lrc_report_handler
25
+ return unless upload
26
+ case mode
27
+ when 1
28
+ @lrc_reporter = LrcResourceReporter.new(nil)
29
+ @lrc_reporter.uploader = @lrc_uploader
30
+ @lrc_reporter.log_level = @lrc_reports_level
31
+ if Chef::Config[:event_handlers].is_a?(Array)
32
+ Chef::Config[:event_handlers].push @lrc_reporter
41
33
  else
42
- raise ArgumentError, 'unknown mode: ' + mode.to_s
34
+ Chef::Config[:event_handlers] = [@lrc_reporter]
43
35
  end
36
+ when 2
37
+ @lrc_report_handler = LrcReporting.new
38
+ @lrc_report_handler.uploader = @lrc_uploader
39
+ report_handlers << @lrc_report_handler
40
+ exception_handlers << @lrc_report_handler
41
+ else
42
+ raise ArgumentError, 'unknown mode: ' + mode.to_s
44
43
  end
45
44
  end
46
45
 
@@ -48,9 +47,8 @@ module ChefHandlerLrc
48
47
  def reports_log_level(level)
49
48
  raise ArgumentError, 'unknown level: ' + level.to_s unless %w(error notice debug).include?(level)
50
49
  @lrc_reports_level = level
51
- if @lrc_reporter
52
- @lrc_reporter.log_level = level
53
- end
50
+ return unless @lrc_reporter
51
+ @lrc_reporter.log_level = level
54
52
  end
55
53
  end
56
54
  end
@@ -24,7 +24,7 @@ module ChefHandlerLrc
24
24
  times[resource_name] += resource.elapsed_time
25
25
  end
26
26
  end
27
- metrics['time'] = times.merge!({ 'total' => run_status.elapsed_time })
27
+ metrics['time'] = times.merge!('total' => run_status.elapsed_time)
28
28
  report['metrics'] = metrics
29
29
 
30
30
  logs = []
@@ -41,7 +41,6 @@ module ChefHandlerLrc
41
41
  end
42
42
  l['log']['messages']['message'] = message
43
43
  l['log']['sources']['source'] = [resource.resource_name.to_s, resource.name].join(' ')
44
- # Chef::Log.info("Diff is #{l['log']['messages']['message']}")
45
44
  logs << l
46
45
  end
47
46
 
@@ -52,7 +51,7 @@ module ChefHandlerLrc
52
51
  'sources' => { 'source' => 'chef' },
53
52
  'messages' => { 'message' => run_status.exception },
54
53
  'level' => 'err',
55
- }
54
+ },
56
55
  }
57
56
  end
58
57
 
@@ -68,7 +67,7 @@ module ChefHandlerLrc
68
67
  if uploader
69
68
  uploader.foreman_request('/report', report, node.name)
70
69
  else
71
- Chef::Log.error 'No uploader registered for foreman reporting, skipping report upload'
70
+ Chef::Log.error 'No uploader registered for lrc reporting, skipping report upload'
72
71
  end
73
72
  end
74
73
  end
@@ -27,9 +27,8 @@ module ChefHandlerLrc
27
27
  @status = 'failure'
28
28
  # If we failed before we received the run_started callback, there's not much we can do
29
29
  # in terms of reporting
30
- if @run_status
31
- post_reporting_data
32
- end
30
+ return unless @run_status
31
+ post_reporting_data
33
32
  end
34
33
 
35
34
  def resource_current_state_loaded(new_resource, action, current_resource)
@@ -60,14 +59,13 @@ module ChefHandlerLrc
60
59
  end
61
60
 
62
61
  def resource_completed(new_resource)
63
- if @pending_update && !nested_resource?(new_resource)
64
- @pending_update.finish
65
- @updated_resources << @pending_update
66
- @pending_update = nil
67
- end
62
+ return unless @pending_update && !nested_resource?(new_resource)
63
+ @pending_update.finish
64
+ @updated_resources << @pending_update
65
+ @pending_update = nil
68
66
  end
69
67
 
70
- def resource_bypassed(*args)
68
+ def resource_bypassed(*)
71
69
  @why_run = true
72
70
  end
73
71
 
@@ -79,7 +77,7 @@ module ChefHandlerLrc
79
77
  begin
80
78
  Chef::Log.debug('Sending data to report API ...')
81
79
  if uploader
82
- uploader.lrc_request('/report', { 'report' => run_data })
80
+ uploader.lrc_request('/report', 'report' => run_data)
83
81
  else
84
82
  Chef::Log.error 'No uploader registered for LRC reporting, skipping report upload'
85
83
  end
@@ -130,10 +128,10 @@ module ChefHandlerLrc
130
128
  end
131
129
 
132
130
  def resources_per_time
133
- @run_status.all_resources.inject({}) do |memo, resource|
134
- name, time = resource.resource_name.to_s, resource.elapsed_time || 0
131
+ @run_status.all_resources.each_with_object({}) do |resource, memo|
132
+ name = resource.resource_name.to_s
133
+ time = resource.elapsed_time || 0
135
134
  memo[name] = memo[name] ? memo[name] + time : time
136
- memo
137
135
  end
138
136
  end
139
137
 
@@ -168,16 +166,16 @@ module ChefHandlerLrc
168
166
 
169
167
  def resource_level(resource)
170
168
  if !resource.exception.nil?
171
- return 'err'
169
+ 'err'
172
170
  elsif resource.new_resource.updated
173
- return 'notice'
171
+ 'notice'
174
172
  else
175
- return 'debug'
173
+ 'debug'
176
174
  end
177
175
  end
178
176
 
179
177
  def chef_log
180
- message = 'run'
178
+ message = 'chef-client run'
181
179
  if @status == 'success' && exception.nil?
182
180
  level = 'notice'
183
181
  else
@@ -186,7 +184,7 @@ module ChefHandlerLrc
186
184
  end
187
185
 
188
186
  { 'log' => {
189
- 'sources' => { 'source' => 'Chef' },
187
+ 'sources' => { 'source' => "chef-client #{Chef::VERSION}" },
190
188
  'messages' => { 'message' => message },
191
189
  'level' => level,
192
190
  } }
@@ -198,13 +196,7 @@ module ChefHandlerLrc
198
196
  # 'error' means only errors
199
197
 
200
198
  def filter_logs(logs)
201
- if log_level == 'error'
202
- logs.select { |log| log['log']['level'] == 'err' }
203
- elsif log_level == 'notice'
204
- logs.select { |log| %w(err,notice).include? log['log']['level'] }
205
- else
206
- logs
207
- end
199
+ logs.select { |log| ['err','notice'].include? log['log']['level'] }
208
200
  end
209
201
  end
210
202
  end
@@ -12,15 +12,15 @@ module ChefHandlerLrc
12
12
  def lrc_request(path, body, method = 'post')
13
13
  uri = URI.parse(options[:url])
14
14
  http = Net::HTTP.new(uri.host, uri.port)
15
- http.use_ssl = true
16
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
15
+ http.use_ssl = true
16
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
17
17
  req = Net::HTTP.const_get(method.capitalize).new("#{uri}#{path}")
18
- req.add_field('Accept','application/json')
19
- req.add_field('Content-Type','application/json')
18
+ req.add_field('Accept', 'application/json')
19
+ req.add_field('Content-Type', 'application/json')
20
20
  req.body = body.to_json
21
21
  response = http.request(req)
22
22
  Chef::Log.info("The report API has return: #{response.inspect} from #{uri}#{path}")
23
- Chef::Log.debug("Report Content: #{body.to_json}")
23
+ Chef::Log.debug("Report Content: #{body.to_json}")
24
24
  end
25
25
  end
26
26
  end
@@ -1,3 +1,3 @@
1
1
  module ChefHandlerLrc
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.1.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lrc_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - team-chef
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-09 00:00:00.000000000 Z
11
+ date: 2017-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler