opennebula-cli 6.0.0.1 → 6.0.0.2

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.
@@ -16,174 +16,176 @@
16
16
  require 'one_helper'
17
17
  require 'one_helper/onevm_helper'
18
18
 
19
+ # OneVnet Command Helper
19
20
  class OneVNetHelper < OpenNebulaHelper::OneHelper
21
+
20
22
  AR = {
21
- :name => "address_range",
22
- :short => "-a ar_id",
23
- :large => "--address_range ar_id",
23
+ :name => 'address_range',
24
+ :short => '-a ar_id',
25
+ :large => '--address_range ar_id',
24
26
  :format => Integer,
25
- :description => "ID of the address range"
27
+ :description => 'ID of the address range'
26
28
  }
27
29
 
28
30
  SHOW_AR = {
29
- :name => "show_ar",
30
- :large => "--show-ar",
31
- :description => "Show also AR templates"
31
+ :name => 'show_ar',
32
+ :large => '--show-ar',
33
+ :description => 'Show also AR templates'
32
34
  }
33
35
 
34
36
  MAC = {
35
- :name => "mac",
36
- :short => "-m mac",
37
- :large => "--mac mac",
37
+ :name => 'mac',
38
+ :short => '-m mac',
39
+ :large => '--mac mac',
38
40
  :format => String,
39
- :description => "First MAC address in : notation"
41
+ :description => 'First MAC address in : notation'
40
42
  }
41
43
 
42
44
  IP = {
43
- :name => "ip",
44
- :short => "-i ip",
45
- :large => "--ip ip",
45
+ :name => 'ip',
46
+ :short => '-i ip',
47
+ :large => '--ip ip',
46
48
  :format => String,
47
- :description => "First IP address in . notation"
49
+ :description => 'First IP address in . notation'
48
50
  }
49
51
 
50
52
  IP6 = {
51
- :name => "ip6",
52
- :short => "-6 ip6",
53
- :large => "--ip6 ip6",
53
+ :name => 'ip6',
54
+ :short => '-6 ip6',
55
+ :large => '--ip6 ip6',
54
56
  :format => String,
55
- :description => "First IPv6 address, in CIDR notation e.g. 2001::1/48"
57
+ :description => 'First IPv6 address, in CIDR notation e.g. 2001::1/48'
56
58
  }
57
59
 
58
60
  SIZE = {
59
- :name => "size",
60
- :short => "-s size",
61
- :large => "--size size",
61
+ :name => 'size',
62
+ :short => '-s size',
63
+ :large => '--size size',
62
64
  :format => String,
63
- :description => "Number of addresses"
65
+ :description => 'Number of addresses'
64
66
  }
65
67
 
66
68
  IP6_GLOBAL = {
67
- :name => "ip6_global",
68
- :short => "-g ip6_pref",
69
- :large => "--ip6_global ip6_pref",
69
+ :name => 'ip6_global',
70
+ :short => '-g ip6_pref',
71
+ :large => '--ip6_global ip6_pref',
70
72
  :format => String,
71
- :description => "IP6 global prefix"
73
+ :description => 'IP6 global prefix'
72
74
  }
73
75
 
74
76
  IP6_ULA = {
75
- :name => "ip6_ula",
76
- :short => "-u ip6_pref",
77
- :large => "--ip6_ula ip6_pref",
77
+ :name => 'ip6_ula',
78
+ :short => '-u ip6_pref',
79
+ :large => '--ip6_ula ip6_pref',
78
80
  :format => String,
79
- :description => "IP6 ula prefix"
81
+ :description => 'IP6 ula prefix'
80
82
  }
81
83
 
82
84
  NAME = {
83
- :name => "name",
84
- :short => "-n reservation name",
85
- :large => "--name reservation name",
85
+ :name => 'name',
86
+ :short => '-n reservation name',
87
+ :large => '--name reservation name',
86
88
  :format => String,
87
- :description => "Name of the address reservation"
89
+ :description => 'Name of the address reservation'
88
90
  }
89
91
 
90
- # R_SIZE = {
91
- # :name => "rsize",
92
- # :short => "-s reservation size",
93
- # :large => "--size reservation size",
94
- # :format => String,
95
- # :description => "Number of addresses to reserve"
96
- # }
92
+ # R_SIZE = {
93
+ # :name => "rsize",
94
+ # :short => "-s reservation size",
95
+ # :large => "--size reservation size",
96
+ # :format => String,
97
+ # :description => "Number of addresses to reserve"
98
+ # }
97
99
 
