serf_handler 0.2.1 → 0.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 00eea1fb24bfec8dfead8736d7cb23440912bf85
4
- data.tar.gz: 0782038b311bda6e41a695ef20fd03ac053dec9b
3
+ metadata.gz: 27535af1c02822c2c7522fd82505733ae6ff791f
4
+ data.tar.gz: 19564f301e7b6a89c50e48844ebf26ab11db387b
5
5
  SHA512:
6
- metadata.gz: 54ce860d1c4a1c108d661b56708dab420912cad330707593b66404cb2fb01e0bb9a9960071ae7f9e426ed19560756e28a1f5cd67d1af9e77e2f12cc16708085c
7
- data.tar.gz: c080b5a54e9cc28aded5a503015f0de1ed5658c753707deaa5a9e0382f413960effcfda3bb7f673b9278c51535760539c4e513f8df0907f428916f03eebd68e4
6
+ metadata.gz: 4a65cf643dcf1ba871cfabebfecb284fb546345d7413d5333ea942920eac2e6db4a4eb3cef0360ffd2e4ffc0e6cc05616a11313df2c8367e67b95817964bd103
7
+ data.tar.gz: ee808177d262827a4a2d50315578bd5c99718c21cb0f66761551717b51e5e385591902b67b521e22823f7cf9c3fb25c1d7d9d282a6d5ea519c5a56c3bc7be55b
@@ -5,7 +5,7 @@
5
5
  # Control services
6
6
  # serf query -tag role=web status iis
7
7
  # Control system shutdown or reboot
8
- # serf event system_ctl 'shutdown lb'
8
+ # serf query -node your_host shutdown
9
9
 
10
10
  require 'yaml'
11
11
  require 'serf_handler'
@@ -38,7 +38,7 @@ class CustomQueryHandler < SerfHandler
38
38
 
39
39
  def execute_command(command)
40
40
  result = `#{command}`
41
- log "execute #{command} => result: #{$CHILD_STATUS}"
41
+ info "execute #{command} => result: #{$CHILD_STATUS}"
42
42
  result_response $CHILD_STATUS unless command.downcase.include?('status')
43
43
  status_response result if command.downcase.include?('status')
44
44
  end
@@ -48,6 +48,7 @@ class CustomQueryHandler < SerfHandler
48
48
  response('success')
49
49
  else
50
50
  response('fail')
51
+ error 'Failed to execute the command.'
51
52
  end
52
53
  end
53
54
 
@@ -9,6 +9,7 @@ class SerfHandler
9
9
 
10
10
  def initialize(log_file = nil)
11
11
  @logger = create_logger(log_file)
12
+ set_logging if @logger.is_a? Logger
12
13
  @logger.level = Logger::INFO
13
14
  @name = ENV['SERF_SELF_NAME']
14
15
  @role = ENV['SERF_TAG_ROLE'] || ENV['SERF_SELF_ROLE']
@@ -19,6 +20,13 @@ class SerfHandler
19
20
  end
20
21
  end
21
22
 
23
+ def set_logging
24
+ @logger.formatter = proc do |sv, datetime, _pn, msg|
25
+ "[#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L')}][#{sv}] #{msg}\n"
26
+ end
27
+ @logger.level = Logger::INFO
28
+ end
29
+
22
30
  def create_logger(log_file)
23
31
  if log_file
24
32
  log_file.is_a?(String) ? Logger.new(log_file) : log_file
@@ -27,14 +35,23 @@ class SerfHandler
27
35
  end
28
36
  end
29
37
 
30
- def log(msg)
38
+ def info(msg)
31
39
  @logger.info(msg)
32
40
  end
41
+ alias_method :log, :info
42
+
43
+ def warn(msg)
44
+ @logger.warn(msg)
45
+ end
46
+
47
+ def error(msg)
48
+ @logger.error(msg)
49
+ end
33
50
 
34
51
  def response(msg)
35
52
  if msg.bytesize > 1024
36
53
  message = 'message exceeds limit of 1024 bytes.'
37
- log message
54
+ warn message
38
55
  puts message
39
56
  else
40
57
  puts msg
@@ -68,10 +85,10 @@ class SerfHandlerProxy < SerfHandler
68
85
  begin
69
86
  the_handler.send @event
70
87
  rescue NoMethodError
71
- log "#{@event} event not implemented by class"
88
+ warn "#{@event} event not implemented by class"
72
89
  end
73
90
  else
74
- log 'no handler for role'
91
+ info 'no handler for role'
75
92
  end
76
93
  end
77
94
  end
@@ -5,7 +5,7 @@ require 'serf_handler'
5
5
 
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = 'serf_handler'
8
- gem.version = '0.2.1'
8
+ gem.version = '0.2.2'
9
9
  gem.authors = ['KONNO Katsuyuki']
10
10
  gem.email = 'konno.katsuyuki@nifty.com'
11
11
  gem.description = 'Serf event handler for ruby'
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  require 'logger'
3
3
 
4
4
  describe 'SerfHandler' do
5
- context 'Check initialize process' do
5
+ context 'Check initialize process & error method' do
6
6
  before do
7
7
  ENV['SERF_SELF_NAME'] = 'local'
8
8
  ENV['SERF_SELF_ROLE'] = 'web'
@@ -23,6 +23,22 @@ describe 'SerfHandler' do
23
23
  handler = SerfHandler.new
24
24
  expect(handler.event).to eq('member_join')
25
25
  end
26
+
27
+ it 'write error' do
28
+ logger = double('Logger')
29
+ expect(logger).to receive(:level=).with(Logger::INFO)
30
+ expect(logger).to receive(:error).with('Error occurred').and_return(true)
31
+ handler = SerfHandler.new(logger)
32
+ expect(handler.error('Error occurred')).to be true
33
+ end
34
+
35
+ it 'alias_method' do
36
+ logger = double('Logger')
37
+ expect(logger).to receive(:level=).with(Logger::INFO)
38
+ expect(logger).to receive(:info).with('alias method test').and_return(true)
39
+ handler = SerfHandler.new(logger)
40
+ expect(handler.log('alias method test')).to be true
41
+ end
26
42
  end
27
43
 
28
44
  context 'Check user event processing' do
@@ -73,7 +89,7 @@ describe 'SerfHandlerProxy' do
73
89
  it 'has no method implemented' do
74
90
  logger = double('Logger')
75
91
  expect(logger).to receive(:level=).with(Logger::INFO)
76
- expect(logger).to receive(:info).with('member_join event not implemented by class').and_return(true)
92
+ expect(logger).to receive(:warn).with('member_join event not implemented by class').and_return(true)
77
93
  handler = SerfHandlerProxy.new(logger)
78
94
  handler.register('default', SerfHandler.new)
79
95
  expect(handler.run).to be true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serf_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - KONNO Katsuyuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-06 00:00:00.000000000 Z
11
+ date: 2014-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger