logstash-mixin-aws 4.4.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '01656229a43f5ede21677884c8ea991f17916c1788f3d649f53522ea54e3f750'
4
- data.tar.gz: d13097ef493258bd57bd748d81ac6d060b4a1400264fc6b29948be2a31b5e9bc
3
+ metadata.gz: 5f0ffda43078e41e39ca90e34f89a212e95164a3dd40b47b98a141d4c20d4b14
4
+ data.tar.gz: 9d252aad0445ec9f49b78708eccf61d4caff1b0808e5a4f3fa45d634f7b4b2ad
5
5
  SHA512:
6
- metadata.gz: 55c0c1592cf6f02bfe3318b8b201232057d67a0070a8963d1bd233d045e5dd7846658665a6e7c2be3fb6e136f378fce19c6e1c836ca308506ed5bb6bd28889d7
7
- data.tar.gz: 916511950a77a3cccb5c168bc1faa040f8e5aca31c62aa0f2c5806f38556f1492eafc48230ba6798ded1d7a3871639adcfe6d3c2eba573809f8b3bc605f4879b
6
+ metadata.gz: 45e12f518ddc54c3fa6d9775511ec3fb4f01fe86b7f311858349d5f93a7e307a555edad97b80487de7e73cd5b8ec8508a7baf3adf0a0aaba4256fa761fb322a4
7
+ data.tar.gz: fbf5d5b3dd042b2af41e670126b9b65c5562b0cd84d8f62e5a4bf6baef7f0e72d22f29dac7e9850cc8d6af4c95a1e2e7babea81bda31df1342b2b1e6aa37be76
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 5.0.0
2
+ - Drop support for aws-sdk-v1
3
+
1
4
  ## 4.4.1
