faastruby 0.5.17 → 0.5.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +3 -3
- data/lib/faastruby/server/app.rb +15 -17
- data/lib/faastruby/server/response.rb +5 -1
- data/lib/faastruby/server/runner_methods.rb +1 -1
- data/lib/faastruby/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c5a4bcb83a358f5100f329a36f5cbe052a6a9e3eb085aed3fe04bdbcd5f62da
|
4
|
+
data.tar.gz: ac614dec04fb647cecee6abf8b5846c1097323d35ad5ba98b424149dabec1e5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 734eb6a83509dc4b2ddcdee49846d360d39ea36499424b98a4ba538130de7528153e4c680cba7754ddd9a3527b2440f93fb085710b301a4402e01678fc921229
|
7
|
+
data.tar.gz: 89435a82075fd0806b2f2434177e598ce1910f5fe0a57ff3a873868cc3157f669ec9b082cfa7260c6fd8c2d75e58dd1acce49da0301b12fffa70e44c2649bb5d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.5.18 - Mar 19 2019
|
4
|
+
- Reverted changes from 0.5.17
|
5
|
+
- Refactored headers parsing
|
6
|
+
- Bump `faastruby-rpc` version
|
7
|
+
- Force RPC calls to use event.body instead of extra arguments
|
8
|
+
- Added `favicon.ico` to the public template to stop annoying catch-all invocations on log
|
9
|
+
- Match platform behaviour when render text is used on an object
|
10
|
+
|
3
11
|
## 0.5.17 - Mar 19 2019
|
4
12
|
- Refactored headers parsing
|
5
13
|
- Change Oj load behaviour to use hash with symbol keys when loading rpc_args
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
faastruby (0.5.
|
4
|
+
faastruby (0.5.16)
|
5
5
|
colorize (~> 0.8)
|
6
|
-
faastruby-rpc (~> 0.2.
|
6
|
+
faastruby-rpc (~> 0.2.5)
|
7
7
|
listen (~> 3.1)
|
8
8
|
oj (~> 3.6)
|
9
9
|
puma (~> 3.12)
|
@@ -30,7 +30,7 @@ GEM
|
|
30
30
|
unf (>= 0.0.5, < 1.0.0)
|
31
31
|
equatable (0.5.0)
|
32
32
|
erubis (2.7.0)
|
33
|
-
faastruby-rpc (0.2.
|
33
|
+
faastruby-rpc (0.2.5)
|
34
34
|
oj (~> 3.6)
|
35
35
|
ffi (1.10.0)
|
36
36
|
hashdiff (0.3.7)
|
data/lib/faastruby/server/app.rb
CHANGED
@@ -6,7 +6,6 @@ require 'sinatra/multi_route'
|
|
6
6
|
require 'securerandom'
|
7
7
|
require 'rouge'
|
8
8
|
require 'colorize'
|
9
|
-
|
10
9
|
module FaaStRuby
|
11
10
|
class Server < Sinatra::Base
|
12
11
|
include FaaStRuby::Logger::Requests
|
@@ -25,21 +24,24 @@ module FaaStRuby
|
|
25
24
|
splat = params['splat'][0]
|
26
25
|
function_name = resolve_function_name(splat)
|
27
26
|
request_headers = parse_headers(env)
|
28
|
-
if request_headers.has_key?('Faastruby-Rpc')
|
29
|
-
body = nil
|
30
|
-
rpc_args = parse_body(request.body.read, request_headers['Content-Type'], request.request_method, true) || []
|
31
27
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
28
|
+
# if headers.has_key?("Faastruby-Rpc")
|
29
|
+
# body = nil
|
30
|
+
# rpc_args = parse_body(request.body.read, headers['Content-Type'], request.request_method) || []
|
31
|
+
# else
|
32
|
+
# body = parse_body(request.body.read, headers['Content-Type'], request.request_method)
|
33
|
+
# rpc_args = []
|
34
|
+
# end
|
35
|
+
|
36
|
+
body = parse_body(request.body.read, request_headers['Content-Type'], request.request_method)
|
37
|
+
rpc_args = []
|
36
38
|
request_headers['X-Request-Id'] = request_uuid
|
37
39
|
request_headers['Request-Method'] = request.request_method
|
38
40
|
original_request_id = request_headers['X-Original-Request-Id']
|
39
41
|
query_params = parse_query(request.query_string)
|
40
42
|
context = Oj.dump(FaaStRuby::ProjectConfig.secrets_for_function(function_name))
|
41
43
|
event = FaaStRuby::Event.new(body: body, query_params: query_params, headers: request_headers, context: context)
|
42
|
-
log_request_message(function_name, request, request_uuid, query_params, body
|
44
|
+
log_request_message(function_name, request, request_uuid, query_params, body, context, request_headers)
|
43
45
|
time, response = FaaStRuby::Runner.new(function_name).call(event, rpc_args)
|
44
46
|
status response.status
|
45
47
|
headers set_response_headers(response, request_uuid, original_request_id, time)
|
@@ -49,7 +51,7 @@ module FaaStRuby
|
|
49
51
|
end
|
50
52
|
|
51
53
|
def log_request_message(function_name, request, request_uuid, query_params, body, context, request_headers)
|
52
|
-
puts "[#{function_name}] <- [REQUEST: #{request.request_method} \"#{request.fullpath}\"] request_id=\"#{request_uuid}\" body
|
54
|
+
puts "[#{function_name}] <- [REQUEST: #{request.request_method} \"#{request.fullpath}\"] request_id=\"#{request_uuid}\" body=#{body.inspect} query_params=#{query_params} headers=#{request_headers}"
|
53
55
|
end
|
54
56
|
|
55
57
|
def log_response_message(function_name, time, request_uuid, response, print_body)
|
@@ -65,7 +67,7 @@ module FaaStRuby
|
|
65
67
|
|
66
68
|
def parse_response(response)
|
67
69
|
return [Base64.urlsafe_decode64(response.body), "Base64(#{response.body})"] if response.binary?
|
68
|
-
return [response.body,
|
70
|
+
return [response.body, response.body]
|
69
71
|
end
|
70
72
|
|
71
73
|
def resolve_function_name(splat)
|
@@ -82,14 +84,10 @@ module FaaStRuby
|
|
82
84
|
File.file?("#{FaaStRuby::ProjectConfig.functions_dir}/#{name}/faastruby.yml")
|
83
85
|
end
|
84
86
|
|
85
|
-
def parse_body(body, content_type, method
|
87
|
+
def parse_body(body, content_type, method)
|
86
88
|
return nil if method == 'GET'
|
87
89
|
return {} if body.nil? && method != 'GET'
|
88
|
-
if
|
89
|
-
return Oj.load(body, symbol_keys: true) if content_type == 'application/json'
|
90
|
-
else
|
91
|
-
return Oj.load(body) if content_type == 'application/json'
|
92
|
-
end
|
90
|
+
# return Oj.load(body) if content_type == 'application/json'
|
93
91
|
return body
|
94
92
|
end
|
95
93
|
|
@@ -48,7 +48,11 @@ module FaaStRuby
|
|
48
48
|
end
|
49
49
|
attr_accessor :body, :status, :headers, :binary
|
50
50
|
def initialize(body:, status: 200, headers: {}, binary: false)
|
51
|
-
|
51
|
+
if body.is_a?(String) || body.nil?
|
52
|
+
@body = body
|
53
|
+
else
|
54
|
+
@body = body.inspect
|
55
|
+
end
|
52
56
|
@status = status
|
53
57
|
@headers = headers
|
54
58
|
@binary = binary
|
@@ -40,7 +40,7 @@ module FaaStRuby
|
|
40
40
|
resp_body = json.is_a?(String) ? json : Oj.dump(json)
|
41
41
|
when html, inline
|
42
42
|
headers["Content-Type"] ||= "text/html"
|
43
|
-
resp_body = html
|
43
|
+
resp_body = html || inline
|
44
44
|
when text
|
45
45
|
headers["Content-Type"] ||= "text/plain"
|
46
46
|
resp_body = text
|
data/lib/faastruby/version.rb
CHANGED