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