98
100
  GATEWAY = {
99
- :name => "gateway",
100
- :large => "--gateway ip",
101
+ :name => 'gateway',
102
+ :large => '--gateway ip',
101
103
  :format => String,
102
- :description=> "IP of the gateway"
104
+ :description=> 'IP of the gateway'
103
105
  }
104
106
 
105
107
  NETMASK = {
106
- :name => "netmask",
107
- :large => "--netmask mask",
108
+ :name => 'netmask',
109
+ :large => '--netmask mask',
108
110
  :format => String,
109
- :description=> "Netmask in dot notation"
111
+ :description=> 'Netmask in dot notation'
110
112
  }
111
113
 
112
114
  VN_MAD = {
113
- :name => "vn_mad",
114
- :large => "--vn_mad mad",
115
+ :name => 'vn_mad',
116
+ :large => '--vn_mad mad',
115
117
  :format => String,
116
- :description=> "Use this driver for the network"
118
+ :description=> 'Use this driver for the network'
117
119
  }
118
120
 
119
121
  VLAN_ID = {
120
- :name => "vlanid",
121
- :large => "--vlanid id",
122
+ :name => 'vlanid',
123
+ :large => '--vlanid id',
122
124
  :format => String,
123
- :description=> "VLAN ID assigned"
125
+ :description=> 'VLAN ID assigned'
124
126
  }
125
127
 
126
128
  ADDAR_OPTIONS = [
127
129
  SIZE, MAC, IP, IP6, IP6_GLOBAL, IP6_ULA, GATEWAY, NETMASK, VN_MAD,
128
- VLAN_ID ]
130
+ VLAN_ID
131
+ ]
129
132
 
130
133
  def self.rname
131
- "VNET"
134
+ 'VNET'
132
135
  end
133
136
 
134
137
  def self.conf_file
135
- "onevnet.yaml"
138
+ 'onevnet.yaml'
136
139
  end
137
140
 
138
141
  def format_pool(options)
139
142
  config_file = self.class.table_conf
140
143
 
141
- table = CLIHelper::ShowTable.new(config_file, self) do
142
- column :ID, "ONE identifier for Virtual Network", :size=>4 do |d|
143
- d["ID"]
144
+ CLIHelper::ShowTable.new(config_file, self) do
145
+ column :ID, 'ONE identifier for Virtual Network', :size=>4 do |d|
146
+ d['ID']
144
147
  end
145
148
 
146
- column :USER, "Username of the Virtual Network owner", :left,
147
- :size=>15 do |d|
149
+ column :USER, 'Username of the Virtual Network owner', :left,
150
+ :size=>15 do |d|
148
151
  helper.user_name(d, options)
149
152
  end
150
153
 
151
- column :GROUP, "Group of the Virtual Network", :left,
152
- :size=>12 do |d|
154
+ column :GROUP, 'Group of the Virtual Network', :left,
155
+ :size=>12 do |d|
153
156
  helper.group_name(d, options)
154
157
  end
155
158
 
156
- column :NAME, "Name of the Virtual Network", :left,
157
- :size=>19 do |d|
158
- d["NAME"]
159
+ column :NAME, 'Name of the Virtual Network', :left,
160
+ :size=>19 do |d|
161
+ d['NAME']
159
162
  end
160
163
 
161
- column :CLUSTERS, "Cluster IDs", :left, :size=>10 do |d|
162
- OpenNebulaHelper.clusters_str(d["CLUSTERS"]["ID"]) rescue "-"
164
+ column :CLUSTERS, 'Cluster IDs', :left, :size=>10 do |d|
165
+ OpenNebulaHelper.clusters_str(d['CLUSTERS']['ID']) rescue '-'
163
166
  end
164
167
 
165
- column :BRIDGE, "Bridge associated to the Virtual Network", :left,
166
- :size=>8 do |d|
167
- d["BRIDGE"]
168
+ column :BRIDGE, 'Bridge associated to the Virtual Network', :left,
169
+ :size=>8 do |d|
170
+ d['BRIDGE']
168
171
  end
169
172
 
170
173
  column :LEASES, "Number of this Virtual Network's given leases",
171
- :size=>6 do |d|
172
- d["USED_LEASES"]
174
+ :size=>6 do |d|
175
+ d['USED_LEASES']
173
176
  end
174
177
 
175
178
  default :ID, :USER, :GROUP, :NAME, :CLUSTERS, :BRIDGE, :LEASES
176
179
  end
177
-
178
- table
179
180
  end
180
181
 
181
182
  def show_ar(vn, ar_id)
182
- CLIHelper.print_header("%-80s" % ["TEMPLATE FOR AR #{ar_id}"], false)
183
+ CLIHelper.print_header(format('%-80s', "TEMPLATE FOR AR #{ar_id}"),
184
+ false)
183
185
 
