fog-aws 0.9.2 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a09e250e89872f3a54bbcd60d26b3b58b631f72b
4
- data.tar.gz: 0d4dedf9b4345907c009af9a86b07d0def4be0fe
3
+ metadata.gz: 0361bb136f825209f65c1e570b023e6f2b74d865
4
+ data.tar.gz: 043f9727f53b0c68c6648bac38bf35bb13354590
5
5
  SHA512:
6
- metadata.gz: 6ef0319dc943903d6b8ed4ef1266804b53b5d51ec1bf5185d8512a1b8a862123e45349de417da02452819270247aa86a16abed3c63ab908182cc165b1607f429
7
- data.tar.gz: c5dd5eac9938df274f8fe955dd69dadf8530484c0eca70a95ff2323410cffa2c53f6ceb13caf65f9a15198f099aa36bfc67ec8d60654b0bb813a1a636e651711
6
+ metadata.gz: 89aa0ad3aadc59b08fd8e5969cefc1b4afa9cc04297836406139fdb47ecb2aa2c2ea6a3e330bca0de37942c46c01d23467a402df2e1a961084d838858af3bb30
7
+ data.tar.gz: 2f5414ddd22a1a99bcfc16b0deb5aef69f632ee4e04b754a7693d412f2b226a1cea3c0bcd7e40533560a3b89d2b2f9879ab2f86c3c1faeb00d0b235b4746bba1
@@ -1,5 +1,39 @@
1
1
  # Change Log
2
2
 
