opennebula-cli 6.0.0.3 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/bin/onevm CHANGED
@@ -26,25 +26,14 @@ else
26
26
  GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
27
  end
28
28
 
29
- # %%RUBYGEMS_SETUP_BEGIN%%
30
29
  if File.directory?(GEMS_LOCATION)
31
30
  real_gems_path = File.realpath(GEMS_LOCATION)
32
31
  if !defined?(Gem) || Gem.path != [real_gems_path]
33
32
  $LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
34
-
35
- # Suppress warnings from Rubygems
36
- # https://github.com/OpenNebula/one/issues/5379
37
- begin
38
- verb = $VERBOSE
39
- $VERBOSE = nil
40
- require 'rubygems'
41
- Gem.use_paths(real_gems_path)
42
- ensure
43
- $VERBOSE = verb
44
- end
33
+ require 'rubygems'
34
+ Gem.use_paths(real_gems_path)
45
35
  end
46
36
  end
47
- # %%RUBYGEMS_SETUP_END%%
48
37
 
49
38
  $LOAD_PATH << RUBY_LIB_LOCATION
50
39
  $LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
@@ -218,27 +207,6 @@ CommandParser::CmdParser.new(ARGV) do
218
207
  :description => 'Market to save oneshot'
219
208
  }
220
209
 
221
- NIC_ID = {
222
- :name => 'nic_id',
223
- :large => '--nic-id nic_id',
224
- :format => String,
225
- :description => 'NIC to use when SSH'
226
- }
227
-
228
- CMD = {
229
- :name => 'cmd',
230
- :large => '--cmd cmd',
231
- :format => String,
232
- :description => 'CMD to run when SSH'
233
- }
234
-
235
- SSH_OPTS = {
236
- :name => 'ssh_opts',
237
- :large => '--ssh-options options',
238
- :format => String,
239
- :description => 'SSH options to use'
240
- }
241
-
242
210
  ########################################################################
243
211
  # Global Options
244
212
  ########################################################################
@@ -1342,9 +1310,9 @@ CommandParser::CmdParser.new(ARGV) do
1342
1310
  Valid states are: All.
1343
1311
  EOT
1344
1312
 
1345
- command :lock, lock_desc, [:range, :vmid_list],
1313
+ command :lock, lock_desc, :vmid,
1346
1314
  :options => [USE, MANAGE, ADMIN, ALL] do
1347
- helper.perform_actions(args[0], options, 'VM locked') do |vm|
1315
+ helper.perform_action(args[0], options, 'VM locked') do |vm|
1348
1316
  if !options[:use].nil?
1349
1317
  level = 1
1350
1318
  elsif !options[:manage].nil?
@@ -1365,8 +1333,8 @@ CommandParser::CmdParser.new(ARGV) do
1365
1333
  Valid states are: All.
1366
1334
  EOT
1367
1335
 
1368
- command :unlock, unlock_desc, [:range, :vmid_list] do
1369
- helper.perform_actions(args[0], options, 'VM unlocked') do |vm|
1336
+ command :unlock, unlock_desc, :vmid do
1337
+ helper.perform_action(args[0], options, 'VM unlocked') do |vm|
1370
1338
  vm.unlock
1371
1339
  end
1372
1340
  end
@@ -1379,7 +1347,7 @@ CommandParser::CmdParser.new(ARGV) do
1379
1347
  You can configure the actions in /etc/one/cli/onevm.yaml
1380
1348
  EOT
1381
1349
 
1382
- command :'create-chart', create_chart_desc, :vmid do
1350
+ command :'create-chart', create_chart_desc, [:range, :vmid_list] do
1383
1351
  charters = helper.get_charters
1384
1352
 
1385
1353
  if charters.nil?
@@ -1393,7 +1361,7 @@ CommandParser::CmdParser.new(ARGV) do
1393
1361
  charters.each do |action, time|
1394
1362
  sched = "+#{time[:time].to_i + acc_t}"
1395
1363
 
