Skip to content

Commit

Permalink
v0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
frsyuki committed Oct 16, 2011
1 parent 5f60f8e commit 385eae3
Show file tree
Hide file tree
Showing 6 changed files with 106 additions and 22 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@

Release 0.2.0 - 2011/10/16

* Updated to fluentd-0.10.0


Release 0.1.1 - 2011/09/27

* First release
Expand Down
11 changes: 10 additions & 1 deletion Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ begin
gemspec.homepage = "http://fluent.github.com/"
gemspec.has_rdoc = false
gemspec.require_paths = ["lib"]
gemspec.add_dependency "fluent", "~> 0.9.14"
gemspec.add_dependency "fluentd", "~> 0.10.0"
gemspec.add_dependency "aws-sdk", "~> 1.1.3"
gemspec.test_files = Dir["test/**/*.rb"]
gemspec.files = Dir["bin/**/*", "lib/**/*", "test/**/*.rb"] +
Expand Down Expand Up @@ -49,3 +49,12 @@ end

task :default => [:build]

Rake::TestTask.new(:test) do |t|
t.libs << "test"
t.test_files = Dir["test/*.rb"].sort
t.verbose = true
#t.warning = true
end

task :default => [:build, :gemspec]

2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.2
0.2.0
25 changes: 15 additions & 10 deletions fluent-plugin-s3.gemspec
Original file line number Diff line number Diff line change
@@ -1,44 +1,49 @@
# Generated by jeweler
# DO NOT EDIT THIS FILE DIRECTLY
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
# -*- encoding: utf-8 -*-

Gem::Specification.new do |s|
s.name = %q{fluent-plugin-s3}
s.version = "0.1.2"
s.version = "0.2.0"

s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Sadayuki Furuhashi"]
s.date = %q{2011-10-06}
s.date = %q{2011-10-16}
s.email = %q{[email protected]}
s.extra_rdoc_files = [
"ChangeLog",
"README.rdoc"
"README.rdoc"
]
s.files = [
"AUTHORS",
"Rakefile",
"VERSION",
"lib/fluent/plugin/out_s3.rb"
"Rakefile",
"VERSION",
"lib/fluent/plugin/out_s3.rb",
"test/out_s3.rb"
]
s.homepage = %q{http://fluent.github.com/}
s.rdoc_options = ["--charset=UTF-8"]
s.require_paths = ["lib"]
s.rubygems_version = %q{1.3.7}
s.summary = %q{Amazon S3 output plugin for Fluent event collector}
s.test_files = [
"test/out_s3.rb"
]

if s.respond_to? :specification_version then
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
s.specification_version = 3

if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<fluent>, ["~> 0.9.14"])
s.add_runtime_dependency(%q<fluentd>, ["~> 0.10.0"])
s.add_runtime_dependency(%q<aws-sdk>, ["~> 1.1.3"])
else
s.add_dependency(%q<fluent>, ["~> 0.9.14"])
s.add_dependency(%q<fluentd>, ["~> 0.10.0"])
s.add_dependency(%q<aws-sdk>, ["~> 1.1.3"])
end
else
s.add_dependency(%q<fluent>, ["~> 0.9.14"])
s.add_dependency(%q<fluentd>, ["~> 0.10.0"])
s.add_dependency(%q<aws-sdk>, ["~> 1.1.3"])
end
end
Expand Down
22 changes: 12 additions & 10 deletions lib/fluent/plugin/out_s3.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,46 @@ def initialize
require 'time'
end

attr_accessor :aws_key_id, :aws_sec_key, :s3_bucket, :path

def configure(conf)
super

if aws_key_id = conf['aws_key_id']
@aws_key_id = aws_key_id
end
unless @aws_key_id
raise ConfigError, "'aws_key_id' parameter is required on file output"
raise ConfigError, "'aws_key_id' parameter is required on s3 output"
end

if aws_sec_key = conf['aws_sec_key']
@aws_sec_key = aws_sec_key
end
unless @aws_sec_key
raise ConfigError, "'aws_sec_key' parameter is required on file output"
raise ConfigError, "'aws_sec_key' parameter is required on s3 output"
end

if s3_bucket = conf['s3_bucket']
@s3_bucket = s3_bucket
end
unless @s3_bucket
raise ConfigError, "'s3_bucket' parameter is required on file output"
raise ConfigError, "'s3_bucket' parameter is required on s3 output"
end

if path = conf['path']
@path = path
end
unless @path
raise ConfigError, "'path' parameter is required on file output"
@path = ''
end

if @localtime
@formatter = Proc.new {|tag,event|
"#{Time.at(event.time).iso8601}\t#{tag}\t#{event.record.to_json}\n"
@formatter = Proc.new {|tag,time,record|
"#{Time.at(time).iso8601}\t#{tag}\t#{record.to_json}\n"
}
else
@formatter = Proc.new {|tag,event|
"#{Time.at(event.time).utc.iso8601}\t#{tag}\t#{event.record.to_json}\n"
@formatter = Proc.new {|tag,time,record|
"#{Time.at(time).utc.iso8601}\t#{tag}\t#{record.to_json}\n"
}
end
end
Expand All @@ -61,8 +63,8 @@ def start
@bucket = @s3.buckets[@s3_bucket]
end

def format(tag, event)
@formatter.call(tag, event)
def format(tag, time, record)
@formatter.call(tag, time, record)
end

def write(chunk)
Expand Down
63 changes: 63 additions & 0 deletions test/out_s3.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
require 'fluent/test'
require 'fluent/plugin/out_s3'

class S3OutputTest < Test::Unit::TestCase
def setup
Fluent::Test.setup
end

CONFIG = %[
aws_key_id test_key_id
aws_sec_key test_sec_key
s3_bucket test_bucket
path log
utc
buffer_type memory
]

def create_driver(conf = CONFIG)
Fluent::Test::BufferedOutputTestDriver.new(Fluent::S3Output) do
def write(chunk)
chunk.read
end
end.configure(conf)
end

def test_configure
d = create_driver
assert_equal 'test_key_id', d.instance.aws_key_id
assert_equal 'test_sec_key', d.instance.aws_sec_key
assert_equal 'test_bucket', d.instance.s3_bucket
assert_equal 'log', d.instance.path
end

def test_format
d = create_driver

time = Time.parse("2011-01-02 13:14:15 UTC").to_i
d.emit({"a"=>1}, time)
d.emit({"a"=>2}, time)

d.expect_format %[2011-01-02T13:14:15Z\ttest\t{"a":1}\n]
d.expect_format %[2011-01-02T13:14:15Z\ttest\t{"a":2}\n]

d.run
end

def test_write
d = create_driver

time = Time.parse("2011-01-02 13:14:15 UTC").to_i
d.emit({"a"=>1}, time)
d.emit({"a"=>2}, time)

# S3OutputTest#write returns chunk.read
data = d.run

assert_equal %[2011-01-02T13:14:15Z\ttest\t{"a":1}\n] +
%[2011-01-02T13:14:15Z\ttest\t{"a":2}\n],
data
end

end

0 comments on commit 385eae3

Please sign in to comment.