jets 2.3.19 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +0 -3
  3. data/.python-version +1 -1
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +28 -2
  6. data/README.md +2 -2
  7. data/backers.md +1 -0
  8. data/jets.gemspec +11 -10
  9. data/lib/jets.rb +9 -13
  10. data/lib/jets/application.rb +9 -2
  11. data/lib/jets/application/defaults.rb +17 -15
  12. data/lib/jets/autoloaders.rb +15 -1
  13. data/lib/jets/booter.rb +3 -3
  14. data/lib/jets/builders/code_builder.rb +16 -15
  15. data/lib/jets/builders/gem_replacer.rb +3 -16
  16. data/lib/jets/builders/lambda_layer.rb +4 -5
  17. data/lib/jets/builders/ruby_packager.rb +18 -42
  18. data/lib/jets/builders/tidy.rb +1 -2
  19. data/lib/jets/bundle.rb +6 -0
  20. data/lib/jets/cfn/builders/api_gateway_builder.rb +61 -7
  21. data/lib/jets/cfn/ship.rb +2 -1
  22. data/lib/jets/cli.rb +6 -1
  23. data/lib/jets/commands/base.rb +1 -1
  24. data/lib/jets/commands/call.rb +14 -1
  25. data/lib/jets/commands/clean.rb +1 -1
  26. data/lib/jets/commands/clean/base.rb +1 -1
  27. data/lib/jets/commands/configure.rb +51 -0
  28. data/lib/jets/commands/delete.rb +2 -2
  29. data/lib/jets/commands/gems.rb +2 -10
  30. data/lib/jets/commands/help/call.md +8 -0
  31. data/lib/jets/commands/help/gems/check.md +3 -5
  32. data/lib/jets/commands/main.rb +9 -1
  33. data/lib/jets/commands/new.rb +9 -1
  34. data/lib/jets/commands/sequence.rb +6 -0
  35. data/lib/jets/commands/templates/skeleton/Gemfile.tt +1 -1
  36. data/lib/jets/commands/templates/skeleton/config/application.rb.tt +1 -1
  37. data/lib/jets/commands/templates/skeleton/public/index.html.tt +1 -1
  38. data/lib/jets/commands/url.rb +1 -0
  39. data/lib/jets/controller/base.rb +14 -4
  40. data/lib/jets/controller/middleware/main.rb +2 -1
  41. data/lib/jets/controller/params.rb +26 -4
  42. data/lib/jets/controller/rack/env.rb +18 -1
  43. data/lib/jets/controller/rendering.rb +5 -2
  44. data/lib/jets/controller/rendering/rack_renderer.rb +7 -1
  45. data/lib/jets/core.rb +12 -4
  46. data/lib/jets/dotenv/ssm.rb +18 -4
  47. data/lib/jets/generator.rb +2 -3
  48. data/lib/jets/internal/app/functions/jets/base_path.rb +10 -149
  49. data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +81 -0
  50. data/lib/jets/internal/app/shared/functions/jets/s3_bucket_config.rb +14 -24
  51. data/lib/jets/resource/api_gateway/base_path/function.rb +6 -1
  52. data/lib/jets/resource/api_gateway/deployment.rb +2 -0
  53. data/lib/jets/resource/api_gateway/rest_api/logical_id.rb +34 -0
  54. data/lib/jets/resource/api_gateway/rest_api/logical_id/message.rb +49 -0
  55. data/lib/jets/resource/child_stack/api_deployment.rb +2 -0
  56. data/lib/jets/resource/lambda/function.rb +1 -1
  57. data/lib/jets/router/dsl.rb +7 -1
  58. data/lib/jets/router/method_creator/code.rb +1 -1
  59. data/lib/jets/router/scope.rb +7 -3
  60. data/lib/jets/spec_helpers/controllers.rb +10 -3
  61. data/lib/jets/spec_helpers/controllers/request.rb +12 -5
  62. data/lib/jets/stack/main/dsl/lambda.rb +1 -1
  63. data/lib/jets/turbo.rb +1 -0
  64. data/lib/jets/version.rb +1 -1
  65. metadata +51 -58
  66. data/vendor/cfn-status/CHANGELOG.md +0 -14
  67. data/vendor/cfn-status/Gemfile +0 -4
  68. data/vendor/cfn-status/LICENSE.txt +0 -21
  69. data/vendor/cfn-status/README.md +0 -56
  70. data/vendor/cfn-status/Rakefile +0 -6
  71. data/vendor/cfn-status/bin/console +0 -14
  72. data/vendor/cfn-status/bin/setup +0 -8
  73. data/vendor/cfn-status/cfn-status.gemspec +0 -30
  74. data/vendor/cfn-status/lib/cfn-status.rb +0 -1
  75. data/vendor/cfn-status/lib/cfn_status.rb +0 -245
  76. data/vendor/cfn-status/lib/cfn_status/aws_service.rb +0 -51
  77. data/vendor/cfn-status/lib/cfn_status/version.rb +0 -3
  78. data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-1.json +0 -1103
  79. data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-2.json +0 -1104
  80. data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-3.json +0 -1103
  81. data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-1.json +0 -1103
  82. data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-2.json +0 -1104
  83. data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-3.json +0 -1103
  84. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-complete.json +0 -1080
  85. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-in-progress.json +0 -1080
  86. data/vendor/cfn-status/spec/fixtures/cfn/stack-events-update-rollback-complete.json +0 -1086
  87. data/vendor/cfn-status/spec/lib/cfn_status_spec.rb +0 -153
  88. 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