haproxy2rpm 0.1.0 → 0.1.1

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.
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v 0.1.1
4
+
5
+ * BUGFIX: hostnames with hyphens e.g s-app-1 break the syslog parser
6
+
3
7
  ## v 0.1.0
4
8
 
5
9
  * Make Syslog parsing independent from haproxy
@@ -14,7 +14,7 @@ module Haproxy2Rpm
14
14
  second = "(?:[0-5][0-9])"
15
15
  time = [hour, minute, second].join(":")
16
16
  timestamp = "(?<timestamp>#{month} #{day} #{time})"
17
- hostname = "(?<hostname>[A-Za-z0-9_.:]+)"
17
+ hostname = "(?<hostname>[A-Za-z0-9_.:\-]+)"
18
18
  header = timestamp + " " + hostname
19
19
  tag = '(?<tag>[a-zA-Z_\-\/\.0-9\[\]]+)'
20
20
  message = "(?<message>[ -~]+)" # ascii 32 to 126
@@ -31,9 +31,10 @@ module Haproxy2Rpm
31
31
 
32
32
  def receive_data(data)
33
33
  match = parse_data(data)
34
- puts match.inspect
35
34
  message = match ? match[5] : ""
36
35
  Haproxy2Rpm.logger.debug "RECEIVED (syslog): #{data}"
36
+ Haproxy2Rpm.logger.debug "PARSED DATA (syslog): #{match.inspect}"
37
+ Haproxy2Rpm.logger.debug "PARSED PAYLOAD (syslog): #{message}"
37
38
  Haproxy2Rpm.rpm.process_and_send(message)
38
39
  end
39
40
 
@@ -1,3 +1,3 @@
1
1
  module Haproxy2Rpm
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -2,7 +2,7 @@ $LOAD_PATH.unshift( File.dirname(__FILE__) )
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- FIXTURE_SYSLOG_MESSAGE = "<12>Jan 3 16:18:58 rechenschieber.local nodejs[36180]: message"
5
+ FIXTURE_SYSLOG_MESSAGE = "<12>Jan 3 16:18:58 rechenschieber.local nodejs[36180]: OPTIONS / 200 1"
6
6
 
7
7
  class RpmTest < Test::Unit::TestCase
8
8
  context 'regex maching' do
@@ -27,7 +27,19 @@ class RpmTest < Test::Unit::TestCase
27
27
  end
28
28
 
29
29
  should 'match the message' do
30
- assert_equal 'message', @match[5]
30
+ assert_equal 'OPTIONS / 200 1', @match[5]
31
+ end
32
+ end
33
+
34
+ context 'valid hostnames' do
35
+ setup do
36
+ @parser = Haproxy2Rpm::SyslogHandler.new(self)
37
+ end
38
+
39
+ should 'support hostnames with hyphens' do
40
+ expected_hostname = 's-app-2'
41
+ actual_hostname = @parser.parse_data(syslog_entry(:hostname => expected_hostname))[3]
42
+ assert_equal expected_hostname, actual_hostname
31
43
  end
32
44
  end
33
45
  end
@@ -19,6 +19,7 @@ Haproxy2Rpm.logger = DummyLogger.new
19
19
 
20
20
  def syslog_entry(options = {})
21
21
  defaults = {
22
+ :hostname => 'localhost',
22
23
  :tq => 6559,
23
24
  :tw => 100,
24
25
  :tc => 7,
@@ -31,7 +32,7 @@ def syslog_entry(options = {})
31
32
  }
32
33
  defaults.merge!(options)
33
34
  log_line = <<LOG_LINE
34
- Aug 1 15:28:03 ip-10-58-122-30.eu-west-1.compute.internal haproxy[674]: 127.0.0.1:33319 [15/Oct/2003:08:31:57] relais-http Srv1 #{defaults[:tq]}/#{defaults[:tw]}/#{defaults[:tc]}/#{defaults[:tr]}/#{defaults[:tt]} #{defaults[:status_code]} 243 - - ---- 1/3/5 0/0 "#{defaults[:http_method]} #{defaults[:http_path]}#{defaults[:http_query] ? "?#{defaults[:http_query]}" : ''} HTTP/1.0"
35
+ <113>Aug 1 15:28:03 #{defaults[:hostname]} haproxy[674]: 127.0.0.1:33319 [15/Oct/2003:08:31:57] relais-http Srv1 #{defaults[:tq]}/#{defaults[:tw]}/#{defaults[:tc]}/#{defaults[:tr]}/#{defaults[:tt]} #{defaults[:status_code]} 243 - - ---- 1/3/5 0/0 "#{defaults[:http_method]} #{defaults[:http_path]}#{defaults[:http_query] ? "?#{defaults[:http_query]}" : ''} HTTP/1.0"
35
36
  LOG_LINE
36
37
  end
37
38
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haproxy2rpm
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Patrick Huesler
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-01-03 00:00:00 +01:00
19
+ date: 2012-01-04 00:00:00 +01:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency