jets 2.3.19 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitmodules +0 -3
- data/.python-version +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +28 -2
- data/README.md +2 -2
- data/backers.md +1 -0
- data/jets.gemspec +11 -10
- data/lib/jets.rb +9 -13
- data/lib/jets/application.rb +9 -2
- data/lib/jets/application/defaults.rb +17 -15
- data/lib/jets/autoloaders.rb +15 -1
- data/lib/jets/booter.rb +3 -3
- data/lib/jets/builders/code_builder.rb +16 -15
- data/lib/jets/builders/gem_replacer.rb +3 -16
- data/lib/jets/builders/lambda_layer.rb +4 -5
- data/lib/jets/builders/ruby_packager.rb +18 -42
- data/lib/jets/builders/tidy.rb +1 -2
- data/lib/jets/bundle.rb +6 -0
- data/lib/jets/cfn/builders/api_gateway_builder.rb +61 -7
- data/lib/jets/cfn/ship.rb +2 -1
- data/lib/jets/cli.rb +6 -1
- data/lib/jets/commands/base.rb +1 -1
- data/lib/jets/commands/call.rb +14 -1
- data/lib/jets/commands/clean.rb +1 -1
- data/lib/jets/commands/clean/base.rb +1 -1
- data/lib/jets/commands/configure.rb +51 -0
- data/lib/jets/commands/delete.rb +2 -2
- data/lib/jets/commands/gems.rb +2 -10
- data/lib/jets/commands/help/call.md +8 -0
- data/lib/jets/commands/help/gems/check.md +3 -5
- data/lib/jets/commands/main.rb +9 -1
- data/lib/jets/commands/new.rb +9 -1
- data/lib/jets/commands/sequence.rb +6 -0
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +1 -1
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +1 -1
- data/lib/jets/commands/templates/skeleton/public/index.html.tt +1 -1
- data/lib/jets/commands/url.rb +1 -0
- data/lib/jets/controller/base.rb +14 -4
- data/lib/jets/controller/middleware/main.rb +2 -1
- data/lib/jets/controller/params.rb +26 -4
- data/lib/jets/controller/rack/env.rb +18 -1
- data/lib/jets/controller/rendering.rb +5 -2
- data/lib/jets/controller/rendering/rack_renderer.rb +7 -1
- data/lib/jets/core.rb +12 -4
- data/lib/jets/dotenv/ssm.rb +18 -4
- data/lib/jets/generator.rb +2 -3
- data/lib/jets/internal/app/functions/jets/base_path.rb +10 -149
- data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +81 -0
- data/lib/jets/internal/app/shared/functions/jets/s3_bucket_config.rb +14 -24
- data/lib/jets/resource/api_gateway/base_path/function.rb +6 -1
- data/lib/jets/resource/api_gateway/deployment.rb +2 -0
- data/lib/jets/resource/api_gateway/rest_api/logical_id.rb +34 -0
- data/lib/jets/resource/api_gateway/rest_api/logical_id/message.rb +49 -0
- data/lib/jets/resource/child_stack/api_deployment.rb +2 -0
- data/lib/jets/resource/lambda/function.rb +1 -1
- data/lib/jets/router/dsl.rb +7 -1
- data/lib/jets/router/method_creator/code.rb +1 -1
- data/lib/jets/router/scope.rb +7 -3
- data/lib/jets/spec_helpers/controllers.rb +10 -3
- data/lib/jets/spec_helpers/controllers/request.rb +12 -5
- data/lib/jets/stack/main/dsl/lambda.rb +1 -1
- data/lib/jets/turbo.rb +1 -0
- data/lib/jets/version.rb +1 -1
- metadata +51 -58
- data/vendor/cfn-status/CHANGELOG.md +0 -14
- data/vendor/cfn-status/Gemfile +0 -4
- data/vendor/cfn-status/LICENSE.txt +0 -21
- data/vendor/cfn-status/README.md +0 -56
- data/vendor/cfn-status/Rakefile +0 -6
- data/vendor/cfn-status/bin/console +0 -14
- data/vendor/cfn-status/bin/setup +0 -8
- data/vendor/cfn-status/cfn-status.gemspec +0 -30
- data/vendor/cfn-status/lib/cfn-status.rb +0 -1
- data/vendor/cfn-status/lib/cfn_status.rb +0 -245
- data/vendor/cfn-status/lib/cfn_status/aws_service.rb +0 -51
- data/vendor/cfn-status/lib/cfn_status/version.rb +0 -3
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-complete.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-in-progress.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-update-rollback-complete.json +0 -1086
- data/vendor/cfn-status/spec/lib/cfn_status_spec.rb +0 -153
- data/vendor/cfn-status/spec/spec_helper.rb +0 -14
@@ -1,153 +0,0 @@
|
|
1
|
-
RSpec.describe CfnStatus do
|
2
|
-
it "has a version number" do
|
3
|
-
expect(CfnStatus::VERSION).not_to be nil
|
4
|
-
end
|
5
|
-
|
6
|
-
let(:status) do
|
7
|
-
status = CfnStatus.new("test-stack")
|
8
|
-
allow(status).to receive(:cfn).and_return(cfn)
|
9
|
-
status
|
10
|
-
end
|
11
|
-
let(:cfn) do
|
12
|
-
service = double("service").as_null_object
|
13
|
-
allow(service).to receive(:describe_stacks).and_return(stack_status)
|
14
|
-
allow(service).to receive(:describe_stack_events).and_return(stack_events)
|
15
|
-
service
|
16
|
-
end
|
17
|
-
|
18
|
-
context "in progress" do
|
19
|
-
let(:stack_status) { "UPDATE_IN_PROGRESS" }
|
20
|
-
let(:stack_events) { JSON.load(IO.read("spec/fixtures/cfn/stack-events-in-progress.json")) }
|
21
|
-
it "lists events since user initiated event" do
|
22
|
-
status.refresh_events
|
23
|
-
i = status.start_index
|
24
|
-
expect(i).to eq 15
|
25
|
-
# uncomment to view and debug
|
26
|
-
# status.show_events
|
27
|
-
# puts "****"
|
28
|
-
# status.show_events # should not show anything
|
29
|
-
end
|
30
|
-
|
31
|
-
it "lists events since last shown event" do
|
32
|
-
# first display
|
33
|
-
status.refresh_events
|
34
|
-
i = status.start_index
|
35
|
-
expect(i).to eq 15
|
36
|
-
|
37
|
-
# move the last event back in time 4 events, so should print 3 events
|
38
|
-
status.instance_variable_set(:@last_shown_event_id, "TargetGroup-ec634c43-b887-4bde-a525-7c69782865a6")
|
39
|
-
|
40
|
-
captured_events = []
|
41
|
-
allow(status).to receive(:print_event) do |e|
|
42
|
-
captured_events << "#{e["resource_type"]} #{e["resource_status"]}"
|
43
|
-
end
|
44
|
-
status.show_events
|
45
|
-
expect(captured_events).to eq([
|
46
|
-
"AWS::ElasticLoadBalancingV2::LoadBalancer DELETE_IN_PROGRESS",
|
47
|
-
"AWS::ElasticLoadBalancingV2::LoadBalancer DELETE_COMPLETE",
|
48
|
-
"AWS::EC2::SecurityGroup DELETE_IN_PROGRESS",
|
49
|
-
])
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
context "complete" do
|
54
|
-
let(:stack_status) { "UPDATE_COMPLETE" }
|
55
|
-
let(:stack_events) { JSON.load(IO.read("spec/fixtures/cfn/stack-events-complete.json")) }
|
56
|
-
it "lists events all the way to completion" do
|
57
|
-
status.refresh_events
|
58
|
-
i = status.start_index
|
59
|
-
expect(i).to eq 17
|
60
|
-
# uncomment to view and debug
|
61
|
-
# status.show_events
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
context "update_rollback" do
|
66
|
-
let(:stack_status) { "UPDATE_ROLLBACK_COMPLETE" }
|
67
|
-
let(:stack_events) { JSON.load(IO.read("spec/fixtures/cfn/stack-events-update-rollback-complete.json")) }
|
68
|
-
it "lists events all the way to update rollback complete" do
|
69
|
-
status.refresh_events
|
70
|
-
expect(status.success?).to be false
|
71
|
-
expect(status.update_rollback?).to be true
|
72
|
-
expect(status.rollback_error_message).to include("STATIC_NAME")
|
73
|
-
|
74
|
-
# i = status.start_index
|
75
|
-
# expect(i).to eq 17
|
76
|
-
# uncomment to view and debug
|
77
|
-
# status.show_events
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
context "huge template with large number of stack_events" do
|
82
|
-
# Grabbed the fixture data with `jets status`
|
83
|
-
context "fresh" do
|
84
|
-
# Special mock for pagination testing
|
85
|
-
let(:cfn) do
|
86
|
-
service = double("service").as_null_object
|
87
|
-
allow(service).to receive(:describe_stacks).and_return(stack_status)
|
88
|
-
|
89
|
-
allow(service).to receive(:describe_stack_events) do |args|
|
90
|
-
case args
|
91
|
-
when {:stack_name=>"test-stack"}
|
92
|
-
stack_events1
|
93
|
-
when {:stack_name=>"test-stack", :next_token=>"2"}
|
94
|
-
stack_events2
|
95
|
-
else
|
96
|
-
stack_events3 # final page since "User Initiated" is found
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
service
|
101
|
-
end
|
102
|
-
let(:stack_status) { "UPDATE_COMPLETE" }
|
103
|
-
let(:stack_events1) { JSON.load(IO.read("spec/fixtures/cfn/pages/fresh/describe_stack_events-1.json")) }
|
104
|
-
let(:stack_events2) { JSON.load(IO.read("spec/fixtures/cfn/pages/fresh/describe_stack_events-2.json")) }
|
105
|
-
let(:stack_events3) { JSON.load(IO.read("spec/fixtures/cfn/pages/fresh/describe_stack_events-3.json")) }
|
106
|
-
|
107
|
-
it "paginates" do
|
108
|
-
status.refresh_events
|
109
|
-
expect(status.events.size).to eq 300 # 3 pages worth of events to find the "User Initiated"
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
# Grabbed the fixture data with `jets jets`
|
114
|
-
context "updating" do
|
115
|
-
# Special mock for pagination testing
|
116
|
-
let(:cfn) do
|
117
|
-
service = double("service").as_null_object
|
118
|
-
allow(service).to receive(:describe_stacks).and_return(stack_status)
|
119
|
-
|
120
|
-
allow(service).to receive(:describe_stack_events) do |args|
|
121
|
-
case args
|
122
|
-
when {:stack_name=>"test-stack"}
|
123
|
-
stack_events1
|
124
|
-
when {:stack_name=>"test-stack", :next_token=>"2"}
|
125
|
-
stack_events2
|
126
|
-
else
|
127
|
-
stack_events3 # final page since "User Initiated" is found
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
service
|
132
|
-
end
|
133
|
-
let(:stack_status) { "UPDATE_COMPLETE" }
|
134
|
-
let(:stack_events1) { JSON.load(IO.read("spec/fixtures/cfn/pages/updating/describe_stack_events-1.json")) }
|
135
|
-
let(:stack_events2) { JSON.load(IO.read("spec/fixtures/cfn/pages/updating/describe_stack_events-2.json")) }
|
136
|
-
let(:stack_events3) { JSON.load(IO.read("spec/fixtures/cfn/pages/updating/describe_stack_events-3.json")) }
|
137
|
-
|
138
|
-
it "found event on page 2" do
|
139
|
-
# random event id grabbed from fixture on page 2
|
140
|
-
status.instance_variable_set(:@last_shown_event_id, "Hard10Job-UPDATE_COMPLETE-2019-10-20T18:03:02.943Z")
|
141
|
-
status.refresh_events
|
142
|
-
expect(status.events.size).to eq 200 # 2 pages worth of events to find the :@last_shown_event_id
|
143
|
-
end
|
144
|
-
|
145
|
-
it "found event on page 3" do
|
146
|
-
# random event id grabbed from fixture on page 3
|
147
|
-
status.instance_variable_set(:@last_shown_event_id, "Hard42Job-UPDATE_COMPLETE-2019-10-20T18:01:33.209Z")
|
148
|
-
status.refresh_events
|
149
|
-
expect(status.events.size).to eq 300 # 3 pages worth of events to find the :@last_shown_event_id
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require "bundler/setup"
|
2
|
-
require "cfn_status"
|
3
|
-
|
4
|
-
RSpec.configure do |config|
|
5
|
-
# Enable flags like --only-failures and --next-failure
|
6
|
-
config.example_status_persistence_file_path = ".rspec_status"
|
7
|
-
|
8
|
-
# Disable RSpec exposing methods globally on `Module` and `main`
|
9
|
-
config.disable_monkey_patching!
|
10
|
-
|
11
|
-
config.expect_with :rspec do |c|
|
12
|
-
c.syntax = :expect
|
13
|
-
end
|
14
|
-
end
|