faastruby 0.2.5 → 0.2.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 +6 -0
- data/Gemfile.lock +2 -2
- data/exe/faastruby +4 -0
- data/faastruby.gemspec +1 -1
- data/lib/faastruby/api.rb +67 -9
- data/lib/faastruby/cli/commands/help.rb +4 -1
- data/lib/faastruby/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fd64fdf16d7eaccea051a5d101f1376c7276285b8ae68f31320dc9dafe4d348
|
4
|
+
data.tar.gz: 3277f48a6095471b033ce8b730532255c092935437b30d72a9a851ccd1a0be21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4342ed171a03f6dd3ad3bb1d9ee6b0f0d5cbb81de042a64e2e6fa884bf52c6f7ebf0146b4d25d5c8338b88ebf2126b15774c92aa904a5c677a8bcb8a3cf6689b
|
7
|
+
data.tar.gz: 6a4ed4b25c093aac6f968c82932a1194ef0f6d2d172b99b7cc96a1072d77bd29f3ee1351d5439948ea362bcfcda15ee8c4d5d961c78f9c1c14a6e08b861b31ed
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.2.6 - Nov 20 2018
|
4
|
+
- Change Ruby minimum version to 2.5.0
|
5
|
+
- Disable timeout on HTTP requests.
|
6
|
+
- Handle CTRL+C interruptions gracefully
|
7
|
+
- Add `--region` to help
|
8
|
+
|
3
9
|
## 0.2.5 - Nov 18 2018
|
4
10
|
- Support for multiple regions with `faastruby --region [REGION] ...`
|
5
11
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
faastruby (0.2.
|
4
|
+
faastruby (0.2.6)
|
5
5
|
colorize (~> 0.8)
|
6
6
|
oj (~> 3.6)
|
7
7
|
rest-client (~> 2.0)
|
@@ -29,7 +29,7 @@ GEM
|
|
29
29
|
mime-types-data (3.2018.0812)
|
30
30
|
necromancer (0.4.0)
|
31
31
|
netrc (0.11.0)
|
32
|
-
oj (3.7.
|
32
|
+
oj (3.7.1)
|
33
33
|
pastel (0.7.2)
|
34
34
|
equatable (~> 0.5.0)
|
35
35
|
tty-color (~> 0.4.0)
|
data/exe/faastruby
CHANGED
data/faastruby.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.version = FaaStRuby::VERSION
|
8
8
|
spec.authors = ["Paulo Arruda"]
|
9
9
|
spec.email = ["parrudaj@gmail.com"]
|
10
|
-
spec.required_ruby_version = '>= 2.
|
10
|
+
spec.required_ruby_version = '>= 2.5.0'
|
11
11
|
spec.summary = %q{FaaStRuby CLI - Manage workspaces and functions hosted at faastruby.io.}
|
12
12
|
spec.homepage = "https://faastruby.io"
|
13
13
|
spec.license = "MIT"
|
data/lib/faastruby/api.rb
CHANGED
@@ -9,6 +9,7 @@ module FaaStRuby
|
|
9
9
|
@credentials = {'API-KEY' => FaaStRuby.api_key, 'API-SECRET' => FaaStRuby.api_secret}
|
10
10
|
@headers = {content_type: 'application/json', accept: 'application/json'}.merge(@credentials)
|
11
11
|
@struct = Struct.new(:response, :body, :errors, :code)
|
12
|
+
@timeout = nil # disable request timeouts
|
12
13
|
end
|
13
14
|
|
14
15
|
def create_workspace(workspace_name:, email: nil, provider: nil)
|
@@ -16,12 +17,26 @@ module FaaStRuby
|
|
16
17
|
payload = {'name' => workspace_name}
|
17
18
|
payload['email'] = email if email
|
18
19
|
payload['provider'] = provider if provider
|
19
|
-
parse RestClient.post
|
20
|
+
parse RestClient::Request.execute(method: :post, timeout: @timeout, url: url, payload: Oj.dump(payload), headers: @headers)
|
21
|
+
rescue RestClient::ExceptionWithResponse => err
|
22
|
+
case err.http_code
|
23
|
+
when 301, 302, 307
|
24
|
+
err.response.follow_redirection
|
25
|
+
else
|
26
|
+
parse err.response
|
27
|
+
end
|
20
28
|
end
|
21
29
|
|
22
30
|
def destroy_workspace(workspace_name)
|
23
31
|
url = "#{@api_url}/workspaces/#{workspace_name}"
|
24
|
-
parse RestClient.delete
|
32
|
+
parse RestClient::Request.execute(method: :delete, timeout: @timeout, url: url, headers: @headers)
|
33
|
+
rescue RestClient::ExceptionWithResponse => err
|
34
|
+
case err.http_code
|
35
|
+
when 301, 302, 307
|
36
|
+
err.response.follow_redirection
|
37
|
+
else
|
38
|
+
parse err.response
|
39
|
+
end
|
25
40
|
end
|
26
41
|
|
27
42
|
# def update_workspace(workspace_name, payload)
|
@@ -31,24 +46,52 @@ module FaaStRuby
|
|
31
46
|
|
32
47
|
def get_workspace_info(workspace_name)
|
33
48
|
url = "#{@api_url}/workspaces/#{workspace_name}"
|
34
|
-
parse RestClient.get
|
49
|
+
parse RestClient::Request.execute(method: :get, timeout: @timeout, url: url, headers: @headers)
|
50
|
+
rescue RestClient::ExceptionWithResponse => err
|
51
|
+
case err.http_code
|
52
|
+
when 301, 302, 307
|
53
|
+
err.response.follow_redirection
|
54
|
+
else
|
55
|
+
parse err.response
|
56
|
+
end
|
35
57
|
end
|
36
58
|
|
37
59
|
def refresh_credentials(workspace_name)
|
38
60
|
url = "#{@api_url}/workspaces/#{workspace_name}/credentials"
|
39
61
|
payload = {}
|
40
|
-
parse RestClient.
|
62
|
+
parse RestClient::Request.execute(method: :put, timeout: @timeout, url: url, payload: payload, headers: @credentials)
|
63
|
+
rescue RestClient::ExceptionWithResponse => err
|
64
|
+
case err.http_code
|
65
|
+
when 301, 302, 307
|
66
|
+
err.response.follow_redirection
|
67
|
+
else
|
68
|
+
parse err.response
|
69
|
+
end
|
41
70
|
end
|
42
71
|
|
43
72
|
def deploy(workspace_name:, package:)
|
44
73
|
url = "#{@api_url}/workspaces/#{workspace_name}/deploy"
|
45
74
|
payload = {package: File.new(package, 'rb')}
|
46
|
-
parse RestClient.
|
75
|
+
parse RestClient::Request.execute(method: :post, timeout: @timeout, url: url, payload: payload, headers: @credentials)
|
76
|
+
rescue RestClient::ExceptionWithResponse => err
|
77
|
+
case err.http_code
|
78
|
+
when 301, 302, 307
|
79
|
+
err.response.follow_redirection
|
80
|
+
else
|
81
|
+
parse err.response
|
82
|
+
end
|
47
83
|
end
|
48
84
|
|
49
85
|
def delete_from_workspace(function_name:, workspace_name:)
|
50
86
|
url = "#{@api_url}/workspaces/#{workspace_name}/functions/#{function_name}"
|
51
|
-
parse RestClient.delete
|
87
|
+
parse RestClient::Request.execute(method: :delete, timeout: @timeout, url: url, headers: @headers)
|
88
|
+
rescue RestClient::ExceptionWithResponse => err
|
89
|
+
case err.http_code
|
90
|
+
when 301, 302, 307
|
91
|
+
err.response.follow_redirection
|
92
|
+
else
|
93
|
+
parse err.response
|
94
|
+
end
|
52
95
|
end
|
53
96
|
|
54
97
|
# def list_workspace_functions(workspace_name)
|
@@ -60,16 +103,31 @@ module FaaStRuby
|
|
60
103
|
url = "#{FaaStRuby.api_host}/#{workspace_name}/#{function_name}#{query}"
|
61
104
|
headers['Benchmark'] = true if time
|
62
105
|
if method == 'get'
|
63
|
-
RestClient.
|
106
|
+
RestClient::Request.execute(method: :get, timeout: @timeout, url: url, headers: headers)
|
64
107
|
else
|
65
|
-
RestClient.
|
108
|
+
RestClient::Request.execute(method: method.to_sym, timeout: @timeout, url: url, payload: payload, headers: headers)
|
109
|
+
end
|
110
|
+
rescue RestClient::ExceptionWithResponse => err
|
111
|
+
case err.http_code
|
112
|
+
when 301, 302, 307
|
113
|
+
err.response.follow_redirection
|
114
|
+
else
|
115
|
+
return err.response
|
66
116
|
end
|
67
117
|
end
|
68
118
|
|
69
119
|
def update_function_context(function_name:, workspace_name:, payload:)
|
70
120
|
# payload is a string
|
71
121
|
url = "#{@api_url}/workspaces/#{workspace_name}/functions/#{function_name}"
|
72
|
-
parse RestClient.patch
|
122
|
+
parse RestClient::Request.execute(method: :patch, timeout: @timeout, url: url, payload: Oj.dump(payload), headers: @headers)
|
123
|
+
# parse RestClient.patch(url, Oj.dump(payload), @headers){|response, request, result| response }
|
124
|
+
rescue RestClient::ExceptionWithResponse => err
|
125
|
+
case err.http_code
|
126
|
+
when 301, 302, 307
|
127
|
+
err.response.follow_redirection
|
128
|
+
else
|
129
|
+
parse err.response
|
130
|
+
end
|
73
131
|
end
|
74
132
|
|
75
133
|
def parse(response)
|
@@ -8,8 +8,11 @@ module FaaStRuby
|
|
8
8
|
def run
|
9
9
|
puts "FaaStRuby CLI - Manage workspaces and functions hosted at faastruby.io"
|
10
10
|
puts
|
11
|
+
puts "Usage: faastruby [--region REGION, -h, -v] COMMAND ARGS"
|
12
|
+
puts
|
11
13
|
puts 'help, -h, --help # Displays this help'
|
12
14
|
puts '-v # Print version and exit'
|
15
|
+
puts '--region tor1|sfo2 # Specify a region'
|
13
16
|
puts
|
14
17
|
workspaces = ["Workspaces:"]
|
15
18
|
functions = ["Functions:"]
|
@@ -33,4 +36,4 @@ module FaaStRuby
|
|
33
36
|
end
|
34
37
|
end
|
35
38
|
end
|
36
|
-
end
|
39
|
+
end
|
data/lib/faastruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faastruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paulo Arruda
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -221,7 +221,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
221
221
|
requirements:
|
222
222
|
- - ">="
|
223
223
|
- !ruby/object:Gem::Version
|
224
|
-
version: 2.
|
224
|
+
version: 2.5.0
|
225
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
227
|
- - ">="
|