184
186
  begin
185
187
  template = vn.template_like_str("AR_POOL/AR[AR_ID=#{ar_id}]")
186
- rescue
188
+ rescue StandardError
187
189
  STDERR.puts "Can not get template for AR #{ar_id}"
188
190
  return
189
191
  end
@@ -281,7 +283,7 @@ class OneVNetHelper < OpenNebulaHelper::OneHelper
281
283
 
282
284
  private
283
285
 
284
- def factory(id=nil)
286
+ def factory(id = nil)
285
287
  if id
286
288
  OpenNebula::VirtualNetwork.new_with_id(id, @client)
287
289
  else
@@ -290,55 +292,63 @@ class OneVNetHelper < OpenNebulaHelper::OneHelper
290
292
  end
291
293
  end
292
294
 
293
- def factory_pool(user_flag=-2)
295
+ def factory_pool(user_flag = -2)
294
296
  OpenNebula::VirtualNetworkPool.new(@client, user_flag)
295
297
  end
296
298
 
297
299
  def format_resource(vn, options = {})
298
300
  vn_hash = vn.to_hash
299
301
 
300
- str_h1="%-80s"
301
- CLIHelper.print_header(str_h1 %
302
- ["VIRTUAL NETWORK #{vn.id.to_s} INFORMATION"])
303
-
304
- str="%-25s: %-20s"
305
- puts str % ["ID", vn.id.to_s]
306
- puts str % ["NAME", vn['NAME']]
307
- puts str % ["USER", vn['UNAME']]
308
- puts str % ["GROUP", vn['GNAME']]
309
- puts str % ["LOCK", OpenNebulaHelper.level_lock_to_str(vn['LOCK/LOCKED'])]
310
- puts str % ["CLUSTERS",
311
- OpenNebulaHelper.clusters_str(vn.retrieve_elements("CLUSTERS/ID"))]
312
- puts str % ["BRIDGE", vn["BRIDGE"]]
313
- puts str % ["VN_MAD", vn['VN_MAD']] if !vn['VN_MAD'].empty?
314
- puts str % ["PHYSICAL DEVICE", vn["PHYDEV"]] if !vn["PHYDEV"].empty?
315
- puts str % ["VLAN ID", vn["VLAN_ID"]] if !vn["VLAN_ID"].empty?
316
- puts str % ["AUTOMATIC VLAN ID", vn["VLAN_ID_AUTOMATIC"]=="1" ? "YES" : "NO"]
317
- puts str % ["OUTER VLAN ID", vn["OUTER_VLAN_ID"]] if !vn["OUTER_VLAN_ID"]
318
- puts str % ["AUTOMATIC OUTER VLAN ID", vn["OUTER_VLAN_ID_AUTOMATIC"]=="1" ? "YES" : "NO"]
319
- puts str % ["USED LEASES", vn['USED_LEASES']]
302
+ str_h1='%-80s'
303
+ CLIHelper.print_header(format(str_h1,
304
+ "VIRTUAL NETWORK #{vn.id} INFORMATION"))
305
+
306
+ str='%-25s: %-20s'
307
+ puts format(str, 'ID', vn.id.to_s)
308
+ puts format(str, 'NAME', vn['NAME'])
309
+ puts format(str, 'USER', vn['UNAME'])
310
+ puts format(str, 'GROUP', vn['GNAME'])
311
+ puts format(str, 'LOCK',
312
+ OpenNebulaHelper.level_lock_to_str(vn['LOCK/LOCKED']))
313
+ puts format(str, 'CLUSTERS',
314
+ OpenNebulaHelper.clusters_str(
315
+ vn.retrieve_elements('CLUSTERS/ID')
316
+ ))
317
+ puts format(str, 'BRIDGE', vn['BRIDGE'])
318
+ puts format(str, 'VN_MAD', vn['VN_MAD']) unless vn['VN_MAD'].empty?
319
+ puts format(str, 'PHYSICAL DEVICE',
320
+ vn['PHYDEV']) unless vn['PHYDEV'].empty?
321
+ puts format(str, 'VLAN ID', vn['VLAN_ID']) unless vn['VLAN_ID'].empty?
322
+ puts format(str, 'AUTOMATIC VLAN ID',
323
+ vn['VLAN_ID_AUTOMATIC']=='1' ? 'YES' : 'NO')
324
+ puts format(str, 'OUTER VLAN ID',
325
+ vn['OUTER_VLAN_ID']) unless vn['OUTER_VLAN_ID']
326
+ puts format(str, 'AUTOMATIC OUTER VLAN ID',
327
+ vn['OUTER_VLAN_ID_AUTOMATIC']=='1' ? 'YES' : 'NO')
328
+ puts format(str, 'USED LEASES', vn['USED_LEASES'])
320
329
  puts
