lono 4.1.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +3 -1
- data/exe/lono +1 -1
- data/lib/lono.rb +17 -15
- data/lib/lono/cfn.rb +54 -24
- data/lib/lono/cfn/base.rb +95 -17
- data/lib/lono/cfn/create.rb +5 -29
- data/lib/lono/cfn/current.rb +95 -0
- data/lib/lono/cfn/delete.rb +15 -1
- data/lib/lono/cfn/preview.rb +5 -3
- data/lib/lono/cfn/status.rb +212 -0
- data/lib/lono/cfn/update.rb +6 -12
- data/lib/lono/cfn/util.rb +2 -2
- data/lib/lono/cli.rb +4 -6
- data/lib/lono/core.rb +23 -5
- data/lib/lono/default/settings.yml +1 -1
- data/lib/lono/file_uploader.rb +119 -0
- data/lib/lono/help/cfn/current.md +18 -0
- data/lib/lono/help/cfn/status.md +19 -0
- data/lib/lono/script/build.rb +2 -1
- data/lib/lono/script/upload.rb +1 -1
- data/lib/lono/template/helper.rb +8 -0
- data/lib/lono/template/upload.rb +13 -1
- data/lib/lono/upgrade.rb +16 -0
- data/lib/lono/{upgrade4.rb → upgrade/upgrade4.rb} +1 -1
- data/lib/lono/upgrade/upgrade42.rb +36 -0
- data/lib/lono/version.rb +1 -1
- data/lib/starter_projects/autoscaling/.gitignore +1 -0
- data/lib/starter_projects/autoscaling/README.md +1 -1
- data/lib/starter_projects/autoscaling/config/settings.yml +1 -1
- data/lib/starter_projects/ec2/.gitignore +1 -0
- data/lib/starter_projects/ec2/config/settings.yml +1 -1
- data/lib/starter_projects/skeleton/.gitignore +1 -0
- data/lib/starter_projects/skeleton/config/settings.yml +1 -1
- data/lono.gemspec +1 -0
- data/spec/fixtures/cfn/stack-events-complete.json +1080 -0
- data/spec/fixtures/cfn/stack-events-in-progress.json +1080 -0
- data/spec/fixtures/cfn/stack-events-update-rollback-complete.json +1086 -0
- data/spec/fixtures/lono_project/config/settings.yml +1 -1
- data/spec/lib/lono/cfn/status_spec.rb +77 -0
- metadata +33 -4
@@ -13,7 +13,7 @@ base:
|
|
13
13
|
# default: mybucket/folder
|
14
14
|
# aws_profile1: mybucket/folder
|
15
15
|
# aws_profile2: another-bucket/storage/folder
|
16
|
-
#
|
16
|
+
# stack_name_suffix: random # tack on a 3 char random string at the end of the stack name
|
17
17
|
# for lono cfn create
|
18
18
|
|
19
19
|
development:
|
@@ -0,0 +1,77 @@
|
|
1
|
+
describe Lono::Cfn::Status do
|
2
|
+
let(:status) do
|
3
|
+
status = Lono::Cfn::Status.new("test-stack")
|
4
|
+
allow(status).to receive(:cfn).and_return(cfn)
|
5
|
+
status
|
6
|
+
end
|
7
|
+
let(:cfn) do
|
8
|
+
service = double("service").as_null_object
|
9
|
+
allow(service).to receive(:describe_stacks).and_return(stack_status)
|
10
|
+
allow(service).to receive(:describe_stack_events).and_return(stack_events)
|
11
|
+
service
|
12
|
+
end
|
13
|
+
|
14
|
+
context "in progress" do
|
15
|
+
let(:stack_status) { "UPDATE_IN_PROGRESS" }
|
16
|
+
let(:stack_events) { JSON.load(IO.read("spec/fixtures/cfn/stack-events-in-progress.json")) }
|
17
|
+
it "lists events since user initiated event" do
|
18
|
+
status.refresh_events
|
19
|
+
i = status.find_index(:start)
|
20
|
+
expect(i).to eq 15
|
21
|
+
# uncomment to view and debug
|
22
|
+
# status.show_events
|
23
|
+
# puts "****"
|
24
|
+
# status.show_events # show not show anything
|
25
|
+
end
|
26
|
+
|
27
|
+
it "lists events since last shown event" do
|
28
|
+
# first display
|
29
|
+
status.refresh_events
|
30
|
+
i = status.find_index(:start)
|
31
|
+
expect(i).to eq 15
|
32
|
+
|
33
|
+
# move the last event back in time 4 events, so should print 3 events
|
34
|
+
status.instance_variable_set(:@last_shown_event_id, "TargetGroup-ec634c43-b887-4bde-a525-7c69782865a6")
|
35
|
+
|
36
|
+
captured_events = []
|
37
|
+
allow(status).to receive(:print_event) do |e|
|
38
|
+
captured_events << "#{e["resource_type"]} #{e["resource_status"]}"
|
39
|
+
end
|
40
|
+
status.show_events
|
41
|
+
expect(captured_events).to eq([
|
42
|
+
"AWS::ElasticLoadBalancingV2::LoadBalancer DELETE_IN_PROGRESS",
|
43
|
+
"AWS::ElasticLoadBalancingV2::LoadBalancer DELETE_COMPLETE",
|
44
|
+
"AWS::EC2::SecurityGroup DELETE_IN_PROGRESS",
|
45
|
+
])
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "complete" do
|
50
|
+
let(:stack_status) { "UPDATE_COMPLETE" }
|
51
|
+
let(:stack_events) { JSON.load(IO.read("spec/fixtures/cfn/stack-events-complete.json")) }
|
52
|
+
it "lists events all the way to completion" do
|
53
|
+
status.refresh_events
|
54
|
+
i = status.find_index(:start)
|
55
|
+
expect(i).to eq 17
|
56
|
+
# uncomment to view and debug
|
57
|
+
# status.show_events
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "update_rollback" do
|
62
|
+
let(:stack_status) { "UPDATE_ROLLBACK_COMPLETE" }
|
63
|
+
let(:stack_events) { JSON.load(IO.read("spec/fixtures/cfn/stack-events-update-rollback-complete.json")) }
|
64
|
+
it "lists events all the way to update rollback complete" do
|
65
|
+
status.refresh_events
|
66
|
+
expect(status.success?).to be false
|
67
|
+
expect(status.update_rollback?).to be true
|
68
|
+
expect(status.rollback_error_message).to include("STATIC_NAME")
|
69
|
+
|
70
|
+
# i = status.find_index(:start)
|
71
|
+
# expect(i).to eq 17
|
72
|
+
# uncomment to view and debug
|
73
|
+
# status.show_events
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lono
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -206,6 +206,20 @@ dependencies:
|
|
206
206
|
- - ">="
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: memoist
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: byebug
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -316,10 +330,12 @@ files:
|
|
316
330
|
- lib/lono/cfn/aws_service.rb
|
317
331
|
- lib/lono/cfn/base.rb
|
318
332
|
- lib/lono/cfn/create.rb
|
333
|
+
- lib/lono/cfn/current.rb
|
319
334
|
- lib/lono/cfn/delete.rb
|
320
335
|
- lib/lono/cfn/diff.rb
|
321
336
|
- lib/lono/cfn/download.rb
|
322
337
|
- lib/lono/cfn/preview.rb
|
338
|
+
- lib/lono/cfn/status.rb
|
323
339
|
- lib/lono/cfn/update.rb
|
324
340
|
- lib/lono/cfn/util.rb
|
325
341
|
- lib/lono/clean.rb
|
@@ -332,13 +348,16 @@ files:
|
|
332
348
|
- lib/lono/core.rb
|
333
349
|
- lib/lono/core/config.rb
|
334
350
|
- lib/lono/default/settings.yml
|
351
|
+
- lib/lono/file_uploader.rb
|
335
352
|
- lib/lono/help.rb
|
336
353
|
- lib/lono/help/cfn.md
|
337
354
|
- lib/lono/help/cfn/create.md
|
355
|
+
- lib/lono/help/cfn/current.md
|
338
356
|
- lib/lono/help/cfn/delete.md
|
339
357
|
- lib/lono/help/cfn/diff.md
|
340
358
|
- lib/lono/help/cfn/download.md
|
341
359
|
- lib/lono/help/cfn/preview.md
|
360
|
+
- lib/lono/help/cfn/status.md
|
342
361
|
- lib/lono/help/cfn/update.md
|
343
362
|
- lib/lono/help/completion.md
|
344
363
|
- lib/lono/help/completion_script.md
|
@@ -381,7 +400,9 @@ files:
|
|
381
400
|
- lib/lono/template/helper.rb
|
382
401
|
- lib/lono/template/template.rb
|
383
402
|
- lib/lono/template/upload.rb
|
384
|
-
- lib/lono/
|
403
|
+
- lib/lono/upgrade.rb
|
404
|
+
- lib/lono/upgrade/upgrade4.rb
|
405
|
+
- lib/lono/upgrade/upgrade42.rb
|
385
406
|
- lib/lono/user_data.rb
|
386
407
|
- lib/lono/version.rb
|
387
408
|
- lib/starter_projects/autoscaling/.gitignore
|
@@ -419,6 +440,9 @@ files:
|
|
419
440
|
- lib/starter_projects/skeleton/welcome.txt
|
420
441
|
- lono.gemspec
|
421
442
|
- spec/fixtures/cfn.json
|
443
|
+
- spec/fixtures/cfn/stack-events-complete.json
|
444
|
+
- spec/fixtures/cfn/stack-events-in-progress.json
|
445
|
+
- spec/fixtures/cfn/stack-events-update-rollback-complete.json
|
422
446
|
- spec/fixtures/lono_project/.gitignore
|
423
447
|
- spec/fixtures/lono_project/Gemfile
|
424
448
|
- spec/fixtures/lono_project/Guardfile
|
@@ -442,6 +466,7 @@ files:
|
|
442
466
|
- spec/fixtures/params/overlay/params/base/network.txt
|
443
467
|
- spec/fixtures/params/overlay/params/development/network.txt
|
444
468
|
- spec/fixtures/raw_templates/aws-waf-security-automations.template
|
469
|
+
- spec/lib/lono/cfn/status_spec.rb
|
445
470
|
- spec/lib/lono/cfn_spec.rb
|
446
471
|
- spec/lib/lono/cli_spec.rb
|
447
472
|
- spec/lib/lono/completion_spec.rb
|
@@ -485,13 +510,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
485
510
|
version: '0'
|
486
511
|
requirements: []
|
487
512
|
rubyforge_project:
|
488
|
-
rubygems_version: 2.7.
|
513
|
+
rubygems_version: 2.7.6
|
489
514
|
signing_key:
|
490
515
|
specification_version: 4
|
491
516
|
summary: Lono is a CloudFormation Template ruby generator. Lono generates CloudFormation
|
492
517
|
templates based on ERB templates.
|
493
518
|
test_files:
|
494
519
|
- spec/fixtures/cfn.json
|
520
|
+
- spec/fixtures/cfn/stack-events-complete.json
|
521
|
+
- spec/fixtures/cfn/stack-events-in-progress.json
|
522
|
+
- spec/fixtures/cfn/stack-events-update-rollback-complete.json
|
495
523
|
- spec/fixtures/lono_project/.gitignore
|
496
524
|
- spec/fixtures/lono_project/Gemfile
|
497
525
|
- spec/fixtures/lono_project/Guardfile
|
@@ -515,6 +543,7 @@ test_files:
|
|
515
543
|
- spec/fixtures/params/overlay/params/base/network.txt
|
516
544
|
- spec/fixtures/params/overlay/params/development/network.txt
|
517
545
|
- spec/fixtures/raw_templates/aws-waf-security-automations.template
|
546
|
+
- spec/lib/lono/cfn/status_spec.rb
|
518
547
|
- spec/lib/lono/cfn_spec.rb
|
519
548
|
- spec/lib/lono/cli_spec.rb
|
520
549
|
- spec/lib/lono/completion_spec.rb
|