1396
- helper.schedule_actions([args[0]].flatten,
1364
+ helper.schedule_actions(args[0],
1397
1365
  { :schedule => sched },
1398
1366
  action.to_s,
1399
1367
  time[:warning][:time] + acc_w)
@@ -1469,33 +1437,25 @@ CommandParser::CmdParser.new(ARGV) do
1469
1437
  helper.perform_action(args[0], options, 'Backup') do |vm|
1470
1438
  vm.extend(OpenNebula::VirtualMachineExt)
1471
1439
 
1472
- # Read user options
1473
- if options[:verbose]
1474
- log_to = STDOUT
1475
- elsif !options[:logger].nil?
1476
- log_to = options[:logger]
1477
- end
1478
-
1479
- keep = options.key?(:keep)
1440
+ # If logger is specified use it, if not use STDOUT
1441
+ options[:logger].nil? ? log_to = STDOUT : log_to = options[:logger]
1480
1442
 
1481
- if log_to
1482
- logger = Logger.new(log_to)
1483
- format = '%Y-%m-%d %H:%M:%S'
1443
+ # Read user options
1444
+ keep = options.key?(:keep)
1445
+ logger = Logger.new(log_to)
1446
+ format = '%Y-%m-%d %H:%M:%S'
1484
1447
 
1485
- logger.formatter = proc do |severity, datetime, _p, msg|
1486
- "#{datetime.strftime(format)} " \
1487
- "#{severity.ljust(5)} : #{msg}\n"
1488
- end
1448
+ logger.formatter = proc do |severity, datetime, _p, msg|
1449
+ "#{datetime.strftime(format)} #{severity.ljust(5)} : #{msg}\n"
1489
1450
  end
1490
1451
 
1491
- binfo = {}
1492
- binfo[:market] = options[:market]
1493
-
1494
1452
  if options.key?(:oneshot)
1453
+ binfo = {}
1495
1454
  binfo[:name] = "VM #{vm.id} BACKUP - " \
1496
1455
  "#{Time.now.strftime('%Y%m%d_%k%M')}"
1497
1456
  binfo[:freq] = 1
1498
1457
  binfo[:last] = Time.now.to_i - 100
1458
+ binfo[:market] = options[:market]
1499
1459
  end
1500
1460
 
1501
1461
  begin
@@ -1558,128 +1518,6 @@ CommandParser::CmdParser.new(ARGV) do
1558
1518
  end
1559
1519
  end
1560
1520
 
1561
- ssh_desc = <<-EOT.unindent
1562
- SSH into VM
1563
-
1564
- Options example:
1565
-
1566
- '-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
1567
- EOT
1568
-
1569
- command :ssh,
1570
- ssh_desc,
1571
- :vmid,
1572
- [:login, nil],
1573
- :options => [NIC_ID, CMD, SSH_OPTS] do
1574
- helper.perform_action(args[0], options, 'SSH') do |vm|
1575
- rc = vm.info
1576
-
1577
- if OpenNebula.is_error?(rc)
1578
- STDERR.puts rc.message
1579
- exit(-1)
1580
- end
1581
-
1582
- # Get user to login
1583
- args[1].nil? ? login = 'root' : login = args[1]
1584
-
1585
- # Get CMD to run
1586
- options[:cmd].nil? ? cmd = '' : cmd = options[:cmd]
1587
-
1588
- # Get NIC to connect
1589
- if options[:nic_id]
1590
- nic = vm.retrieve_xmlelements(
1591
- "//TEMPLATE/NIC[NIC_ID=\"#{options[:nic_id]}\"]"
1592
- )[0]
1593
- else
1594
- nic = vm.retrieve_xmlelements('//TEMPLATE/NIC[SSH="YES"]')[0]
1595
- end
1596
-
1597
- nic = vm.retrieve_xmlelements('//TEMPLATE/NIC[1]')[0] if nic.nil?
1598
-
1599
- if nic.nil?
1600
- STDERR.puts 'No NIC found'
1601
- exit(-1)
1602
- end
1603
-
1604
- # If there is node port
1605
- if nic['EXTERNAL_PORT_RANGE']
1606
- ip = vm.to_hash['VM']['HISTORY_RECORDS']['HISTORY']
1607
- ip = [ip].flatten[-1]['HOSTNAME']
1608
- port = Integer(nic['EXTERNAL_PORT_RANGE'].split(':')[0]) + 21
1609
- else
1610
- ip = nic['IP']
1611
- port = 22
1612
- end
1613
-
1614
- options[:ssh_opts].nil? ? opts = '' : opts = options[:ssh_opts]
1615
-
1616
- system("ssh #{opts} #{login}@#{ip} -p #{port} #{cmd}")
1617
- end
1618
-
1619
- $?.exitstatus
1620
- end
1621
-
1622
- port_desc = <<-EOT.unindent
1623
- Get port forwarding from a NIC, e.g:
1624
-
1625
- 1.2.3.4@4000 -> 1, means that to connect to VM port 1, you need to
1626
- connect to IP 1.2.3.4 in port 4000
1627
- EOT
1628
-
1629
- command :'port-forward',
1630
- port_desc,
1631
- :vmid,
1632
- [:port, nil],
1633
- :options => NIC_ID do
1634
- helper.perform_action(args[0], options, 'Port Forward') do |vm|
1635
- rc = vm.info
1636
-
1637
- if OpenNebula.is_error?(rc)
1638
- STDERR.puts rc.message
1639
- exit(-1)
1640
- end
1641
-
1642
- if options[:nic_id]
1643
- nic = vm.retrieve_xmlelements(
1644
- "//TEMPLATE/NIC[NIC_ID=\"#{options[:nic_id]}\"]"
1645
- )[0]
1646
- else
1647
- nic = vm.retrieve_xmlelements('//TEMPLATE/NIC[SSH="YES"]')[0]
1648
- end
1649
-
1650
- nic = vm.retrieve_xmlelements('//TEMPLATE/NIC[1]')[0] if nic.nil?
1651
-
1652
- if nic.nil?
1653
- STDERR.puts 'No NIC found'
1654
- exit(-1)
1655
- end
1656
-
1657
- if nic['EXTERNAL_PORT_RANGE'].nil?
1658
- STDERR.puts 'No PORT_RANGE found'
1659
- exit(-1)
1660
- end
1661
-
1662
- ip = vm.to_hash['VM']['HISTORY_RECORDS']['HISTORY'][-1]['HOSTNAME']
1663
-
1664
- e_range = nic['EXTERNAL_PORT_RANGE'].split(':')
1665
- e_start_p = Integer(e_range[0])
1666
- e_end_p = Integer(e_range[1])
1667
-
1668
- i_range = nic['INTERNAL_PORT_RANGE'].split('-')
1669
- i_start_p = Integer(i_range[0])
1670
- i_end_p = Integer(i_range[1].split('/')[0])
1671
-
1672
- if args[1].nil?
1673
- [*e_start_p..e_end_p].zip([*i_start_p..i_end_p]) do |p1, p2|
1674
- puts "#{ip}@#{p1} -> #{p2}"
1675
- end
1676
- else
1677
- puts "#{ip}@#{e_start_p + Integer(args[1]) - 1} -> #{args[1]}"
1678
- end
1679
- end
1680
-
1681
- end
1682
-
1683
1521
  # Deprecated commands
1684
1522
 
1685
1523
  deprecated_command(:shutdown, 'terminate')
data/bin/onevmgroup CHANGED
@@ -26,25 +26,14 @@ else
26
26
  GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
27
  end
28
28
 
29
- # %%RUBYGEMS_SETUP_BEGIN%%
30
29
  if File.directory?(GEMS_LOCATION)
31
30
  real_gems_path = File.realpath(GEMS_LOCATION)
32
31
  if !defined?(Gem) || Gem.path != [real_gems_path]
33
32
  $LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
34
-
35
- # Suppress warnings from Rubygems
36
- # https://github.com/OpenNebula/one/issues/5379
37
- begin
38
- verb = $VERBOSE
39
- $VERBOSE = nil
40
- require 'rubygems'
41
- Gem.use_paths(real_gems_path)
42
- ensure
43
- $VERBOSE = verb
44
- end
33
+ require 'rubygems'
34
+ Gem.use_paths(real_gems_path)
45
35
  end
46
36
  end
47
- # %%RUBYGEMS_SETUP_END%%
48
37
 
49
38
  $LOAD_PATH << RUBY_LIB_LOCATION
50
39
  $LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
@@ -242,9 +231,9 @@ CommandParser::CmdParser.new(ARGV) do
242
231
  [Admin]: locks only Admin actions.
243
232
  EOT
244
233
 
245
- command :lock, lock_desc, [:range, :vmgroupid_list],
234
+ command :lock, lock_desc, :vmgroupid,
246
235
  :options => [USE, MANAGE, ADMIN, ALL] do
247
- helper.perform_actions(args[0], options, 'VMGroup locked') do |vmg|
236
+ helper.perform_action(args[0], options, 'VMGroup locked') do |vmg|
248
237
  if !options[:use].nil?
249
238
  level = 1
250
239
  elsif !options[:manage].nil?
@@ -265,8 +254,8 @@ CommandParser::CmdParser.new(ARGV) do
265
254
  Valid states are: All.
266
255
  EOT
267
256
 
268
- command :unlock, unlock_desc, [:range, :vmgroupid_list] do
269
- helper.perform_actions(args[0], options, 'VMGroup unlocked') do |vmg|
257
+ command :unlock, unlock_desc, :vmgroupid do
258
+ helper.perform_action(args[0], options, 'VMGroup unlocked') do |vmg|
270
259
  vmg.unlock
271
260
  end
272
261
  end
data/bin/onevnet CHANGED
@@ -26,25 +26,14 @@ else
26
26
  GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
27
  end
28
28
 
29
- # %%RUBYGEMS_SETUP_BEGIN%%
30
29
  if File.directory?(GEMS_LOCATION)
31
30
  real_gems_path = File.realpath(GEMS_LOCATION)
32
31
  if !defined?(Gem) || Gem.path != [real_gems_path]
33
32
  $LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
34
-
35
- # Suppress warnings from Rubygems
36
- # https://github.com/OpenNebula/one/issues/5379
37
- begin
38
- verb = $VERBOSE
39
- $VERBOSE = nil
40
- require 'rubygems'
41
- Gem.use_paths(real_gems_path)
42
- ensure
43
- $VERBOSE = verb
44
- end
33
+ require 'rubygems'
34
+ Gem.use_paths(real_gems_path)
45
35
  end
46
36
  end
47
- # %%RUBYGEMS_SETUP_END%%
48
37
 
49
38
  $LOAD_PATH << RUBY_LIB_LOCATION
50
39
  $LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
@@ -390,9 +379,9 @@ CommandParser::CmdParser.new(ARGV) do
390
379
  [Admin]: locks only Admin actions.
391
380
  EOT
392
381
 
393
- command :lock, lock_desc, [:range, :vnetid_list],
382
+ command :lock, lock_desc, :vnetid,
394
383
  :options => [USE, MANAGE, ADMIN, ALL] do
395
- helper.perform_actions(args[0], options, 'VNet locked') do |vnet|
384
+ helper.perform_action(args[0], options, 'VNet locked') do |vnet|
396
385
  if !options[:use].nil?
397
386
  level = 1
398
387
  elsif !options[:manage].nil?
@@ -413,8 +402,8 @@ CommandParser::CmdParser.new(ARGV) do
413
402
  Valid states are: All.
414
403
  EOT
415
404
 
416
- command :unlock, unlock_desc, [:range, :vnetid_list] do
417
- helper.perform_actions(args[0], options, 'VNet unlocked') do |vnet|
405
+ command :unlock, unlock_desc, :vnetid do
406
+ helper.perform_action(args[0], options, 'VNet unlocked') do |vnet|
418
407
  vnet.unlock
419
408
  end
420
409
  end
data/bin/onevntemplate CHANGED
@@ -26,25 +26,14 @@ else
26
26
  GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
27
  end
28
28
 
29
- # %%RUBYGEMS_SETUP_BEGIN%%
30
29
  if File.directory?(GEMS_LOCATION)
31
30
  real_gems_path = File.realpath(GEMS_LOCATION)
32
31
  if !defined?(Gem) || Gem.path != [real_gems_path]
33
32
  $LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
34
-
35
- # Suppress warnings from Rubygems
36
- # https://github.com/OpenNebula/one/issues/5379
37
- begin
38
- verb = $VERBOSE
39
- $VERBOSE = nil
40
- require 'rubygems'
41
- Gem.use_paths(real_gems_path)
42
- ensure
43
- $VERBOSE = verb
44
- end
33
+ require 'rubygems'
34
+ Gem.use_paths(real_gems_path)
45
35
  end
46
36
  end
47
- # %%RUBYGEMS_SETUP_END%%
48
37
 
49
38
  $LOAD_PATH << RUBY_LIB_LOCATION
50
39
  $LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
@@ -350,9 +339,9 @@ CommandParser::CmdParser.new(ARGV) do
350
339
  [Admin]: locks only Admin actions.
351
340
  EOT
352
341
 
353
- command :lock, lock_desc, [:range, :templateid_list],
342
+ command :lock, lock_desc, :templateid,
354
343
  :options => [USE, MANAGE, ADMIN, ALL] do
355
- helper.perform_actions(args[0], options, 'VN Template locked') do |t|
344
+ helper.perform_action(args[0], options, 'VN Template locked') do |t|
356
345
  if !options[:use].nil?
357
346
  level = 1
358
347
  elsif !options[:manage].nil?
@@ -373,8 +362,8 @@ CommandParser::CmdParser.new(ARGV) do
373
362
  Valid states are: All.
374
363
  EOT
375
364
 
376
- command :unlock, unlock_desc, [:range, :templateid_list] do
377
- helper.perform_actions(args[0], options, 'VN Template unlocked') do |t|
365
+ command :unlock, unlock_desc, :templateid do
366
+ helper.perform_action(args[0], options, 'VN Template unlocked') do |t|
378
367
  t.unlock
379
368
  end
380
369
  end
data/bin/onevrouter CHANGED
@@ -26,25 +26,14 @@ else
26
26
  GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
27
  end
28
28
 
29
- # %%RUBYGEMS_SETUP_BEGIN%%
30
29
  if File.directory?(GEMS_LOCATION)
31
30
  real_gems_path = File.realpath(GEMS_LOCATION)
32
31
  if !defined?(Gem) || Gem.path != [real_gems_path]
33
32
  $LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
34
-
35
- # Suppress warnings from Rubygems
36
- # https://github.com/OpenNebula/one/issues/5379
37
- begin
38
- verb = $VERBOSE
39
- $VERBOSE = nil
40
- require 'rubygems'
41
- Gem.use_paths(real_gems_path)
42
- ensure
43
- $VERBOSE = verb
44
- end
33
+ require 'rubygems'
34
+ Gem.use_paths(real_gems_path)
45
35
  end
46
36
  end
47
- # %%RUBYGEMS_SETUP_END%%
48
37
 
49
38
  $LOAD_PATH << RUBY_LIB_LOCATION
50
39
  $LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
@@ -375,9 +364,9 @@ CommandParser::CmdParser.new(ARGV) do
375
364
  [Admin]: locks only Admin actions.
376
365
  EOT
377
366
 
378
- command :lock, lock_desc, [:range, :vrouterid_list],
367
+ command :lock, lock_desc, :vrouterid,
379
368
  :options => [USE, MANAGE, ADMIN, ALL] do
380
- helper.perform_actions(args[0], options, 'VRouter locked') do |vr|
369
+ helper.perform_action(args[0], options, 'VRouter locked') do |vr|
381
370
  if !options[:use].nil?
382
371
  level = 1
383
372
  elsif !options[:manage].nil?
@@ -398,8 +387,8 @@ CommandParser::CmdParser.new(ARGV) do
398
387
  valid states are: All.
399
388
  EOT
400
389
 
401
- command :unlock, unlock_desc, [:range, :vrouterid_list] do
402
- helper.perform_actions(args[0], options, 'VRouter unlocked') do |vr|
390
+ command :unlock, unlock_desc, :vrouterid do
391
+ helper.perform_action(args[0], options, 'VRouter unlocked') do |vr|
403
392
  vr.unlock
404
393
  end
405
394
  end
data/bin/onezone CHANGED
@@ -26,25 +26,14 @@ else
26
26
  GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
27
  end
28
28
 
29
- # %%RUBYGEMS_SETUP_BEGIN%%
30
29
  if File.directory?(GEMS_LOCATION)
31
30
  real_gems_path = File.realpath(GEMS_LOCATION)
32
31
  if !defined?(Gem) || Gem.path != [real_gems_path]
33
32
  $LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
34
-
35
- # Suppress warnings from Rubygems
36
- # https://github.com/OpenNebula/one/issues/5379
37
- begin
38
- verb = $VERBOSE
39
- $VERBOSE = nil
40
- require 'rubygems'
41
- Gem.use_paths(real_gems_path)
42
- ensure
43
- $VERBOSE = verb
44
- end
33
+ require 'rubygems'
34
+ Gem.use_paths(real_gems_path)
45
35
  end
46
36
  end
47
- # %%RUBYGEMS_SETUP_END%%
48
37
 
49
38
  $LOAD_PATH << RUBY_LIB_LOCATION
50
39
  $LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
@@ -265,7 +254,7 @@ CommandParser::CmdParser.new(ARGV) do
265
254
  end
266
255
 
267
256
  server = Replicator.new('/var/lib/one/.ssh/id_rsa', args[0])
268
- server.process_files(options[:db])
257
+ server.process_files(options.key?(:database))
269
258
 
270
259
  0
271
260
  end