2
5
  - Fix: proxy with assumed role (properly) [#50](https://github.com/logstash-plugins/logstash-mixin-aws/pull/50).
3
6
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Logstash Plugin
2
2
 
3
- [![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-mixin-aws.svg)](https://travis-ci.org/logstash-plugins/logstash-mixin-aws)
3
+ [![Travis Build Status](https://travis-ci.com/logstash-plugins/logstash-mixin-aws.svg)](https://travis-ci.com/logstash-plugins/logstash-mixin-aws)
4
4
 
5
5
  This is a plugin for [Logstash](https://github.com/elastic/logstash).
6
6
 
@@ -1,17 +1,8 @@
1
1
  # encoding: utf-8
2
2
  require "logstash/config/mixin"
3
3
 
4
- # This module provides helper for the `AWS-SDK` v1,
5
- # and it will be deprecated in the near future, please use the V2 module
6
- # for any new development.
7
4
  module LogStash::PluginMixins::AwsConfig
8
- require "logstash/plugin_mixins/aws_config/v1"
9
5
  require "logstash/plugin_mixins/aws_config/v2"
10
6
 
11
7
  US_EAST_1 = "us-east-1"
12
-
13
- def self.included(base)
14
- # Add these methods to the 'base' given.
15
- base.send(:include, V1)
16
- end
17
8
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-mixin-aws'
3
- s.version = '4.4.1'
3
+ s.version = '5.0.0'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "AWS mixins to provide a unified interface for Amazon Webservice"
6
6
  s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -18,7 +18,6 @@ Gem::Specification.new do |s|
18
18
  # Gem dependencies
19
19
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
20
20
  s.add_runtime_dependency 'logstash-codec-plain'
21
- s.add_runtime_dependency 'aws-sdk-v1', '>= 1.61.0'
22
21
  s.add_runtime_dependency 'aws-sdk', '~> 2'
23
22
  s.add_development_dependency 'logstash-devutils'
24
23
  s.add_development_dependency 'timecop'
@@ -16,90 +16,6 @@ class DummyInputAwsConfigV2NoRegionMethod < LogStash::Inputs::Base
16
16
  include LogStash::PluginMixins::AwsConfig::V2
17
17
  end
18
18
 
19
- class DummyInputAwsConfigV1 < LogStash::Inputs::Base
20
- include LogStash::PluginMixins::AwsConfig
21
-
22
- def aws_service_endpoint(region)
23
- { :dummy_input_aws_config_region => "#{region}.awswebservice.local" }
24
- end
25
- end
26
-
27
- describe LogStash::PluginMixins::AwsConfig do
28
- let(:settings) { {} }
29
-
30
- subject { DummyInputAwsConfigV1.new(settings).aws_options_hash }
31
-
32
- describe 'config credential' do
33
-
34
- context 'in credential file' do
35
- let(:settings) { { 'aws_credentials_file' => File.join(File.dirname(__FILE__), '..', 'fixtures/aws_credentials_file_sample_test.yml') } }
36
-
37
- it 'should support reading configuration from a yaml file' do
38
- expect(subject).to include(:access_key_id => "1234", :secret_access_key => "secret")
39
- end
40
- end
41
-
42
- context 'inline' do
43
- context 'temporary credential' do
44
- let(:settings) { { 'access_key_id' => '1234', 'secret_access_key' => 'secret', 'session_token' => 'session_token' } }
45
-
46
- it "should support passing as key, value, and session_token" do
47
- expect(subject[:access_key_id]).to eq(settings["access_key_id"])
48
- expect(subject[:secret_access_key]).to_not eq(settings["secret_access_key"])
49
- expect(subject[:secret_access_key].value).to eq(settings["secret_access_key"])
50
- expect(subject[:session_token]).to_not eq(settings["session_token"])
51
- expect(subject[:session_token].value).to eq(settings["session_token"])
52
- end
53
- end
54
-
55
- context 'normal credential' do
56
- let(:settings) { { 'access_key_id' => '1234', 'secret_access_key' => 'secret' } }
57
-
58
- it 'should support passing credentials as key, value' do
59
- expect(subject[:access_key_id]).to eq(settings['access_key_id'])
60
- expect(subject[:secret_access_key]).to_not eq(settings['secret_access_key'])
61
- expect(subject[:secret_access_key].value).to eq(settings['secret_access_key'])
62
- end
63
- end
64
- end
65
- end
66
-
67
- describe 'config region' do
68
- context 'region provided' do
69
- let(:settings) { { 'access_key_id' => '1234', 'secret_access_key' => 'secret', 'region' => 'us-west-2' } }
70
-
71
- it 'should use provided region to generate the endpoint configuration' do
72
- expect(subject[:dummy_input_aws_config_region]).to eq("us-west-2.awswebservice.local")
73
- end
74
- end
75
-
76
- context "region not provided" do
77
- let(:settings) { { 'access_key_id' => '1234', 'secret_access_key' => 'secret'} }
78
-
79
- it 'should use default region to generate the endpoint configuration' do
80
- expect(subject[:dummy_input_aws_config_region]).to eq("us-east-1.awswebservice.local")
81
- end
82
- end
83
- end
84
-
85
- describe 'config endpoint' do
86
- context "endpoint provided" do
87
- let(:settings) { { 'access_key_id' => '1234', 'secret_access_key' => 'secret', 'endpoint' => 'http://localhost'} }
88
-
89
- it 'should use specified endpoint' do
90
- expect(subject[:endpoint]).to eq("http://localhost")
91
- end
92
- end
93
- end
94
-
95
- context 'when we arent providing credentials' do
96
- let(:settings) { {} }
97
- it 'should always return a hash' do
98
- expect(subject).to eq({ :use_ssl => true, :dummy_input_aws_config_region => "us-east-1.awswebservice.local" })
99
- end
100
- end
101
- end
102
-
103
19
  describe LogStash::PluginMixins::AwsConfig::V2 do
104
20
  let(:settings) { {} }
105
21
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-mixin-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-05 00:00:00.000000000 Z
11
+ date: 2021-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -44,20 +44,6 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
- - !ruby/object:Gem::Dependency
48
- requirement: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 1.61.0
53
- name: aws-sdk-v1
54
- prerelease: false
55
- type: :runtime
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 1.61.0
61
47
  - !ruby/object:Gem::Dependency
62
48
  requirement: !ruby/object:Gem::Requirement
63
49
  requirements:
@@ -116,7 +102,6 @@ files:
116
102
  - README.md
117
103
  - lib/logstash/plugin_mixins/aws_config.rb
118
104
  - lib/logstash/plugin_mixins/aws_config/generic.rb
119
- - lib/logstash/plugin_mixins/aws_config/v1.rb
120
105
  - lib/logstash/plugin_mixins/aws_config/v2.rb
121
106
  - logstash-mixin-aws.gemspec
122
107
  - spec/fixtures/aws_credentials_file_sample_test.yml
@@ -1,64 +0,0 @@
1
- # encoding: utf-8
2
- require "logstash/plugin_mixins/aws_config/generic"
3
-
4
- module LogStash::PluginMixins::AwsConfig::V1
5
- def self.included(base)
6
- # Make sure we require the V1 classes when including this module.
7
- # require 'aws-sdk' will load v2 classes.
8
- require "aws-sdk-v1"
9
- base.extend(self)
10
- base.send(:include, LogStash::PluginMixins::AwsConfig::Generic)
11
- base.setup_aws_config
12
- end
13
-
14
- public
15
- def setup_aws_config
16
- # Should we require (true) or disable (false) using SSL for communicating with the AWS API
17
- # The AWS SDK for Ruby defaults to SSL so we preserve that
18
- config :use_ssl, :validate => :boolean, :default => true
19
- end
20
-
21
- public
22
- def aws_options_hash
23
- opts = {}
24
-
25
- if @role_arn || @role_session_name
26
- @logger.warn("role_arn and role_session_name settings are not supported in the v1 plugin")
27
- end
28
-
29
- if @access_key_id.is_a?(NilClass) ^ @secret_access_key.is_a?(NilClass)
30
- @logger.warn("Likely config error: Only one of access_key_id or secret_access_key was provided but not both.")
31
- end
32
-
33
- if @access_key_id && @secret_access_key
34
- opts = {
35
- :access_key_id => @access_key_id,
36
- :secret_access_key => @secret_access_key
37
- }
38
- opts[:session_token] = @session_token if @session_token
39
- elsif @aws_credentials_file
40
- opts = YAML.load_file(@aws_credentials_file)
41
- end
42
-
43
- opts[:proxy_uri] = @proxy_uri if @proxy_uri
44
- opts[:use_ssl] = @use_ssl
45
-
46
-
47
- # The AWS SDK for Ruby doesn't know how to make an endpoint hostname from a region
48
- # for example us-west-1 -> foosvc.us-west-1.amazonaws.com
49
- # So our plugins need to know how to generate their endpoints from a region
50
- # Furthermore, they need to know the symbol required to set that value in the AWS SDK
51
- # Classes using this module must implement aws_service_endpoint(region:string)
52
- # which must return a hash with one key, the aws sdk for ruby config symbol of the service
53
- # endpoint, which has a string value of the service endpoint hostname
54
- # for example, CloudWatch, { :cloud_watch_endpoint => "monitoring.#{region}.amazonaws.com" }
55
- # For a list, see https://github.com/aws/aws-sdk-ruby/blob/master/lib/aws/core/configuration.rb
56
- opts.merge!(self.aws_service_endpoint(@region))
57
-
58
- if !@endpoint.is_a?(NilClass)
59
- opts[:endpoint] = @endpoint
60
- end
61
-
62
- return opts
63
- end # def aws_options_hash
64
- end