fluent-plugin-slack 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +2 -1
- data/VERSION +1 -1
- data/example.conf +2 -1
- data/lib/fluent/plugin/out_buffered_slack.rb +12 -6
- data/lib/fluent/plugin/out_slack.rb +12 -6
- data/test/plugin/test_out_slack.rb +65 -0
- data/test/plugin/test_slack_client.rb +5 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e923290cae0a22d361507caceed0cbd717effac
|
4
|
+
data.tar.gz: e91f21aec9e58b4a32ae9795273f66eba888dcbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de4ddc0641fa1c3d1249ea79869376866caceabf93901fb2b8c855d9de041e05009191c6c0fa63715136503fb5f8f0d55eb9ca389a0ceec85d2d22a12357f56b
|
7
|
+
data.tar.gz: dcabceb85494457fc1644da528257bc34275e164e6d3a1e5ae0326a011f3927f897320577f5c91aa45f8add882449461b97430934b1b1fc0cf195a37df490393
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -54,7 +54,8 @@ fluent_logger.post('slack', {
|
|
54
54
|
|token|Token for Web API (Required for Web API mode)||
|
55
55
|
|username|name of bot|fluentd|
|
56
56
|
|color|color to use|good|
|
57
|
-
|icon_emoji|emoji to use as the icon|`:question:`|
|
57
|
+
|icon_emoji|emoji to use as the icon. either of icon_emoji or icon_url can be specified|`:question:`|
|
58
|
+
|icon_url|url to an image to use as the icon. either of icon_emoji or icon_url can be specified|nil|
|
58
59
|
|channel|channel to send messages (without first '#')||
|
59
60
|
|channel_keys|keys used to format channel. %s will be replaced with value specified by channel_keys if this option is used|nil|
|
60
61
|
|title|title format. %s will be replaced with value specified by title_keys. title is created from the first appeared record on each tag|nil|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/example.conf
CHANGED
@@ -7,7 +7,8 @@
|
|
7
7
|
token "#{ENV['TOKEN']}"
|
8
8
|
username fluentd
|
9
9
|
color good
|
10
|
-
icon_emoji :ghost:
|
10
|
+
icon_emoji :ghost: # if you want to use icon_url, delete this param.
|
11
|
+
#icon_url http://www.google.com/s2/favicons?domain=www.google.de
|
11
12
|
channel general
|
12
13
|
message %s %s
|
13
14
|
message_keys tag,message
|
@@ -15,7 +15,8 @@ module Fluent
|
|
15
15
|
config_param :token, :string, default: nil # api token
|
16
16
|
config_param :username, :string, default: 'fluentd'
|
17
17
|
config_param :color, :string, default: 'good'
|
18
|
-
config_param :icon_emoji, :string, default:
|
18
|
+
config_param :icon_emoji, :string, default: nil
|
19
|
+
config_param :icon_url, :string, default: nil
|
19
20
|
config_param :auto_channels_create, :bool, default: false
|
20
21
|
|
21
22
|
config_param :channel, :string
|
@@ -91,6 +92,11 @@ module Fluent
|
|
91
92
|
end
|
92
93
|
end
|
93
94
|
|
95
|
+
if @icon_emoji and @icon_url
|
96
|
+
raise Fluent::ConfigError, "either of `icon_emoji` or `icon_url` can be specified"
|
97
|
+
end
|
98
|
+
@icon_emoji ||= ':question:' unless @icon_url
|
99
|
+
|
94
100
|
@post_message_opts = @auto_channels_create ? {auto_channels_create: true} : {}
|
95
101
|
end
|
96
102
|
|
@@ -124,11 +130,11 @@ module Fluent
|
|
124
130
|
|
125
131
|
def common_payload
|
126
132
|
return @common_payload if @common_payload
|
127
|
-
@common_payload = {
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
@common_payload[:token]
|
133
|
+
@common_payload = {}
|
134
|
+
@common_payload[:username] = @username
|
135
|
+
@common_payload[:icon_emoji] = @icon_emoji if @icon_emoji
|
136
|
+
@common_payload[:icon_url] = @icon_url if @icon_url
|
137
|
+
@common_payload[:token] = @token if @token
|
132
138
|
@common_payload
|
133
139
|
end
|
134
140
|
|
@@ -15,7 +15,8 @@ module Fluent
|
|
15
15
|
config_param :token, :string, default: nil # api token
|
16
16
|
config_param :username, :string, default: 'fluentd'
|
17
17
|
config_param :color, :string, default: 'good'
|
18
|
-
config_param :icon_emoji, :string, default:
|
18
|
+
config_param :icon_emoji, :string, default: nil
|
19
|
+
config_param :icon_url, :string, default: nil
|
19
20
|
config_param :auto_channels_create, :bool, default: false
|
20
21
|
|
21
22
|
config_param :channel, :string
|
@@ -91,6 +92,11 @@ module Fluent
|
|
91
92
|
end
|
92
93
|
end
|
93
94
|
|
95
|
+
if @icon_emoji and @icon_url
|
96
|
+
raise Fluent::ConfigError, "either of `icon_emoji` or `icon_url` can be specified"
|
97
|
+
end
|
98
|
+
@icon_emoji ||= ':question:' unless @icon_url
|
99
|
+
|
94
100
|
@post_message_opts = @auto_channels_create ? {auto_channels_create: true} : {}
|
95
101
|
end
|
96
102
|
|
@@ -124,11 +130,11 @@ module Fluent
|
|
124
130
|
|
125
131
|
def common_payload
|
126
132
|
return @common_payload if @common_payload
|
127
|
-
@common_payload = {
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
@common_payload[:token]
|
133
|
+
@common_payload = {}
|
134
|
+
@common_payload[:username] = @username
|
135
|
+
@common_payload[:icon_emoji] = @icon_emoji if @icon_emoji
|
136
|
+
@common_payload[:icon_url] = @icon_url if @icon_url
|
137
|
+
@common_payload[:token] = @token if @token
|
132
138
|
@common_payload
|
133
139
|
end
|
134
140
|
|
@@ -7,6 +7,7 @@ class SlackOutputTest < Test::Unit::TestCase
|
|
7
7
|
def setup
|
8
8
|
super
|
9
9
|
Fluent::Test.setup
|
10
|
+
@icon_url = 'http://www.google.com/s2/favicons?domain=www.google.de'
|
10
11
|
end
|
11
12
|
|
12
13
|
CONFIG = %[
|
@@ -137,6 +138,28 @@ class SlackOutputTest < Test::Unit::TestCase
|
|
137
138
|
end
|
138
139
|
end
|
139
140
|
|
141
|
+
def test_icon_configure
|
142
|
+
# default
|
143
|
+
d = create_driver(CONFIG)
|
144
|
+
assert_equal ':question:', d.instance.icon_emoji
|
145
|
+
assert_equal nil, d.instance.icon_url
|
146
|
+
|
147
|
+
# either of icon_emoji or icon_url can be specified
|
148
|
+
assert_raise(Fluent::ConfigError) do
|
149
|
+
d = create_driver(CONFIG + %[icon_emoji :ghost:\nicon_url #{@icon_url}])
|
150
|
+
end
|
151
|
+
|
152
|
+
# icon_emoji
|
153
|
+
d = create_driver(CONFIG + %[icon_emoji :ghost:])
|
154
|
+
assert_equal ':ghost:', d.instance.icon_emoji
|
155
|
+
assert_equal nil, d.instance.icon_url
|
156
|
+
|
157
|
+
# icon_url
|
158
|
+
d = create_driver(CONFIG + %[icon_url #{@icon_url}])
|
159
|
+
assert_equal nil, d.instance.icon_emoji
|
160
|
+
assert_equal @icon_url, d.instance.icon_url
|
161
|
+
end
|
162
|
+
|
140
163
|
def test_default_incoming_webhook
|
141
164
|
d = create_driver(%[
|
142
165
|
channel channel
|
@@ -271,4 +294,46 @@ class SlackOutputTest < Test::Unit::TestCase
|
|
271
294
|
d.run
|
272
295
|
end
|
273
296
|
end
|
297
|
+
|
298
|
+
def test_icon_emoji
|
299
|
+
d = create_driver(CONFIG + %[icon_emoji :ghost:])
|
300
|
+
time = Time.parse("2014-01-01 22:00:00 UTC").to_i
|
301
|
+
d.tag = 'test'
|
302
|
+
mock(d.instance.slack).post_message({
|
303
|
+
token: 'XXX-XXX-XXX',
|
304
|
+
channel: '#channel',
|
305
|
+
username: 'fluentd',
|
306
|
+
icon_emoji: ':ghost:',
|
307
|
+
attachments: [{
|
308
|
+
color: 'good',
|
309
|
+
fallback: "foo\n",
|
310
|
+
text: "foo\n",
|
311
|
+
}]
|
312
|
+
}, {})
|
313
|
+
with_timezone('Asia/Tokyo') do
|
314
|
+
d.emit({message: 'foo'}, time)
|
315
|
+
d.run
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
def test_icon_url
|
320
|
+
d = create_driver(CONFIG + %[icon_url #{@icon_url}])
|
321
|
+
time = Time.parse("2014-01-01 22:00:00 UTC").to_i
|
322
|
+
d.tag = 'test'
|
323
|
+
mock(d.instance.slack).post_message({
|
324
|
+
token: 'XXX-XXX-XXX',
|
325
|
+
channel: '#channel',
|
326
|
+
username: 'fluentd',
|
327
|
+
icon_url: @icon_url,
|
328
|
+
attachments: [{
|
329
|
+
color: 'good',
|
330
|
+
fallback: "foo\n",
|
331
|
+
text: "foo\n",
|
332
|
+
}]
|
333
|
+
}, {})
|
334
|
+
with_timezone('Asia/Tokyo') do
|
335
|
+
d.emit({message: 'foo'}, time)
|
336
|
+
d.run
|
337
|
+
end
|
338
|
+
end
|
274
339
|
end
|
@@ -17,6 +17,7 @@ if ENV['WEBHOOK_URL'] and ENV['TOKEN']
|
|
17
17
|
super
|
18
18
|
@incoming_webhook = Fluent::SlackClient::IncomingWebhook.new(ENV['WEBHOOK_URL'])
|
19
19
|
@api = Fluent::SlackClient::WebApi.new
|
20
|
+
@icon_url = 'http://www.google.com/s2/favicons?domain=www.google.de'
|
20
21
|
end
|
21
22
|
|
22
23
|
def token(client)
|
@@ -42,27 +43,18 @@ if ENV['WEBHOOK_URL'] and ENV['TOKEN']
|
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
45
|
-
def
|
46
|
+
def test_post_message_icon_url
|
46
47
|
[@incoming_webhook, @api].each do |slack|
|
47
48
|
assert_nothing_raised do
|
48
49
|
slack.post_message(
|
49
50
|
{
|
50
51
|
channel: '#general',
|
51
52
|
username: 'fluentd',
|
52
|
-
|
53
|
+
icon_url: @icon_url,
|
53
54
|
attachments: [{
|
54
55
|
color: 'good',
|
55
|
-
fallback:
|
56
|
-
|
57
|
-
{
|
58
|
-
title: 'test1',
|
59
|
-
value: "[07:00:00] sowawa1\n[07:00:00] sowawa2\n",
|
60
|
-
},
|
61
|
-
{
|
62
|
-
title: 'test2',
|
63
|
-
value: "[07:00:00] sowawa1\n[07:00:00] sowawa2\n",
|
64
|
-
},
|
65
|
-
],
|
56
|
+
fallback: "sowawa1\nsowawa2\n",
|
57
|
+
text: "sowawa1\nsowawa2\n",
|
66
58
|
}]
|
67
59
|
}.merge(token(slack))
|
68
60
|
)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-slack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keisuke SOGAWA
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-03-
|
12
|
+
date: 2015-03-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|