Skip to content

Commit bc59076

Browse files
Check if aws keys pairs are complete
Signed-off-by: yannicktekulve <yannick.te.kulve@topicus.nl>
1 parent fba5e07 commit bc59076

File tree

2 files changed

+106
-0
lines changed

2 files changed

+106
-0
lines changed

lib/fluent/plugin/in_s3.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,14 @@ def configure(conf)
140140
raise Fluent::ConfigError, "sqs/queue_name is required"
141141
end
142142

143+
if !!@aws_key_id ^ !!@aws_sec_key
144+
raise Fluent::ConfigError, "aws_key_id or aws_sec_key is missing"
145+
end
146+
147+
if !!@sqs.aws_key_id ^ !!@sqs.aws_sec_key
148+
raise Fluent::ConfigError, "sqs/aws_key_id or sqs/aws_sec_key is missing"
149+
end
150+
143151
Aws.use_bundled_cert! if @use_bundled_cert
144152

145153
@extractor = EXTRACTOR_REGISTRY.lookup(@store_as).new(log: log)

test/test_in_s3.rb

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,104 @@ def test_sqs_endpoint_with_invalid_endpoint(endpoint)
153153
}
154154
end
155155

156+
def test_sqs_with_invalid_keys_missing_secret_key
157+
assert_raise(Fluent::ConfigError, "sqs/aws_key_id or sqs/aws_sec_key is missing") {
158+
conf = <<"EOS"
159+
aws_key_id test_key_id
160+
aws_sec_key test_sec_key
161+
s3_bucket test_bucket
162+
buffer_type memory
163+
<sqs>
164+
queue_name test_queue
165+
endpoint eu-west-1
166+
aws_key_id sqs_test_key_id
167+
</sqs>
168+
EOS
169+
create_driver(conf)
170+
}
171+
end
172+
173+
def test_sqs_with_invalid_aws_keys_missing_key_id
174+
assert_raise(Fluent::ConfigError, "sqs/aws_key_id or sqs/aws_sec_key is missing") {
175+
conf = <<"EOS"
176+
aws_key_id test_key_id
177+
aws_sec_key test_sec_key
178+
s3_bucket test_bucket
179+
buffer_type memory
180+
<sqs>
181+
queue_name test_queue
182+
endpoint eu-west-1
183+
aws_sec_key sqs_test_sec_key
184+
</sqs>
185+
EOS
186+
create_driver(conf)
187+
}
188+
end
189+
190+
def test_sqs_with_valid_aws_keys_complete_pair
191+
conf = <<"EOS"
192+
aws_key_id test_key_id
193+
aws_sec_key test_sec_key
194+
s3_bucket test_bucket
195+
buffer_type memory
196+
<sqs>
197+
queue_name test_queue
198+
endpoint eu-west-1
199+
aws_key_id sqs_test_key_id
200+
aws_sec_key sqs_test_sec_key
201+
</sqs>
202+
EOS
203+
d = create_driver(conf)
204+
assert_equal 'sqs_test_key_id', d.instance.sqs.aws_key_id
205+
assert_equal 'sqs_test_sec_key', d.instance.sqs.aws_sec_key
206+
end
207+
208+
def test_with_invalid_aws_keys_missing_secret_key
209+
assert_raise(Fluent::ConfigError, "aws_key_id or aws_sec_key is missing") {
210+
conf = <<"EOS"
211+
aws_key_id test_key_id
212+
s3_bucket test_bucket
213+
buffer_type memory
214+
<sqs>
215+
queue_name test_queue
216+
endpoint eu-west-1
217+
</sqs>
218+
EOS
219+
create_driver(conf)
220+
}
221+
end
222+
223+
def test_with_invalid_aws_keys_missing_key_id
224+
assert_raise(Fluent::ConfigError, "aws_key_id or aws_sec_key is missing") {
225+
conf = <<"EOS"
226+
aws_sec_key test_sec_key
227+
s3_bucket test_bucket
228+
buffer_type memory
229+
<sqs>
230+
queue_name test_queue
231+
endpoint eu-west-1
232+
</sqs>
233+
EOS
234+
create_driver(conf)
235+
}
236+
end
237+
238+
def test_with_valid_aws_keys_complete_pair
239+
conf = <<"EOS"
240+
aws_key_id test_key_id
241+
aws_sec_key test_sec_key
242+
s3_bucket test_bucket
243+
buffer_type memory
244+
<sqs>
245+
queue_name test_queue
246+
endpoint eu-west-1
247+
</sqs>
248+
EOS
249+
d = create_driver(conf)
250+
assert_equal 'test_key_id', d.instance.aws_key_id
251+
assert_equal 'test_sec_key', d.instance.aws_sec_key
252+
end
253+
156254
Struct.new("StubResponse", :queue_url)
157255
Struct.new("StubMessage", :message_id, :receipt_handle, :body)
158256

0 commit comments

Comments
 (0)