Skip to content

Commit

Permalink
Merge pull request #5 from dlackty/fix-up-tag-rewrite
Browse files Browse the repository at this point in the history
Fix tag rewrite and switch to minitest
  • Loading branch information
dlackty committed Jan 8, 2016
2 parents e30e4e8 + fb27761 commit 291bfaf
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 35 deletions.
3 changes: 2 additions & 1 deletion fluent-plugin-remote_syslog.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ Gem::Specification.new do |spec|

spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "test-unit-minitest"
spec.add_development_dependency "minitest"

spec.add_runtime_dependency "fluentd"
spec.add_runtime_dependency "fluent-mixin-plaintextformatter"
spec.add_runtime_dependency "remote_syslog_logger", "~> 1.0.0"
spec.add_runtime_dependency "fluent-mixin-config-placeholders", "~> 0.2.0"
spec.add_runtime_dependency "fluent-mixin-config-placeholders"
spec.add_runtime_dependency "fluent-mixin-rewrite-tag-name"
end
25 changes: 11 additions & 14 deletions lib/fluent/plugin/out_remote_syslog.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,12 @@ class RemoteSyslogOutput < Fluent::Output
def initialize
super
require "remote_syslog_logger"
end

def configure(conf)
super
@logger = RemoteSyslogLogger::UdpSender.new(@host,
@port,
facility: @facility,
severity: @severity,
program: @tag,
local_hostname: @hostname)
@loggers = {}
end

def shutdown
super
@logger.close if @logger
@loggers.values.each(&:close)
end

def emit(tag, es, chain)
Expand All @@ -48,10 +39,16 @@ def emit(tag, es, chain)
v.force_encoding("utf-8")
end
end
emit_tag = tag.dup
filter_record(emit_tag, time, record)

@logger.transmit format(tag, time, record)
tag = rewrite_tag!(tag.dup)
@loggers[tag] ||= RemoteSyslogLogger::UdpSender.new(@host,
@port,
facility: @facility,
severity: @severity,
program: tag,
local_hostname: @hostname)

@loggers[tag].transmit format(tag, time, record)
end
end
end
Expand Down
60 changes: 43 additions & 17 deletions test/plugin/out_remote_syslog.rb
Original file line number Diff line number Diff line change
@@ -1,36 +1,62 @@
require "test_helper"
require "fluent/plugin/out_remote_syslog"

class RemoteSyslogOutputTest < Test::Unit::TestCase
class RemoteSyslogOutputTest < MiniTest::Unit::TestCase
def setup
super
Fluent::Test.setup
end

CONFIG = %[
type remote_syslog
hostname foo.com
host example.com
port 5566
severity debug
tag testunit
]

def create_driver(conf = CONFIG)
Fluent::Test::OutputTestDriver.new(Fluent::RemoteSyslogOutput) {}.configure(conf)
def create_driver(conf = CONFIG, tag = "test.remote_syslog")
Fluent::Test::OutputTestDriver.new(Fluent::RemoteSyslogOutput, tag) {}.configure(conf)
end

def test_configure
d = create_driver
logger = d.instance.instance_variable_get(:@logger)
d = create_driver %[
type remote_syslog
hostname foo.com
host example.com
port 5566
severity debug
tag minitest
]

d.run do
d.emit(message: "foo")
end

loggers = d.instance.instance_variable_get(:@loggers)
refute_empty loggers

logger = loggers.values.first

assert_not_nil logger
assert_equal "example.com", logger.instance_variable_get(:@remote_hostname)
assert_equal 5566, logger.instance_variable_get(:@remote_port)

p = logger.instance_variable_get(:@packet)
assert_equal "foo.com", p.hostname
assert_equal 1, p.facility
assert_equal "testunit", p.tag
assert_equal "minitest", p.tag
assert_equal 7, p.severity
end

def test_rewrite_tag
d = create_driver %[
type remote_syslog
hostname foo.com
host example.com
port 5566
severity debug
tag rewrited.${tag_parts[1]}
]

d.run do
d.emit(message: "foo")
end

loggers = d.instance.instance_variable_get(:@loggers)
logger = loggers.values.first

p = logger.instance_variable_get(:@packet)
assert_equal "rewrited.remote_syslog", p.tag
end
end
8 changes: 5 additions & 3 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
$LOAD_PATH.unshift(File.dirname(__FILE__))

require 'test/unit'
require 'fluent/test'
require "minitest/autorun"
require "minitest/unit"
require "minitest/pride"
require "fluent/test"

0 comments on commit 291bfaf

Please sign in to comment.