jets 1.0.18 → 1.1.0
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/CHANGELOG.md +4 -0
- data/Gemfile.lock +10 -10
- data/README/testing.md +5 -2
- data/lib/jets.rb +2 -2
- data/lib/jets/application.rb +69 -40
- data/lib/jets/booter.rb +17 -20
- data/lib/jets/builders/code_builder.rb +7 -8
- data/lib/jets/cfn/ship.rb +0 -6
- data/lib/jets/commands/build.rb +0 -5
- data/lib/jets/commands/deploy.rb +0 -4
- data/lib/jets/commands/main.rb +31 -4
- data/lib/jets/commands/templates/skeleton/{.env → .env.tt} +1 -0
- data/lib/jets/commands/templates/skeleton/config.ru +1 -0
- data/lib/jets/commands/upgrade/v1.rb +12 -0
- data/lib/jets/controller.rb +5 -0
- data/lib/jets/controller/base.rb +43 -21
- data/lib/jets/controller/cookies.rb +40 -0
- data/lib/jets/controller/cookies/jar.rb +269 -0
- data/lib/jets/controller/middleware.rb +4 -0
- data/lib/jets/controller/middleware/local.rb +119 -0
- data/lib/jets/{server/lambda_aws_proxy.rb → controller/middleware/local/api_gateway.rb} +11 -49
- data/lib/jets/controller/middleware/local/mimic_aws_call.rb +38 -0
- data/lib/jets/{server → controller/middleware/local}/route_matcher.rb +4 -4
- data/lib/jets/controller/middleware/main.rb +46 -0
- data/lib/jets/{server → controller/middleware}/webpacker_setup.rb +0 -1
- data/lib/jets/controller/params.rb +2 -1
- data/lib/jets/controller/rack.rb +5 -0
- data/lib/jets/controller/rack/adapter.rb +60 -0
- data/lib/jets/controller/rack/env.rb +96 -0
- data/lib/jets/controller/redirection.rb +1 -1
- data/lib/jets/controller/renderers.rb +1 -1
- data/lib/jets/controller/renderers/base_renderer.rb +0 -4
- data/lib/jets/controller/renderers/{aws_proxy_renderer.rb → rack_renderer.rb} +7 -19
- data/lib/jets/controller/renderers/template_renderer.rb +1 -1
- data/lib/jets/controller/request.rb +14 -44
- data/lib/jets/controller/response.rb +55 -7
- data/lib/jets/internal/app/controllers/jets/rack_controller.rb +13 -3
- data/lib/jets/mega.rb +7 -0
- data/lib/jets/{rack → mega}/hash_converter.rb +1 -1
- data/lib/jets/{rack → mega}/request.rb +17 -4
- data/lib/jets/middleware.rb +38 -0
- data/lib/jets/middleware/configurator.rb +84 -0
- data/lib/jets/middleware/default_stack.rb +44 -0
- data/lib/jets/middleware/layer.rb +34 -0
- data/lib/jets/middleware/stack.rb +77 -0
- data/lib/jets/resource/function.rb +1 -1
- data/lib/jets/ruby_server.rb +1 -1
- data/lib/jets/server.rb +48 -13
- data/lib/jets/version.rb +1 -1
- metadata +24 -17
- data/lib/jets/application/middleware.rb +0 -23
- data/lib/jets/default/application.rb +0 -23
- data/lib/jets/rack.rb +0 -7
- data/lib/jets/rack/server.rb +0 -47
- data/lib/jets/server/api_gateway.rb +0 -39
- data/lib/jets/server/timing_middleware.rb +0 -33
- data/lib/jets/timing.rb +0 -65
- data/lib/jets/timing/report.rb +0 -82
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c16c6b3b6a3226c7512a79011f134db88f544e86944fd96041c43cfa155c949a
|
4
|
+
data.tar.gz: b598ecc601f5edafb12dc8589be0511e9302b0fb16c61a27a27805612554b1c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e590e98ec4f3b6f6b865d678af0bbb519f4c7b41f0ea99b6d607cd948f18dbfba230cadd30a78342b894dc090eb5ac32de191253538f60715e136b7833a675c7
|
7
|
+
data.tar.gz: 371c670262da7a386880b6a467251c39fa846bb016325eb75b0e0a8e630934c3284134d5e8db27c64a8d62af0e06f927ced345c10faa1fdd862f2c7c84a14cb8
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [1.1.0]
|
7
|
+
- rack compatibility pull request #72 from tongueroo/rack
|
8
|
+
- remove Jets::Timing pull request #73 from tongueroo/rm-timing
|
9
|
+
|
6
10
|
## [1.0.18]
|
7
11
|
- re-raise exception properly after reporting locally
|
8
12
|
|
data/Gemfile.lock
CHANGED
@@ -11,7 +11,7 @@ GIT
|
|
11
11
|
PATH
|
12
12
|
remote: .
|
13
13
|
specs:
|
14
|
-
jets (1.0
|
14
|
+
jets (1.1.0)
|
15
15
|
actionpack (>= 5.2.1)
|
16
16
|
actionview (>= 5.2.1)
|
17
17
|
activerecord (>= 5.2.1)
|
@@ -65,9 +65,9 @@ GEM
|
|
65
65
|
tzinfo (~> 1.1)
|
66
66
|
arel (9.0.0)
|
67
67
|
aws-eventstream (1.0.1)
|
68
|
-
aws-partitions (1.
|
69
|
-
aws-sdk-cloudformation (1.
|
70
|
-
aws-sdk-core (~> 3, >= 3.
|
68
|
+
aws-partitions (1.114.0)
|
69
|
+
aws-sdk-cloudformation (1.12.0)
|
70
|
+
aws-sdk-core (~> 3, >= 3.37.0)
|
71
71
|
aws-sigv4 (~> 1.0)
|
72
72
|
aws-sdk-cloudwatchlogs (1.10.0)
|
73
73
|
aws-sdk-core (~> 3, >= 3.26.0)
|
@@ -83,15 +83,15 @@ GEM
|
|
83
83
|
aws-sdk-kms (1.11.0)
|
84
84
|
aws-sdk-core (~> 3, >= 3.26.0)
|
85
85
|
aws-sigv4 (~> 1.0)
|
86
|
-
aws-sdk-lambda (1.
|
87
|
-
aws-sdk-core (~> 3, >= 3.
|
86
|
+
aws-sdk-lambda (1.14.0)
|
87
|
+
aws-sdk-core (~> 3, >= 3.37.0)
|
88
88
|
aws-sigv4 (~> 1.0)
|
89
|
-
aws-sdk-s3 (1.
|
90
|
-
aws-sdk-core (~> 3, >= 3.
|
89
|
+
aws-sdk-s3 (1.24.1)
|
90
|
+
aws-sdk-core (~> 3, >= 3.37.0)
|
91
91
|
aws-sdk-kms (~> 1)
|
92
92
|
aws-sigv4 (~> 1.0)
|
93
|
-
aws-sdk-sns (1.8.
|
94
|
-
aws-sdk-core (~> 3, >= 3.
|
93
|
+
aws-sdk-sns (1.8.1)
|
94
|
+
aws-sdk-core (~> 3, >= 3.37.0)
|
95
95
|
aws-sigv4 (~> 1.0)
|
96
96
|
aws-sigv4 (1.0.3)
|
97
97
|
builder (3.2.3)
|
data/README/testing.md
CHANGED
@@ -17,7 +17,7 @@ To run the integration tests locally, you need to create a new Jets CRUD project
|
|
17
17
|
jets new demo
|
18
18
|
cd demo
|
19
19
|
jets generate scaffold Post title:string
|
20
|
-
jets server
|
20
|
+
jets server --no-reload
|
21
21
|
|
22
22
|
Then you can run the postman tests:
|
23
23
|
|
@@ -45,4 +45,7 @@ Run the remote integration script:
|
|
45
45
|
Example:
|
46
46
|
|
47
47
|
BASE_URL=https://wb5dcjc09a.execute-api.us-west-2.amazonaws.com/dev spec/integration/remote.sh
|
48
|
-
|
48
|
+
|
49
|
+
## Manual Test
|
50
|
+
|
51
|
+
Test books create, update and delete manually until it's scripted.
|
data/lib/jets.rb
CHANGED
@@ -32,11 +32,12 @@ module Jets
|
|
32
32
|
autoload :Klass, 'jets/klass'
|
33
33
|
autoload :Lambda, 'jets/lambda'
|
34
34
|
autoload :Logger, "jets/logger"
|
35
|
+
autoload :Mega, "jets/mega"
|
36
|
+
autoload :Middleware, "jets/middleware"
|
35
37
|
autoload :Naming, 'jets/naming'
|
36
38
|
autoload :PolyFun, 'jets/poly_fun'
|
37
39
|
autoload :Preheat, "jets/preheat"
|
38
40
|
autoload :Processors, 'jets/processors'
|
39
|
-
autoload :Rack, "jets/rack"
|
40
41
|
autoload :Rdoc, "jets/rdoc"
|
41
42
|
autoload :Resource, "jets/resource"
|
42
43
|
autoload :Route, "jets/route"
|
@@ -45,7 +46,6 @@ module Jets
|
|
45
46
|
autoload :Rule, 'jets/rule'
|
46
47
|
autoload :Server, "jets/server"
|
47
48
|
autoload :Stack, "jets/stack"
|
48
|
-
autoload :Timing, "jets/timing"
|
49
49
|
autoload :Turbine, 'jets/turbine'
|
50
50
|
autoload :Util, "jets/util"
|
51
51
|
|
data/lib/jets/application.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
require "active_support/ordered_options"
|
2
2
|
require "singleton"
|
3
|
+
require "rack"
|
3
4
|
|
4
5
|
class Jets::Application
|
5
6
|
include Singleton
|
6
7
|
extend Memoist
|
7
|
-
|
8
|
-
|
9
|
-
include Middleware
|
8
|
+
autoload :Middleware, "jets/middleware"
|
9
|
+
include Jets::Middleware
|
10
10
|
|
11
11
|
def configure(&block)
|
12
12
|
instance_eval(&block) if block
|
@@ -23,9 +23,30 @@ class Jets::Application
|
|
23
23
|
Jets::Inflections.load!
|
24
24
|
end
|
25
25
|
|
26
|
-
# Default config
|
27
26
|
def config
|
27
|
+
@config ||= ActiveSupport::OrderedOptions.new # dont use memoize since we reset @config later
|
28
|
+
end
|
29
|
+
|
30
|
+
def default_config(project_name=nil)
|
28
31
|
config = ActiveSupport::OrderedOptions.new
|
32
|
+
config.project_name = project_name
|
33
|
+
config.cors = true
|
34
|
+
config.autoload_paths = %w[
|
35
|
+
app/controllers
|
36
|
+
app/models
|
37
|
+
app/jobs
|
38
|
+
app/rules
|
39
|
+
app/helpers
|
40
|
+
app/shared/resources
|
41
|
+
]
|
42
|
+
config.extra_autoload_paths = []
|
43
|
+
|
44
|
+
# function properties defaults
|
45
|
+
config.function = ActiveSupport::OrderedOptions.new
|
46
|
+
config.function.timeout = 30
|
47
|
+
# default memory setting based on:
|
48
|
+
# https://medium.com/epsagon/how-to-make-lambda-faster-memory-performance-benchmark-be6ebc41f0fc
|
49
|
+
config.function.memory_size = 1536
|
29
50
|
|
30
51
|
config.prewarm = ActiveSupport::OrderedOptions.new
|
31
52
|
config.prewarm.enable = true
|
@@ -51,53 +72,37 @@ class Jets::Application
|
|
51
72
|
config.ruby = ActiveSupport::OrderedOptions.new
|
52
73
|
config.ruby.lazy_load = true # also set in config/environments files
|
53
74
|
|
54
|
-
config
|
55
|
-
end
|
56
|
-
memoize :config
|
75
|
+
config.middleware = Jets::Middleware::Configurator.new
|
57
76
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
# internal_autoload_paths are last
|
62
|
-
autoload_paths += internal_autoload_paths
|
63
|
-
ActiveSupport::Dependencies.autoload_paths += autoload_paths
|
64
|
-
end
|
77
|
+
config.session = ActiveSupport::OrderedOptions.new
|
78
|
+
config.session.store = Rack::Session::Cookie # note when accessing it use session[:store] since .store is an OrderedOptions method
|
79
|
+
config.session.options = {}
|
65
80
|
|
66
|
-
|
67
|
-
internal = File.expand_path("../internal", __FILE__)
|
68
|
-
paths = %w[
|
69
|
-
app/controllers
|
70
|
-
app/models
|
71
|
-
app/jobs
|
72
|
-
]
|
73
|
-
paths.map { |path| "#{internal}/#{path}" }
|
74
|
-
end
|
75
|
-
|
76
|
-
def load_configs
|
77
|
-
# The Jets default/application.rb is loaded.
|
78
|
-
load File.expand_path("../default/application.rb", __FILE__)
|
79
|
-
# Then project config/application.rb is loaded.
|
80
|
-
load_app_config
|
81
|
-
load_db_config
|
82
|
-
load_environments_config
|
81
|
+
config
|
83
82
|
end
|
84
83
|
|
85
|
-
# First time loading this might not have all the values. Some values like
|
86
|
-
# project_namespace depend on project_name. Loading the config twice
|
87
|
-
# resolves the chicken and egg problem here.
|
88
84
|
def load_app_config
|
89
|
-
|
90
|
-
#
|
85
|
+
# First time loading will not have all correct values. Some values like
|
86
|
+
# project_namespace depend on project_name. Loading the config twice
|
87
|
+
# resolves the chicken-and-egg problem with config.project_name.
|
88
|
+
# TODO: Improve the way we this is solved.
|
89
|
+
eval_app_config(squash_exception: true) # first time load to capture the config.project_name
|
90
|
+
@config = default_config(config.project_name) # reset config with the captured project_name
|
91
|
+
|
91
92
|
set_dependent_configs! # things like project_namespace that need project_name
|
92
|
-
eval_app_config # twice to fix values that rely on the dependent configs
|
93
93
|
|
94
|
-
|
94
|
+
# Running eval_app_config the second time, hack to solve the chicken-and-egg problem
|
95
|
+
eval_app_config
|
96
|
+
|
97
|
+
set_iam_policy # relies on dependent values, must be called afterwards
|
95
98
|
normalize_env_vars!
|
96
99
|
end
|
97
100
|
|
98
|
-
def eval_app_config
|
101
|
+
def eval_app_config(squash_exception: false)
|
99
102
|
app_config = "#{Jets.root}config/application.rb"
|
100
|
-
load app_config
|
103
|
+
load app_config
|
104
|
+
rescue NoMethodError => e
|
105
|
+
raise(e) unless squash_exception
|
101
106
|
end
|
102
107
|
|
103
108
|
def load_environments_config
|
@@ -108,6 +113,30 @@ class Jets::Application
|
|
108
113
|
end
|
109
114
|
end
|
110
115
|
|
116
|
+
def load_configs
|
117
|
+
load_app_config
|
118
|
+
load_db_config
|
119
|
+
load_environments_config
|
120
|
+
end
|
121
|
+
|
122
|
+
def setup_auto_load_paths
|
123
|
+
autoload_paths = config.autoload_paths + config.extra_autoload_paths
|
124
|
+
autoload_paths = autoload_paths.uniq.map { |p| "#{Jets.root}#{p}" }
|
125
|
+
# internal_autoload_paths are last
|
126
|
+
autoload_paths += internal_autoload_paths
|
127
|
+
ActiveSupport::Dependencies.autoload_paths += autoload_paths
|
128
|
+
end
|
129
|
+
|
130
|
+
def internal_autoload_paths
|
131
|
+
internal = File.expand_path("../internal", __FILE__)
|
132
|
+
paths = %w[
|
133
|
+
app/controllers
|
134
|
+
app/models
|
135
|
+
app/jobs
|
136
|
+
]
|
137
|
+
paths.map { |path| "#{internal}/#{path}" }
|
138
|
+
end
|
139
|
+
|
111
140
|
# Use the shorter name in stack names, but use the full name when it
|
112
141
|
# comes to checking for the env.
|
113
142
|
#
|
data/lib/jets/booter.rb
CHANGED
@@ -4,18 +4,23 @@ class Jets::Booter
|
|
4
4
|
def boot!(options={})
|
5
5
|
return if @booted
|
6
6
|
|
7
|
-
redirect_output
|
8
7
|
confirm_jets_project!
|
9
8
|
require_bundle_gems
|
10
9
|
Jets::Dotenv.load!
|
11
|
-
Jets.application # triggers
|
10
|
+
Jets.application # triggers Application.instance setup # autoload_paths, routes, etc
|
12
11
|
setup_db
|
13
12
|
app_initializers
|
14
13
|
turbine_initializers
|
14
|
+
build_middleware_stack
|
15
15
|
|
16
16
|
@booted = true
|
17
17
|
end
|
18
18
|
|
19
|
+
# Builds and memoize stack so it only gets built on bootup
|
20
|
+
def build_middleware_stack
|
21
|
+
Jets.application.build_stack
|
22
|
+
end
|
23
|
+
|
19
24
|
def turbine_initializers
|
20
25
|
Jets::Turbine.subclasses.each do |subclass|
|
21
26
|
subclass.initializers.each do |label, block|
|
@@ -30,23 +35,6 @@ class Jets::Booter
|
|
30
35
|
end
|
31
36
|
end
|
32
37
|
|
33
|
-
# AWS Lambda for natively supported languages prints to CloudWatch instead of
|
34
|
-
# mungling up the response. We'll redirect stdout to stderr to mimic AWS Lambda
|
35
|
-
# behavior.
|
36
|
-
#
|
37
|
-
# Also, for local use, printing to stdout can mangle up the response when piping
|
38
|
-
# the value to jq. For example:
|
39
|
-
#
|
40
|
-
# `jets call --local .. | jq`
|
41
|
-
#
|
42
|
-
# By redirecting stderr we can use jq safely.
|
43
|
-
#
|
44
|
-
def redirect_output
|
45
|
-
$stdout.sync = true
|
46
|
-
$stderr.sync = true
|
47
|
-
$stdout = $stderr # jets call and local jets operation
|
48
|
-
end
|
49
|
-
|
50
38
|
# require_bundle_gems called when environment boots up via Jets.boot. It
|
51
39
|
# also useful for when to loading Rake tasks in
|
52
40
|
# Jets::Commands::RakeTasks.load!
|
@@ -105,12 +93,21 @@ class Jets::Booter
|
|
105
93
|
def confirm_jets_project!
|
106
94
|
unless File.exist?("#{Jets.root}config/application.rb")
|
107
95
|
puts "It does not look like you are running this command within a jets project. Please confirm that you are in a jets project and try again.".colorize(:red)
|
108
|
-
exit
|
96
|
+
exit 1
|
109
97
|
end
|
110
98
|
end
|
111
99
|
|
112
100
|
def message
|
113
101
|
"Jets booting up in #{Jets.env.colorize(:green)} mode!"
|
114
102
|
end
|
103
|
+
|
104
|
+
def check_config_ru!
|
105
|
+
config_ru = File.read("#{Jets.root}config.ru")
|
106
|
+
unless config_ru.include?("Jets.boot")
|
107
|
+
puts 'The config.ru file is missing Jets.boot. Please add Jets.boot after require "jets"'.colorize(:red)
|
108
|
+
puts "This was changed as made in Jets v1.1.0"
|
109
|
+
exit 1
|
110
|
+
end
|
111
|
+
end
|
115
112
|
end
|
116
113
|
end
|
@@ -53,7 +53,6 @@ class Jets::Builders
|
|
53
53
|
# https://docs.aws.amazon.com/lambda/latest/dg/limits.html
|
54
54
|
AWS_CODE_SIZE_LIMIT = 250 * 1024 * 1024 # 250MB
|
55
55
|
|
56
|
-
include Jets::Timing
|
57
56
|
include Jets::AwsServices
|
58
57
|
include Util
|
59
58
|
extend Memoist
|
@@ -80,7 +79,6 @@ class Jets::Builders
|
|
80
79
|
code_finish
|
81
80
|
end
|
82
81
|
end
|
83
|
-
time :build
|
84
82
|
|
85
83
|
# Resolves the chicken-and-egg problem with md5 checksums. The handlers need
|
86
84
|
# to reference files with the md5 checksum. The files are the:
|
@@ -113,7 +111,6 @@ class Jets::Builders
|
|
113
111
|
end
|
114
112
|
end
|
115
113
|
end
|
116
|
-
time :create_zip_files
|
117
114
|
|
118
115
|
def exist_on_s3?(filename)
|
119
116
|
s3_key = "jets/code/#{filename}"
|
@@ -163,17 +160,16 @@ class Jets::Builders
|
|
163
160
|
def code_setup
|
164
161
|
reconfigure_development_webpacker
|
165
162
|
end
|
166
|
-
time :code_setup
|
167
163
|
|
168
164
|
def code_finish
|
169
165
|
update_lazy_load_config # at the top, must be called before Jets.lazy_load? is used
|
170
166
|
store_s3_base_url
|
167
|
+
disable_webpacker_middleware
|
171
168
|
setup_tmp
|
172
169
|
calculate_md5s # must be called before generate_node_shims and create_zip_files
|
173
170
|
generate_node_shims
|
174
171
|
create_zip_files
|
175
172
|
end
|
176
|
-
time :code_finish
|
177
173
|
|
178
174
|
def update_lazy_load_config
|
179
175
|
size_limit = AWS_CODE_SIZE_LIMIT
|
@@ -231,6 +227,12 @@ class Jets::Builders
|
|
231
227
|
Jets.aws.s3_bucket
|
232
228
|
end
|
233
229
|
|
230
|
+
def disable_webpacker_middleware
|
231
|
+
full_path = "#{full(tmp_code)}/config/disable-webpacker-middleware.txt"
|
232
|
+
FileUtils.mkdir_p(File.dirname(full_path))
|
233
|
+
FileUtils.touch(full_path)
|
234
|
+
end
|
235
|
+
|
234
236
|
# This happens in the current app directory not the tmp code for simplicity.
|
235
237
|
# This is because the node and yarn has likely been set up correctly there.
|
236
238
|
def compile_assets
|
@@ -250,7 +252,6 @@ class Jets::Builders
|
|
250
252
|
`which webpack`.strip
|
251
253
|
sh("JETS_ENV=#{Jets.env} #{webpack_command}")
|
252
254
|
end
|
253
|
-
time :compile_assets
|
254
255
|
|
255
256
|
# This happens in the current app directory not the tmp code for simplicity
|
256
257
|
# This is because the node likely been set up correctly there.
|
@@ -311,7 +312,6 @@ class Jets::Builders
|
|
311
312
|
move_node_modules(Jets.build_root, Jets.root) # move node_modules directory back
|
312
313
|
end
|
313
314
|
end
|
314
|
-
time :copy_project
|
315
315
|
|
316
316
|
# Move the node modules to the tmp build folder to speed up project copying.
|
317
317
|
# A little bit risky because a ctrl-c in the middle of the project copying
|
@@ -360,7 +360,6 @@ class Jets::Builders
|
|
360
360
|
ruby_packager.finish
|
361
361
|
rack_packager.finish
|
362
362
|
end
|
363
|
-
time :package_ruby
|
364
363
|
|
365
364
|
# TODO: Move logic into plugin instead
|
366
365
|
def reconfigure_rails
|
data/lib/jets/cfn/ship.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
class Jets::Cfn
|
2
2
|
class Ship
|
3
|
-
include Jets::Timing
|
4
3
|
include Jets::AwsServices
|
5
4
|
|
6
5
|
def initialize(options)
|
@@ -35,7 +34,6 @@ class Jets::Cfn
|
|
35
34
|
prewarm
|
36
35
|
show_api_endpoint
|
37
36
|
end
|
38
|
-
time :run
|
39
37
|
|
40
38
|
def save_stack
|
41
39
|
if stack_exists?(@parent_stack_name)
|
@@ -49,7 +47,6 @@ class Jets::Cfn
|
|
49
47
|
# parent stack template is on filesystem and child stacks templates is on s3
|
50
48
|
cfn.create_stack(stack_options)
|
51
49
|
end
|
52
|
-
time :create_stack
|
53
50
|
|
54
51
|
def update_stack
|
55
52
|
begin
|
@@ -59,7 +56,6 @@ class Jets::Cfn
|
|
59
56
|
true # error
|
60
57
|
end
|
61
58
|
end
|
62
|
-
time :update_stack
|
63
59
|
|
64
60
|
# options common to both create_stack and update_stack
|
65
61
|
def stack_options
|
@@ -75,7 +71,6 @@ class Jets::Cfn
|
|
75
71
|
def wait_for_stack
|
76
72
|
Jets::Cfn::Status.new(@options).wait
|
77
73
|
end
|
78
|
-
time :wait_for_stack
|
79
74
|
|
80
75
|
def prewarm
|
81
76
|
if ENV['SKIP_PREWARMING']
|
@@ -147,6 +142,5 @@ class Jets::Cfn
|
|
147
142
|
uploader = Upload.new(@options[:s3_bucket])
|
148
143
|
uploader.upload
|
149
144
|
end
|
150
|
-
time :upload_to_s3
|
151
145
|
end
|
152
146
|
end
|