conoha 0.0.9 → 0.0.10
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/lib/conoha.rb +33 -105
- data/lib/conoha/util.rb +47 -0
- data/lib/conoha/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 940f0b5bd5020ab62e5aa2cfe9a67e1baed25f82
|
4
|
+
data.tar.gz: 9c943723642d672bf2c4a34bbc8d11b4ecd74f49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d4d73d75a0e9bb1d6c01e3342a0b4f45bb4fae55334968d8749728e45f867db5f6ceeac20092608c9648854f2cb13ea011e272cd908e3fb6fc7c0d545d7724d
|
7
|
+
data.tar.gz: 6c29147df0553bf4ccc9087c2f5a751b277df0a2da3e9f2c7ebe4772da2c0df92c5e31eae1f948eceea43c7b732d5461b3dc3a35d7657920cdba4c8c14dc80b7
|
data/lib/conoha.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
require 'net/https'
|
4
|
-
require 'uri'
|
1
|
+
require 'conoha/version'
|
2
|
+
require 'conoha/util'
|
5
3
|
require 'json'
|
6
4
|
|
7
5
|
class Conoha
|
@@ -10,35 +8,24 @@ class Conoha
|
|
10
8
|
end
|
11
9
|
|
12
10
|
def self.authenticate!
|
13
|
-
uri =
|
14
|
-
https = Net::HTTP.new(uri.host, uri.port)
|
15
|
-
https.use_ssl = true
|
16
|
-
req = Net::HTTP::Post.new(uri.request_uri)
|
17
|
-
req['Content-Type'] = 'application/json'
|
11
|
+
uri = 'https://identity.tyo1.conoha.io/v2.0/tokens'
|
18
12
|
payload = {
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
13
|
+
auth: {
|
14
|
+
passwordCredentials: {
|
15
|
+
username: @@username,
|
16
|
+
password: @@password
|
17
|
+
},
|
18
|
+
tenantId: @@tenant_id
|
19
|
+
}
|
25
20
|
}
|
26
|
-
|
27
|
-
req.body = payload
|
28
|
-
res = https.request(req)
|
21
|
+
res = https_post uri, payload, nil
|
29
22
|
@@authtoken = JSON.parse(res.body)["access"]["token"]["id"]
|
30
23
|
save_config!
|
31
24
|
end
|
32
25
|
|
33
26
|
def self.servers
|
34
|
-
uri =
|
35
|
-
|
36
|
-
https.use_ssl = true
|
37
|
-
req = Net::HTTP::Get.new(uri.path)
|
38
|
-
req['Content-Type'] = 'application/json'
|
39
|
-
req['Accept'] = 'application/json'
|
40
|
-
req['X-Auth-Token'] = authtoken
|
41
|
-
res = https.request(req)
|
27
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/servers"
|
28
|
+
res = https_get uri, authtoken
|
42
29
|
JSON.parse(res.body)["servers"]
|
43
30
|
end
|
44
31
|
|
@@ -47,13 +34,7 @@ class Conoha
|
|
47
34
|
end
|
48
35
|
|
49
36
|
def self.create(os, ram)
|
50
|
-
uri =
|
51
|
-
https = Net::HTTP.new(uri.host, uri.port)
|
52
|
-
https.use_ssl = true
|
53
|
-
req = Net::HTTP::Post.new(uri.request_uri)
|
54
|
-
req['Content-Type'] = 'application/json'
|
55
|
-
req['Accept'] = 'application/json'
|
56
|
-
req['X-Auth-Token'] = authtoken
|
37
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/servers"
|
57
38
|
payload = {
|
58
39
|
server: {
|
59
40
|
adminPass: randstr,
|
@@ -65,107 +46,55 @@ class Conoha
|
|
65
46
|
{name: 'gncs-ipv4-all'}
|
66
47
|
]
|
67
48
|
}
|
68
|
-
}
|
69
|
-
|
70
|
-
res = https.request(req)
|
49
|
+
}
|
50
|
+
res = https_post uri, payload, authtoken
|
71
51
|
JSON.parse(res.body)["server"]["id"]
|
72
52
|
end
|
73
53
|
|
74
54
|
def self.delete(server_id)
|
75
|
-
uri =
|
76
|
-
|
77
|
-
https.use_ssl = true
|
78
|
-
req = Net::HTTP::Delete.new(uri.request_uri)
|
79
|
-
req['Content-Type'] = 'application/json'
|
80
|
-
req['Accept'] = 'application/json'
|
81
|
-
req['X-Auth-Token'] = authtoken
|
82
|
-
res = https.request(req)
|
55
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/servers/#{server_id}"
|
56
|
+
res = https_delete uri, authtoken
|
83
57
|
res.code == '204' ? 'OK' : 'Error'
|
84
58
|
end
|
85
59
|
|
86
60
|
def self.ip_address_of(server_id)
|
87
|
-
uri =
|
88
|
-
|
89
|
-
https.use_ssl = true
|
90
|
-
req = Net::HTTP::Get.new(uri.path)
|
91
|
-
req['Content-Type'] = 'application/json'
|
92
|
-
req['Accept'] = 'application/json'
|
93
|
-
req['X-Auth-Token'] = authtoken
|
94
|
-
res = https.request(req)
|
61
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/servers/#{server_id}"
|
62
|
+
res = https_get uri, authtoken
|
95
63
|
JSON.parse(res.body)["server"]["addresses"].values[0].map{ |e| e["addr"] }
|
96
64
|
end
|
97
65
|
|
98
66
|
def self.boot(server_id)
|
99
|
-
uri =
|
100
|
-
|
101
|
-
https.use_ssl = true
|
102
|
-
req = Net::HTTP::Post.new(uri.request_uri)
|
103
|
-
req['Content-Type'] = 'application/json'
|
104
|
-
req['Accept'] = 'application/json'
|
105
|
-
req['X-Auth-Token'] = authtoken
|
106
|
-
req.body = {"os-start": nil}.to_json
|
107
|
-
res = https.request(req)
|
67
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/servers/#{server_id}/action"
|
68
|
+
res = https_post uri, {"os-start": nil}, authtoken
|
108
69
|
res.code == '202' ? 'OK' : 'Error'
|
109
70
|
end
|
110
71
|
|
111
72
|
def self.shutdown(server_id)
|
112
|
-
uri =
|
113
|
-
|
114
|
-
https.use_ssl = true
|
115
|
-
req = Net::HTTP::Post.new(uri.request_uri)
|
116
|
-
req['Content-Type'] = 'application/json'
|
117
|
-
req['Accept'] = 'application/json'
|
118
|
-
req['X-Auth-Token'] = authtoken
|
119
|
-
req.body = {"os-stop": nil}.to_json
|
120
|
-
res = https.request(req)
|
73
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/servers/#{server_id}/action"
|
74
|
+
res = https_post uri, {"os-stop": nil}, authtoken
|
121
75
|
res.code == '202' ? 'OK' : 'Error'
|
122
76
|
end
|
123
77
|
|
124
78
|
def self.images
|
125
|
-
uri =
|
126
|
-
|
127
|
-
https.use_ssl = true
|
128
|
-
req = Net::HTTP::Get.new(uri.path)
|
129
|
-
req['Content-Type'] = 'application/json'
|
130
|
-
req['Accept'] = 'application/json'
|
131
|
-
req['X-Auth-Token'] = authtoken
|
132
|
-
res = https.request(req)
|
79
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/images"
|
80
|
+
res = https_get uri, authtoken
|
133
81
|
JSON.parse(res.body)["images"].map { |e| [e["name"], e["id"]] }
|
134
82
|
end
|
135
83
|
|
136
84
|
def self.create_image(server_id, name)
|
137
|
-
uri =
|
138
|
-
|
139
|
-
https.use_ssl = true
|
140
|
-
req = Net::HTTP::Post.new(uri.request_uri)
|
141
|
-
req['Content-Type'] = 'application/json'
|
142
|
-
req['Accept'] = 'application/json'
|
143
|
-
req['X-Auth-Token'] = authtoken
|
144
|
-
req.body = {"createImage": {"name": name}}.to_json
|
145
|
-
res = https.request(req)
|
85
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/servers/#{server_id}/action"
|
86
|
+
res = https_post uri, {"createImage": {"name": name}}, authtoken
|
146
87
|
res.code == '202' ? 'OK' : 'Error'
|
147
88
|
end
|
148
89
|
|
149
90
|
def self.delete_image(image_ref)
|
150
|
-
uri =
|
151
|
-
|
152
|
-
https.use_ssl = true
|
153
|
-
req = Net::HTTP::Delete.new(uri.request_uri)
|
154
|
-
req['Content-Type'] = 'application/json'
|
155
|
-
req['Accept'] = 'application/json'
|
156
|
-
req['X-Auth-Token'] = authtoken
|
157
|
-
res = https.request(req)
|
91
|
+
uri = "https://image-service.tyo1.conoha.io/v2/images/#{image_ref}"
|
92
|
+
res = https_delete uri, authtoken
|
158
93
|
res.code == '204' ? 'OK' : 'Error'
|
159
94
|
end
|
160
95
|
|
161
96
|
def self.create_from_image(image_ref, ram)
|
162
|
-
uri =
|
163
|
-
https = Net::HTTP.new(uri.host, uri.port)
|
164
|
-
https.use_ssl = true
|
165
|
-
req = Net::HTTP::Post.new(uri.request_uri)
|
166
|
-
req['Content-Type'] = 'application/json'
|
167
|
-
req['Accept'] = 'application/json'
|
168
|
-
req['X-Auth-Token'] = authtoken
|
97
|
+
uri = "https://compute.tyo1.conoha.io/v2/#{tenant_id}/servers"
|
169
98
|
payload = {
|
170
99
|
server: {
|
171
100
|
adminPass: randstr,
|
@@ -177,9 +106,8 @@ class Conoha
|
|
177
106
|
{name: 'gncs-ipv4-all'}
|
178
107
|
]
|
179
108
|
}
|
180
|
-
}
|
181
|
-
|
182
|
-
res = https.request(req)
|
109
|
+
}
|
110
|
+
res = https_post uri, payload, authtoken
|
183
111
|
JSON.parse(res.body)["server"]["id"]
|
184
112
|
end
|
185
113
|
|
data/lib/conoha/util.rb
CHANGED
@@ -1,3 +1,50 @@
|
|
1
|
+
require 'net/https'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
# @return [Net::HTTPResponse]
|
5
|
+
# @params [String] uri_string URI string
|
6
|
+
# @params [String] authtoken
|
7
|
+
def https_get(uri_string, authtoken)
|
8
|
+
uri = URI.parse uri_string
|
9
|
+
https = Net::HTTP.new(uri.host, uri.port)
|
10
|
+
https.use_ssl = true
|
11
|
+
req = Net::HTTP::Get.new(uri.path)
|
12
|
+
req['Content-Type'] = 'application/json'
|
13
|
+
req['Accept'] = 'application/json'
|
14
|
+
req['X-Auth-Token'] = authtoken
|
15
|
+
https.request(req)
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [Net::HTTPResponse]
|
19
|
+
# @params [String] uri_string URI string
|
20
|
+
# @params [Hash] payload HTTP request body
|
21
|
+
# @params [String] authtoken
|
22
|
+
def https_post(uri_string, payload, authtoken)
|
23
|
+
uri = URI.parse uri_string
|
24
|
+
https = Net::HTTP.new(uri.host, uri.port)
|
25
|
+
https.use_ssl = true
|
26
|
+
req = Net::HTTP::Post.new(uri.request_uri)
|
27
|
+
req['Content-Type'] = 'application/json'
|
28
|
+
req['Accept'] = 'application/json'
|
29
|
+
req['X-Auth-Token'] = authtoken
|
30
|
+
req.body = payload.to_json
|
31
|
+
https.request(req)
|
32
|
+
end
|
33
|
+
|
34
|
+
# @return [Net::HTTPResponse]
|
35
|
+
# @params [String] uri_string URI string
|
36
|
+
# @params [String] authtoken
|
37
|
+
def https_delete(uri_string, authtoken)
|
38
|
+
uri = URI.parse uri_string
|
39
|
+
https = Net::HTTP.new(uri.host, uri.port)
|
40
|
+
https.use_ssl = true
|
41
|
+
req = Net::HTTP::Delete.new(uri.request_uri)
|
42
|
+
req['Content-Type'] = 'application/json'
|
43
|
+
req['Accept'] = 'application/json'
|
44
|
+
req['X-Auth-Token'] = authtoken
|
45
|
+
https.request(req)
|
46
|
+
end
|
47
|
+
|
1
48
|
# @params [Array<String>]
|
2
49
|
# The return value of `ip_address_of` method. It is either
|
3
50
|
#
|
data/lib/conoha/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conoha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ka
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|