fluent-plugin-exec_cron 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cbbcf3f7345626fd259b551bebfca72f62a994cd
4
- data.tar.gz: 24ca495172005d6079578070c02ad81a371023ad
3
+ metadata.gz: 8ed39014693c6b28aff7376560860aacd9e0f088
4
+ data.tar.gz: 84c75335858b24f125a699932e9affd05d283bae
5
5
  SHA512:
6
- metadata.gz: f4f551d1ef67f94df3df94f9b1423c1157cd1c9e4e2c57c4b8d1f1ab1e4e2715442075e6158076426eca32688aab17b6132f4166d2d079eae166e10a46982a3b
7
- data.tar.gz: 98b8abdcf12ef59e76b02b2b9c01b609eaeee4016cf55a89e6a10172d9d2c925fd2f96b1c069f54243c45f9227a044f72b0da2289c629f419114aa28a579a6ad
6
+ metadata.gz: a6d28ede95c5abfca5f58546ac652949f7e9d302dafecd28f262c9bd4fd0bd0377458a6d6f9f05845dda0fa1004212ff3d146c0e29cd02e6217e0c293136f0fe
7
+ data.tar.gz: 8df766d445cfcb65da07aca3122378255b46075634fbf1baa2006ea19fa19ed2541374d8df600907b9913d3b7efc4a5e18c175052842f5eb0f77405ad3636332
@@ -3,13 +3,13 @@ language: ruby
3
3
  rvm:
4
4
  - 1.9.3
5
5
  - 2.0.0
6
- - 2.1
7
-
8
- os:
9
- - linux
10
- - osx
6
+ - 2.1.*
7
+ - 2.2.*
11
8
 
12
9
  gemfile:
13
10
  - Gemfile
14
11
 
12
+ before_install:
13
+ - gem update bundler
14
+
15
15
  script: 'bundle exec rake test'
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "fluent-plugin-exec_cron"
5
- gem.version = "0.0.2"
5
+ gem.version = "0.0.3"
6
6
  gem.summary = %q{executes external programs with cron syntax.}
7
7
  gem.description = %q{executes external programs with cron syntax.}
8
8
  gem.license = "MIT"
@@ -16,11 +16,12 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ['lib']
17
17
 
18
18
  gem.add_runtime_dependency "parse-cron"
19
- gem.add_development_dependency 'bundler', '~> 1.7.2'
19
+ gem.add_development_dependency 'bundler'
20
20
  gem.add_development_dependency 'fluentd'
21
21
  gem.add_development_dependency 'pry', '~> 0.10.1'
22
22
  gem.add_development_dependency 'rake', '~> 10.3.2'
23
23
  gem.add_development_dependency 'rubocop', '~> 0.24.1'
24
24
  gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
25
25
  gem.add_development_dependency 'yard', '~> 0.8'
26
+ gem.add_development_dependency "test-unit"
26
27
  end
@@ -10,22 +10,12 @@ module Fluent
10
10
  require 'erb'
11
11
  end
12
12
 
13
- SUPPORTED_FORMAT = {
14
- 'tsv' => :tsv,
15
- 'json' => :json,
16
- 'msgpack' => :msgpack,
17
- }
18
-
19
13
  unless method_defined?(:router)
20
14
  define_method("router") { Fluent::Engine }
21
15
  end
22
16
 
23
17
  config_param :command, :string
24
- config_param :format, :default => :tsv do |val|
25
- f = SUPPORTED_FORMAT[val]
26
- raise ConfigError, "Unsupported format '#{val}'" unless f
27
- f
28
- end
18
+ config_param :format, :string, :default => 'tsv'
29
19
  config_param :keys, :default => [] do |val|
30
20
  val.split(',')
31
21
  end
@@ -64,17 +54,7 @@ module Fluent
64
54
  end
65
55
  end
66
56
 
67
- case @format
68
- when :tsv
69
- if @keys.empty?
70
- raise ConfigError, "keys option is required on exec input for tsv format"
71
- end
72
- @parser = ExecUtil::TSVParser.new(@keys, method(:on_message))
73
- when :json
74
- @parser = ExecUtil::JSONParser.new(method(:on_message))
75
- when :msgpack
76
- @parser = ExecUtil::MessagePackParser.new(method(:on_message))
77
- end
57
+ @parser = setup_parser(conf)
78
58
 
79
59
  begin
80
60
  @cron_parser = CronParser.new(@cron)
@@ -84,6 +64,22 @@ module Fluent
84
64
  @command = ERB.new(@command.gsub(/\$\{([^}]+)\}/, '<%= \1 %>'))
85
65
  end
86
66
 
67
+ def setup_parser(conf)
68
+ case @format
69
+ when 'tsv'
70
+ if @keys.empty?
71
+ raise ConfigError, "keys option is required on exec input for tsv format"
72
+ end
73
+ ExecUtil::TSVParser.new(@keys, method(:on_message))
74
+ when 'json'
75
+ ExecUtil::JSONParser.new(method(:on_message))
76
+ when 'msgpack'
77
+ ExecUtil::MessagePackParser.new(method(:on_message))
78
+ else
79
+ ExecUtil::TextParserWrapperParser.new(conf, method(:on_message))
80
+ end
81
+ end
82
+
87
83
  def start
88
84
  @finished = false
89
85
  @thread = Thread.new(&method(:run_periodic))
@@ -115,19 +111,23 @@ module Fluent
115
111
 
116
112
  private
117
113
 
118
- def on_message(record)
114
+ def on_message(record, parsed_time = nil)
119
115
  if val = record.delete(@tag_key)
120
116
  tag = val
121
117
  else
122
118
  tag = @tag
123
119
  end
124
-
125
- if val = record.delete(@time_key)
126
- time = @time_parse_proc.call(val)
120
+
121
+ if parsed_time
122
+ time = parsed_time
127
123
  else
128
- time = Engine.now
124
+ if val = record.delete(@time_key)
125
+ time = @time_parse_proc.call(val)
126
+ else
127
+ time = Engine.now
128
+ end
129
129
  end
130
-
130
+
131
131
  router.emit(tag, time, record)
132
132
  rescue => e
133
133
  log.error "exec failed to emit", :error => e.to_s, :error_class => e.class.to_s, :tag => tag, :record => Yajl.dump(record)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-exec_cron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroshi Toyama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-02 00:00:00.000000000 Z
11
+ date: 2016-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parse-cron
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.7.2
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 1.7.2
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: fluentd
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.8'
125
+ - !ruby/object:Gem::Dependency
126
+ name: test-unit
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  description: executes external programs with cron syntax.
126
140
  email: toyama0919@gmail.com
127
141
  executables: []
@@ -160,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
174
  version: '0'
161
175
  requirements: []
162
176
  rubyforge_project:
163
- rubygems_version: 2.4.2
177
+ rubygems_version: 2.4.8
164
178
  signing_key:
165
179
  specification_version: 4
166
180
  summary: executes external programs with cron syntax.