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 +4 -4
- data/.travis.yml +5 -5
- data/fluent-plugin-exec_cron.gemspec +3 -2
- data/lib/fluent/plugin/in_exec_cron.rb +28 -28
- metadata +21 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ed39014693c6b28aff7376560860aacd9e0f088
|
4
|
+
data.tar.gz: 84c75335858b24f125a699932e9affd05d283bae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6d28ede95c5abfca5f58546ac652949f7e9d302dafecd28f262c9bd4fd0bd0377458a6d6f9f05845dda0fa1004212ff3d146c0e29cd02e6217e0c293136f0fe
|
7
|
+
data.tar.gz: 8df766d445cfcb65da07aca3122378255b46075634fbf1baa2006ea19fa19ed2541374d8df600907b9913d3b7efc4a5e18c175052842f5eb0f77405ad3636332
|
data/.travis.yml
CHANGED
@@ -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.
|
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'
|
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
|
-
|
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
|
-
|
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
|
126
|
-
time =
|
120
|
+
|
121
|
+
if parsed_time
|
122
|
+
time = parsed_time
|
127
123
|
else
|
128
|
-
|
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.
|
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:
|
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:
|
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:
|
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.
|
177
|
+
rubygems_version: 2.4.8
|
164
178
|
signing_key:
|
165
179
|
specification_version: 4
|
166
180
|
summary: executes external programs with cron syntax.
|