kumogata 0.3.1 → 0.3.2
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 +4 -4
- data/README.md +3 -3
- data/lib/kumogata/argument_parser.rb +1 -1
- data/lib/kumogata/client.rb +1 -1
- data/lib/kumogata/version.rb +1 -1
- data/spec/kumogata_create_spec.rb +55 -0
- 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: baf7b8cbddd815d7f08705918dcb9bba0f426345
|
4
|
+
data.tar.gz: d8df685f3891d4266da07997a2926a4a33083dfc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b36d2411bdd49f4b2031efa2c45fd4f8fbd30591857c85098b1f004805b6e5cbe6615fccbfa998cc5e62becd5bd3a2324adbaf211848df68c19f7341097da94
|
7
|
+
data.tar.gz: 0ad0e636569b330cb22849a41c2728c0b2419767d170e26225633069274b6cdb0b01a00be168003e2f066bbf4bd02ba2a5eb90362be0f61975115196aeb9908c
|
data/README.md
CHANGED
@@ -5,8 +5,8 @@
|
|
5
5
|
|
6
6
|
Kumogata is a tool for [AWS CloudFormation](https://aws.amazon.com/cloudformation/).
|
7
7
|
|
8
|
-
[](http://badge.fury.io/rb/kumogata)
|
9
|
+
[](https://drone.io/github.com/winebarrel/kumogata/latest)
|
10
10
|
|
11
11
|
It can define a template in Ruby DSL, such as:
|
12
12
|
|
@@ -81,7 +81,7 @@ Options:
|
|
81
81
|
-s, --secret-key SECRET_KEY
|
82
82
|
-r, --region REGION
|
83
83
|
--skip-replace-underscore
|
84
|
-
--
|
84
|
+
--deletion-policy-retain
|
85
85
|
-p, --parameters KEY_VALUES
|
86
86
|
-e, --encrypt-parameters KEYS
|
87
87
|
--encryption-password PASS
|
@@ -80,7 +80,7 @@ class Kumogata::ArgumentParser
|
|
80
80
|
opt.on('-s', '--secret-key SECRET_KEY') {|v| options[:secret_access_key] = v }
|
81
81
|
opt.on('-r', '--region REGION') {|v| options[:region] = v }
|
82
82
|
opt.on('' , '--skip-replace-underscore') { options[:replace_underscore] = false }
|
83
|
-
opt.on('' , '--
|
83
|
+
opt.on('' , '--deletion-policy-retain') { options[:deletion_policy_retain] = true }
|
84
84
|
opt.on('-p', '--parameters KEY_VALUES', Array) {|v| options[:parameters] = v }
|
85
85
|
opt.on('-e', '--encrypt-parameters KEYS', Array) {|v| options[:encrypt_parameters] = v }
|
86
86
|
opt.on('', '--encryption-password PASS') {|v| options[:encryption_password] = v }
|
data/lib/kumogata/client.rb
CHANGED
@@ -375,7 +375,7 @@ class Kumogata::Client
|
|
375
375
|
end
|
376
376
|
|
377
377
|
def update_deletion_policy(template)
|
378
|
-
if @options.delete_stack?
|
378
|
+
if @options.delete_stack? or @options.deletion_policy_retain?
|
379
379
|
template['Resources'].each do |k, v|
|
380
380
|
v['DeletionPolicy'] = 'Retain'
|
381
381
|
end
|
data/lib/kumogata/version.rb
CHANGED
@@ -178,6 +178,61 @@ end
|
|
178
178
|
end
|
179
179
|
end
|
180
180
|
|
181
|
+
it 'create a stack from Ruby template with deletion policy retain' do
|
182
|
+
template = <<-EOS
|
183
|
+
Resources do
|
184
|
+
myEC2Instance do
|
185
|
+
Type "AWS::EC2::Instance"
|
186
|
+
Properties do
|
187
|
+
ImageId "ami-XXXXXXXX"
|
188
|
+
InstanceType "t1.micro"
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
Outputs do
|
194
|
+
AZ do
|
195
|
+
Value do
|
196
|
+
Fn__GetAtt "myEC2Instance", "AvailabilityZone"
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
200
|
+
EOS
|
201
|
+
|
202
|
+
run_client(:create, :arguments => ['MyStack'], :template => template, :options => {:deletion_policy_retain => true}) do |client, cf|
|
203
|
+
json = eval_template(template, :update_deletion_policy => true).to_json
|
204
|
+
|
205
|
+
output = make_double('output') do |obj|
|
206
|
+
obj.should_receive(:key) { 'AZ' }
|
207
|
+
obj.should_receive(:value) { 'ap-northeast-1b' }
|
208
|
+
end
|
209
|
+
|
210
|
+
resource_summary = make_double('resource_summary') do |obj|
|
211
|
+
obj.should_receive(:[]).with(:logical_resource_id) { 'myEC2Instance' }
|
212
|
+
obj.should_receive(:[]).with(:physical_resource_id) { 'i-XXXXXXXX' }
|
213
|
+
obj.should_receive(:[]).with(:resource_type) { 'AWS::EC2::Instance' }
|
214
|
+
obj.should_receive(:[]).with(:resource_status) { 'CREATE_COMPLETE' }
|
215
|
+
obj.should_receive(:[]).with(:resource_status_reason) { nil }
|
216
|
+
obj.should_receive(:[]).with(:last_updated_timestamp) { '2014-03-02 04:35:12 UTC' }
|
217
|
+
end
|
218
|
+
|
219
|
+
stack = make_double('stack') do |obj|
|
220
|
+
obj.should_receive(:status).and_return(
|
221
|
+
'CREATE_COMPLETE',
|
222
|
+
'CREATE_COMPLETE')
|
223
|
+
obj.should_receive(:outputs) { [output] }
|
224
|
+
obj.should_receive(:resource_summaries) { [resource_summary] }
|
225
|
+
end
|
226
|
+
|
227
|
+
stacks = make_double('status') do |obj|
|
228
|
+
obj.should_receive(:create)
|
229
|
+
.with('MyStack', json, {}) { stack }
|
230
|
+
end
|
231
|
+
|
232
|
+
cf.should_receive(:stacks) { stacks }
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
181
236
|
it 'create a stack from Ruby template with invalid stack name' do
|
182
237
|
template = <<-EOS
|
183
238
|
Resources do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kumogata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|