jets 2.3.19 → 3.0.4

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