tutum 0.1.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tutum.rb +34 -3
- data/lib/tutum_actions.rb +17 -0
- data/lib/tutum_api.rb +22 -5
- data/lib/tutum_containers.rb +3 -19
- data/lib/tutum_error.rb +2 -0
- data/lib/tutum_node_clusters.rb +50 -0
- data/lib/tutum_node_types.rb +18 -0
- data/lib/tutum_nodes.rb +34 -0
- data/lib/tutum_providers.rb +18 -0
- data/lib/tutum_regions.rb +18 -0
- data/lib/{tutum_clusters.rb → tutum_services.rb} +30 -21
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2bfa295e6c208a54c15b5c1b13c22854bf2d5f9
|
4
|
+
data.tar.gz: 913fcefd8d41ce5a9d872b09416592c44f2904bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e26ea5e40d68159cb6579f01f20cf2b8b5525e3f69b16e9bbff1d504cce01272b9deb5639b181b4e09f9c954f50a729cbbfb3dfe70e73a09ef510e200dfe97f
|
7
|
+
data.tar.gz: 6395fa21a58394335cf37a2010281506b5369d674af5695321f84947f79ad052107fd86ccfc6e441613f73895692b471a0f5867c347e4539e22da75c1143ef9b
|
data/lib/tutum.rb
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
require_relative './tutum_api'
|
2
|
-
|
2
|
+
|
3
|
+
|
4
|
+
require_relative './tutum_actions'
|
3
5
|
require_relative './tutum_containers'
|
6
|
+
require_relative './tutum_node_clusters'
|
4
7
|
require_relative './tutum_images'
|
8
|
+
require_relative './tutum_node_clusters'
|
9
|
+
require_relative './tutum_node_types'
|
10
|
+
require_relative './tutum_nodes'
|
11
|
+
require_relative './tutum_providers'
|
12
|
+
require_relative './tutum_regions'
|
13
|
+
require_relative './tutum_services'
|
14
|
+
require_relative './tutum_error'
|
5
15
|
|
6
16
|
class Tutum
|
7
17
|
attr_reader :username, :api_key
|
@@ -18,6 +28,10 @@ class Tutum
|
|
18
28
|
}
|
19
29
|
end
|
20
30
|
|
31
|
+
def actions
|
32
|
+
@actions ||= TutumContainers.new(headers)
|
33
|
+
end
|
34
|
+
|
21
35
|
def containers
|
22
36
|
@containers ||= TutumContainers.new(headers)
|
23
37
|
end
|
@@ -26,7 +40,24 @@ class Tutum
|
|
26
40
|
@images ||= TutumImages.new(headers)
|
27
41
|
end
|
28
42
|
|
29
|
-
def
|
30
|
-
@
|
43
|
+
def node_clusters
|
44
|
+
@node_clusters ||= TutumNodeClusters.new(headers)
|
31
45
|
end
|
46
|
+
|
47
|
+
def node_types
|
48
|
+
@node_types ||= TutumNOdeTypes.new(headers)
|
49
|
+
end
|
50
|
+
|
51
|
+
def nodes
|
52
|
+
@nodes ||= TutumNodes.new(headers)
|
53
|
+
end
|
54
|
+
|
55
|
+
def providers
|
56
|
+
@providers ||= TutumProviders.new(headers)
|
57
|
+
end
|
58
|
+
|
59
|
+
def services
|
60
|
+
@services ||= TutumServices.new(headers)
|
61
|
+
end
|
62
|
+
|
32
63
|
end
|
data/lib/tutum_api.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'httparty'
|
2
2
|
class TutumApi
|
3
3
|
attr_reader :headers
|
4
|
-
BASE_API_PATH = "https://
|
4
|
+
BASE_API_PATH = "https://dashboard.tutum.co/api"
|
5
5
|
API_VERSION = "v1"
|
6
6
|
def initialize(headers)
|
7
7
|
@headers = headers
|
@@ -13,16 +13,33 @@ class TutumApi
|
|
13
13
|
BASE_API_PATH+"/"+API_VERSION + path
|
14
14
|
end
|
15
15
|
|
16
|
+
|
17
|
+
def expect_20x(path, &block)
|
18
|
+
response = block.call
|
19
|
+
if(response.code/10 != 20)
|
20
|
+
raise TutumError.new("#{response.code} received for API call to #{path}")
|
21
|
+
end
|
22
|
+
response
|
23
|
+
end
|
24
|
+
|
16
25
|
def http_get(path, args={})
|
17
|
-
|
26
|
+
expect_20x(path) do
|
27
|
+
HTTParty.get(api_path(path), http_headers.merge({ :query => args }))
|
28
|
+
end
|
18
29
|
end
|
19
30
|
def http_post(path, args={})
|
20
|
-
|
31
|
+
expect_20x(path) do
|
32
|
+
HTTParty.post(api_path(path), http_headers.merge({ :body => args.to_json }))
|
33
|
+
end
|
21
34
|
end
|
22
35
|
def http_patch(path, args={})
|
23
|
-
|
36
|
+
expect_20x(path) do
|
37
|
+
HTTParty.patch(api_path(path), http_headers.merge({ :body => args.to_json }))
|
38
|
+
end
|
24
39
|
end
|
25
40
|
def http_delete(path, args={})
|
26
|
-
|
41
|
+
expect_20x(path) do
|
42
|
+
HTTParty.delete(api_path(path), http_headers.merge({ :query => args }))
|
43
|
+
end
|
27
44
|
end
|
28
45
|
end
|
data/lib/tutum_containers.rb
CHANGED
@@ -7,14 +7,6 @@ class TutumContainers < TutumApi
|
|
7
7
|
http_get(list_url, params)
|
8
8
|
end
|
9
9
|
|
10
|
-
def create_url
|
11
|
-
"/container/"
|
12
|
-
end
|
13
|
-
|
14
|
-
def create(params)
|
15
|
-
http_post(create_url, params)
|
16
|
-
end
|
17
|
-
|
18
10
|
def get_url(uuid)
|
19
11
|
"/container/#{uuid}/"
|
20
12
|
end
|
@@ -47,19 +39,11 @@ class TutumContainers < TutumApi
|
|
47
39
|
http_get(logs_url(uuid))
|
48
40
|
end
|
49
41
|
|
50
|
-
def
|
51
|
-
"/container/#{uuid}/redeploy/"
|
52
|
-
end
|
53
|
-
|
54
|
-
def redeploy(uuid, params)
|
55
|
-
http_post(redeploy_url(uuid), params)
|
56
|
-
end
|
57
|
-
|
58
|
-
def delete_url(uuid)
|
42
|
+
def terminate_url(uuid)
|
59
43
|
"/container/#{uuid}/"
|
60
44
|
end
|
61
45
|
|
62
|
-
def
|
63
|
-
|
46
|
+
def terminate(uuid)
|
47
|
+
http_terminate(terminate_url(uuid))
|
64
48
|
end
|
65
49
|
end
|
data/lib/tutum_error.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
class TutumNodeClusters < TutumApi
|
2
|
+
def list_url
|
3
|
+
"/application/"
|
4
|
+
end
|
5
|
+
|
6
|
+
def list(params)
|
7
|
+
http_get(list_url, params)
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_url
|
11
|
+
"/application/"
|
12
|
+
end
|
13
|
+
|
14
|
+
def create(params)
|
15
|
+
http_post(create_url, params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_url(uuid)
|
19
|
+
"/application/#{uuid}/"
|
20
|
+
end
|
21
|
+
|
22
|
+
def get(uuid)
|
23
|
+
http_get(get_url(uuid))
|
24
|
+
end
|
25
|
+
|
26
|
+
def update_url(uuid)
|
27
|
+
"/application/#{uuid}/"
|
28
|
+
end
|
29
|
+
|
30
|
+
def update(uuid, params)
|
31
|
+
http_patch(update_url(uuid), params)
|
32
|
+
end
|
33
|
+
|
34
|
+
def deploy_url(uuid)
|
35
|
+
"/application/#{uuid}/deploy/"
|
36
|
+
end
|
37
|
+
|
38
|
+
def deploy(uuid, params)
|
39
|
+
http_post(deploy_url(uuid), params)
|
40
|
+
end
|
41
|
+
|
42
|
+
def terminate_url(uuid)
|
43
|
+
"/application/#{uuid}/"
|
44
|
+
end
|
45
|
+
|
46
|
+
def terminate(uuid)
|
47
|
+
http_delete(terminate_url(uuid))
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
data/lib/tutum_nodes.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
class TutumNodes < TutumApi
|
2
|
+
def list_url
|
3
|
+
"/node/"
|
4
|
+
end
|
5
|
+
|
6
|
+
def list(params)
|
7
|
+
http_get(list_url, params)
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_url(uuid)
|
11
|
+
"/node/#{uuid}/"
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(uuid)
|
15
|
+
http_get(get_url(uuid))
|
16
|
+
end
|
17
|
+
|
18
|
+
def deploy_url(uuid)
|
19
|
+
"/node/#{uuid}/deploy/"
|
20
|
+
end
|
21
|
+
|
22
|
+
def deploy(uuid, params)
|
23
|
+
http_post(deploy_url(uuid), params)
|
24
|
+
end
|
25
|
+
|
26
|
+
def terminate_url(uuid)
|
27
|
+
"/node/#{uuid}/"
|
28
|
+
end
|
29
|
+
|
30
|
+
def terminate(uuid)
|
31
|
+
http_delete(terminate_url(uuid))
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
class
|
1
|
+
class TutumServices < TutumApi
|
2
2
|
def list_url
|
3
|
-
"/
|
3
|
+
"/service/"
|
4
4
|
end
|
5
5
|
|
6
6
|
def list(params)
|
@@ -8,7 +8,7 @@ class TutumClusters < TutumApi
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def create_url
|
11
|
-
"/
|
11
|
+
"/service/"
|
12
12
|
end
|
13
13
|
|
14
14
|
def create(params)
|
@@ -16,51 +16,60 @@ class TutumClusters < TutumApi
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def get_url(uuid)
|
19
|
-
"/
|
19
|
+
"/service/#{uuid}/"
|
20
20
|
end
|
21
21
|
|
22
22
|
def get(uuid)
|
23
23
|
http_get(get_url(uuid))
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
27
|
-
"/
|
26
|
+
def logs_url(uuid)
|
27
|
+
"/service/#{uuid}/"
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
31
|
-
|
30
|
+
def logs(uuid)
|
31
|
+
http_get(get_url(uuid))
|
32
32
|
end
|
33
33
|
|
34
|
-
def
|
35
|
-
"/
|
34
|
+
def update_url(uuid)
|
35
|
+
"/service/#{uuid}/"
|
36
|
+
end
|
37
|
+
|
38
|
+
def update(uuid, params)
|
39
|
+
http_patch(update_url(uuid), params)
|
36
40
|
end
|
37
41
|
|
38
|
-
def
|
39
|
-
|
42
|
+
def start_url(uuid)
|
43
|
+
"/service/#{uuid}/start/"
|
44
|
+
end
|
45
|
+
|
46
|
+
def start(uuid)
|
47
|
+
http_post(start_url(uuid))
|
40
48
|
end
|
41
49
|
|
42
|
-
def
|
43
|
-
"/
|
50
|
+
def stop_url(uuid)
|
51
|
+
"/service/#{uuid}/stop/"
|
44
52
|
end
|
45
53
|
|
46
|
-
def
|
47
|
-
|
54
|
+
def stop(uuid)
|
55
|
+
http_post(stop_url(uuid))
|
48
56
|
end
|
49
57
|
|
58
|
+
|
50
59
|
def redeploy_url(uuid)
|
51
|
-
"/
|
60
|
+
"/service/#{uuid}/redeploy/"
|
52
61
|
end
|
53
62
|
|
54
63
|
def redeploy(uuid, params)
|
55
64
|
http_post(redeploy_url(uuid), params)
|
56
65
|
end
|
57
66
|
|
58
|
-
def
|
59
|
-
"/
|
67
|
+
def terminate_url(uuid)
|
68
|
+
"/service/#{uuid}/"
|
60
69
|
end
|
61
70
|
|
62
|
-
def
|
63
|
-
http_delete(
|
71
|
+
def terminate(uuid)
|
72
|
+
http_delete(terminate_url(uuid))
|
64
73
|
end
|
65
74
|
|
66
75
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tutum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martyn Garcia
|
@@ -32,10 +32,17 @@ extensions: []
|
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
34
|
- lib/tutum.rb
|
35
|
+
- lib/tutum_actions.rb
|
35
36
|
- lib/tutum_api.rb
|
36
|
-
- lib/tutum_clusters.rb
|
37
37
|
- lib/tutum_containers.rb
|
38
|
+
- lib/tutum_error.rb
|
38
39
|
- lib/tutum_images.rb
|
40
|
+
- lib/tutum_node_clusters.rb
|
41
|
+
- lib/tutum_node_types.rb
|
42
|
+
- lib/tutum_nodes.rb
|
43
|
+
- lib/tutum_providers.rb
|
44
|
+
- lib/tutum_regions.rb
|
45
|
+
- lib/tutum_services.rb
|
39
46
|
homepage: https://github.com/255BITS/ruby-tutum
|
40
47
|
licenses:
|
41
48
|
- MIT
|