opennebula-cli 7.2.0 → 7.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 +4 -4
- data/bin/oneflow +52 -1
- data/bin/onegroup +33 -0
- data/bin/oneimage +7 -2
- data/bin/onesecgroup +2 -1
- data/bin/onevm +27 -8
- data/bin/onevnet +6 -21
- data/bin/onevntemplate +3 -3
- data/lib/command_parser.rb +134 -125
- data/lib/load_opennebula_paths.rb +5 -0
- data/lib/ods_helper.rb +724 -0
- data/lib/one_helper/oneacct_helper.rb +116 -108
- data/lib/one_helper/onedatastore_helper.rb +86 -79
- data/lib/one_helper/onegroup_helper.rb +20 -0
- data/lib/one_helper/onehost_helper.rb +10 -1
- data/lib/one_helper/oneimage_helper.rb +9 -2
- data/lib/one_helper/onemarket_helper.rb +58 -57
- data/lib/one_helper/onequota_helper.rb +239 -189
- data/lib/one_helper/onesecgroup_helper.rb +86 -84
- data/lib/one_helper/onetemplate_helper.rb +63 -63
- data/lib/one_helper/onevdc_helper.rb +44 -44
- data/lib/one_helper/onevm_helper.rb +5 -12
- data/lib/one_helper/onevmgroup_helper.rb +65 -64
- data/lib/one_helper/onevnet_helper.rb +6 -2
- data/lib/one_helper/onevntemplate_helper.rb +42 -39
- data/lib/one_helper/onevrouter_helper.rb +85 -86
- data/lib/one_helper/onezone_helper.rb +97 -100
- data/lib/one_helper.rb +102 -70
- data/share/schemas/xsd/acct.xsd +3 -104
- data/share/schemas/xsd/backupjob.xsd +1 -0
- data/share/schemas/xsd/cluster.xsd +4 -21
- data/share/schemas/xsd/datastore.xsd +4 -29
- data/share/schemas/xsd/document.xsd +3 -25
- data/share/schemas/xsd/group.xsd +17 -13
- data/share/schemas/xsd/group_pool.xsd +18 -14
- data/share/schemas/xsd/hook.xsd +2 -0
- data/share/schemas/xsd/host.xsd +5 -7
- data/share/schemas/xsd/image.xsd +2 -25
- data/share/schemas/xsd/marketplace.xsd +3 -22
- data/share/schemas/xsd/marketplaceapp.xsd +3 -25
- data/share/schemas/xsd/opennebula_configuration.xsd +2 -0
- data/share/schemas/xsd/requirements.xsd +3 -21
- data/share/schemas/xsd/security_group.xsd +6 -43
- data/share/schemas/xsd/shared.xsd +3 -3
- data/share/schemas/xsd/vdc.xsd +2 -7
- data/share/schemas/xsd/vm.xsd +2 -0
- data/share/schemas/xsd/vm_group.xsd +3 -25
- data/share/schemas/xsd/vm_pool.xsd +2 -0
- data/share/schemas/xsd/vmtemplate.xsd +3 -25
- data/share/schemas/xsd/vnet.xsd +13 -67
- data/share/schemas/xsd/vnet_pool.xsd +13 -58
- data/share/schemas/xsd/vntemplate.xsd +3 -25
- data/share/schemas/xsd/vrouter.xsd +4 -32
- metadata +8 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ddabe36ca91b760ad2cc9c641d585f9fc9591567267620b59db910f0a865e2ce
|
|
4
|
+
data.tar.gz: 212ffde1d9910ce5daf0f60884f4d8e9721dc57d2368fb705dd51534d6493b0b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cb603d35ae289e02fc13bf767ce336d40a82252b896963c37f90669d2b95392e4e7b4feff3d23fd0a3ae6ba46ab4302f0d26149eff4d4c4df85f0295eba4d29f
|
|
7
|
+
data.tar.gz: ae5a2a2ca0d6eb53b69b2619dd2b0c01706e873d38bdaee7e24d346168e637912616bbfd64cd92ecf46712bf0e5d3bf7e155d89f64c345b1a20ee5fba9171c6c
|
data/bin/oneflow
CHANGED
|
@@ -35,6 +35,7 @@ $LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
|
|
|
35
35
|
|
|
36
36
|
require 'json'
|
|
37
37
|
require 'tempfile'
|
|
38
|
+
require 'uri'
|
|
38
39
|
|
|
39
40
|
require 'command_parser'
|
|
40
41
|
require 'opennebula/oneflow_client'
|
|
@@ -60,6 +61,10 @@ def check_document_type(response)
|
|
|
60
61
|
end
|
|
61
62
|
end
|
|
62
63
|
|
|
64
|
+
def path_escape(path_segment)
|
|
65
|
+
URI::DEFAULT_PARSER.escape(path_segment, /[^A-Za-z0-9\-._~]/)
|
|
66
|
+
end
|
|
67
|
+
|
|
63
68
|
CommandParser::CmdParser.new(ARGV) do
|
|
64
69
|
usage '`oneflow` <command> [<args>] [<options>]'
|
|
65
70
|
version OpenNebulaHelper::ONE_VERSION
|
|
@@ -112,6 +117,14 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
112
117
|
Service.list_to_id(arg, 'SERVICE')
|
|
113
118
|
end
|
|
114
119
|
|
|
120
|
+
set :format, :sched_id, 'Scheduled action ID' do |arg|
|
|
121
|
+
if arg.match?(/\A\d+\z/)
|
|
122
|
+
[0, arg]
|
|
123
|
+
else
|
|
124
|
+
[-1, 'Scheduled action ID must be an integer number']
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
115
128
|
set :format,
|
|
116
129
|
:vm_action,
|
|
117
130
|
'Actions supported: #{Role::SCHEDULE_ACTIONS.join(', ')}' do |arg|
|
|
@@ -338,8 +351,9 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
338
351
|
|
|
339
352
|
json = Service.build_json_action(args[2], params)
|
|
340
353
|
client = helper.client(options)
|
|
354
|
+
role = path_escape(args[1])
|
|
341
355
|
|
|
342
|
-
client.post("#{RESOURCE_PATH}/#{service_id}/role/#{
|
|
356
|
+
client.post("#{RESOURCE_PATH}/#{service_id}/role/#{role}/action",
|
|
343
357
|
json)
|
|
344
358
|
end
|
|
345
359
|
end
|
|
@@ -371,6 +385,43 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
371
385
|
|
|
372
386
|
###
|
|
373
387
|
|
|
388
|
+
sched_delete_desc = <<-EOT.unindent
|
|
389
|
+
Delete a scheduled action from all the Virtual Machines of a given role.
|
|
390
|
+
EOT
|
|
391
|
+
|
|
392
|
+
command :'sched-delete',
|
|
393
|
+
sched_delete_desc,
|
|
394
|
+
:service_id,
|
|
395
|
+
:role_name,
|
|
396
|
+
:sched_id do
|
|
397
|
+
Service.perform_action(args[0]) do |service_id|
|
|
398
|
+
role = path_escape(args[1])
|
|
399
|
+
|
|
400
|
+
helper.client(options).delete(
|
|
401
|
+
"#{RESOURCE_PATH}/#{service_id}/role/#{role}/sched_action/#{args[2]}"
|
|
402
|
+
)
|
|
403
|
+
end
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
###
|
|
407
|
+
|
|
408
|
+
sched_delete_desc = <<-EOT.unindent
|
|
409
|
+
Delete a scheduled action from all the Virtual Machines of a given service.
|
|
410
|
+
EOT
|
|
411
|
+
|
|
412
|
+
command [:service, :'sched-delete'],
|
|
413
|
+
sched_delete_desc,
|
|
414
|
+
:service_id,
|
|
415
|
+
:sched_id do
|
|
416
|
+
Service.perform_action(args[0]) do |service_id|
|
|
417
|
+
helper.client(options).delete(
|
|
418
|
+
"#{RESOURCE_PATH}/#{service_id}/sched_action/#{args[1]}"
|
|
419
|
+
)
|
|
420
|
+
end
|
|
421
|
+
end
|
|
422
|
+
|
|
423
|
+
###
|
|
424
|
+
|
|
374
425
|
update_desc = <<-EOT.unindent
|
|
375
426
|
Update the template contents. If a path is not provided the editor will
|
|
376
427
|
be launched to modify the current content.
|
data/bin/onegroup
CHANGED
|
@@ -260,4 +260,37 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
260
260
|
|
|
261
261
|
exit 0
|
|
262
262
|
end
|
|
263
|
+
|
|
264
|
+
vlan_desc = <<-EOT.unindent
|
|
265
|
+
Set the VLAN rules for the group. If a path is not provided the
|
|
266
|
+
editor will be launched to modify the current rules.
|
|
267
|
+
EOT
|
|
268
|
+
|
|
269
|
+
command :vlan, vlan_desc, :groupid, [:file, nil] do
|
|
270
|
+
helper.perform_action(args[0], options, 'modified') do |group|
|
|
271
|
+
rc = group.info
|
|
272
|
+
|
|
273
|
+
if OpenNebula.is_error?(rc)
|
|
274
|
+
puts rc.message
|
|
275
|
+
exit(-1)
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
if args[1]
|
|
279
|
+
str = File.read(args[1])
|
|
280
|
+
else
|
|
281
|
+
group.delete_element('VLAN_RULES/ID')
|
|
282
|
+
|
|
283
|
+
current_rules = group.template_like_str('VLAN_RULES')
|
|
284
|
+
|
|
285
|
+
str = OpenNebulaHelper.editor_input(current_rules)
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
rc = group.set_vlan_rules(str)
|
|
289
|
+
|
|
290
|
+
if OpenNebula.is_error?(rc)
|
|
291
|
+
puts rc.message
|
|
292
|
+
exit(-1)
|
|
293
|
+
end
|
|
294
|
+
end
|
|
295
|
+
end
|
|
263
296
|
end
|
data/bin/oneimage
CHANGED
|
@@ -255,7 +255,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
255
255
|
if !OpenNebula.is_error?(res)
|
|
256
256
|
puts "ID: #{res}"
|
|
257
257
|
else
|
|
258
|
-
puts res.message
|
|
258
|
+
STDERR.puts res.message
|
|
259
259
|
exit(-1)
|
|
260
260
|
end
|
|
261
261
|
end
|
|
@@ -543,8 +543,13 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
543
543
|
EOT
|
|
544
544
|
|
|
545
545
|
command :orphans, show_desc do
|
|
546
|
-
|
|
546
|
+
orphans = helper.check_orphans
|
|
547
|
+
if OpenNebula.is_error?(orphans)
|
|
548
|
+
STDERR.puts orphans.message
|
|
549
|
+
return -1
|
|
550
|
+
end
|
|
547
551
|
|
|
552
|
+
puts orphans
|
|
548
553
|
return 0
|
|
549
554
|
end
|
|
550
555
|
end
|
data/bin/onesecgroup
CHANGED
data/bin/onevm
CHANGED
|
@@ -345,6 +345,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
345
345
|
format_int(arg)
|
|
346
346
|
end
|
|
347
347
|
|
|
348
|
+
set :format, :vmgroupid, OpenNebulaHelper.rname_to_id_desc('VMGROUP') do |arg|
|
|
349
|
+
OpenNebulaHelper.rname_to_id(arg, 'VMGROUP')
|
|
350
|
+
end
|
|
351
|
+
|
|
348
352
|
########################################################################
|
|
349
353
|
# Commands
|
|
350
354
|
########################################################################
|
|
@@ -1410,7 +1414,6 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
1410
1414
|
EOT
|
|
1411
1415
|
|
|
1412
1416
|
command :backupmode, backupmode_set_desc, :vmid, :mode do
|
|
1413
|
-
vm_ref = args[0]
|
|
1414
1417
|
backup_mode = args[1]
|
|
1415
1418
|
|
|
1416
1419
|
if !helper.backup_mode_valid?(backup_mode)
|
|
@@ -1421,8 +1424,9 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
1421
1424
|
exit(-1)
|
|
1422
1425
|
end
|
|
1423
1426
|
|
|
1424
|
-
|
|
1425
|
-
|
|
1427
|
+
helper.perform_action(args[0], options, 'Updating backup mode') do |vm|
|
|
1428
|
+
vm.updateconf("BACKUP_CONFIG = [\"MODE\"=\"#{backup_mode}\"]", true)
|
|
1429
|
+
end
|
|
1426
1430
|
end
|
|
1427
1431
|
|
|
1428
1432
|
updateconf_desc = <<-EOT.unindent
|
|
@@ -1437,13 +1441,13 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
1437
1441
|
The full list of configuration attributes are:
|
|
1438
1442
|
|
|
1439
1443
|
OS = ["ARCH", "MACHINE", "KERNEL", "INITRD", "BOOTLOADER", "BOOT", "KERNEL_CMD", "ROOT", "SD_DISK_BUS", "UUID", "FIRMWARE", "FIRMWARE_FORMAT"]
|
|
1440
|
-
FEATURES = ["ACPI", "PAE", "APIC", "LOCALTIME", "HYPERV", "GUEST_AGENT", "VIRTIO_SCSI_QUEUES", "VIRTIO_BLK_QUEUES", "IOTHREADS"]
|
|
1444
|
+
FEATURES = ["ACPI", "PAE", "APIC", "LOCALTIME", "HYPERV", "GUEST_AGENT", "VIRTIO_SCSI_QUEUES", "VIRTIO_BLK_QUEUES", "IOTHREADS", "MIGRATE_AUTO_CONVERGE", "MIGRATE_COMPRESSED"]
|
|
1441
1445
|
INPUT = ["TYPE", "BUS"]
|
|
1442
1446
|
GRAPHICS = ["TYPE", "LISTEN", "PASSWD", "KEYMAP", "COMMAND"]
|
|
1443
1447
|
VIDEO = ["TYPE", "IOMMU", "ATS", "VRAM", "RESOLUTION"]
|
|
1444
1448
|
RAW = ["DATA", "DATA_VMX", "TYPE", "VALIDATE"]
|
|
1445
1449
|
CPU_MODEL = ["MODEL", "FEATURES"]
|
|
1446
|
-
BACKUP_CONFIG = ["FS_FREEZE", "KEEP_LAST", "BACKUP_VOLATILE", "MODE", "INCREMENT_MODE"]
|
|
1450
|
+
BACKUP_CONFIG = ["FS_FREEZE", "KEEP_LAST", "BACKUP_VOLATILE", "MODE", "INCREMENT_MODE", "INTERACTIVE"]
|
|
1447
1451
|
CONTEXT (any value, ETH* if CONTEXT_ALLOW_ETH_UPDATES set in oned.conf, **variable substitution will be made**)
|
|
1448
1452
|
EOT
|
|
1449
1453
|
|
|
@@ -1902,8 +1906,23 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
1902
1906
|
end
|
|
1903
1907
|
end
|
|
1904
1908
|
|
|
1905
|
-
|
|
1909
|
+
vmgroup_add_desc = <<-EOT.unindent
|
|
1910
|
+
Adds the VM to a VM group and role.
|
|
1911
|
+
EOT
|
|
1906
1912
|
|
|
1907
|
-
|
|
1908
|
-
|
|
1913
|
+
command :"vmgroup-add", vmgroup_add_desc, :vmid, :vmgroupid, :role do
|
|
1914
|
+
helper.perform_action(args[0], options, 'VM added to group') do |vm|
|
|
1915
|
+
vm.vmgroup_add(args[1].to_i, args[2])
|
|
1916
|
+
end
|
|
1917
|
+
end
|
|
1918
|
+
|
|
1919
|
+
vmgroup_del_desc = <<-EOT.unindent
|
|
1920
|
+
Removes the VM from its VM group.
|
|
1921
|
+
EOT
|
|
1922
|
+
|
|
1923
|
+
command :"vmgroup-del", vmgroup_del_desc, :vmid do
|
|
1924
|
+
helper.perform_action(args[0], options, 'VM removed from group') do |vm|
|
|
1925
|
+
vm.vmgroup_del
|
|
1926
|
+
end
|
|
1927
|
+
end
|
|
1909
1928
|
end
|
data/bin/onevnet
CHANGED
|
@@ -197,16 +197,6 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
197
197
|
end
|
|
198
198
|
end
|
|
199
199
|
|
|
200
|
-
addleases_desc = <<-EOT.unindent
|
|
201
|
-
(DEPRECATED, use addar) Adds a lease to the Virtual Network
|
|
202
|
-
EOT
|
|
203
|
-
|
|
204
|
-
command :addleases, addleases_desc, :vnetid, :ip, [:mac, nil] do
|
|
205
|
-
helper.perform_action(args[0], options, 'lease added') do |vn|
|
|
206
|
-
vn.addleases(args[1], args[2])
|
|
207
|
-
end
|
|
208
|
-
end
|
|
209
|
-
|
|
210
200
|
rmar_desc = <<-EOT.unindent
|
|
211
201
|
Removes an address range from the Virtual Network
|
|
212
202
|
EOT
|
|
@@ -217,16 +207,6 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
217
207
|
end
|
|
218
208
|
end
|
|
219
209
|
|
|
220
|
-
rmleases_desc = <<-EOT.unindent
|
|
221
|
-
(DEPRECATED, use rmar) Removes a lease from the Virtual Network
|
|
222
|
-
EOT
|
|
223
|
-
|
|
224
|
-
command :rmleases, rmleases_desc, :vnetid, :ip do
|
|
225
|
-
helper.perform_action(args[0], options, 'lease removed') do |vn|
|
|
226
|
-
vn.rmleases(args[1])
|
|
227
|
-
end
|
|
228
|
-
end
|
|
229
|
-
|
|
230
210
|
free_desc = <<-EOT.unindent
|
|
231
211
|
Frees a reserved address range from the Virtual Network
|
|
232
212
|
EOT
|
|
@@ -445,8 +425,13 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
445
425
|
EOT
|
|
446
426
|
|
|
447
427
|
command :orphans, show_desc do
|
|
448
|
-
|
|
428
|
+
orphans = helper.check_orphans
|
|
429
|
+
if OpenNebula.is_error?(orphans)
|
|
430
|
+
STDERR.puts orphans.message
|
|
431
|
+
return -1
|
|
432
|
+
end
|
|
449
433
|
|
|
434
|
+
puts orphans
|
|
450
435
|
return 0
|
|
451
436
|
end
|
|
452
437
|
|
data/bin/onevntemplate
CHANGED
|
@@ -252,10 +252,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
252
252
|
end
|
|
253
253
|
|
|
254
254
|
extra_template = res.last
|
|
255
|
+
end
|
|
255
256
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
end
|
|
257
|
+
if OneVNetHelper.add_ar_options_used?(options)
|
|
258
|
+
extra_template << OpenNebulaHelper.create_ar(options)
|
|
259
259
|
end
|
|
260
260
|
|
|
261
261
|
if c_i
|