Navigation Menu

Skip to content

Commit

Permalink
Merge pull request #16 from groonga/use-v0.14-api-out-groonga
Browse files Browse the repository at this point in the history
Use v0.14 api out groonga

Patch by Kentaro Hayashi. Thanks!!!
  • Loading branch information
kou committed Apr 13, 2017
2 parents d41eb4f + 6b4c826 commit 780ee73
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 21 deletions.
17 changes: 16 additions & 1 deletion lib/fluent/plugin/out_groonga.rb
Expand Up @@ -21,9 +21,13 @@

require "groonga/client"

require "fluent/plugin/output"

module Fluent
class GroongaOutput < BufferedOutput
module Plugin
class GroongaOutput < Output
Plugin.register_output("groonga", self)
helpers :compat_parameters

def initialize
super
Expand Down Expand Up @@ -70,7 +74,13 @@ def initialize
end
end

config_section :buffer do
config_set_default :@type, "memory"
config_set_default :chunk_keys, ['tag']
end

def configure(conf)
compat_parameters_convert(conf, :buffer)
super
@client = create_client(@protocol)
@client.configure(conf)
Expand Down Expand Up @@ -101,6 +111,10 @@ def format(tag, time, record)
[tag, time, record].to_msgpack
end

def formatted_to_msgpack_binary
true
end

def write(chunk)
@emitter.emit(chunk)
end
Expand Down Expand Up @@ -761,4 +775,5 @@ def read_output(context)
end
end
end
end
end
2 changes: 1 addition & 1 deletion test/output/test_table_definition.rb
Expand Up @@ -17,7 +17,7 @@

class OutputTypeTableDefinitionTest < Test::Unit::TestCase
def definition(raw={})
Fluent::GroongaOutput::TableDefinition.new(raw)
Fluent::Plugin::GroongaOutput::TableDefinition.new(raw)
end

sub_test_case "readers" do
Expand Down
4 changes: 2 additions & 2 deletions test/output/test_table_index_definition.rb
Expand Up @@ -21,15 +21,15 @@ def table_definition
:name => "Terms",
:default_tokenizer => "TokenBigram",
}
Fluent::GroongaOutput::TableDefinition.new(raw)
Fluent::Plugin::GroongaOutput::TableDefinition.new(raw)
end

def definition(raw={})
default_raw = {
:source_columns => "title",
}
raw = default_raw.merge(raw)
Fluent::GroongaOutput::TableDefinition::IndexDefinition.new(table_definition,
Fluent::Plugin::GroongaOutput::TableDefinition::IndexDefinition.new(table_definition,
raw)
end

Expand Down
2 changes: 1 addition & 1 deletion test/output/test_type_guesser.rb
Expand Up @@ -18,7 +18,7 @@
class OutputTypeGuesserTest < Test::Unit::TestCase
sub_test_case "#guess" do
def guess(sample_values)
guesser = Fluent::GroongaOutput::Schema::TypeGuesser.new(sample_values)
guesser = Fluent::Plugin::GroongaOutput::Schema::TypeGuesser.new(sample_values)
guesser.guess
end

Expand Down
36 changes: 20 additions & 16 deletions test/test_output.rb
Expand Up @@ -22,6 +22,7 @@
require "webrick/httpresponse"

require "fluent/test"
require "fluent/test/driver/output"
require "fluent/test/helpers"
require "fluent/plugin/out_groonga"

Expand All @@ -36,9 +37,8 @@ def setup_fluent
end

private
def create_driver(tag)
driver = Fluent::Test::BufferedOutputTestDriver.new(Fluent::GroongaOutput,
tag)
def create_driver
driver = Fluent::Test::Driver::Output.new(Fluent::Plugin::GroongaOutput)
driver.configure(configuration)
driver
end
Expand Down Expand Up @@ -101,10 +101,11 @@ def configuration
class CommandTest < self
def test_basic_command
@response_body = JSON.generate([[0, 0.0, 0.0], true])
driver = create_driver("groonga.command.table_create")
driver = create_driver
time = event_time("2012-10-26T08:45:42Z")
driver.emit({"name" => "Users"}, time)
driver.run
driver.run(default_tag: "groonga.command.table_create") do
driver.feed(time, {"name" => "Users"})
end
assert_equal("/d/table_create?name=Users",
@request_parser.request_url)
end
Expand All @@ -120,10 +121,11 @@ def configuration

def test_one_message
@response_body = JSON.generate([[0, 0.0, 0.0], [1]])
driver = create_driver("log")
driver = create_driver
time = event_time("2012-10-26T08:45:42Z")
driver.emit({"message" => "1st message"}, time)
driver.run
driver.run(default_tag: "log") do
driver.feed(time, {"message" => "1st message"})
end
assert_equal("/d/load?table=Logs",
@request_parser.request_url)
assert_equal([{"message" => "1st message"}],
Expand All @@ -132,11 +134,12 @@ def test_one_message

def test_multiple_messages
@response_body = JSON.generate([[0, 0.0, 0.0], [2]])
driver = create_driver("log")
driver = create_driver
time = event_time("2012-10-26T08:45:42Z")
driver.emit({"message" => "1st message"}, time)
driver.emit({"message" => "2nd message"}, time + 1)
driver.run
driver.run(default_tag: "log") do
driver.feed(time, {"message" => "1st message"})
driver.feed(time + 1, {"message" => "2nd message"})
end
assert_equal("/d/load?table=Logs",
@request_parser.request_url)
assert_equal([
Expand Down Expand Up @@ -232,10 +235,11 @@ def actual_output_fd

class CommandTest < self
def test_basic_command
driver = create_driver("groonga.command.table_create")
driver = create_driver
time = event_time("2012-10-26T08:45:42Z")
driver.emit({"name" => "Users"}, time)
driver.run
driver.run(default_tag: "groonga.command.table_create") do
driver.feed(time, {"name" => "Users"})
end
assert_equal([
[
"--input-fd", actual_input_fd,
Expand Down

0 comments on commit 780ee73

Please sign in to comment.