opennebula-cli 6.2.0 → 6.3.80.pre
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 +5 -5
- data/bin/onehook +2 -2
- data/bin/onehost +20 -2
- data/bin/oneimage +4 -4
- data/bin/onemarketapp +4 -4
- data/bin/onetemplate +3 -3
- data/bin/oneuser +1 -1
- data/bin/onevcenter +140 -70
- data/bin/onevm +54 -11
- data/bin/onevmgroup +3 -3
- data/bin/onevnet +3 -3
- data/bin/onevntemplate +3 -3
- data/bin/onevrouter +3 -3
- data/lib/cli_helper.rb +2 -1
- data/lib/one_helper/onevcenter_helper.rb +72 -8
- data/lib/one_helper/onezone_helper.rb +17 -1
- data/share/schemas/xsd/opennebula_configuration.xsd +3 -0
- data/share/schemas/xsd/vm.xsd +13 -1
- data/share/schemas/xsd/vm_pool.xsd +2 -0
- metadata +80 -81
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5a1350ce7a3d5d9d6e1b7ffb16f51eaecdf01cd397fa8d1bb0fb87f08b5c0fc4
|
4
|
+
data.tar.gz: fb950f30366562c94cd865adffeae41d7442cf70e20a7ab035c8a40cbb6aec3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5d582717725a0da69269abe94e4fb07f429ac58286116a3bf165833c9e894505370fbaf4ca2b7d3d9ebfe26c2c927d8e4a1848c014db13c45550c0d1af9ec8a
|
7
|
+
data.tar.gz: 34127cec5cc3eaf71dc8e4dc479a05d3f5f0760b99725f99c0155a37986d7477ec3879298d11153d79559c091075f698d04145b2d35d86898d63e85aeb017a6a
|
data/bin/onehook
CHANGED
@@ -256,8 +256,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
256
256
|
end
|
257
257
|
|
258
258
|
lock_desc = <<-EOT.unindent
|
259
|
-
Locks a Hook
|
260
|
-
show
|
259
|
+
Locks a Hook to prevent certain actions defined by different levels.
|
260
|
+
The show action will never be locked.
|
261
261
|
Valid states are: All.
|
262
262
|
Levels:
|
263
263
|
[Use]: locks Admin, Manage and Use actions.
|
data/bin/onehost
CHANGED
@@ -109,6 +109,20 @@ CommandParser::CmdParser.new(ARGV) do
|
|
109
109
|
:format => String
|
110
110
|
}
|
111
111
|
|
112
|
+
IPV4 = {
|
113
|
+
:name => 'ipv4',
|
114
|
+
:large => '--ipv4 ip1,ip2',
|
115
|
+
:description => 'Comma separated IPV4 to set',
|
116
|
+
:format => Array
|
117
|
+
}
|
118
|
+
|
119
|
+
IPV6 = {
|
120
|
+
:name => 'ipv6',
|
121
|
+
:large => '--ipv6 ip1,ip2',
|
122
|
+
:description => 'Comma separated IPV6 to set',
|
123
|
+
:format => Array
|
124
|
+
}
|
125
|
+
|
112
126
|
CREAT_OPTIONS = [IM, VMM, OneClusterHelper::CLUSTER, TYPE]
|
113
127
|
SYNC_OPTIONS = [OneClusterHelper::CLUSTER, FORCE, SSH]
|
114
128
|
|
@@ -344,12 +358,16 @@ CommandParser::CmdParser.new(ARGV) do
|
|
344
358
|
Import VM to OpenNebula
|
345
359
|
EOT
|
346
360
|
|
347
|
-
command :importvm,
|
361
|
+
command :importvm,
|
362
|
+
importvm_desc,
|
363
|
+
:hostid,
|
364
|
+
:name,
|
365
|
+
:options => [IPV4, IPV6] do
|
348
366
|
helper.perform_action(args[0], options, 'imported') do |o|
|
349
367
|
rc = o.info
|
350
368
|
next rc if OpenNebula.is_error?(rc)
|
351
369
|
|
352
|
-
o.import_wild(args[1])
|
370
|
+
o.import_wild(args[1], options[:ipv4], options[:ipv6])
|
353
371
|
end
|
354
372
|
end
|
355
373
|
|
data/bin/oneimage
CHANGED
@@ -159,7 +159,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
159
159
|
- new persistent image, OS type and qcow2 format:
|
160
160
|
|
161
161
|
oneimage create -d 1 --name ubuntu --path /tmp/ubuntu.qcow2 \\
|
162
|
-
--prefix sd --type OS --
|
162
|
+
--prefix sd --type OS --format qcow2 \\
|
163
163
|
--description "A OS plain installation" \\
|
164
164
|
--persistent
|
165
165
|
|
@@ -436,8 +436,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
436
436
|
end
|
437
437
|
|
438
438
|
lock_desc = <<-EOT.unindent
|
439
|
-
Locks
|
440
|
-
|
439
|
+
Locks an Image to prevent certain actions defined by different levels.
|
440
|
+
The show action will never be locked.
|
441
441
|
Valid states are: All.
|
442
442
|
Levels:
|
443
443
|
[Use]: locks Admin, Manage and Use actions.
|
@@ -464,7 +464,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
464
464
|
end
|
465
465
|
|
466
466
|
unlock_desc = <<-EOT.unindent
|
467
|
-
Unlocks
|
467
|
+
Unlocks an Image.
|
468
468
|
Valid states are: All.
|
469
469
|
EOT
|
470
470
|
|
data/bin/onemarketapp
CHANGED
@@ -309,7 +309,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
309
309
|
puts key.to_s.upcase
|
310
310
|
value.each do |id|
|
311
311
|
if OpenNebula.is_error?(id)
|
312
|
-
puts id.to_str
|
312
|
+
STDERR.puts id.to_str
|
313
313
|
exit(-1)
|
314
314
|
else
|
315
315
|
puts " ID: #{id}"
|
@@ -440,8 +440,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
440
440
|
end
|
441
441
|
|
442
442
|
lock_desc = <<-EOT.unindent
|
443
|
-
Locks a
|
444
|
-
show
|
443
|
+
Locks a marketplace app to prevent certain actions defined by different levels.
|
444
|
+
The show action will never be locked.
|
445
445
|
Valid states are: All.
|
446
446
|
Levels:
|
447
447
|
[Use]: locks Admin, Manage and Use actions.
|
@@ -470,7 +470,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
470
470
|
end
|
471
471
|
|
472
472
|
unlock_desc = <<-EOT.unindent
|
473
|
-
Unlocks a
|
473
|
+
Unlocks a marketplace app.
|
474
474
|
Valid states are: All.
|
475
475
|
EOT
|
476
476
|
|
data/bin/onetemplate
CHANGED
@@ -406,8 +406,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
406
406
|
end
|
407
407
|
|
408
408
|
lock_desc = <<-EOT.unindent
|
409
|
-
Locks a
|
410
|
-
show
|
409
|
+
Locks a Template to prevent certain actions defined by different levels.
|
410
|
+
The show action will never be locked.
|
411
411
|
Valid states are: All.
|
412
412
|
Levels:
|
413
413
|
[Use]: locks Admin, Manage and Use actions.
|
@@ -434,7 +434,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
434
434
|
end
|
435
435
|
|
436
436
|
unlock_desc = <<-EOT.unindent
|
437
|
-
Unlocks a
|
437
|
+
Unlocks a Template.
|
438
438
|
Valid states are: All.
|
439
439
|
EOT
|
440
440
|
|
data/bin/oneuser
CHANGED
@@ -573,7 +573,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
573
573
|
EOT
|
574
574
|
|
575
575
|
command :show, show_desc, [:userid, nil],
|
576
|
-
:options => OpenNebulaHelper::FORMAT do
|
576
|
+
:options => [OpenNebulaHelper::FORMAT, OpenNebulaHelper::DECRYPT] do
|
577
577
|
user = args[0] || OpenNebula::User::SELF
|
578
578
|
helper.show_resource(user, options)
|
579
579
|
end
|
data/bin/onevcenter
CHANGED
@@ -66,17 +66,56 @@ CommandParser::CmdParser.new(ARGV) do
|
|
66
66
|
helper.set_client(options)
|
67
67
|
end
|
68
68
|
|
69
|
+
############################################################################
|
70
|
+
# Authentication Options
|
71
|
+
############################################################################
|
72
|
+
|
73
|
+
VCENTER = {
|
74
|
+
:name => 'vcenter',
|
75
|
+
:large => '--vcenter vCenter',
|
76
|
+
:description => 'The vCenter hostname',
|
77
|
+
:format => String
|
78
|
+
}
|
79
|
+
|
80
|
+
USER = {
|
81
|
+
:name => 'vuser',
|
82
|
+
:large => '--vuser username',
|
83
|
+
:description => 'The username to interact with vCenter',
|
84
|
+
:format => String
|
85
|
+
}
|
86
|
+
|
87
|
+
PASS = {
|
88
|
+
:name => 'vpass',
|
89
|
+
:large => '--vpass password',
|
90
|
+
:description => 'The password for the user',
|
91
|
+
:format => String
|
92
|
+
}
|
93
|
+
|
94
|
+
PORT = {
|
95
|
+
:name => 'port',
|
96
|
+
:short => '-p port',
|
97
|
+
:large => '--port port',
|
98
|
+
:format => String,
|
99
|
+
:description => 'vCenter API port, defaults to 443 (SSL) or 80'
|
100
|
+
}
|
101
|
+
|
102
|
+
AUTH_OPTS = [VCENTER, USER, PASS, PORT]
|
103
|
+
|
104
|
+
############################################################################
|
105
|
+
# List & Import
|
106
|
+
############################################################################
|
107
|
+
|
69
108
|
OBJECT = {
|
70
|
-
:name
|
109
|
+
:name => 'object',
|
71
110
|
:short => '-o object',
|
72
111
|
:large => '--object object ',
|
73
112
|
:format => String,
|
74
113
|
:description => 'vCenter object: [datastores, templates,'\
|
75
|
-
'networks, datastores, images]'
|
114
|
+
'networks, datastores, images, hosts]'
|
76
115
|
}
|
77
116
|
|
78
117
|
HOST = {
|
79
|
-
:name
|
118
|
+
:name => 'host',
|
80
119
|
:short => '-h host_id',
|
81
120
|
:large => '--host host_id',
|
82
121
|
:format => String,
|
@@ -84,7 +123,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
84
123
|
}
|
85
124
|
|
86
125
|
DATASTORE = {
|
87
|
-
:name
|
126
|
+
:name => 'datastore',
|
88
127
|
:short => '-d datastore_id',
|
89
128
|
:large => '--datastore datastore_id',
|
90
129
|
:format => String,
|
@@ -92,55 +131,63 @@ CommandParser::CmdParser.new(ARGV) do
|
|
92
131
|
}
|
93
132
|
|
94
133
|
CONFIG = {
|
95
|
-
:name
|
134
|
+
:name => 'configuration',
|
96
135
|
:large => '--config file',
|
97
136
|
:format => String,
|
98
137
|
:description => 'Configuration file for custom options'
|
99
138
|
}
|
100
139
|
|
101
|
-
|
102
|
-
:name
|
103
|
-
:large => '--
|
104
|
-
:
|
105
|
-
:
|
140
|
+
LINKED_CLONE = {
|
141
|
+
:name => 'linked_clone',
|
142
|
+
:large => '--linked_clone linked_clone',
|
143
|
+
:format => String,
|
144
|
+
:description => 'Import template as linked clone, 0/1'
|
106
145
|
}
|
107
146
|
|
108
|
-
|
109
|
-
:name
|
110
|
-
:large => '--
|
111
|
-
:
|
112
|
-
:
|
147
|
+
COPY = {
|
148
|
+
:name => 'copy',
|
149
|
+
:large => '--copy copy',
|
150
|
+
:format => String,
|
151
|
+
:description => 'Import template as copy, 0/1'
|
113
152
|
}
|
114
153
|
|
115
|
-
|
116
|
-
:name
|
117
|
-
:large => '--
|
118
|
-
:
|
119
|
-
:
|
154
|
+
NAME = {
|
155
|
+
:name => 'name',
|
156
|
+
:large => '--name name',
|
157
|
+
:format => String,
|
158
|
+
:description => 'Import template copy with name'
|
120
159
|
}
|
121
160
|
|
122
|
-
|
123
|
-
:name
|
124
|
-
:
|
125
|
-
:large => '--port port',
|
161
|
+
FOLDER = {
|
162
|
+
:name => 'folder',
|
163
|
+
:large => '--folder folder',
|
126
164
|
:format => String,
|
127
|
-
:description => '
|
165
|
+
:description => 'Import template in folder'
|
128
166
|
}
|
129
167
|
|
130
168
|
USE_DEFAULTS = {
|
131
|
-
:name
|
169
|
+
:name => 'defaults',
|
132
170
|
:large => '--use-defaults',
|
133
171
|
:description => 'Use defaults for answers to questions',
|
134
172
|
:format => String
|
135
173
|
}
|
136
174
|
|
137
175
|
ALL = {
|
138
|
-
:name
|
176
|
+
:name => 'all',
|
139
177
|
:large => '--all',
|
140
178
|
:description => 'Import all list',
|
141
179
|
:format => String
|
142
180
|
}
|
143
181
|
|
182
|
+
CLUSTER_REF = {
|
183
|
+
:name => 'cluster_ref',
|
184
|
+
:large => '--cluster-ref cluster_ref',
|
185
|
+
:format => String,
|
186
|
+
:description => 'Cluster ref to import'
|
187
|
+
}
|
188
|
+
|
189
|
+
LIST_OPTS = [OBJECT, HOST, DATASTORE, CLIHelper::CSV_OPT] + AUTH_OPTS
|
190
|
+
|
144
191
|
############################################################################
|
145
192
|
# Global Options
|
146
193
|
############################################################################
|
@@ -161,29 +208,26 @@ CommandParser::CmdParser.new(ARGV) do
|
|
161
208
|
- listing available images:
|
162
209
|
|
163
210
|
onevcenter list -o datastores -h <host_id> -d <ds-img_id>
|
211
|
+
|
212
|
+
- listing available clusters:
|
213
|
+
|
214
|
+
onevcenter list -o hosts --vcenter <IP> --vuser <U> --vpass <P>
|
164
215
|
EOT
|
165
216
|
|
166
|
-
command :list,
|
167
|
-
list_desc,
|
168
|
-
:options => [OBJECT, HOST, DATASTORE, VCENTER, USER, PASS,
|
169
|
-
CLIHelper::CSV_OPT] do
|
217
|
+
command :list, list_desc, :options => LIST_OPTS do
|
170
218
|
begin
|
171
219
|
args = helper.parse_opts(options)
|
172
|
-
args[:filter] = true
|
173
|
-
args[:short] = true
|
174
|
-
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
|
175
|
-
importer = VCenterDriver::VcImporter
|
176
|
-
.new_child(helper.client, vi_client, options[:object])
|
177
220
|
|
178
|
-
|
221
|
+
args[:filter] = true
|
222
|
+
args[:short] = true
|
179
223
|
|
180
|
-
helper.
|
224
|
+
helper.list(options, args)
|
181
225
|
rescue StandardError => e
|
182
226
|
STDERR.puts e.message
|
183
227
|
exit 1
|
184
228
|
end
|
185
229
|
|
186
|
-
|
230
|
+
0
|
187
231
|
end
|
188
232
|
|
189
233
|
list_desc = <<-EOT.unindent
|
@@ -193,29 +237,22 @@ CommandParser::CmdParser.new(ARGV) do
|
|
193
237
|
- listing networks including uplinks:
|
194
238
|
|
195
239
|
onevcenter list_all -o networks -h <host_id>
|
196
|
-
|
197
240
|
EOT
|
198
241
|
|
199
|
-
command :list_all,
|
200
|
-
list_desc,
|
201
|
-
:options => [OBJECT, HOST, DATASTORE, VCENTER, USER, PASS] do
|
242
|
+
command :list_all, list_desc, :options => LIST_OPTS do
|
202
243
|
begin
|
203
244
|
args = helper.parse_opts(options)
|
204
|
-
args[:filter] = false
|
205
|
-
args[:short] = true
|
206
|
-
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
|
207
|
-
importer = VCenterDriver::VcImporter
|
208
|
-
.new_child(helper.client, vi_client, options[:object])
|
209
245
|
|
210
|
-
|
246
|
+
args[:filter] = false
|
247
|
+
args[:short] = true
|
211
248
|
|
212
|
-
helper.
|
249
|
+
helper.list(options, args)
|
213
250
|
rescue StandardError => e
|
214
251
|
STDERR.puts e.message
|
215
252
|
exit 1
|
216
253
|
end
|
217
254
|
|
218
|
-
|
255
|
+
0
|
219
256
|
end
|
220
257
|
|
221
258
|
import_desc = <<-EOT.unindent
|
@@ -236,21 +273,22 @@ CommandParser::CmdParser.new(ARGV) do
|
|
236
273
|
EOT
|
237
274
|
|
238
275
|
command :import,
|
239
|
-
import_desc,
|
276
|
+
import_desc,
|
277
|
+
[:oid, nil],
|
240
278
|
:options => [OBJECT, HOST, DATASTORE] do
|
241
279
|
begin
|
242
280
|
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
|
243
|
-
importer
|
244
|
-
|
245
|
-
|
281
|
+
importer = VCenterDriver::VcImporter.new_child(helper.client,
|
282
|
+
vi_client,
|
283
|
+
options[:object])
|
246
284
|
|
247
285
|
importer.retrieve_resources(helper.parse_opts(options))
|
248
286
|
indexes = importer.get_indexes(args.first)
|
249
287
|
|
250
288
|
if indexes.nil?
|
251
289
|
raise "Could not get any unimported #{options[:object]}"\
|
252
|
-
|
253
|
-
|
290
|
+
" resources info in host: #{options[:host]} with"\
|
291
|
+
" this input: #{args.first}"
|
254
292
|
end
|
255
293
|
|
256
294
|
importer.process_import(indexes, options) do |object_info|
|
@@ -263,18 +301,25 @@ CommandParser::CmdParser.new(ARGV) do
|
|
263
301
|
exit 1
|
264
302
|
end
|
265
303
|
|
266
|
-
|
304
|
+
0
|
267
305
|
end
|
268
306
|
|
269
307
|
command :import_defaults,
|
270
308
|
import_desc,
|
271
309
|
[:oid, nil],
|
272
|
-
:options => [OBJECT,
|
310
|
+
:options => [OBJECT,
|
311
|
+
HOST,
|
312
|
+
DATASTORE,
|
313
|
+
CONFIG,
|
314
|
+
FOLDER,
|
315
|
+
LINKED_CLONE,
|
316
|
+
COPY,
|
317
|
+
NAME] do
|
273
318
|
begin
|
274
319
|
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
|
275
|
-
importer
|
276
|
-
|
277
|
-
|
320
|
+
importer = VCenterDriver::VcImporter.new_child(helper.client,
|
321
|
+
vi_client,
|
322
|
+
options[:object])
|
278
323
|
|
279
324
|
if options[:object] == 'networks' && !args.first.nil?
|
280
325
|
indexes = args.first
|
@@ -283,15 +328,36 @@ CommandParser::CmdParser.new(ARGV) do
|
|
283
328
|
indexes = importer.get_indexes(args.first)
|
284
329
|
end
|
285
330
|
|
286
|
-
|
331
|
+
if options[:object] == 'templates' &&
|
332
|
+
indexes &&
|
333
|
+
indexes.split(',').length == 1
|
334
|
+
opts = {
|
335
|
+
:type => 'default',
|
336
|
+
:linked_clone => '0',
|
337
|
+
:copy => '0',
|
338
|
+
:name => '',
|
339
|
+
:folder => ''
|
340
|
+
}
|
341
|
+
|
342
|
+
if options[:linked_clone]
|
343
|
+
opts[:linked_clone] = options[:linked_clone]
|
344
|
+
end
|
345
|
+
|
346
|
+
opts[:copy] = options[:copy] if options[:copy]
|
347
|
+
opts[:name] = options[:name] if options[:name]
|
348
|
+
opts[:folder] = options[:folder] if options[:folder]
|
349
|
+
|
350
|
+
options[indexes] = opts
|
351
|
+
end
|
287
352
|
|
353
|
+
importer.process_import(indexes, options)
|
288
354
|
importer.stdout
|
289
355
|
rescue StandardError => e
|
290
356
|
STDERR.puts e.message
|
291
357
|
exit 1
|
292
358
|
end
|
293
359
|
|
294
|
-
|
360
|
+
0
|
295
361
|
end
|
296
362
|
|
297
363
|
############################################################################
|
@@ -303,11 +369,12 @@ CommandParser::CmdParser.new(ARGV) do
|
|
303
369
|
Example:
|
304
370
|
- Get available clusters:
|
305
371
|
|
306
|
-
onevcenter hosts --vcenter <vcenter> --vuser <
|
372
|
+
onevcenter hosts --vcenter <vcenter> --vuser <user> --vpass <pass>
|
307
373
|
EOT
|
374
|
+
|
308
375
|
command :hosts,
|
309
376
|
host_desc,
|
310
|
-
:options => [
|
377
|
+
:options => [CLUSTER_REF, USE_DEFAULTS] + AUTH_OPTS do
|
311
378
|
con_ops = helper.connection_options('Hosts', options)
|
312
379
|
|
313
380
|
begin
|
@@ -316,7 +383,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
316
383
|
exit 1
|
317
384
|
end
|
318
385
|
|
319
|
-
|
386
|
+
0
|
320
387
|
end
|
321
388
|
|
322
389
|
############################################################################
|
@@ -331,8 +398,9 @@ CommandParser::CmdParser.new(ARGV) do
|
|
331
398
|
|
332
399
|
onevcenter cleargs 15
|
333
400
|
EOT
|
401
|
+
|
334
402
|
command :cleartags, cleartags_desc, :vmid do
|
335
|
-
vmid
|
403
|
+
vmid = args[0]
|
336
404
|
remove_str = "\n onevm recover --delete-db #{vmid}" \
|
337
405
|
"\n\nAfter a monitoring cycle, the VM will appear "\
|
338
406
|
'as a Wild VM for reimport.'
|
@@ -349,8 +417,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
349
417
|
puts remove_str
|
350
418
|
exit 0
|
351
419
|
end
|
352
|
-
puts '.'
|
353
420
|
|
421
|
+
puts '.'
|
354
422
|
puts 'The following keys will be removed:'
|
355
423
|
keys.each {|key| puts "\t- #{key}" }
|
356
424
|
|
@@ -359,8 +427,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
359
427
|
STDERR.puts "Couldn't clear VM tags. Reason: #{e.message}"
|
360
428
|
exit 1
|
361
429
|
end
|
430
|
+
|
362
431
|
puts "\nKeys removed from VM. Is safe to remove it"
|
363
432
|
puts remove_str
|
364
|
-
|
433
|
+
|
434
|
+
0
|
365
435
|
end
|
366
436
|
end
|
data/bin/onevm
CHANGED
@@ -239,6 +239,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
239
239
|
:description => 'SSH options to use'
|
240
240
|
}
|
241
241
|
|
242
|
+
OpenNebulaHelper::TEMPLATE_OPTIONS_VM.delete_if do |v|
|
243
|
+
%w[as_gid as_uid].include?(v[:name])
|
244
|
+
end
|
245
|
+
|
242
246
|
########################################################################
|
243
247
|
# Global Options
|
244
248
|
########################################################################
|
@@ -909,6 +913,36 @@ CommandParser::CmdParser.new(ARGV) do
|
|
909
913
|
end
|
910
914
|
end
|
911
915
|
|
916
|
+
sg_attach_desc = <<-EOT.unindent
|
917
|
+
Attaches a Security Group to a VM.
|
918
|
+
|
919
|
+
States: All, except BOOT, MIGRATE and HOTPLUG_NIC
|
920
|
+
EOT
|
921
|
+
|
922
|
+
command :"sg-attach", sg_attach_desc, :vmid, :nicid, :sgid do
|
923
|
+
nic_id = args[1].to_i
|
924
|
+
sg_id = args[2].to_i
|
925
|
+
|
926
|
+
helper.perform_action(args[0], options, 'Attach SG') do |vm|
|
927
|
+
vm.sg_attach(nic_id, sg_id)
|
928
|
+
end
|
929
|
+
end
|
930
|
+
|
931
|
+
sg_detach_desc = <<-EOT.unindent
|
932
|
+
Detaches a Security Group from a VM.
|
933
|
+
|
934
|
+
States: All, except BOOT, MIGRATE and HOTPLUG_NIC
|
935
|
+
EOT
|
936
|
+
|
937
|
+
command :"sg-detach", sg_detach_desc, :vmid, :nicid, :sgid do
|
938
|
+
nic_id = args[1].to_i
|
939
|
+
sg_id = args[2].to_i
|
940
|
+
|
941
|
+
helper.perform_action(args[0], options, 'Detach SG') do |vm|
|
942
|
+
vm.sg_detach(nic_id, sg_id)
|
943
|
+
end
|
944
|
+
end
|
945
|
+
|
912
946
|
chgrp_desc = <<-EOT.unindent
|
913
947
|
Changes the VM group
|
914
948
|
EOT
|
@@ -1338,9 +1372,12 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1338
1372
|
end
|
1339
1373
|
|
1340
1374
|
lock_desc = <<-EOT.unindent
|
1341
|
-
Locks a VM
|
1342
|
-
monitoring
|
1375
|
+
Locks a VM to prevent certain actions defined by different levels.
|
1376
|
+
The show and monitoring action will never be locked.
|
1343
1377
|
Valid states are: All.
|
1378
|
+
[Use]: locks Admin, Manage and Use actions.
|
1379
|
+
[Manage]: locks Manage and Use actions.
|
1380
|
+
[Admin]: locks only Admin actions.
|
1344
1381
|
EOT
|
1345
1382
|
|
1346
1383
|
command :lock, lock_desc, [:range, :vmid_list],
|
@@ -1362,7 +1399,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1362
1399
|
end
|
1363
1400
|
|
1364
1401
|
unlock_desc = <<-EOT.unindent
|
1365
|
-
Unlocks a
|
1402
|
+
Unlocks a Virtual Machine.
|
1366
1403
|
Valid states are: All.
|
1367
1404
|
EOT
|
1368
1405
|
|
@@ -1391,16 +1428,22 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1391
1428
|
acc_t = 0
|
1392
1429
|
acc_w = 0
|
1393
1430
|
|
1394
|
-
|
1395
|
-
|
1431
|
+
helper.perform_action(args[0], {}, 'Charter added') do |vm|
|
1432
|
+
vm.info
|
1433
|
+
|
1434
|
+
diff_stime = Time.now.to_i - vm['/VM/STIME'].to_i
|
1396
1435
|
|
1397
|
-
|
1398
|
-
|
1399
|
-
action.to_s,
|
1400
|
-
time[:warning][:time] + acc_w)
|
1436
|
+
charters.each do |action, time|
|
1437
|
+
sched = "+#{time[:time].to_i + acc_t + diff_stime}"
|
1401
1438
|
|
1402
|
-
|
1403
|
-
|
1439
|
+
helper.schedule_actions([args[0]].flatten,
|
1440
|
+
{ :schedule => sched },
|
1441
|
+
action.to_s,
|
1442
|
+
time[:warning][:time] + acc_w)
|
1443
|
+
|
1444
|
+
acc_t += time[:time].to_i
|
1445
|
+
acc_w += time[:warning][:time].to_i
|
1446
|
+
end
|
1404
1447
|
end
|
1405
1448
|
|
1406
1449
|
0
|
data/bin/onevmgroup
CHANGED
@@ -233,8 +233,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
233
233
|
end
|
234
234
|
|
235
235
|
lock_desc = <<-EOT.unindent
|
236
|
-
Locks a VM
|
237
|
-
|
236
|
+
Locks a VM Group to prevent certain actions defined by different levels.
|
237
|
+
The show action will never be locked.
|
238
238
|
Valid states are: All.
|
239
239
|
Levels:
|
240
240
|
[Use]: locks Admin, Manage and Use actions.
|
@@ -261,7 +261,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
261
261
|
end
|
262
262
|
|
263
263
|
unlock_desc = <<-EOT.unindent
|
264
|
-
Unlocks a VM
|
264
|
+
Unlocks a VM Group.
|
265
265
|
Valid states are: All.
|
266
266
|
EOT
|
267
267
|
|
data/bin/onevnet
CHANGED
@@ -381,8 +381,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
381
381
|
end
|
382
382
|
|
383
383
|
lock_desc = <<-EOT.unindent
|
384
|
-
Locks a
|
385
|
-
|
384
|
+
Locks a Virtual Network to prevent certain actions defined by different levels.
|
385
|
+
The show action will never be locked.
|
386
386
|
Valid states are: All.
|
387
387
|
Levels:
|
388
388
|
[Use]: locks Admin, Manage and Use actions.
|
@@ -409,7 +409,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
409
409
|
end
|
410
410
|
|
411
411
|
unlock_desc = <<-EOT.unindent
|
412
|
-
Unlocks a
|
412
|
+
Unlocks a Virtual Network.
|
413
413
|
Valid states are: All.
|
414
414
|
EOT
|
415
415
|
|
data/bin/onevntemplate
CHANGED
@@ -341,8 +341,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
341
341
|
end
|
342
342
|
|
343
343
|
lock_desc = <<-EOT.unindent
|
344
|
-
Locks a VN
|
345
|
-
show
|
344
|
+
Locks a VN Template to prevent certain actions defined by different levels.
|
345
|
+
The show action will never be locked.
|
346
346
|
Valid states are: All.
|
347
347
|
Levels:
|
348
348
|
[Use]: locks Admin, Manage and Use actions.
|
@@ -369,7 +369,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
369
369
|
end
|
370
370
|
|
371
371
|
unlock_desc = <<-EOT.unindent
|
372
|
-
Unlocks a VN
|
372
|
+
Unlocks a VN Template.
|
373
373
|
Valid states are: All.
|
374
374
|
EOT
|
375
375
|
|
data/bin/onevrouter
CHANGED
@@ -366,8 +366,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
366
366
|
end
|
367
367
|
|
368
368
|
lock_desc = <<-EOT.unindent
|
369
|
-
Locks a
|
370
|
-
|
369
|
+
Locks a Virtual Router to prevent certain actions defined by different levels.
|
370
|
+
The show action will never be locked.
|
371
371
|
Valid states are: All.
|
372
372
|
Levels:
|
373
373
|
[Use]: locks Admin, Manage and Use actions.
|
@@ -394,7 +394,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
394
394
|
end
|
395
395
|
|
396
396
|
unlock_desc = <<-EOT.unindent
|
397
|
-
Unlocks a
|
397
|
+
Unlocks a Virtual Router.
|
398
398
|
valid states are: All.
|
399
399
|
EOT
|
400
400
|
|
data/lib/cli_helper.rb
CHANGED
@@ -61,7 +61,8 @@ module CLIHelper
|
|
61
61
|
' ' * 31 << 'column=value pairs.' <<
|
62
62
|
' ' * 31 << "Valid operators #{FILTER_OPS.join(',')}" <<
|
63
63
|
' ' * 31 << 'e.g. NAME=test (match name with test)' <<
|
64
|
-
' ' * 31 << 'NAME~test (match
|
64
|
+
' ' * 31 << 'NAME~test (match every NAME containing' <<
|
65
|
+
' ' * 31 << 'the substring \'test\')'
|
65
66
|
}
|
66
67
|
|
67
68
|
OPERATOR = {
|
@@ -27,9 +27,10 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
27
27
|
module VOBJECT
|
28
28
|
|
29
29
|
DATASTORE = 1
|
30
|
-
TEMPLATE
|
31
|
-
NETWORK
|
32
|
-
IMAGE
|
30
|
+
TEMPLATE = 2
|
31
|
+
NETWORK = 3
|
32
|
+
IMAGE = 4
|
33
|
+
HOST = 5
|
33
34
|
|
34
35
|
end
|
35
36
|
|
@@ -85,6 +86,12 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
85
86
|
:columns => { :IMID => 5, :REF => 35, :PATH => 60 },
|
86
87
|
:cli => [:host, :datastore],
|
87
88
|
:dialogue => ->(arg) {}
|
89
|
+
},
|
90
|
+
VOBJECT::HOST => {
|
91
|
+
:struct => %w[HOST_LIST HOST],
|
92
|
+
:columns => { :DATACENTER => 10, :NAME => 30, :REF => 35 },
|
93
|
+
:cli => [],
|
94
|
+
:dialogue => ->(arg) {}
|
88
95
|
}
|
89
96
|
}
|
90
97
|
|
@@ -143,6 +150,8 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
143
150
|
@vobject = VOBJECT::NETWORK
|
144
151
|
when 'images'
|
145
152
|
@vobject = VOBJECT::IMAGE
|
153
|
+
when 'hosts'
|
154
|
+
@vobject = VOBJECT::HOST
|
146
155
|
else
|
147
156
|
puts "unknown #{type} type option"
|
148
157
|
puts ' -o options:'
|
@@ -150,6 +159,7 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
150
159
|
puts ' templates'
|
151
160
|
puts ' networks'
|
152
161
|
puts ' images'
|
162
|
+
puts ' hosts'
|
153
163
|
|
154
164
|
exit 0
|
155
165
|
end
|
@@ -186,6 +196,28 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
186
196
|
}
|
187
197
|
end
|
188
198
|
|
199
|
+
# General method to list vCenter objects
|
200
|
+
#
|
201
|
+
# @param options [Hash] User CLI options
|
202
|
+
# @param args [Hash] Search arguments
|
203
|
+
def list(options, args)
|
204
|
+
if !options[:host]
|
205
|
+
# This case is to list available hosts, instead other object
|
206
|
+
list_hosts(options)
|
207
|
+
else
|
208
|
+
vi_client = VCenterDriver::VIClient.new_from_host(
|
209
|
+
options[:host]
|
210
|
+
)
|
211
|
+
importer = VCenterDriver::VcImporter.new_child(
|
212
|
+
@client,
|
213
|
+
vi_client,
|
214
|
+
options[:object]
|
215
|
+
)
|
216
|
+
|
217
|
+
list_object(options, importer.retrieve_resources(args))
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
189
221
|
# This method will print a list for a vcenter_resource.
|
190
222
|
#
|
191
223
|
def list_object(options, list)
|
@@ -198,6 +230,31 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
198
230
|
table.show(list, options)
|
199
231
|
end
|
200
232
|
|
233
|
+
# List unimported hosts
|
234
|
+
#
|
235
|
+
# @param options [Hash] User CLI options
|
236
|
+
def list_hosts(options)
|
237
|
+
con_ops = connection_options('hosts', options)
|
238
|
+
vi_client = VCenterDriver::VIClient.new(con_ops)
|
239
|
+
dc_folder = VCenterDriver::DatacenterFolder.new(vi_client)
|
240
|
+
hpool = VCenterDriver::VIHelper.one_pool(OpenNebula::HostPool,
|
241
|
+
false)
|
242
|
+
|
243
|
+
VCenterDriver::VIHelper.set_client(nil, @client)
|
244
|
+
|
245
|
+
list = []
|
246
|
+
hosts = dc_folder.get_unimported_hosts(hpool, vi_client.vim.host)
|
247
|
+
|
248
|
+
hosts.each do |key, value|
|
249
|
+
value.each do |v|
|
250
|
+
v[:datacenter] = key
|
251
|
+
list << v
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
format_list.show(hosts, options)
|
256
|
+
end
|
257
|
+
|
201
258
|
# handles :cli section of TABLE
|
202
259
|
# used for executing the dialogue in some VOBJECTS
|
203
260
|
#
|
@@ -252,12 +309,18 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
252
309
|
def format_list
|
253
310
|
config = TABLE[@vobject][:columns]
|
254
311
|
CLIHelper::ShowTable.new do
|
312
|
+
column :DATACENTER,
|
313
|
+
'Object datacenter',
|
314
|
+
:size => config[:DATACENTER] || 15 do |d|
|
315
|
+
d[:datacenter]
|
316
|
+
end
|
317
|
+
|
255
318
|
column :IMID, 'identifier for ...', :size=>config[:IMID] || 4 do |d|
|
256
319
|
d[:import_id]
|
257
320
|
end
|
258
321
|
|
259
322
|
column :REF, 'ref', :left, :adjust, :size=>config[:REF] || 15 do |d|
|
260
|
-
d[:ref]
|
323
|
+
d[:ref] || d[:cluster_ref]
|
261
324
|
end
|
262
325
|
|
263
326
|
column :NAME, 'Name', :left, :expand,
|
@@ -493,10 +556,11 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
493
556
|
|
494
557
|
keys_to_remove = []
|
495
558
|
vm['config.extraConfig'].each do |extraconfig|
|
496
|
-
|
497
|
-
extraconfig.key.include?('opennebula.vm')
|
498
|
-
|
499
|
-
|
559
|
+
next unless extraconfig.key.include?('opennebula.disk') ||
|
560
|
+
extraconfig.key.include?('opennebula.vm') ||
|
561
|
+
extraconfig.key.downcase.include?('remotedisplay')
|
562
|
+
|
563
|
+
keys_to_remove << extraconfig.key
|
500
564
|
end
|
501
565
|
|
502
566
|
[vm, keys_to_remove]
|
@@ -577,7 +577,23 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
|
|
577
577
|
puts "Endpoint changed to \"#{zone['TEMPLATE/ENDPOINT']}\" in " <<
|
578
578
|
"#{ENV['HOME']}/.one/one_endpoint"
|
579
579
|
end
|
580
|
-
|
580
|
+
|
581
|
+
return 0 unless zone['TEMPLATE/ONEFLOW_ENDPOINT']
|
582
|
+
|
583
|
+
# Set ONEFLOW_ENDPOINT
|
584
|
+
if temporary_zone
|
585
|
+
puts "Type: export ONEFLOW_URL=#{zone['TEMPLATE/ONEFLOW_ENDPOINT']}"
|
586
|
+
else
|
587
|
+
File.open(ENV['HOME'] + '/.one/oneflow_endpoint', 'w') do |f|
|
588
|
+
f.puts zone['TEMPLATE/ONEFLOW_ENDPOINT']
|
589
|
+
end
|
590
|
+
|
591
|
+
puts 'OneFlow Endpoint changed to ' \
|
592
|
+
"\"#{zone['TEMPLATE/ONEFLOW_ENDPOINT']}\" in " <<
|
593
|
+
"#{ENV['HOME']}/.one/oneflow_endpoint"
|
594
|
+
end
|
595
|
+
|
596
|
+
0
|
581
597
|
end
|
582
598
|
|
583
599
|
private
|
@@ -204,6 +204,7 @@
|
|
204
204
|
<xs:all>
|
205
205
|
<xs:element name="DEBUG_LEVEL" type="xs:integer"/>
|
206
206
|
<xs:element name="SYSTEM" type="xs:string"/>
|
207
|
+
<xs:element name="USE_VMS_LOCATION" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
207
208
|
</xs:all>
|
208
209
|
</xs:complexType>
|
209
210
|
</xs:element>
|
@@ -303,6 +304,7 @@
|
|
303
304
|
</xs:complexType>
|
304
305
|
</xs:element>
|
305
306
|
|
307
|
+
<xs:element name="USER_ENCRYPTED_ATTR" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
306
308
|
<xs:element name="USER_RESTRICTED_ATTR" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
307
309
|
|
308
310
|
<xs:element name="VLAN_IDS" minOccurs="0" maxOccurs="1">
|
@@ -366,6 +368,7 @@
|
|
366
368
|
<xs:element name="VM_MANAGE_OPERATIONS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
367
369
|
<xs:element name="VM_MONITORING_EXPIRATION_TIME" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
368
370
|
<xs:element name="VM_RESTRICTED_ATTR" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
371
|
+
<xs:element name="VM_SNAPSHOT_FACTOR" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
369
372
|
|
370
373
|
<xs:element name="VM_SUBMIT_ON_HOLD" minOccurs="0" maxOccurs="1">
|
371
374
|
<xs:simpleType>
|
data/share/schemas/xsd/vm.xsd
CHANGED
@@ -121,7 +121,6 @@
|
|
121
121
|
<xs:element name="MEMORY" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
122
122
|
<xs:element name="MEMORY_COST" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
123
123
|
<xs:element name="MEMORY_MAX" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
124
|
-
<xs:element name="MEMORY_SLOTS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
125
124
|
<xs:element name="NIC" minOccurs="0" maxOccurs="unbounded">
|
126
125
|
<xs:complexType>
|
127
126
|
<xs:sequence>
|
@@ -167,6 +166,19 @@
|
|
167
166
|
</xs:complexType>
|
168
167
|
</xs:element>
|
169
168
|
<xs:element name="SECURITY_GROUP_RULE" minOccurs="0" maxOccurs="unbounded"/>
|
169
|
+
<xs:element name="SNAPSHOT" minOccurs="0" maxOccurs="unbounded">
|
170
|
+
<xs:complexType>
|
171
|
+
<xs:sequence>
|
172
|
+
<xs:element name="ACTION" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
173
|
+
<xs:element name="ACTIVE" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
174
|
+
<xs:element name="HYPERVISOR_ID" type="xs:string"/>
|
175
|
+
<xs:element name="NAME" type="xs:string"/>
|
176
|
+
<xs:element name="SNAPSHOT_ID" type="xs:string"/>
|
177
|
+
<xs:element name="SYSTEM_DISK_SIZE" type="xs:string"/>
|
178
|
+
<xs:element name="TIME" type="xs:string"/>
|
179
|
+
</xs:sequence>
|
180
|
+
</xs:complexType>
|
181
|
+
</xs:element>
|
170
182
|
<xs:element name="SPICE_OPTIONS" minOccurs="0" maxOccurs="1"/>
|
171
183
|
<xs:element name="SUBMIT_ON_HOLD" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
172
184
|
<xs:element name="TEMPLATE_ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
@@ -75,6 +75,8 @@
|
|
75
75
|
<xs:element name="HID" type="xs:integer"/>
|
76
76
|
<xs:element name="CID" type="xs:integer"/>
|
77
77
|
<xs:element name="DS_ID" type="xs:integer"/>
|
78
|
+
<xs:element name="VM_MAD" type="xs:string"/>
|
79
|
+
<xs:element name="TM_MAD" type="xs:string"/>
|
78
80
|
<xs:element name="ACTION" type="xs:integer"/>
|
79
81
|
</xs:sequence>
|
80
82
|
</xs:complexType>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opennebula-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.3.80.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenNebula
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opennebula
|
@@ -16,107 +16,60 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 6.
|
19
|
+
version: 6.3.80.pre
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 6.
|
26
|
+
version: 6.3.80.pre
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description: Commands used to talk to OpenNebula
|
42
42
|
email: contact@opennebula.io
|
43
43
|
executables:
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
48
|
-
-
|
49
|
-
- oneflow-template
|
44
|
+
- onezone
|
45
|
+
- onevcenter
|
46
|
+
- oneimage
|
47
|
+
- onevmgroup
|
48
|
+
- onehost
|
50
49
|
- onegroup
|
51
50
|
- onehook
|
52
|
-
-
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
56
|
-
- onesecgroup
|
51
|
+
- onevdc
|
52
|
+
- oneacl
|
53
|
+
- oneflow-template
|
54
|
+
- onevrouter
|
57
55
|
- oneshowback
|
58
|
-
- onetemplate
|
59
56
|
- oneuser
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
63
|
-
-
|
64
|
-
-
|
57
|
+
- oneacct
|
58
|
+
- onesecgroup
|
59
|
+
- onecluster
|
60
|
+
- onemarketapp
|
61
|
+
- onetemplate
|
62
|
+
- onemarket
|
65
63
|
- onevntemplate
|
66
|
-
-
|
67
|
-
-
|
64
|
+
- onevnet
|
65
|
+
- oneflow
|
66
|
+
- onedatastore
|
67
|
+
- onevm
|
68
68
|
extensions: []
|
69
69
|
extra_rdoc_files: []
|
70
70
|
files:
|
71
|
-
-
|
72
|
-
-
|
73
|
-
- share/schemas/xsd/api_info.xsd
|
74
|
-
- share/schemas/xsd/cluster.xsd
|
75
|
-
- share/schemas/xsd/cluster_pool.xsd
|
76
|
-
- share/schemas/xsd/datastore.xsd
|
77
|
-
- share/schemas/xsd/datastore_pool.xsd
|
78
|
-
- share/schemas/xsd/document.xsd
|
79
|
-
- share/schemas/xsd/document_pool.xsd
|
80
|
-
- share/schemas/xsd/group.xsd
|
81
|
-
- share/schemas/xsd/group_pool.xsd
|
82
|
-
- share/schemas/xsd/hook.xsd
|
83
|
-
- share/schemas/xsd/hook_message_api.xsd
|
84
|
-
- share/schemas/xsd/hook_message_retry.xsd
|
85
|
-
- share/schemas/xsd/hook_message_state.xsd
|
86
|
-
- share/schemas/xsd/hook_pool.xsd
|
87
|
-
- share/schemas/xsd/host.xsd
|
88
|
-
- share/schemas/xsd/host_pool.xsd
|
89
|
-
- share/schemas/xsd/image.xsd
|
90
|
-
- share/schemas/xsd/image_pool.xsd
|
91
|
-
- share/schemas/xsd/index.xsd
|
92
|
-
- share/schemas/xsd/marketplace.xsd
|
93
|
-
- share/schemas/xsd/marketplace_pool.xsd
|
94
|
-
- share/schemas/xsd/marketplaceapp.xsd
|
95
|
-
- share/schemas/xsd/marketplaceapp_pool.xsd
|
96
|
-
- share/schemas/xsd/monitoring_data.xsd
|
97
|
-
- share/schemas/xsd/opennebula_configuration.xsd
|
98
|
-
- share/schemas/xsd/raftstatus.xsd
|
99
|
-
- share/schemas/xsd/security_group.xsd
|
100
|
-
- share/schemas/xsd/security_group_pool.xsd
|
101
|
-
- share/schemas/xsd/showback.xsd
|
102
|
-
- share/schemas/xsd/user.xsd
|
103
|
-
- share/schemas/xsd/user_pool.xsd
|
104
|
-
- share/schemas/xsd/vdc.xsd
|
105
|
-
- share/schemas/xsd/vdc_pool.xsd
|
106
|
-
- share/schemas/xsd/vm.xsd
|
107
|
-
- share/schemas/xsd/vm_group.xsd
|
108
|
-
- share/schemas/xsd/vm_group_pool.xsd
|
109
|
-
- share/schemas/xsd/vm_pool.xsd
|
110
|
-
- share/schemas/xsd/vmtemplate.xsd
|
111
|
-
- share/schemas/xsd/vmtemplate_pool.xsd
|
112
|
-
- share/schemas/xsd/vnet.xsd
|
113
|
-
- share/schemas/xsd/vnet_pool.xsd
|
114
|
-
- share/schemas/xsd/vntemplate.xsd
|
115
|
-
- share/schemas/xsd/vntemplate_pool.xsd
|
116
|
-
- share/schemas/xsd/vrouter.xsd
|
117
|
-
- share/schemas/xsd/vrouter_pool.xsd
|
118
|
-
- share/schemas/xsd/zone.xsd
|
119
|
-
- share/schemas/xsd/zone_pool.xsd
|
71
|
+
- LICENSE
|
72
|
+
- NOTICE
|
120
73
|
- bin/oneacct
|
121
74
|
- bin/oneacl
|
122
75
|
- bin/onecluster
|
@@ -168,8 +121,55 @@ files:
|
|
168
121
|
- lib/one_helper/onevntemplate_helper.rb
|
169
122
|
- lib/one_helper/onevrouter_helper.rb
|
170
123
|
- lib/one_helper/onezone_helper.rb
|
171
|
-
-
|
172
|
-
-
|
124
|
+
- share/schemas/xsd/acct.xsd
|
125
|
+
- share/schemas/xsd/acl_pool.xsd
|
126
|
+
- share/schemas/xsd/api_info.xsd
|
127
|
+
- share/schemas/xsd/cluster.xsd
|
128
|
+
- share/schemas/xsd/cluster_pool.xsd
|
129
|
+
- share/schemas/xsd/datastore.xsd
|
130
|
+
- share/schemas/xsd/datastore_pool.xsd
|
131
|
+
- share/schemas/xsd/document.xsd
|
132
|
+
- share/schemas/xsd/document_pool.xsd
|
133
|
+
- share/schemas/xsd/group.xsd
|
134
|
+
- share/schemas/xsd/group_pool.xsd
|
135
|
+
- share/schemas/xsd/hook.xsd
|
136
|
+
- share/schemas/xsd/hook_message_api.xsd
|
137
|
+
- share/schemas/xsd/hook_message_retry.xsd
|
138
|
+
- share/schemas/xsd/hook_message_state.xsd
|
139
|
+
- share/schemas/xsd/hook_pool.xsd
|
140
|
+
- share/schemas/xsd/host.xsd
|
141
|
+
- share/schemas/xsd/host_pool.xsd
|
142
|
+
- share/schemas/xsd/image.xsd
|
143
|
+
- share/schemas/xsd/image_pool.xsd
|
144
|
+
- share/schemas/xsd/index.xsd
|
145
|
+
- share/schemas/xsd/marketplace.xsd
|
146
|
+
- share/schemas/xsd/marketplace_pool.xsd
|
147
|
+
- share/schemas/xsd/marketplaceapp.xsd
|
148
|
+
- share/schemas/xsd/marketplaceapp_pool.xsd
|
149
|
+
- share/schemas/xsd/monitoring_data.xsd
|
150
|
+
- share/schemas/xsd/opennebula_configuration.xsd
|
151
|
+
- share/schemas/xsd/raftstatus.xsd
|
152
|
+
- share/schemas/xsd/security_group.xsd
|
153
|
+
- share/schemas/xsd/security_group_pool.xsd
|
154
|
+
- share/schemas/xsd/showback.xsd
|
155
|
+
- share/schemas/xsd/user.xsd
|
156
|
+
- share/schemas/xsd/user_pool.xsd
|
157
|
+
- share/schemas/xsd/vdc.xsd
|
158
|
+
- share/schemas/xsd/vdc_pool.xsd
|
159
|
+
- share/schemas/xsd/vm.xsd
|
160
|
+
- share/schemas/xsd/vm_group.xsd
|
161
|
+
- share/schemas/xsd/vm_group_pool.xsd
|
162
|
+
- share/schemas/xsd/vm_pool.xsd
|
163
|
+
- share/schemas/xsd/vmtemplate.xsd
|
164
|
+
- share/schemas/xsd/vmtemplate_pool.xsd
|
165
|
+
- share/schemas/xsd/vnet.xsd
|
166
|
+
- share/schemas/xsd/vnet_pool.xsd
|
167
|
+
- share/schemas/xsd/vntemplate.xsd
|
168
|
+
- share/schemas/xsd/vntemplate_pool.xsd
|
169
|
+
- share/schemas/xsd/vrouter.xsd
|
170
|
+
- share/schemas/xsd/vrouter_pool.xsd
|
171
|
+
- share/schemas/xsd/zone.xsd
|
172
|
+
- share/schemas/xsd/zone_pool.xsd
|
173
173
|
homepage: http://opennebula.io
|
174
174
|
licenses:
|
175
175
|
- Apache-2.0
|
@@ -180,17 +180,16 @@ require_paths:
|
|
180
180
|
- lib
|
181
181
|
required_ruby_version: !ruby/object:Gem::Requirement
|
182
182
|
requirements:
|
183
|
-
- -
|
183
|
+
- - ">="
|
184
184
|
- !ruby/object:Gem::Version
|
185
185
|
version: '0'
|
186
186
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
187
|
requirements:
|
188
|
-
- -
|
188
|
+
- - ">"
|
189
189
|
- !ruby/object:Gem::Version
|
190
|
-
version:
|
190
|
+
version: 1.3.1
|
191
191
|
requirements: []
|
192
|
-
|
193
|
-
rubygems_version: 2.0.14.1
|
192
|
+
rubygems_version: 3.1.2
|
194
193
|
signing_key:
|
195
194
|
specification_version: 4
|
196
195
|
summary: OpenNebula Command Line Interface
|