321
330
 
322
- CLIHelper.print_header(str_h1 % "PERMISSIONS",false)
331
+ CLIHelper.print_header(str_h1 % 'PERMISSIONS', false)
323
332
 
324
- ["OWNER", "GROUP", "OTHER"].each { |e|
325
- mask = "---"
326
- mask[0] = "u" if vn["PERMISSIONS/#{e}_U"] == "1"
327
- mask[1] = "m" if vn["PERMISSIONS/#{e}_M"] == "1"
328
- mask[2] = "a" if vn["PERMISSIONS/#{e}_A"] == "1"
333
+ %w[OWNER GROUP OTHER].each do |e|
334
+ mask = '---'
335
+ mask[0] = 'u' if vn["PERMISSIONS/#{e}_U"] == '1'
336
+ mask[1] = 'm' if vn["PERMISSIONS/#{e}_M"] == '1'
337
+ mask[2] = 'a' if vn["PERMISSIONS/#{e}_A"] == '1'
329
338
 
330
- puts str % [e, mask]
331
- }
339
+ puts format(str, e, mask)
340
+ end
332
341
 
333
342
  puts
334
343
 
335
- CLIHelper.print_header(str_h1 % ["VIRTUAL NETWORK TEMPLATE"], false)
344
+ CLIHelper.print_header(format(str_h1, 'VIRTUAL NETWORK TEMPLATE'),
345
+ false)
336
346
 
337
347
  puts vn.template_str(false)
338
348
 
339
349
  puts
340
350
 
341
- CLIHelper.print_header(str_h1 % ["ADDRESS RANGE POOL"], false)
351
+ CLIHelper.print_header(format(str_h1, 'ADDRESS RANGE POOL'), false)
342
352
 
343
353
  arlist = []
344
354
 
@@ -347,70 +357,72 @@ class OneVNetHelper < OpenNebulaHelper::OneHelper
347
357
  end
348
358
 
349
359
  arlist.each do |ar|
360
+ CLIHelper.print_header(format('%-80s', "AR #{ar['AR_ID']}"))
350
361
 
351
- CLIHelper.print_header("%-80s" % "AR #{ar["AR_ID"]}")
352
-
353
- str="%-15s: %-20s"
354
- puts str % ["SIZE", ar["SIZE"]]
355
- puts str % ["LEASES", ar["USED_LEASES"]]
356
- puts str % ["VN_MAD", ar["VN_MAD"]] if ar["VN_MAD"]
357
- puts str % ["IPAM_MAD", ar["IPAM_MAD"]] if ar["IPAM_MAD"]
362
+ str='%-15s: %-20s'
363
+ puts format(str, 'SIZE', ar['SIZE'])
364
+ puts format(str, 'LEASES', ar['USED_LEASES'])
365
+ puts format(str, 'VN_MAD', ar['VN_MAD']) if ar['VN_MAD']
366
+ puts format(str, 'IPAM_MAD', ar['IPAM_MAD']) if ar['IPAM_MAD']
358
367
  puts
359
368
 
360
- format = "%-10s %34s %34s"
361
- CLIHelper.print_header(format % ["RANGE", "FIRST", "LAST"], false)
369
+ format = '%-10s %34s %34s'
370
+ CLIHelper.print_header(
371
+ format(format, 'RANGE', 'FIRST', 'LAST'), false
372
+ )
362
373
 
363
- puts format % ["MAC", ar["MAC"], ar["MAC_END"]]
374
+ puts format(format, 'MAC', ar['MAC'], ar['MAC_END'])
364
375
 
365
- if !ar["IP"].nil?
366
- puts format % ["IP", ar["IP"], ar["IP_END"]]
376
+ if !ar['IP'].nil?
377
+ puts format(format, 'IP', ar['IP'], ar['IP_END'])
367
378
  end
368
379
 
369
- if !ar["IP6_GLOBAL"].nil?
370
- puts format % ["IP6_GLOBAL", ar["IP6_GLOBAL"], ar["IP6_GLOBAL_END"]]
380
+ if !ar['IP6_GLOBAL'].nil?
381
+ puts format(format, 'IP6_GLOBAL', ar['IP6_GLOBAL'],
382
+ ar['IP6_GLOBAL_END'])
371
383
  end
372
384
 
