fluent-plugin-exec_cron 0.0.2 → 0.0.3

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.
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.