3
+ ## [Unreleased](https://github.com/fog/fog-aws/tree/HEAD)
4
+
5
+ [Full Changelog](https://github.com/fog/fog-aws/compare/v0.9.2...HEAD)
6
+
7
+ **Closed issues:**
8
+
9
+ - Users list is empty in Fog::AWS::IAM::Groups [\#256](https://github.com/fog/fog-aws/issues/256)
10
+ - I'd like to configure my Excon read\_timeout and write\_timeout [\#254](https://github.com/fog/fog-aws/issues/254)
11
+ - Bump fog-core to \>=1.38.0 [\#247](https://github.com/fog/fog-aws/issues/247)
12
+ - no implicit conversion of Array into String in `aws/storage.rb` from `bucket\_name` in params. [\#246](https://github.com/fog/fog-aws/issues/246)
13
+ - \[S3\] Bucket name gets duplicated in case of redirect from AWS [\#242](https://github.com/fog/fog-aws/issues/242)
14
+ - CloudFormation stack tags cause describe\_stacks to break [\#240](https://github.com/fog/fog-aws/issues/240)
15
+
16
+ **Merged pull requests:**
17
+
18
+ - Parse EbsOptimized parameter in launch configuration description [\#259](https://github.com/fog/fog-aws/pull/259) ([djudd](https://github.com/djudd))
19
+ - Allow case-insensitive record comparison [\#258](https://github.com/fog/fog-aws/pull/258) ([mpick92](https://github.com/mpick92))
20
+ - Fix for empty ETag values [\#257](https://github.com/fog/fog-aws/pull/257) ([baryshev](https://github.com/baryshev))
21
+ - do not make requests if mocked. [\#252](https://github.com/fog/fog-aws/pull/252) ([shaiguitar](https://github.com/shaiguitar))
22
+ - Parse CloudWatch alarm actions as arrays instead of strings [\#245](https://github.com/fog/fog-aws/pull/245) ([eherot](https://github.com/eherot))
23
+ - Add support for CloudFormation stack tags. [\#241](https://github.com/fog/fog-aws/pull/241) ([jamesremuscat](https://github.com/jamesremuscat))
24
+ - Add log warning message about when not on us-region [\#200](https://github.com/fog/fog-aws/pull/200) ([kitofr](https://github.com/kitofr))
25
+
26
+ ## [v0.9.2](https://github.com/fog/fog-aws/tree/v0.9.2) (2016-03-23)
27
+ [Full Changelog](https://github.com/fog/fog-aws/compare/v0.9.1...v0.9.2)
28
+
29
+ **Closed issues:**
30
+
31
+ - CHANGELOG.md is out of date [\#235](https://github.com/fog/fog-aws/issues/235)
32
+
33
+ **Merged pull requests:**
34
+
35
+ - Aurora [\#238](https://github.com/fog/fog-aws/pull/238) ([ehowe](https://github.com/ehowe))
36
+
3
37
  ## [v0.9.1](https://github.com/fog/fog-aws/tree/v0.9.1) (2016-03-04)
4
38
  [Full Changelog](https://github.com/fog/fog-aws/compare/v0.8.2...v0.9.1)
5
39
 
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'shindo', '~> 0.3'
25
25
  spec.add_development_dependency 'rubyzip', '~> 0.9.9'
26
26
 
27
- spec.add_dependency 'fog-core', '~> 1.27'
27
+ spec.add_dependency 'fog-core', '~> 1.38'
28
28
  spec.add_dependency 'fog-json', '~> 1.0'
29
29
  spec.add_dependency 'fog-xml', '~> 0.1'
30
30
  spec.add_dependency 'ipaddress', '~> 0.8'
@@ -5,6 +5,9 @@ module Fog
5
5
  INSTANCE_METADATA_PATH = "/latest/meta-data/iam/security-credentials/"
6
6
  module ServiceMethods
7
7
  def fetch_credentials(options)
8
+ if options[:use_iam_profile] && Fog.mocking?
9
+ Fog::Compute::AWS::Mock.data[:iam_role_based_creds]
10
+ end
8
11
  if options[:use_iam_profile]
9
12
  begin
10
13
  connection = options[:connection] || Excon.new(INSTANCE_METADATA_HOST)
@@ -93,7 +93,7 @@ module Fog
93
93
  (data['ResourceRecordSets'] || []).map do |record_data|
94
94
  record = new(record_data)
95
95
 
96
- if (record.name == record_name) &&
96
+ if (record.name.casecmp(record_name) == 0) &&
97
97
  (record_type.nil? || (record.type == record_type)) &&
98
98
  (record_identifier.nil? || (record.set_identifier == record_identifier))
99
99
  record
@@ -58,7 +58,8 @@ module Fog
58
58
  when 'Ebs'
59
59
  @block_device_mapping[name] = @ebs
60
60
  reset_ebs
61
-
61
+ when 'EbsOptimized'
62
+ @launch_configuration[name] = value == 'true'
62
63
  when 'Enabled'
63
64
  @launch_configuration['InstanceMonitoring'][name] = (value == 'true')
64
65
 
@@ -4,9 +4,10 @@ module Fog
4
4
  module CloudFormation
5
5
  class DescribeStacks < Fog::Parsers::Base
6
6
  def reset
7
- @stack = { 'Outputs' => [], 'Parameters' => [], 'Capabilities' => [] }
7
+ @stack = { 'Outputs' => [], 'Parameters' => [], 'Capabilities' => [], 'Tags' => [] }
8
8
  @output = {}
9
9
  @parameter = {}
10
+ @tag = {}
10
11
  @response = { 'Stacks' => [] }
11
12
  end
12
13
 
@@ -19,6 +20,8 @@ module Fog
19
20
  @in_parameters = true
20
21
  when 'Capabilities'
21
22
  @in_capabilities = true
23
+ when 'Tags'
24
+ @in_tags = true
22
25
  end
23
26
  end
24
27
 
@@ -43,6 +46,16 @@ module Fog
43
46
  when 'Parameters'
44
47
  @in_parameters = false
45
48
  end
49
+ elsif @in_tags
50
+ case name
51
+ when 'Key', 'Value'
52
+ @tag[name] = value
53
+ when 'member'
54
+ @stack['Tags'] << @tag
55
+ @tag = {}
56
+ when 'Tags'
57
+ @in_tags = false
58
+ end
46
59
  elsif @in_capabilities
47
60
  case name
48
61
  when 'member'
@@ -54,7 +67,7 @@ module Fog
54
67
  case name
55
68
  when 'member'
56
69
  @response['Stacks'] << @stack
57
- @stack = { 'Outputs' => [], 'Parameters' => [], 'Capabilities' => []}
70
+ @stack = { 'Outputs' => [], 'Parameters' => [], 'Capabilities' => [], 'Tags' => []}
58
71
  when 'RequestId'
59
72
  @response[name] = value
60
73
  when 'CreationTime'
@@ -9,22 +9,46 @@ module Fog
9
9
  end
10
10
 
11
11
  def reset_metric_alarms
12
- @metric_alarms = {'Dimensions' => []}
12
+ @metric_alarms = {
13
+ 'Dimensions' => [],
14
+ 'AlarmActions' => [],
15
+ 'OKActions' => [],
16
+ 'InsufficientDataActions' => []
17
+ }
13
18
  end
14
19
 
15
20
  def reset_dimension
16
21
  @dimension = {}
17
22
  end
18
23
 
24
+ def reset_alarm_actions
25
+ @alarm_actions = {}
26
+ end
27
+
28
+ def reset_ok_actions
29
+ @ok_actions = {}
30
+ end
31
+
32
+ def reset_insufficient_data_actions
33
+ @insufficient_data_actions = {}
34
+ end
35
+
19
36
  def start_element(name, attrs = [])
20
37
  super
21
38
  case name
22
39
  when 'Dimensions'
23
40
  @in_dimensions = true
41
+ when 'AlarmActions'
42
+ @in_alarm_actions = true
43
+ when 'OKActions'
44
+ @in_ok_actions = true
45
+ when 'InsufficientDataActions'
46
+ @in_insufficient_data_actions = true
24
47
  when 'member'
25
- if @in_dimensions
26
- reset_dimension
27
- end
48
+ reset_dimension if @in_dimensions
49
+ reset_alarm_actions if @in_alarm_actions
50
+ reset_ok_actions if @in_ok_actions
51
+ reset_insufficient_data_actions if @in_insufficient_data_actions
28
52
  end
29
53
  end
30
54
 
@@ -38,8 +62,12 @@ module Fog
38
62
  @metric_alarms[name] = value.to_i
39
63
  when 'Threshold'
40
64
  @metric_alarms[name] = value.to_f
41
- when 'AlarmActions', 'OKActions', 'InsufficientDataActions'
42
- @metric_alarms[name] = value.to_s.strip
65
+ when 'AlarmActions'
66
+ @in_alarm_actions = false
67
+ when 'OKActions'
68
+ @in_ok_actions = false
69
+ when 'InsufficientDataActions'
70
+ @in_insufficient_data_actions = false
43
71
  when 'AlarmName', 'Namespace', 'MetricName', 'AlarmDescription', 'AlarmArn', 'Unit',
44
72
  'StateValue', 'Statistic', 'ComparisonOperator', 'StateReason', 'ActionsEnabled'
45
73
  @metric_alarms[name] = value
@@ -52,15 +80,19 @@ module Fog
52
80
  when 'NextToken'
53
81
  @response['ResponseMetadata'][name] = value
54
82
  when 'member'
55
- if !@in_dimensions
56
- if @metric_alarms.key?('AlarmName')
57
- @response['DescribeAlarmsResult']['MetricAlarms'] << @metric_alarms
58
- reset_metric_alarms
59
- elsif @response['DescribeAlarmsResult']['MetricAlarms'].last != nil
60
- @response['DescribeAlarmsResult']['MetricAlarms'].last.merge!( @metric_alarms)
61
- end
62
- else
83
+ if @in_dimensions
63
84
  @metric_alarms['Dimensions'] << @dimension
85
+ elsif @in_alarm_actions
86
+ @metric_alarms['AlarmActions'] << value.to_s.strip
87
+ elsif @in_ok_actions
88
+ @metric_alarms['OKActions'] << value.to_s.strip
89
+ elsif @in_insufficient_data_actions
90
+ @metric_alarms['InsufficientDataActions'] << value.to_s.strip
91
+ elsif @metric_alarms.key?('AlarmName')
92
+ @response['DescribeAlarmsResult']['MetricAlarms'] << @metric_alarms
93
+ reset_metric_alarms
94
+ elsif @response['DescribeAlarmsResult']['MetricAlarms'].last != nil
95
+ @response['DescribeAlarmsResult']['MetricAlarms'].last.merge!( @metric_alarms)
64
96
  end
65
97
  end
66
98
  end
@@ -26,7 +26,7 @@ module Fog
26
26
  when 'DisplayName', 'ID'
27
27
  @object['Owner'][name] = value
28
28
  when 'ETag'
29
- @object[name] = value.gsub('"', '')
29
+ @object[name] = value.gsub('"', '') if value != nil
30
30
  when 'IsTruncated'
31
31
  if value == 'true'
32
32
  @response['IsTruncated'] = true
@@ -63,7 +63,8 @@ DATA
63
63
  self.data[:buckets][bucket_name] = bucket
64
64
  elsif self.region != 'us-east-1'
65
65
  response.status = 409
66
- raise(Excon::Errors.status_error({:expects => 200}, response))
66
+ Fog::Logger.warning "Your region '#{self.region}' does not match the default region 'us-east-1'"
67
+ raise(Excon::Errors.status_error({:expects => 201}, response))
67
68
  end
68
69
  response
69
70
  end
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AWS
3
- VERSION = "0.9.2"
3
+ VERSION = "0.9.3"
4
4
  end
5
5
  end
@@ -1,7 +1,8 @@
1
1
  Shindo.tests('AWS | credentials', ['aws']) do
2
2
  old_mock_value = Excon.defaults[:mock]
3
+ fog_was_mocked = Fog.mocking?
3
4
  Excon.stubs.clear
4
-
5
+ Fog.mock!
5
6
  begin
6
7
  Excon.defaults[:mock] = true
7
8
  default_credentials = Fog::Compute::AWS.fetch_credentials({})
@@ -15,6 +16,7 @@ Shindo.tests('AWS | credentials', ['aws']) do
15
16
  'Expiration' => expires_at.xmlschema
16
17
  }
17
18
 
19
+ Fog::Compute::AWS::Mock.data[:iam_role_based_creds] = credentials
18
20
  Excon.stub({:method => :get, :path => "/latest/meta-data/iam/security-credentials/arole"}, {:status => 200, :body => Fog::JSON.encode(credentials)})
19
21
 
20
22
  tests("#fetch_credentials") do
@@ -51,5 +53,6 @@ Shindo.tests('AWS | credentials', ['aws']) do
51
53
  ensure
52
54
  Excon.stubs.clear
53
55
  Excon.defaults[:mock] = old_mock_value
56
+ Fog.unmock! if !fog_was_mocked
54
57
  end
55
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Lane
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-03-23 00:00:00.000000000 Z
12
+ date: 2016-06-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -73,14 +73,14 @@ dependencies:
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '1.27'
76
+ version: '1.38'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '1.27'
83
+ version: '1.38'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: fog-json
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -1610,7 +1610,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1610
1610
  version: '0'
1611
1611
  requirements: []
1612
1612
  rubyforge_project:
1613
- rubygems_version: 2.5.2
1613
+ rubygems_version: 2.5.1
1614
1614
  signing_key:
1615
1615
  specification_version: 4
1616
1616
  summary: Module for the 'fog' gem to support Amazon Web Services.