stemcell 0.10.1 → 0.11.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
  SHA1:
3
- metadata.gz: 5cbad56d6df2f65f6070e91f831c40a34c392ded
4
- data.tar.gz: 0e69adf8fbf5f347a6883cee8a3b37290e7b639e
3
+ metadata.gz: a75498d7efc84297470587517941d2c008fb5e3c
4
+ data.tar.gz: 78e9281f72c7cd72c03da98aa0041bb1969ac7b9
5
5
  SHA512:
6
- metadata.gz: cea1f891e2b9af4ef8566c694f9c0cd07b85cb77343f4ff68031a2e2c7efd42a145c92f0fe804bfdbedab901629c445f2f67dea37ef86dd53a366f22822ccf2b
7
- data.tar.gz: 7772115e0831bf234abe3a6fb0b8621d10e1babf01e10851bf87f94448d96543a14463fb2509087703b68c005dea3b7d35afae9232921c27877d094c81366c83
6
+ metadata.gz: b0b8832be4df37d3599639f88bd093e1924e3ceada6bb0daec655276935fd3b63dd2d42e1df40404c5b867cc64bdacb50174231e85edef80d531c2cd5ee88dae
7
+ data.tar.gz: c4df4499b664495dc4d94b0ad9188562aa030b0025783f1040fae4a3a21db5908f5dbb660e0286dd11c0bf31f14ca70b419c3b3a7e10a5037eea0e37ce2abb51
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # 0.11.0
2
+ - allow user to specify `contexts` to override certain attributes
3
+
4
+ # 0.10.1
5
+ - check for nil classic link
6
+
7
+ # 0.10.0
8
+ - allow launching termination-protected instances
9
+ - enable classic link
10
+
1
11
  # 0.9.1
2
12
  - Don't require aws keys for Stemcell::Launcher to allow for launching via iam role
3
13
 
@@ -35,12 +35,14 @@ module Stemcell
35
35
  end
36
36
 
37
37
  def determine_options(role, environment, override_options)
38
+ contexts = override_options.delete('contexts').split(',') rescue []
38
39
  # Initially assume that empty roles are not allowed
39
40
  allow_empty = false
40
41
  begin
41
42
  return source.expand_role(
42
43
  role,
43
44
  environment,
45
+ contexts,
44
46
  override_options,
45
47
  :allow_empty_roles => allow_empty)
46
48
  rescue EmptyRoleError
@@ -43,7 +43,7 @@ module Stemcell
43
43
  DEFAULT_OPTIONS.merge(config.default_options)
44
44
  end
45
45
 
46
- def expand_role(role, environment, override_options={}, options={})
46
+ def expand_role(role, environment, contexts=[], override_options={}, options={})
47
47
  raise ArgumentError, "Missing chef role" unless role
48
48
  raise ArgumentError, "Missing chef environment" unless environment
49
49
  allow_empty_roles = options.fetch(:allow_empty_roles, false)
@@ -55,6 +55,16 @@ module Stemcell
55
55
 
56
56
  raise EmptyRoleError if !allow_empty_roles && role_empty
57
57
 
58
+ # Step 1.5: Override context specific values
59
+ if !role_empty
60
+ context_overrides = role_options['context_overrides'] || {}
61
+ contexts.each do |context|
62
+ overriding_hash = context_overrides[context]
63
+ role_options.merge!(overriding_hash) if overriding_hash
64
+ end
65
+ role_options.delete('context_overrides')
66
+ end
67
+
58
68
  # Step 2: Determine the backing store from available options.
59
69
 
60
70
  # This is determined distinctly from the merge sequence below because
@@ -260,6 +260,12 @@ module Stemcell
260
260
  :type => nil,
261
261
  :env => 'NON_INTERACTIVE',
262
262
  :short => :f
263
+ },
264
+ {
265
+ :name => 'contexts',
266
+ :desc => "comma-separated list of contexts to override certain values",
267
+ :type => String,
268
+ :env => "CONTEXTS",
263
269
  }
264
270
  ]
265
271
 
@@ -1,3 +1,3 @@
1
1
  module Stemcell
2
- VERSION = "0.10.1"
2
+ VERSION = "0.11.0"
3
3
  end
@@ -64,6 +64,7 @@ describe Stemcell::MetadataSource do
64
64
  let(:backing_options) { Hash.new }
65
65
  let(:availability_zones) { Hash.new }
66
66
  let(:role_metadata) { Hash.new }
67
+ let(:override_contexts) { Array.new }
67
68
  let(:override_options) { Hash.new }
68
69
  let(:expand_options) { Hash.new }
69
70
 
@@ -81,6 +82,7 @@ describe Stemcell::MetadataSource do
81
82
  metadata_source.expand_role(
82
83
  role,
83
84
  environment,
85
+ override_contexts,
84
86
  override_options,
85
87
  expand_options)
86
88
  end
@@ -209,6 +211,22 @@ describe Stemcell::MetadataSource do
209
211
  end
210
212
  end
211
213
 
214
+ context "when context overrides" do
215
+ before do
216
+ override_contexts << 'another_account'
217
+ role_metadata.merge!({'security_groups' => 'default_group'})
218
+ role_metadata.merge!({'context_overrides' => {'another_account' => {'security_groups' => 'another_group'}}})
219
+ end
220
+
221
+ it 'returns the overrode security groups' do
222
+ expect(expansion['security_groups']).to eql 'another_group'
223
+ end
224
+
225
+ it 'delete "context_overrides" key from Chef options' do
226
+ expect(expansion).not_to have_key('context_overrides')
227
+ end
228
+ end
229
+
212
230
  end
213
231
 
214
232
  end
@@ -247,4 +265,4 @@ describe Stemcell::MetadataSource do
247
265
 
248
266
  end
249
267
 
250
- end
268
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stemcell
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Rhoads
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-07-28 00:00:00.000000000 Z
14
+ date: 2016-09-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: aws-sdk-v1
@@ -206,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
206
  version: '0'
207
207
  requirements: []
208
208
  rubyforge_project:
209
- rubygems_version: 2.4.5.1
209
+ rubygems_version: 2.4.8
210
210
  signing_key:
211
211
  specification_version: 4
212
212
  summary: no summary