jets 0.6.5 → 0.6.6
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 +3 -0
- data/Gemfile.lock +1 -1
- data/lib/jets.rb +4 -1
- data/lib/jets/booter.rb +13 -29
- data/lib/jets/commands/deploy.rb +8 -0
- data/lib/jets/core.rb +1 -2
- data/lib/jets/core_ext/kernel.rb +23 -0
- data/lib/jets/io.rb +14 -0
- data/lib/jets/logger.rb +24 -0
- data/lib/jets/ruby_server.rb +2 -1
- data/lib/jets/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba1ae625286077b458d497643590d72d83d10e800ce1d8fc1bf18599260501a0
|
4
|
+
data.tar.gz: cdccc52793152392901ae9c27e5bfbeafaccf49d4fc78fea70dc28feeda0d8ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ead8f6f9e01613c614e6815e25ad777413fb2222e07b065962a7ee3e33d19dad7dcb7fd9a158da57543ba9ec65c3634043081ea44636227a633d29dbb914035
|
7
|
+
data.tar.gz: 59a7f19c9e3486d68462f929d0ef93b54ec752edc4ae9b880bd535fd57d969370088a4053c4bf37cd0da63ed2b113ffe75b8804e6f7842da182c39a5b6223ace
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [0.6.6]
|
7
|
+
- improve puts handling: PR #15
|
8
|
+
|
6
9
|
## [0.6.5]
|
7
10
|
- fix prewarming after a deploy
|
8
11
|
|
data/Gemfile.lock
CHANGED
data/lib/jets.rb
CHANGED
@@ -44,13 +44,16 @@ module Jets
|
|
44
44
|
extend Core # root, logger, etc
|
45
45
|
|
46
46
|
autoload :RubyServer, "jets/ruby_server"
|
47
|
+
autoload :IO, "jets/io"
|
48
|
+
autoload :Logger, "jets/logger"
|
47
49
|
end
|
48
50
|
|
51
|
+
require "jets/core_ext/kernel"
|
52
|
+
|
49
53
|
$:.unshift(File.expand_path("../../vendor/lambdagem/lib", __FILE__))
|
50
54
|
require "lambdagem"
|
51
55
|
require "gems" # lambdagem dependency
|
52
56
|
|
53
|
-
|
54
57
|
# lazy loaded dependencies: depends what project. Mainly determined by Gemfile
|
55
58
|
# and config files.
|
56
59
|
if File.exist?("#{Jets.root}config/dynamodb.yml")
|
data/lib/jets/booter.rb
CHANGED
@@ -4,7 +4,7 @@ class Jets::Booter
|
|
4
4
|
def boot!(options={})
|
5
5
|
return if @booted
|
6
6
|
|
7
|
-
redirect_output
|
7
|
+
redirect_output
|
8
8
|
confirm_jets_project!
|
9
9
|
require_bundle_gems
|
10
10
|
Jets::Dotenv.load!
|
@@ -14,37 +14,21 @@ class Jets::Booter
|
|
14
14
|
@booted = true
|
15
15
|
end
|
16
16
|
|
17
|
-
#
|
18
|
-
#
|
17
|
+
# AWS Lambda for natively supported languages prints to CloudWatch instead of
|
18
|
+
# mungling up the response. We'll redirect stdout to stderr to mimic AWS Lambda
|
19
|
+
# behavior.
|
19
20
|
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
|
21
|
+
# Also, for local use, printing to stdout can mangle up the response when piping
|
22
|
+
# the value to jq. For example:
|
23
|
+
#
|
24
|
+
# `jets call --local .. | jq`
|
25
|
+
#
|
26
|
+
# By redirecting stderr we can use jq safely.
|
27
|
+
#
|
28
|
+
def redirect_output
|
24
29
|
$stdout.sync = true
|
25
30
|
$stderr.sync = true
|
26
|
-
|
27
|
-
# Set both $stdout and $stdout to a StringIO object as a buffer.
|
28
|
-
# At the end of the request, write this buffer to the filesystem.
|
29
|
-
# In the node shim, read it back and write it to AWS Lambda logs.
|
30
|
-
#
|
31
|
-
# This allows using `puts` to write to CloudWatch.
|
32
|
-
$stdout = $stderr = StringIO.new # for ruby_server and AWS Lambda to capture log
|
33
|
-
else
|
34
|
-
# Printing to stdout can mangle up the response if we're piping the value to
|
35
|
-
# jq. For exampe, `jets call --local .. | jq`
|
36
|
-
# By redirecting stderr we can use jq.
|
37
|
-
#
|
38
|
-
$stdout = $stderr # jets call and local jets operation
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
# Used in ruby_server.rb
|
43
|
-
def flush_output
|
44
|
-
IO.write("/tmp/jets-output.log", $stdout.string)
|
45
|
-
# Thanks: https://stackoverflow.com/questions/28445000/how-can-i-clear-a-stringio-instance
|
46
|
-
$stdout.truncate(0)
|
47
|
-
$stdout.rewind
|
31
|
+
$stdout = $stderr # jets call and local jets operation
|
48
32
|
end
|
49
33
|
|
50
34
|
# require_bundle_gems called when environment boots up via Jets.boot. It
|
data/lib/jets/commands/deploy.rb
CHANGED
@@ -12,6 +12,7 @@ module Jets::Commands
|
|
12
12
|
puts "Deploying to Lambda #{deployment_env} environment..."
|
13
13
|
return if @options[:noop]
|
14
14
|
|
15
|
+
check_dev_mode
|
15
16
|
build_code
|
16
17
|
validate_routes!
|
17
18
|
|
@@ -24,6 +25,13 @@ module Jets::Commands
|
|
24
25
|
end
|
25
26
|
time :run
|
26
27
|
|
28
|
+
def check_dev_mode
|
29
|
+
if File.exist?("#{Jets.root}dev.mode")
|
30
|
+
puts "The dev.mode file exists. Please removed it and run bundle update before you deploy.".colorize(:red)
|
31
|
+
exit 1
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
27
35
|
def build_code
|
28
36
|
Jets::Commands::Build.new(@options).build_code
|
29
37
|
end
|
data/lib/jets/core.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
# Works with jets/io.rb
|
2
|
+
module Kernel
|
3
|
+
@@io_buffer = []
|
4
|
+
|
5
|
+
alias_method :original_puts, :puts
|
6
|
+
def puts(message)
|
7
|
+
@@io_buffer << message
|
8
|
+
original_puts(message)
|
9
|
+
end
|
10
|
+
|
11
|
+
# TODO: implement other methods that write output:
|
12
|
+
# p, print, printf, putc, puts, sprintf?
|
13
|
+
# Also, would be nice to figure out pp method also.
|
14
|
+
|
15
|
+
def io_buffer
|
16
|
+
@@io_buffer
|
17
|
+
end
|
18
|
+
|
19
|
+
def io_flush
|
20
|
+
IO.write("/tmp/jets-output.log", @@io_buffer.join("\n"))
|
21
|
+
@@io_buffer = []
|
22
|
+
end
|
23
|
+
end
|
data/lib/jets/io.rb
ADDED
data/lib/jets/logger.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
module Jets
|
4
|
+
class Logger < ::Logger
|
5
|
+
# Only need to override the add method as the other calls all lead to it.
|
6
|
+
def add(severity, message = nil, progname = nil)
|
7
|
+
# Taken from Logger#add source
|
8
|
+
# https://ruby-doc.org/stdlib-2.5.1/libdoc/logger/rdoc/Logger.html#method-i-add
|
9
|
+
if message.nil?
|
10
|
+
if block_given?
|
11
|
+
message = yield
|
12
|
+
else
|
13
|
+
message = progname
|
14
|
+
progname = @progname
|
15
|
+
end
|
16
|
+
end
|
17
|
+
# Put the message in the Jets::IO.buffer which will get flushed to CloudWatch.
|
18
|
+
# No need to include timestamp as CloudWatch already has a timestamp.
|
19
|
+
IO.buffer << message
|
20
|
+
|
21
|
+
super # original logical
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/jets/ruby_server.rb
CHANGED
@@ -66,7 +66,7 @@ module Jets
|
|
66
66
|
prewarm_request(event) :
|
67
67
|
standard_request(event, '{}', handler)
|
68
68
|
|
69
|
-
Jets::
|
69
|
+
Jets::IO.flush # flush output and write to disk for node shim
|
70
70
|
|
71
71
|
client.puts(result)
|
72
72
|
client.close
|
@@ -76,6 +76,7 @@ module Jets
|
|
76
76
|
def prewarm_request(event)
|
77
77
|
# JSON.dump("prewarmed_at" => Time.now.to_s)
|
78
78
|
Jets.increase_prewarm_count
|
79
|
+
Jets.logger.info("Prewarm request")
|
79
80
|
%Q|{"prewarmed_at":"#{Time.now.to_s}"}| # raw json for speed
|
80
81
|
end
|
81
82
|
|
data/lib/jets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.6
|
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-08-
|
11
|
+
date: 2018-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -548,6 +548,7 @@ files:
|
|
548
548
|
- lib/jets/controller/rendering.rb
|
549
549
|
- lib/jets/controller/request.rb
|
550
550
|
- lib/jets/core.rb
|
551
|
+
- lib/jets/core_ext/kernel.rb
|
551
552
|
- lib/jets/default/application.rb
|
552
553
|
- lib/jets/dotenv.rb
|
553
554
|
- lib/jets/erb.rb
|
@@ -571,6 +572,7 @@ files:
|
|
571
572
|
- lib/jets/internal/app/controllers/jets/welcome_controller.rb
|
572
573
|
- lib/jets/internal/app/controllers/jets/welcome_controller/python/index.py
|
573
574
|
- lib/jets/internal/app/jobs/jets/preheat_job.rb
|
575
|
+
- lib/jets/io.rb
|
574
576
|
- lib/jets/job.rb
|
575
577
|
- lib/jets/job/base.rb
|
576
578
|
- lib/jets/job/dsl.rb
|
@@ -582,6 +584,7 @@ files:
|
|
582
584
|
- lib/jets/lambda/function_constructor.rb
|
583
585
|
- lib/jets/lambda/functions.rb
|
584
586
|
- lib/jets/lambda/task.rb
|
587
|
+
- lib/jets/logger.rb
|
585
588
|
- lib/jets/naming.rb
|
586
589
|
- lib/jets/pascalize.rb
|
587
590
|
- lib/jets/poly_fun.rb
|