wf_node_api 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/Gemfile +28 -0
- data/Gemfile.lock +66 -0
- data/LICENSE +340 -0
- data/Makefile +19 -0
- data/README.md +78 -0
- data/Rakefile +2 -0
- data/Vagrantfile +102 -0
- data/_docs/api/Api/NodeApi.html +123 -0
- data/_docs/api/Api.html +149 -0
- data/_docs/api/Config/Check.html +331 -0
- data/_docs/api/Config.html +115 -0
- data/_docs/api/ConfigCheck.html +365 -0
- data/_docs/api/ContainerManager.html +1632 -0
- data/_docs/api/ContainerManagerAdapter/Lxc.html +1352 -0
- data/_docs/api/ContainerManagerAdapter/Vserver.html +1358 -0
- data/_docs/api/ContainerManagerAdapter.html +151 -0
- data/_docs/api/Error/NotFound.html +134 -0
- data/_docs/api/Error.html +115 -0
- data/_docs/api/NotFoundError.html +157 -0
- data/_docs/api/OS.html +234 -0
- data/_docs/api/ResourceManager.html +322 -0
- data/_docs/api/ResourceManagerAdapter/Linux.html +326 -0
- data/_docs/api/ResourceManagerAdapter.html +149 -0
- data/_docs/api/WfNodeApi.html +163 -0
- data/_docs/api/_index.html +239 -0
- data/_docs/api/class_list.html +58 -0
- data/_docs/api/css/common.css +1 -0
- data/_docs/api/css/full_list.css +57 -0
- data/_docs/api/css/style.css +339 -0
- data/_docs/api/file.README.html +146 -0
- data/_docs/api/file_list.html +60 -0
- data/_docs/api/frames.html +26 -0
- data/_docs/api/index.html +146 -0
- data/_docs/api/js/app.js +219 -0
- data/_docs/api/js/full_list.js +181 -0
- data/_docs/api/js/jquery.js +4 -0
- data/_docs/api/method_list.html +273 -0
- data/_docs/api/top-level-namespace.html +244 -0
- data/_docs/rest/api_data.js +1 -0
- data/_docs/rest/api_data.json +1 -0
- data/_docs/rest/api_project.js +1 -0
- data/_docs/rest/api_project.json +1 -0
- data/_docs/rest/css/style.css +538 -0
- data/_docs/rest/header.md +3 -0
- data/_docs/rest/img/favicon.ico +0 -0
- data/_docs/rest/img/glyphicons-halflings-white.png +0 -0
- data/_docs/rest/img/glyphicons-halflings.png +0 -0
- data/_docs/rest/index.html +658 -0
- data/_docs/rest/locales/de.js +25 -0
- data/_docs/rest/locales/fr.js +25 -0
- data/_docs/rest/locales/locale.js +43 -0
- data/_docs/rest/locales/nl.js +25 -0
- data/_docs/rest/locales/pl.js +25 -0
- data/_docs/rest/locales/pt_br.js +25 -0
- data/_docs/rest/locales/ru.js +25 -0
- data/_docs/rest/locales/zh.js +25 -0
- data/_docs/rest/main.js +691 -0
- data/_docs/rest/utils/handlebars_helper.js +327 -0
- data/_docs/rest/utils/send_sample_request.js +158 -0
- data/_docs/rest/vendor/bootstrap-responsive.min.css +9 -0
- data/_docs/rest/vendor/bootstrap.min.css +9 -0
- data/_docs/rest/vendor/bootstrap.min.js +6 -0
- data/_docs/rest/vendor/diff_match_patch.min.js +49 -0
- data/_docs/rest/vendor/handlebars.min.js +28 -0
- data/_docs/rest/vendor/jquery.min.js +4 -0
- data/_docs/rest/vendor/lodash.min.js +61 -0
- data/_docs/rest/vendor/path-to-regexp/LICENSE +21 -0
- data/_docs/rest/vendor/path-to-regexp/index.js +205 -0
- data/_docs/rest/vendor/polyfill.js +100 -0
- data/_docs/rest/vendor/prettify/lang-apollo.js +2 -0
- data/_docs/rest/vendor/prettify/lang-basic.js +3 -0
- data/_docs/rest/vendor/prettify/lang-clj.js +18 -0
- data/_docs/rest/vendor/prettify/lang-css.js +2 -0
- data/_docs/rest/vendor/prettify/lang-dart.js +3 -0
- data/_docs/rest/vendor/prettify/lang-erlang.js +2 -0
- data/_docs/rest/vendor/prettify/lang-go.js +1 -0
- data/_docs/rest/vendor/prettify/lang-hs.js +2 -0
- data/_docs/rest/vendor/prettify/lang-lisp.js +3 -0
- data/_docs/rest/vendor/prettify/lang-llvm.js +1 -0
- data/_docs/rest/vendor/prettify/lang-lua.js +2 -0
- data/_docs/rest/vendor/prettify/lang-matlab.js +6 -0
- data/_docs/rest/vendor/prettify/lang-ml.js +2 -0
- data/_docs/rest/vendor/prettify/lang-mumps.js +2 -0
- data/_docs/rest/vendor/prettify/lang-n.js +4 -0
- data/_docs/rest/vendor/prettify/lang-pascal.js +3 -0
- data/_docs/rest/vendor/prettify/lang-proto.js +1 -0
- data/_docs/rest/vendor/prettify/lang-r.js +2 -0
- data/_docs/rest/vendor/prettify/lang-rd.js +1 -0
- data/_docs/rest/vendor/prettify/lang-scala.js +2 -0
- data/_docs/rest/vendor/prettify/lang-sql.js +2 -0
- data/_docs/rest/vendor/prettify/lang-tcl.js +3 -0
- data/_docs/rest/vendor/prettify/lang-tex.js +1 -0
- data/_docs/rest/vendor/prettify/lang-vb.js +2 -0
- data/_docs/rest/vendor/prettify/lang-vhdl.js +3 -0
- data/_docs/rest/vendor/prettify/lang-wiki.js +2 -0
- data/_docs/rest/vendor/prettify/lang-xq.js +3 -0
- data/_docs/rest/vendor/prettify/lang-yaml.js +2 -0
- data/_docs/rest/vendor/prettify/prettify.css +1 -0
- data/_docs/rest/vendor/prettify/prettify.js +30 -0
- data/_docs/rest/vendor/prettify/run_prettify.js +34 -0
- data/_docs/rest/vendor/prettify.css +101 -0
- data/_docs/rest/vendor/require.min.js +36 -0
- data/apidoc.json +23 -0
- data/bin/wf_node_api +80 -0
- data/lib/wf_node_api/api/node_api.rb +360 -0
- data/lib/wf_node_api/config/config_template.erb +50 -0
- data/lib/wf_node_api/config_check.rb +50 -0
- data/lib/wf_node_api/container_manager.rb +286 -0
- data/lib/wf_node_api/container_manager_adapter/lxc.rb +431 -0
- data/lib/wf_node_api/container_manager_adapter/vserver.rb +448 -0
- data/lib/wf_node_api/error/not_found.rb +27 -0
- data/lib/wf_node_api/os.rb +32 -0
- data/lib/wf_node_api/resource_manager.rb +49 -0
- data/lib/wf_node_api/resource_manager_adapter/linux.rb +53 -0
- data/lib/wf_node_api/translations.rb +38 -0
- data/lib/wf_node_api/version.rb +28 -0
- data/lib/wf_node_api.rb +57 -0
- data/manifests/files/dhozac-vserver.repo +4 -0
- data/wf-node-api.gemspec +53 -0
- metadata +221 -0
@@ -0,0 +1 @@
|
|
1
|
+
define({ "api": [
|
2
|
{
|
1
3
|
"type": "post",
|
2
4
|
"url": "/containers",
|
3
5
|
"title": "Create a container",
|
4
6
|
"version": "0.8.0",
|
5
7
|
"name": "CreateContainer",
|
6
8
|
"group": "Container",
|
7
9
|
"description": "<p>Creates a container. Returns 201 on success!</p> ",
|
8
10
|
"header": {
|
9
11
|
"fields": {
|
10
12
|
"Header": [
|
11
13
|
{
|
12
14
|
"group": "Header",
|
13
15
|
"type": "String",
|
14
16
|
"optional": false,
|
15
17
|
"field": "X-Api-Token",
|
16
18
|
"description": "<p>API token (from /etc/wf_node_api.conf)</p> "
|
17
19
|
}
|
18
20
|
]
|
19
21
|
}
|
20
22
|
},
|
21
23
|
"parameter": {
|
22
24
|
"fields": {
|
23
25
|
"Parameter": [
|
24
26
|
{
|
25
27
|
"group": "Parameter",
|
26
28
|
"type": "<p>String</p> ",
|
27
29
|
"optional": false,
|
28
30
|
"field": "name",
|
29
31
|
"description": "<p>Name of the container (must be unique per node)</p> "
|
30
32
|
},
|
31
33
|
{
|
32
34
|
"group": "Parameter",
|
33
35
|
"type": "<p>String</p> ",
|
34
36
|
"optional": false,
|
35
37
|
"field": "ip_address",
|
36
38
|
"description": "<p>Valid IPv4 address</p> "
|
37
39
|
},
|
38
40
|
{
|
39
41
|
"group": "Parameter",
|
40
42
|
"type": "<p>Integer</p> ",
|
41
43
|
"optional": false,
|
42
44
|
"field": "disk_size_gb",
|
43
45
|
"description": "<p>Container disk size in GB</p> "
|
44
46
|
},
|
45
47
|
{
|
46
48
|
"group": "Parameter",
|
47
49
|
"type": "<p>Integer</p> ",
|
48
50
|
"optional": false,
|
49
51
|
"field": "memory_limit_mb",
|
50
52
|
"description": "<p>Memory limt in MB</p> "
|
51
53
|
},
|
52
54
|
{
|
53
55
|
"group": "Parameter",
|
54
56
|
"type": "<p>Integer</p> ",
|
55
57
|
"optional": false,
|
56
58
|
"field": "cpu_core_count",
|
57
59
|
"description": "<p>Amount of Vcores assigned to the container</p> "
|
58
60
|
}
|
59
61
|
]
|
60
62
|
}
|
61
63
|
},
|
62
64
|
"success": {
|
63
65
|
"fields": {
|
64
66
|
"Success 200": [
|
65
67
|
{
|
66
68
|
"group": "Success 200",
|
67
69
|
"type": "<p>String</p> ",
|
68
70
|
"optional": false,
|
69
71
|
"field": "success",
|
70
72
|
"description": "<p>Success message</p> "
|
71
73
|
},
|
72
74
|
{
|
73
75
|
"group": "Success 200",
|
74
76
|
"type": "<p>String</p> ",
|
75
77
|
"optional": false,
|
76
78
|
"field": "output",
|
77
79
|
"description": "<p>STDOUT from container creation</p> "
|
78
80
|
}
|
79
81
|
]
|
80
82
|
}
|
81
83
|
},
|
82
84
|
"filename": "lib/wf_node_api/api/node_api.rb",
|
83
85
|
"groupTitle": "Container",
|
84
86
|
"error": {
|
85
87
|
"fields": {
|
86
88
|
"Unauthorized 401": [
|
87
89
|
{
|
88
90
|
"group": "Unauthorized 401",
|
89
91
|
"optional": false,
|
90
92
|
"field": "error",
|
91
93
|
"description": "<p>No valid API token was supplied</p> "
|
92
94
|
}
|
93
95
|
],
|
94
96
|
"Bad Request 400": [
|
95
97
|
{
|
96
98
|
"group": "Bad Request 400",
|
97
99
|
"optional": false,
|
98
100
|
"field": "error",
|
99
101
|
"description": "<p>Invalid arguments supplied</p> "
|
100
102
|
}
|
101
103
|
],
|
102
104
|
"Internal Server Error 500": [
|
103
105
|
{
|
104
106
|
"group": "Internal Server Error 500",
|
105
107
|
"optional": false,
|
106
108
|
"field": "error",
|
107
109
|
"description": "<p>The process could not be requested due to an internal error</p> "
|
108
110
|
}
|
109
111
|
]
|
110
112
|
},
|
111
113
|
"examples": [
|
112
114
|
{
|
113
115
|
"title": "401 Unauthorized",
|
114
116
|
"content": "HTTP/1.1 401 Unauthorized\n{\n \"error\": \"Unauthorized\"\n}",
|
115
117
|
"type": "json"
|
116
118
|
},
|
117
119
|
{
|
118
120
|
"title": "400 Bad Request",
|
119
121
|
"content": "HTTP/1.1 400 Bad Request\n{\n \"error\": \"The supplied container name is invalid\"\n}",
|
120
122
|
"type": "json"
|
121
123
|
},
|
122
124
|
{
|
123
125
|
"title": "500 Internal Server Error",
|
124
126
|
"content": "HTTP/1.1 500 Internal Server Error\n{\n \"error\": \"Unknown error occured\"\n}",
|
125
127
|
"type": "json"
|
126
128
|
}
|
127
129
|
]
|
128
130
|
}
|
129
131
|
},
|
130
132
|
{
|
131
133
|
"type": "delete",
|
132
134
|
"url": "/containers/:name",
|
133
135
|
"title": "Delete a container",
|
134
136
|
"version": "0.8.0",
|
135
137
|
"name": "DeleteContainer",
|
136
138
|
"group": "Container",
|
137
139
|
"description": "<p>Deletes a container if it exists.</p> ",
|
138
140
|
"header": {
|
139
141
|
"fields": {
|
140
142
|
"Header": [
|
141
143
|
{
|
142
144
|
"group": "Header",
|
143
145
|
"type": "String",
|
144
146
|
"optional": false,
|
145
147
|
"field": "X-Api-Token",
|
146
148
|
"description": "<p>API token (from /etc/wf_node_api.conf)</p> "
|
147
149
|
}
|
148
150
|
]
|
149
151
|
}
|
150
152
|
},
|
151
153
|
"parameter": {
|
152
154
|
"fields": {
|
153
155
|
"Parameter": [
|
154
156
|
{
|
155
157
|
"group": "Parameter",
|
156
158
|
"type": "<p>String</p> ",
|
157
159
|
"optional": false,
|
158
160
|
"field": "name",
|
159
161
|
"description": "<p>Unique name of the container</p> "
|
160
162
|
}
|
161
163
|
]
|
162
164
|
}
|
163
165
|
},
|
164
166
|
"success": {
|
165
167
|
"fields": {
|
166
168
|
"Success 200": [
|
167
169
|
{
|
168
170
|
"group": "Success 200",
|
169
171
|
"type": "<p>String</p> ",
|
170
172
|
"optional": false,
|
171
173
|
"field": "success",
|
172
174
|
"description": "<p>Success message</p> "
|
173
175
|
},
|
174
176
|
{
|
175
177
|
"group": "Success 200",
|
176
178
|
"type": "<p>String</p> ",
|
177
179
|
"optional": false,
|
178
180
|
"field": "output",
|
179
181
|
"description": "<p>STDOUT from container deletion</p> "
|
180
182
|
}
|
181
183
|
]
|
182
184
|
}
|
183
185
|
},
|
184
186
|
"filename": "lib/wf_node_api/api/node_api.rb",
|
185
187
|
"groupTitle": "Container",
|
186
188
|
"error": {
|
187
189
|
"fields": {
|
188
190
|
"Unauthorized 401": [
|
189
191
|
{
|
190
192
|
"group": "Unauthorized 401",
|
191
193
|
"optional": false,
|
192
194
|
"field": "error",
|
193
195
|
"description": "<p>No valid API token was supplied</p> "
|
194
196
|
}
|
195
197
|
],
|
196
198
|
"Not Found 404": [
|
197
199
|
{
|
198
200
|
"group": "Not Found 404",
|
199
201
|
"optional": false,
|
200
202
|
"field": "error",
|
201
203
|
"description": "<p>Object was not found</p> "
|
202
204
|
}
|
203
205
|
],
|
204
206
|
"Internal Server Error 500": [
|
205
207
|
{
|
206
208
|
"group": "Internal Server Error 500",
|
207
209
|
"optional": false,
|
208
210
|
"field": "error",
|
209
211
|
"description": "<p>The process could not be requested due to an internal error</p> "
|
210
212
|
}
|
211
213
|
]
|
212
214
|
},
|
213
215
|
"examples": [
|
214
216
|
{
|
215
217
|
"title": "401 Unauthorized",
|
216
218
|
"content": "HTTP/1.1 401 Unauthorized\n{\n \"error\": \"Unauthorized\"\n}",
|
217
219
|
"type": "json"
|
218
220
|
},
|
219
221
|
{
|
220
222
|
"title": "404 Not Found",
|
221
223
|
"content": "HTTP/1.1 404 Not Found\n{\n \"error\": \"Not Found\"\n}",
|
222
224
|
"type": "json"
|
223
225
|
},
|
224
226
|
{
|
225
227
|
"title": "500 Internal Server Error",
|
226
228
|
"content": "HTTP/1.1 500 Internal Server Error\n{\n \"error\": \"Unknown error occured\"\n}",
|
227
229
|
"type": "json"
|
228
230
|
}
|
229
231
|
]
|
230
232
|
}
|
231
233
|
},
|
232
234
|
{
|
233
235
|
"type": "get",
|
234
236
|
"url": "/containers/:name",
|
235
237
|
"title": "Request container by its name",
|
236
238
|
"version": "0.8.0",
|
237
239
|
"name": "GetContainer",
|
238
240
|
"group": "Container",
|
239
241
|
"description": "<p>Returns information on a specific container</p> ",
|
240
242
|
"header": {
|
241
243
|
"fields": {
|
242
244
|
"Header": [
|
243
245
|
{
|
244
246
|
"group": "Header",
|
245
247
|
"type": "String",
|
246
248
|
"optional": false,
|
247
249
|
"field": "X-Api-Token",
|
248
250
|
"description": "<p>API token (from /etc/wf_node_api.conf)</p> "
|
249
251
|
}
|
250
252
|
]
|
251
253
|
}
|
252
254
|
},
|
253
255
|
"parameter": {
|
254
256
|
"fields": {
|
255
257
|
"Parameter": [
|
256
258
|
{
|
257
259
|
"group": "Parameter",
|
258
260
|
"type": "<p>String</p> ",
|
259
261
|
"optional": false,
|
260
262
|
"field": "name",
|
261
263
|
"description": "<p>Unique name of the container</p> "
|
262
264
|
}
|
263
265
|
]
|
264
266
|
}
|
265
267
|
},
|
266
268
|
"success": {
|
267
269
|
"fields": {
|
268
270
|
"Success 200": [
|
269
271
|
{
|
270
272
|
"group": "Success 200",
|
271
273
|
"type": "<p>String</p> ",
|
272
274
|
"optional": false,
|
273
275
|
"field": "name",
|
274
276
|
"description": "<p>Name of the container</p> "
|
275
277
|
},
|
276
278
|
{
|
277
279
|
"group": "Success 200",
|
278
280
|
"type": "<p>String</p> ",
|
279
281
|
"optional": false,
|
280
282
|
"field": "state",
|
281
283
|
"description": "<p>State of the container (either 'RUNNING' or 'STOPPED')</p> "
|
282
284
|
},
|
283
285
|
{
|
284
286
|
"group": "Success 200",
|
285
287
|
"type": "<p>String</p> ",
|
286
288
|
"optional": false,
|
287
289
|
"field": "ip_address",
|
288
290
|
"description": "<p>IP address assigned to the container</p> "
|
289
291
|
},
|
290
292
|
{
|
291
293
|
"group": "Success 200",
|
292
294
|
"type": "<p>Integer</p> ",
|
293
295
|
"optional": false,
|
294
296
|
"field": "cpu_cores",
|
295
297
|
"description": "<p>Number of Vcores</p> "
|
296
298
|
},
|
297
299
|
{
|
298
300
|
"group": "Success 200",
|
299
301
|
"type": "<p>Integer</p> ",
|
300
302
|
"optional": false,
|
301
303
|
"field": "memory_limit_bytes",
|
302
304
|
"description": "<p>Memory limit in bytes</p> "
|
303
305
|
},
|
304
306
|
{
|
305
307
|
"group": "Success 200",
|
306
308
|
"type": "<p>Integer</p> ",
|
307
309
|
"optional": false,
|
308
310
|
"field": "memory_usage_bytes",
|
309
311
|
"description": "<p>Current amount of memory usage in bytes</p> "
|
310
312
|
},
|
311
313
|
{
|
312
314
|
"group": "Success 200",
|
313
315
|
"type": "<p>Integer</p> ",
|
314
316
|
"optional": false,
|
315
317
|
"field": "disk_space_gb",
|
316
318
|
"description": "<p>Available disk space in GB</p> "
|
317
319
|
},
|
318
320
|
{
|
319
321
|
"group": "Success 200",
|
320
322
|
"type": "<p>Integer</p> ",
|
321
323
|
"optional": false,
|
322
324
|
"field": "disk_usage_gb",
|
323
325
|
"description": "<p>Current amount of disk usage in GB</p> "
|
324
326
|
},
|
325
327
|
{
|
326
328
|
"group": "Success 200",
|
327
329
|
"type": "<p>String</p> ",
|
328
330
|
"optional": false,
|
329
331
|
"field": "container_type",
|
330
332
|
"description": "<p>Container type, could be either 'lxc' or 'vserver'</p> "
|
331
333
|
}
|
332
334
|
]
|
333
335
|
}
|
334
336
|
},
|
335
337
|
"filename": "lib/wf_node_api/api/node_api.rb",
|
336
338
|
"groupTitle": "Container",
|
337
339
|
"error": {
|
338
340
|
"fields": {
|
339
341
|
"Unauthorized 401": [
|
340
342
|
{
|
341
343
|
"group": "Unauthorized 401",
|
342
344
|
"optional": false,
|
343
345
|
"field": "error",
|
344
346
|
"description": "<p>No valid API token was supplied</p> "
|
345
347
|
}
|
346
348
|
],
|
347
349
|
"Internal Server Error 500": [
|
348
350
|
{
|
349
351
|
"group": "Internal Server Error 500",
|
350
352
|
"optional": false,
|
351
353
|
"field": "error",
|
352
354
|
"description": "<p>The process could not be requested due to an internal error</p> "
|
353
355
|
}
|
354
356
|
],
|
355
357
|
"Not Found 404": [
|
356
358
|
{
|
357
359
|
"group": "Not Found 404",
|
358
360
|
"optional": false,
|
359
361
|
"field": "error",
|
360
362
|
"description": "<p>Object was not found</p> "
|
361
363
|
}
|
362
364
|
]
|
363
365
|
},
|
364
366
|
"examples": [
|
365
367
|
{
|
366
368
|
"title": "401 Unauthorized",
|
367
369
|
"content": "HTTP/1.1 401 Unauthorized\n{\n \"error\": \"Unauthorized\"\n}",
|
368
370
|
"type": "json"
|
369
371
|
},
|
370
372
|
{
|
371
373
|
"title": "500 Internal Server Error",
|
372
374
|
"content": "HTTP/1.1 500 Internal Server Error\n{\n \"error\": \"Unknown error occured\"\n}",
|
373
375
|
"type": "json"
|
374
376
|
},
|
375
377
|
{
|
376
378
|
"title": "404 Not Found",
|
377
379
|
"content": "HTTP/1.1 404 Not Found\n{\n \"error\": \"Not Found\"\n}",
|
378
380
|
"type": "json"
|
379
381
|
}
|
380
382
|
]
|
381
383
|
}
|
382
384
|
},
|
383
385
|
{
|
384
386
|
"type": "get",
|
385
387
|
"url": "/containers",
|
386
388
|
"title": "Request container list",
|
387
389
|
"version": "0.8.0",
|
388
390
|
"name": "GetContainers",
|
389
391
|
"group": "Container",
|
390
392
|
"description": "<p>Returns an array of containers which are available on the node.</p> ",
|
391
393
|
"header": {
|
392
394
|
"fields": {
|
393
395
|
"Header": [
|
394
396
|
{
|
395
397
|
"group": "Header",
|
396
398
|
"type": "String",
|
397
399
|
"optional": false,
|
398
400
|
"field": "X-Api-Token",
|
399
401
|
"description": "<p>API token (from /etc/wf_node_api.conf)</p> "
|
400
402
|
}
|
401
403
|
]
|
402
404
|
}
|
403
405
|
},
|
404
406
|
"success": {
|
405
407
|
"fields": {
|
406
408
|
"Success 200": [
|
407
409
|
{
|
408
410
|
"group": "Success 200",
|
409
411
|
"type": "<p>Object[]</p> ",
|
410
412
|
"optional": false,
|
411
413
|
"field": "containers",
|
412
414
|
"description": "<p>List of available containers</p> "
|
413
415
|
},
|
414
416
|
{
|
415
417
|
"group": "Success 200",
|
416
418
|
"type": "<p>String</p> ",
|
417
419
|
"optional": false,
|
418
420
|
"field": "containers.name",
|
419
421
|
"description": "<p>Name of the container</p> "
|
420
422
|
},
|
421
423
|
{
|
422
424
|
"group": "Success 200",
|
423
425
|
"type": "<p>String</p> ",
|
424
426
|
"optional": false,
|
425
427
|
"field": "containers.state",
|
426
428
|
"description": "<p>State of the container (either 'RUNNING' or 'STOPPED')</p> "
|
427
429
|
},
|
428
430
|
{
|
429
431
|
"group": "Success 200",
|
430
432
|
"type": "<p>String</p> ",
|
431
433
|
"optional": false,
|
432
434
|
"field": "containers.ip_address",
|
433
435
|
"description": "<p>IP address assigned to the container</p> "
|
434
436
|
},
|
435
437
|
{
|
436
438
|
"group": "Success 200",
|
437
439
|
"type": "<p>Integer</p> ",
|
438
440
|
"optional": false,
|
439
441
|
"field": "containers.cpu_cores",
|
440
442
|
"description": "<p>Number of Vcores</p> "
|
441
443
|
},
|
442
444
|
{
|
443
445
|
"group": "Success 200",
|
444
446
|
"type": "<p>Integer</p> ",
|
445
447
|
"optional": false,
|
446
448
|
"field": "containers.memory_limit_bytes",
|
447
449
|
"description": "<p>Memory limit in bytes</p> "
|
448
450
|
},
|
449
451
|
{
|
450
452
|
"group": "Success 200",
|
451
453
|
"type": "<p>Integer</p> ",
|
452
454
|
"optional": false,
|
453
455
|
"field": "containers.memory_usage_bytes",
|
454
456
|
"description": "<p>Current amount of memory usage in bytes</p> "
|
455
457
|
},
|
456
458
|
{
|
457
459
|
"group": "Success 200",
|
458
460
|
"type": "<p>Integer</p> ",
|
459
461
|
"optional": false,
|
460
462
|
"field": "containers.disk_space_gb",
|
461
463
|
"description": "<p>Available disk space in GB</p> "
|
462
464
|
},
|
463
465
|
{
|
464
466
|
"group": "Success 200",
|
465
467
|
"type": "<p>Integer</p> ",
|
466
468
|
"optional": false,
|
467
469
|
"field": "containers.disk_usage_gb",
|
468
470
|
"description": "<p>Current amount of disk usage in GB</p> "
|
469
471
|
},
|
470
472
|
{
|
471
473
|
"group": "Success 200",
|
472
474
|
"type": "<p>String</p> ",
|
473
475
|
"optional": false,
|
474
476
|
"field": "containers.container_type",
|
475
477
|
"description": "<p>Container type, could be either 'lxc' or 'vserver'</p> "
|
476
478
|
}
|
477
479
|
]
|
478
480
|
}
|
479
481
|
},
|
480
482
|
"filename": "lib/wf_node_api/api/node_api.rb",
|
481
483
|
"groupTitle": "Container",
|
482
484
|
"error": {
|
483
485
|
"fields": {
|
484
486
|
"Unauthorized 401": [
|
485
487
|
{
|
486
488
|
"group": "Unauthorized 401",
|
487
489
|
"optional": false,
|
488
490
|
"field": "error",
|
489
491
|
"description": "<p>No valid API token was supplied</p> "
|
490
492
|
}
|
491
493
|
],
|
492
494
|
"Internal Server Error 500": [
|
493
495
|
{
|
494
496
|
"group": "Internal Server Error 500",
|
495
497
|
"optional": false,
|
496
498
|
"field": "error",
|
497
499
|
"description": "<p>The process could not be requested due to an internal error</p> "
|
498
500
|
}
|
499
501
|
]
|
500
502
|
},
|
501
503
|
"examples": [
|
502
504
|
{
|
503
505
|
"title": "401 Unauthorized",
|
504
506
|
"content": "HTTP/1.1 401 Unauthorized\n{\n \"error\": \"Unauthorized\"\n}",
|
505
507
|
"type": "json"
|
506
508
|
},
|
507
509
|
{
|
508
510
|
"title": "500 Internal Server Error",
|
509
511
|
"content": "HTTP/1.1 500 Internal Server Error\n{\n \"error\": \"Unknown error occured\"\n}",
|
510
512
|
"type": "json"
|
511
513
|
}
|
512
514
|
]
|
513
515
|
}
|
514
516
|
},
|
515
517
|
{
|
516
518
|
"type": "put",
|
517
519
|
"url": "/containers/:name/kill",
|
518
520
|
"title": "Kill a container",
|
519
521
|
"version": "0.8.0",
|
520
522
|
"name": "KillContainer",
|
521
523
|
"group": "Container",
|
522
524
|
"description": "<p>Kills a container if it exists. Does essentially the same as StopContainer but forces the container to shut down and does not care about processes running on it.</p> ",
|
523
525
|
"header": {
|
524
526
|
"fields": {
|
525
527
|
"Header": [
|
526
528
|
{
|
527
529
|
"group": "Header",
|
528
530
|
"type": "String",
|
529
531
|
"optional": false,
|
530
532
|
"field": "X-Api-Token",
|
531
533
|
"description": "<p>API token (from /etc/wf_node_api.conf)</p> "
|
532
534
|
}
|
533
535
|
]
|
534
536
|
}
|
535
537
|
},
|
536
538
|
"parameter": {
|
537
539
|
"fields": {
|
538
540
|
"Parameter": [
|
539
541
|
{
|
540
542
|
"group": "Parameter",
|
541
543
|
"type": "<p>String</p> ",
|
542
544
|
"optional": false,
|
543
545
|
"field": "name",
|
544
546
|
"description": "<p>Unique name of the container</p> "
|
545
547
|
}
|
546
548
|
]
|
547
549
|
}
|
548
550
|
},
|
549
551
|
"success": {
|
550
552
|
"fields": {
|
551
553
|
"Success 200": [
|
552
554
|
{
|
553
555
|
"group": "Success 200",
|
554
556
|
"type": "<p>String</p> ",
|
555
557
|
"optional": false,
|
556
558
|
"field": "success",
|
557
559
|
"description": "<p>Success message</p> "
|
558
560
|
},
|
559
561
|
{
|
560
562
|
"group": "Success 200",
|
561
563
|
"type": "<p>String</p> ",
|
562
564
|
"optional": false,
|
563
565
|
"field": "output",
|
564
566
|
"description": "<p>STDOUT from container kill</p> "
|
565
567
|
}
|
566
568
|
]
|
567
569
|
}
|
568
570
|
},
|
569
571
|
"filename": "lib/wf_node_api/api/node_api.rb",
|
570
572
|
"groupTitle": "Container",
|
571
573
|
"error": {
|
572
574
|
"fields": {
|
573
575
|
"Unauthorized 401": [
|
574
576
|
{
|
575
577
|
"group": "Unauthorized 401",
|
576
578
|
"optional": false,
|
577
579
|
"field": "error",
|
578
580
|
"description": "<p>No valid API token was supplied</p> "
|
579
581
|
}
|
580
582
|
],
|
581
583
|
"Not Found 404": [
|
582
584
|
{
|
583
585
|
"group": "Not Found 404",
|
584
586
|
"optional": false,
|
585
587
|
"field": "error",
|
586
588
|
"description": "<p>Object was not found</p> "
|
587
589
|
}
|
588
590
|
],
|
589
591
|
"Internal Server Error 500": [
|
590
592
|
{
|
591
593
|
"group": "Internal Server Error 500",
|
592
594
|
"optional": false,
|
593
595
|
"field": "error",
|
594
596
|
"description": "<p>The process could not be requested due to an internal error</p> "
|
595
597
|
}
|
596
598
|
]
|
597
599
|
},
|
598
600
|
"examples": [
|
599
601
|
{
|
600
602
|
"title": "401 Unauthorized",
|
601
603
|
"content": "HTTP/1.1 401 Unauthorized\n{\n \"error\": \"Unauthorized\"\n}",
|
602
604
|
"type": "json"
|
603
605
|
},
|
604
606
|
{
|
605
607
|
"title": "404 Not Found",
|
606
608
|
"content": "HTTP/1.1 404 Not Found\n{\n \"error\": \"Not Found\"\n}",
|
607
609
|
"type": "json"
|
608
610
|
},
|
609
611
|
{
|
610
612
|
"title": "500 Internal Server Error",
|
611
613
|
"content": "HTTP/1.1 500 Internal Server Error\n{\n \"error\": \"Unknown error occured\"\n}",
|
612
614
|
"type": "json"
|
613
615
|
}
|
614
616
|
]
|
615
617
|
}
|
616
618
|
},
|
617
619
|
{
|
618
620
|
"type": "put",
|
619
621
|
"url": "/containers/:name/start",
|
620
622
|
"title": "Start a container",
|
621
623
|
"version": "0.8.0",
|
622
624
|
"name": "StartContainer",
|
623
625
|
"group": "Container",
|
624
626
|
"description": "<p>Starts a container if it exists</p> ",
|
625
627
|
"header": {
|
626
628
|
"fields": {
|
627
629
|
"Header": [
|
628
630
|
{
|
629
631
|
"group": "Header",
|
630
632
|
"type": "String",
|
631
633
|
"optional": false,
|
632
634
|
"field": "X-Api-Token",
|
633
635
|
"description": "<p>API token (from /etc/wf_node_api.conf)</p> "
|
634
636
|
}
|
635
637
|
]
|
636
638
|
}
|
637
639
|
},
|
638
640
|
"parameter": {
|
639
641
|
"fields": {
|
640
642
|
"Parameter": [
|
641
643
|
{
|
642
644
|
"group": "Parameter",
|
643
645
|
"type": "<p>String</p> ",
|
644
646
|
"optional": false,
|
645
647
|
"field": "name",
|
646
648
|
"description": "<p>Unique name of the container</p> "
|
647
649
|
}
|
648
650
|
]
|
649
651
|
}
|
650
652
|
},
|
651
653
|
"success": {
|
652
654
|
"fields": {
|
653
655
|
"Success 200": [
|
654
656
|
{
|
655
657
|
"group": "Success 200",
|
656
658
|
"type": "<p>String</p> ",
|
657
659
|
"optional": false,
|
658
660
|
"field": "success",
|
659
661
|
"description": "<p>Success message</p> "
|
660
662
|
},
|
661
663
|
{
|
662
664
|
"group": "Success 200",
|
663
665
|
"type": "<p>String</p> ",
|
664
666
|
"optional": false,
|
665
667
|
"field": "output",
|
666
668
|
"description": "<p>STDOUT from container start</p> "
|
667
669
|
}
|
668
670
|
]
|
669
671
|
}
|
670
672
|
},
|
671
673
|
"filename": "lib/wf_node_api/api/node_api.rb",
|
672
674
|
"groupTitle": "Container",
|
673
675
|
"error": {
|
674
676
|
"fields": {
|
675
677
|
"Unauthorized 401": [
|
676
678
|
{
|
677
679
|
"group": "Unauthorized 401",
|
678
680
|
"optional": false,
|
679
681
|
"field": "error",
|
680
682
|
"description": "<p>No valid API token was supplied</p> "
|
681
683
|
}
|
682
684
|
],
|
683
685
|
"Not Found 404": [
|
684
686
|
{
|
685
687
|
"group": "Not Found 404",
|
686
688
|
"optional": false,
|
687
689
|
"field": "error",
|
688
690
|
"description": "<p>Object was not found</p> "
|
689
691
|
}
|
690
692
|
],
|
691
693
|
"Internal Server Error 500": [
|
692
694
|
{
|
693
695
|
"group": "Internal Server Error 500",
|
694
696
|
"optional": false,
|
695
697
|
"field": "error",
|
696
698
|
"description": "<p>The process could not be requested due to an internal error</p> "
|
697
699
|
}
|
698
700
|
]
|
699
701
|
},
|
700
702
|
"examples": [
|
701
703
|
{
|
702
704
|
"title": "401 Unauthorized",
|
703
705
|
"content": "HTTP/1.1 401 Unauthorized\n{\n \"error\": \"Unauthorized\"\n}",
|
704
706
|
"type": "json"
|
705
707
|
},
|
706
708
|
{
|
707
709
|
"title": "404 Not Found",
|
708
710
|
"content": "HTTP/1.1 404 Not Found\n{\n \"error\": \"Not Found\"\n}",
|
709
711
|
"type": "json"
|
710
712
|
},
|
711
713
|
{
|
712
714
|
"title": "500 Internal Server Error",
|
713
715
|
"content": "HTTP/1.1 500 Internal Server Error\n{\n \"error\": \"Unknown error occured\"\n}",
|
714
716
|
"type": "json"
|
715
717
|
}
|
716
718
|
]
|
717
719
|
}
|
718
720
|
},
|
719
721
|
{
|
720
722
|
"type": "put",
|
721
723
|
"url": "/containers/:name/stop",
|
722
724
|
"title": "Stop a container",
|
723
725
|
"version": "0.8.0",
|
724
726
|
"name": "StopContainer",
|
725
727
|
"group": "Container",
|
726
728
|
"description": "<p>Stops a container if it exists</p> ",
|
727
729
|
"header": {
|
728
730
|
"fields": {
|
729
731
|
"Header": [
|
730
732
|
{
|
731
733
|
"group": "Header",
|
732
734
|
"type": "String",
|
733
735
|
"optional": false,
|
734
736
|
"field": "X-Api-Token",
|
735
737
|
"description": "<p>API token (from /etc/wf_node_api.conf)</p> "
|
736
738
|
}
|
737
739
|
]
|
738
740
|
}
|
739
741
|
},
|
740
742
|
"parameter": {
|
741
743
|
"fields": {
|
742
744
|
"Parameter": [
|
743
745
|
{
|
744
746
|
"group": "Parameter",
|
745
747
|
"type": "<p>String</p> ",
|
746
748
|
"optional": false,
|
747
749
|
"field": "name",
|
748
750
|
"description": "<p>Unique name of the container</p> "
|
749
751
|
}
|
750
752
|
]
|
751
753
|
}
|
752
754
|
},
|
753
755
|
"success": {
|
754
756
|
"fields": {
|
755
757
|
"Success 200": [
|
756
758
|
{
|
757
759
|
"group": "Success 200",
|
758
760
|
"type": "<p>String</p> ",
|
759
761
|
"optional": false,
|
760
762
|
"field": "success",
|
761
763
|
"description": "<p>Success message</p> "
|
762
764
|
},
|
763
765
|
{
|
764
766
|
"group": "Success 200",
|
765
767
|
"type": "<p>String</p> ",
|
766
768
|
"optional": false,
|
767
769
|
"field": "output",
|
768
770
|
"description": "<p>STDOUT from container stop</p> "
|
769
771
|
}
|
770
772
|
]
|
771
773
|
}
|
772
774
|
},
|
773
775
|
"filename": "lib/wf_node_api/api/node_api.rb",
|
774
776
|
"groupTitle": "Container",
|
775
777
|
"error": {
|
776
778
|
"fields": {
|
777
779
|
"Unauthorized 401": [
|
778
780
|
{
|
779
781
|
"group": "Unauthorized 401",
|
780
782
|
"optional": false,
|
781
783
|
"field": "error",
|
782
784
|
"description": "<p>No valid API token was supplied</p> "
|
783
785
|
}
|
784
786
|
],
|
785
787
|
"Not Found 404": [
|
786
788
|
{
|
787
789
|
"group": "Not Found 404",
|
788
790
|
"optional": false,
|
789
791
|
"field": "error",
|
790
792
|
"description": "<p>Object was not found</p> "
|
791
793
|
}
|
792
794
|
],
|
793
795
|
"Internal Server Error 500": [
|
794
796
|
{
|
795
797
|
"group": "Internal Server Error 500",
|
796
798
|
"optional": false,
|
797
799
|
"field": "error",
|
798
800
|
"description": "<p>The process could not be requested due to an internal error</p> "
|
799
801
|
}
|
800
802
|
]
|
801
803
|
},
|
802
804
|
"examples": [
|
803
805
|
{
|
804
806
|
"title": "401 Unauthorized",
|
805
807
|
"content": "HTTP/1.1 401 Unauthorized\n{\n \"error\": \"Unauthorized\"\n}",
|
806
808
|
"type": "json"
|
807
809
|
},
|
808
810
|
{
|
809
811
|
"title": "404 Not Found",
|
810
812
|
"content": "HTTP/1.1 404 Not Found\n{\n \"error\": \"Not Found\"\n}",
|
811
813
|
"type": "json"
|
812
814
|
},
|
813
815
|
{
|
814
816
|
"title": "500 Internal Server Error",
|
815
817
|
"content": "HTTP/1.1 500 Internal Server Error\n{\n \"error\": \"Unknown error occured\"\n}",
|
816
818
|
"type": "json"
|
817
819
|
}
|
818
820
|
]
|
819
821
|
}
|
820
822
|
},
|
821
823
|
{
|
822
824
|
"type": "get",
|
823
825
|
"url": "/info",
|
824
826
|
"title": "Request node information",
|
825
827
|
"version": "0.8.0",
|
826
828
|
"name": "NodeInfo",
|
827
829
|
"group": "Node",
|
828
830
|
"description": "<p>Returns an array containing useful information about the node itself and the resources available on it.</p> ",
|
829
831
|
"header": {
|
830
832
|
"fields": {
|
831
833
|
"Header": [
|
832
834
|
{
|
833
835
|
"group": "Header",
|
834
836
|
"type": "String",
|
835
837
|
"optional": false,
|
836
838
|
"field": "X-Api-Token",
|
837
839
|
"description": "<p>API token (from /etc/wf_node_api.conf)</p> "
|
838
840
|
}
|
839
841
|
]
|
840
842
|
}
|
841
843
|
},
|
842
844
|
"success": {
|
843
845
|
"fields": {
|
844
846
|
"Success 200": [
|
845
847
|
{
|
846
848
|
"group": "Success 200",
|
847
849
|
"type": "<p>String</p> ",
|
848
850
|
"optional": false,
|
849
851
|
"field": "container_type",
|
850
852
|
"description": "<p>The configured container type (lxc or vserver)</p> "
|
851
853
|
},
|
852
854
|
{
|
853
855
|
"group": "Success 200",
|
854
856
|
"type": "<p>String</p> ",
|
855
857
|
"optional": false,
|
856
858
|
"field": "hostname",
|
857
859
|
"description": "<p>The hostname of the system</p> "
|
858
860
|
},
|
859
861
|
{
|
860
862
|
"group": "Success 200",
|
861
863
|
"type": "<p>String</p> ",
|
862
864
|
"optional": false,
|
863
865
|
"field": "api_version",
|
864
866
|
"description": "<p>The version number of the node api</p> "
|
865
867
|
},
|
866
868
|
{
|
867
869
|
"group": "Success 200",
|
868
870
|
"type": "<p>Integer</p> ",
|
869
871
|
"optional": false,
|
870
872
|
"field": "total_cpu_cores",
|
871
873
|
"description": "<p>The number of cpu cores available totally</p> "
|
872
874
|
},
|
873
875
|
{
|
874
876
|
"group": "Success 200",
|
875
877
|
"type": "<p>Integer</p> ",
|
876
878
|
"optional": false,
|
877
879
|
"field": "free_cpu_cores",
|
878
880
|
"description": "<p>The number of free cpu cores</p> "
|
879
881
|
}
|
880
882
|
]
|
881
883
|
}
|
882
884
|
},
|
883
885
|
"filename": "lib/wf_node_api/api/node_api.rb",
|
884
886
|
"groupTitle": "Node",
|
885
887
|
"error": {
|
886
888
|
"fields": {
|
887
889
|
"Unauthorized 401": [
|
888
890
|
{
|
889
891
|
"group": "Unauthorized 401",
|
890
892
|
"optional": false,
|
891
893
|
"field": "error",
|
892
894
|
"description": "<p>No valid API token was supplied</p> "
|
893
895
|
}
|
894
896
|
],
|
895
897
|
"Internal Server Error 500": [
|
896
898
|
{
|
897
899
|
"group": "Internal Server Error 500",
|
898
900
|
"optional": false,
|
899
901
|
"field": "error",
|
900
902
|
"description": "<p>The process could not be requested due to an internal error</p> "
|
901
903
|
}
|
902
904
|
]
|
903
905
|
},
|
904
906
|
"examples": [
|
905
907
|
{
|
906
908
|
"title": "401 Unauthorized",
|
907
909
|
"content": "HTTP/1.1 401 Unauthorized\n{\n \"error\": \"Unauthorized\"\n}",
|
908
910
|
"type": "json"
|
909
911
|
},
|
910
912
|
{
|
911
913
|
"title": "500 Internal Server Error",
|
912
914
|
"content": "HTTP/1.1 500 Internal Server Error\n{\n \"error\": \"Unknown error occured\"\n}",
|
913
915
|
"type": "json"
|
914
916
|
}
|
915
917
|
]
|
916
918
|
}
|
917
919
|
}
|