373
- if !ar["IP6_ULA"].nil?
374
- puts format % ["IP6_ULA", ar["IP6_ULA"], ar["IP6_ULA_END"]]
385
+ if !ar['IP6_ULA'].nil?
386
+ puts format(format, 'IP6_ULA', ar['IP6_ULA'], ar['IP6_ULA_END'])
375
387
  end
376
388
 
377
- if !ar["IP6"].nil?
378
- puts format % ["IP6", ar["IP6"], ar["IP6_END"]]
389
+ if !ar['IP6'].nil?
390
+ puts format(format, 'IP6', ar['IP6'], ar['IP6_END'])
379
391
  end
380
392
 
381
393
  puts
382
394
  end
383
395
 
384
396
  puts
385
- CLIHelper.print_header(str_h1 % ["LEASES"], false)
397
+ CLIHelper.print_header(format(str_h1, 'LEASES'), false)
386
398
  ar_list = []
387
399
 
388
400
  if !vn_hash['VNET']['AR_POOL']['AR'].nil?
389
401
  lease_list = [vn_hash['VNET']['AR_POOL']['AR']].flatten
390
- leases = Array.new
402
+ leases = []
391
403
 
392
404
  lease_list.each do |ar|
393
405
  id = ar['AR_ID']
394
406
  ar_list << id
395
407
 
396
- if ar['LEASES'] && !ar['LEASES']['LEASE'].nil?
397
- lease = [ar['LEASES']['LEASE']].flatten
398
- lease.each do |l|
399
- l['AR_ID'] = id
400
- end
401
- leases << lease
408
+ next unless ar['LEASES'] && !ar['LEASES']['LEASE'].nil?
409
+
410
+ lease = [ar['LEASES']['LEASE']].flatten
411
+ lease.each do |l|
412
+ l['AR_ID'] = id
402
413
  end
414
+ leases << lease
403
415
  end
404
416
 
405
417
  leases.flatten!
406
418
  end
407
419
 
408
420
  CLIHelper::ShowTable.new(nil, self) do
409
- column :AR, "", :left, :size=>3 do |d|
421
+ column :AR, '', :left, :size=>3 do |d|
410
422
  d['AR_ID']
411
423
  end
412
424
 
413
- column :OWNER, "", :left, :size=>15 do |d|
425
+ column :OWNER, '', :left, :size=>10 do |d|
414
426
  if d['VM']
415
427
  "V:#{d['VM']}"
416
428
  elsif d['VNET']
@@ -420,31 +432,40 @@ class OneVNetHelper < OpenNebulaHelper::OneHelper
420
432
  end
421
433
  end
422
434
 
423
- column :MAC, "", :size=>17 do |d|
424
- d["MAC"]
435
+ column :MAC, '', :adjust do |d|
436
+ d['MAC']
437
+ end
438
+
439
+ column :IP, '', :adjust do |d|
440
+ d['IP'] || '-'
425
441
  end
426
442
 
427
- column :IP, "", :size=>15 do |d|
428
- d["IP"]||"-"
443
+ column :PORT_FORWARD, '', :adjust do |d|
444
+ if d['EXTERNAL_PORT_RANGE']
445
+ "[#{d['EXTERNAL_PORT_RANGE']}]:" \
446
+ "[#{d['INTERNAL_PORT_RANGE'].split('/')[0]}]"
447
+ else
448
+ '-'
449
+ end
429
450
  end
430
451
 
431
- column :IP6, "", :adjust, :size=>26 do |d|
432
- d["IP6"]||d["IP6_GLOBAL"]||"-"
452
+ column :IP6, '', :adjust do |d|
453
+ d['IP6']||d['IP6_GLOBAL']||'-'
433
454
  end
434
455
  end.show(leases, {})
435
456
 
436
457
  puts
437
458
 
438
- CLIHelper.print_header("%-15s" % "VIRTUAL ROUTERS")
459
+ CLIHelper.print_header(format('%-15s', 'VIRTUAL ROUTERS'))
439
460
  vn.vrouter_ids.each do |id|
440
- puts "%-15s" % [id]
461
+ puts format('%-15s', id)
441
462
  end
442
463
 
443
- if options[:show_ar]
444
- ar_list.each do |ar_id|
445
- puts
446
- show_ar(vn, ar_id)
447
- end
464
+ return unless options[:show_ar]
465
+
466
+ ar_list.each do |ar_id|
467
+ puts
468
+ show_ar(vn, ar_id)
448
469
  end
449
470
  end
450
471
 
@@ -459,4 +480,5 @@ class OneVNetHelper < OpenNebulaHelper::OneHelper
459
480
  # in options hash
460
481
  (add_ar_options-options.keys)!=add_ar_options
461
482
  end
483
+
462
484
  end