opennebula-cli 6.0.3 → 6.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/bin/oneflow +30 -9
- data/bin/oneflow-template +4 -5
- data/bin/onehook +2 -2
- data/bin/oneimage +6 -6
- data/bin/onemarketapp +3 -3
- data/bin/onetemplate +3 -3
- data/bin/oneuser +1 -1
- data/bin/onevcenter +15 -6
- data/bin/onevm +11 -69
- data/bin/onevmgroup +3 -3
- data/bin/onevnet +3 -3
- data/bin/onevntemplate +3 -3
- data/bin/onevrouter +3 -3
- data/bin/onezone +20 -0
- data/lib/one_helper/oneacct_helper.rb +5 -1
- data/lib/one_helper/onevcenter_helper.rb +7 -6
- data/lib/one_helper/onevm_helper.rb +92 -31
- data/lib/one_helper/onezone_helper.rb +13 -1
- data/lib/one_helper.rb +109 -123
- data/share/schemas/xsd/host.xsd +21 -1
- data/share/schemas/xsd/monitoring_data.xsd +23 -11
- data/share/schemas/xsd/opennebula_configuration.xsd +1 -0
- data/share/schemas/xsd/showback.xsd +1 -0
- data/share/schemas/xsd/vm.xsd +64 -10
- data/share/schemas/xsd/vm_pool.xsd +3 -26
- data/share/schemas/xsd/vnet.xsd +4 -1
- data/share/schemas/xsd/zone.xsd +1 -0
- data/share/schemas/xsd/zone_pool.xsd +1 -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: c4908cbc17aac8f9c51ea753a53ae639ae001ffafd53e434de2607dbeca48a17
|
4
|
+
data.tar.gz: b8177017450198bf4c1a37a0239568c090c8ed8c1527cd5de04079ceb72a6f6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1768f1cfaf3e35b24c0ea83e646d86fe4d02363ca9d9e96e8b9f7e41f8ca4405e81728d1b95284660579a02b01041253f4f1c56a93ef5ebc4a7fb4966730134
|
7
|
+
data.tar.gz: a089348845dc43030ae6e079c8d71d8a0abc1978dd369bddebaf718d42ad7be24e476308d622e47673d906e387a2465055a64d1117ff1cbc48d04abf9e35cb47
|
data/bin/oneflow
CHANGED
@@ -82,6 +82,14 @@ CommandParser::CmdParser.new(ARGV) do
|
|
82
82
|
:description => 'Force flow necover delete'
|
83
83
|
}
|
84
84
|
|
85
|
+
APPEND = {
|
86
|
+
:name => 'append',
|
87
|
+
:large => '--append',
|
88
|
+
:description => 'Append template to the current one'
|
89
|
+
}
|
90
|
+
|
91
|
+
FORMAT = [OpenNebulaHelper::JSON, OpenNebulaHelper::YAML]
|
92
|
+
|
85
93
|
# create helper object
|
86
94
|
helper = OneFlowHelper.new
|
87
95
|
|
@@ -122,7 +130,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
122
130
|
List the available services
|
123
131
|
EOT
|
124
132
|
|
125
|
-
command :list, list_desc, :options =>
|
133
|
+
command :list, list_desc, :options => FORMAT do
|
126
134
|
helper.list_service_pool(helper.client(options), options)
|
127
135
|
end
|
128
136
|
|
@@ -146,10 +154,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
146
154
|
Show detailed information of a given service
|
147
155
|
EOT
|
148
156
|
|
149
|
-
command :show,
|
150
|
-
show_desc,
|
151
|
-
:service_id,
|
152
|
-
:options => OpenNebulaHelper::FORMAT do
|
157
|
+
command :show, show_desc, :service_id, :options => FORMAT do
|
153
158
|
helper.format_resource(helper.client(options), args[0], options)
|
154
159
|
end
|
155
160
|
|
@@ -365,7 +370,11 @@ CommandParser::CmdParser.new(ARGV) do
|
|
365
370
|
be launched to modify the current content.
|
366
371
|
EOT
|
367
372
|
|
368
|
-
command :update,
|
373
|
+
command :update,
|
374
|
+
update_desc,
|
375
|
+
:service_id,
|
376
|
+
[:file, nil],
|
377
|
+
:options => APPEND do
|
369
378
|
service_id = args[0]
|
370
379
|
client = helper.client(options)
|
371
380
|
|
@@ -383,8 +392,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
383
392
|
tmp = Tempfile.new(service_id.to_s)
|
384
393
|
path = tmp.path
|
385
394
|
|
386
|
-
|
387
|
-
|
395
|
+
unless options[:append]
|
396
|
+
tmp.write(JSON.pretty_generate(template))
|
397
|
+
tmp.flush
|
398
|
+
end
|
388
399
|
|
389
400
|
if ENV['EDITOR']
|
390
401
|
editor_path = ENV['EDITOR']
|
@@ -403,7 +414,17 @@ CommandParser::CmdParser.new(ARGV) do
|
|
403
414
|
end
|
404
415
|
end
|
405
416
|
|
406
|
-
|
417
|
+
if options[:append]
|
418
|
+
req = {}
|
419
|
+
req['append'] = true
|
420
|
+
req['template'] = File.read(path)
|
421
|
+
|
422
|
+
response = client.put("#{RESOURCE_PATH}/#{service_id}",
|
423
|
+
req.to_json)
|
424
|
+
else
|
425
|
+
response = client.put("#{RESOURCE_PATH}/#{service_id}",
|
426
|
+
File.read(path))
|
427
|
+
end
|
407
428
|
|
408
429
|
if CloudClient.is_error?(response)
|
409
430
|
[response.code.to_i, response.to_s]
|
data/bin/oneflow-template
CHANGED
@@ -104,6 +104,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
104
104
|
'deleting service template'
|
105
105
|
}
|
106
106
|
|
107
|
+
FORMAT = [OpenNebulaHelper::JSON, OpenNebulaHelper::YAML]
|
108
|
+
|
107
109
|
usage '`oneflow-template` <command> [<args>] [<options>]'
|
108
110
|
version OpenNebulaHelper::ONE_VERSION
|
109
111
|
|
@@ -141,7 +143,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
141
143
|
List the available Service Templates
|
142
144
|
EOT
|
143
145
|
|
144
|
-
command :list, list_desc, :options =>
|
146
|
+
command :list, list_desc, :options => FORMAT do
|
145
147
|
helper.list_service_template_pool(helper.client(options), options)
|
146
148
|
end
|
147
149
|
|
@@ -169,10 +171,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
169
171
|
Show detailed information of a given Service Template
|
170
172
|
EOT
|
171
173
|
|
172
|
-
command :show,
|
173
|
-
show_desc,
|
174
|
-
:templateid,
|
175
|
-
:options => OpenNebulaHelper::FORMAT do
|
174
|
+
command :show, show_desc, :templateid, :options => FORMAT do
|
176
175
|
helper.format_resource(helper.client(options), args[0], options)
|
177
176
|
end
|
178
177
|
|
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/oneimage
CHANGED
@@ -159,9 +159,9 @@ 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 --
|
163
|
-
--description "A OS plain installation \\
|
164
|
-
--persistent
|
162
|
+
--prefix sd --type OS --format qcow2 \\
|
163
|
+
--description "A OS plain installation" \\
|
164
|
+
--persistent
|
165
165
|
|
166
166
|
- a datablock image of 400MB:
|
167
167
|
|
@@ -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
@@ -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
@@ -165,7 +165,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
165
165
|
|
166
166
|
command :list,
|
167
167
|
list_desc,
|
168
|
-
:options => [OBJECT, HOST, DATASTORE, VCENTER, USER, PASS
|
168
|
+
:options => [OBJECT, HOST, DATASTORE, VCENTER, USER, PASS,
|
169
|
+
CLIHelper::CSV_OPT] do
|
169
170
|
begin
|
170
171
|
args = helper.parse_opts(options)
|
171
172
|
args[:filter] = true
|
@@ -178,7 +179,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
178
179
|
|
179
180
|
helper.list_object(options, list)
|
180
181
|
rescue StandardError => e
|
181
|
-
puts e.message
|
182
|
+
STDERR.puts e.message
|
183
|
+
exit 1
|
182
184
|
end
|
183
185
|
|
184
186
|
exit 0
|
@@ -209,7 +211,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
209
211
|
|
210
212
|
helper.list_object(options, list)
|
211
213
|
rescue StandardError => e
|
212
|
-
puts e.message
|
214
|
+
STDERR.puts e.message
|
215
|
+
exit 1
|
213
216
|
end
|
214
217
|
|
215
218
|
exit 0
|
@@ -256,7 +259,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
256
259
|
|
257
260
|
importer.stdout
|
258
261
|
rescue StandardError => e
|
259
|
-
puts e.message
|
262
|
+
STDERR.puts e.message
|
263
|
+
exit 1
|
260
264
|
end
|
261
265
|
|
262
266
|
exit 0
|
@@ -283,7 +287,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
283
287
|
|
284
288
|
importer.stdout
|
285
289
|
rescue StandardError => e
|
286
|
-
puts e.message
|
290
|
+
STDERR.puts e.message
|
291
|
+
exit 1
|
287
292
|
end
|
288
293
|
|
289
294
|
exit 0
|
@@ -305,7 +310,11 @@ CommandParser::CmdParser.new(ARGV) do
|
|
305
310
|
:options => [VCENTER, USER, PASS, USE_DEFAULTS, PORT] do
|
306
311
|
con_ops = helper.connection_options('Hosts', options)
|
307
312
|
|
308
|
-
|
313
|
+
begin
|
314
|
+
VCenterDriver::VcImporter.import_clusters(con_ops, options)
|
315
|
+
rescue StandardError
|
316
|
+
exit 1
|
317
|
+
end
|
309
318
|
|
310
319
|
exit 0
|
311
320
|
end
|
data/bin/onevm
CHANGED
@@ -1305,7 +1305,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1305
1305
|
CONTEXT (any value, **variable substitution will be made**)
|
1306
1306
|
EOT
|
1307
1307
|
|
1308
|
-
command :updateconf, updateconf_desc, :vmid, [:file, nil]
|
1308
|
+
command :updateconf, updateconf_desc, :vmid, [:file, nil],
|
1309
|
+
:options => OpenNebulaHelper::APPEND do
|
1309
1310
|
template = ''
|
1310
1311
|
|
1311
1312
|
begin
|
@@ -1332,14 +1333,17 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1332
1333
|
template = OpenNebulaHelper.editor_input(template)
|
1333
1334
|
end
|
1334
1335
|
|
1335
|
-
vm.updateconf(template)
|
1336
|
+
vm.updateconf(template, options[:append])
|
1336
1337
|
end
|
1337
1338
|
end
|
1338
1339
|
|
1339
1340
|
lock_desc = <<-EOT.unindent
|
1340
|
-
Locks a VM
|
1341
|
-
monitoring
|
1341
|
+
Locks a VM to prevent certain actions defined by different levels.
|
1342
|
+
The show and monitoring action will never be locked.
|
1342
1343
|
Valid states are: All.
|
1344
|
+
[Use]: locks Admin, Manage and Use actions.
|
1345
|
+
[Manage]: locks Manage and Use actions.
|
1346
|
+
[Admin]: locks only Admin actions.
|
1343
1347
|
EOT
|
1344
1348
|
|
1345
1349
|
command :lock, lock_desc, [:range, :vmid_list],
|
@@ -1361,7 +1365,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1361
1365
|
end
|
1362
1366
|
|
1363
1367
|
unlock_desc = <<-EOT.unindent
|
1364
|
-
Unlocks a
|
1368
|
+
Unlocks a Virtual Machine.
|
1365
1369
|
Valid states are: All.
|
1366
1370
|
EOT
|
1367
1371
|
|
@@ -1411,22 +1415,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1411
1415
|
|
1412
1416
|
command :'delete-chart', delete_chart_desc, :vmid, :sched_id do
|
1413
1417
|
helper.perform_action(args[0], {}, 'Charter deleted') do |vm|
|
1414
|
-
rc = vm.
|
1415
|
-
|
1416
|
-
if OpenNebula.is_error?(rc)
|
1417
|
-
STDERR.puts "Error #{rc.message}"
|
1418
|
-
exit(-1)
|
1419
|
-
end
|
1420
|
-
|
1421
|
-
xpath = "USER_TEMPLATE/SCHED_ACTION[ID=#{args[1]}]"
|
1422
|
-
|
1423
|
-
unless vm.retrieve_elements(xpath)
|
1424
|
-
STDERR.puts "Sched action #{args[1]} not found"
|
1425
|
-
exit(-1)
|
1426
|
-
end
|
1427
|
-
|
1428
|
-
vm.delete_element(xpath)
|
1429
|
-
rc = vm.update(vm.user_template_str)
|
1418
|
+
rc = vm.sched_action_delete(args[1])
|
1430
1419
|
|
1431
1420
|
if OpenNebula.is_error?(rc)
|
1432
1421
|
STDERR.puts "Error deleting: #{rc.message}"
|
@@ -1571,54 +1560,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1571
1560
|
:vmid,
|
1572
1561
|
[:login, nil],
|
1573
1562
|
:options => [NIC_ID, CMD, SSH_OPTS] do
|
1574
|
-
helper.
|
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
|
-
# rubocop:disable Style/SpecialGlobalVars
|
1620
|
-
$?.exitstatus
|
1621
|
-
# rubocop:enable Style/SpecialGlobalVars
|
1563
|
+
helper.ssh(args, options)
|
1622
1564
|
end
|
1623
1565
|
|
1624
1566
|
port_desc = <<-EOT.unindent
|
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/bin/onezone
CHANGED
@@ -269,4 +269,24 @@ CommandParser::CmdParser.new(ARGV) do
|
|
269
269
|
|
270
270
|
0
|
271
271
|
end
|
272
|
+
|
273
|
+
enable_desc = <<-EOT.unindent
|
274
|
+
Enable zone
|
275
|
+
EOT
|
276
|
+
|
277
|
+
command :enable, enable_desc, [:range, :zoneid_list] do
|
278
|
+
helper.perform_actions(args[0], options, 'enable zone') do |o|
|
279
|
+
o.enable
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
disable_desc = <<-EOT.unindent
|
284
|
+
Disable zone, disabled zones can execute only readonly commands
|
285
|
+
EOT
|
286
|
+
|
287
|
+
command :disable, disable_desc, [:range, :zoneid_list] do
|
288
|
+
helper.perform_actions(args[0], options, 'disable zone') do |o|
|
289
|
+
o.disable
|
290
|
+
end
|
291
|
+
end
|
272
292
|
end
|
@@ -216,11 +216,15 @@ class AcctHelper < OpenNebulaHelper::OneHelper
|
|
216
216
|
d["HOURS"]
|
217
217
|
end
|
218
218
|
|
219
|
+
column :RUNNING_HOURS, "Running hours", :size=>7 do |d|
|
220
|
+
d["RHOURS"] || '-'
|
221
|
+
end
|
222
|
+
|
219
223
|
column :COST, "Cost", :size=>15 do |d|
|
220
224
|
d["TOTAL_COST"]
|
221
225
|
end
|
222
226
|
|
223
|
-
default :USER_NAME, :GROUP_NAME, :VM_ID, :VM_NAME, :MONTH, :YEAR, :HOURS, :COST
|
227
|
+
default :USER_NAME, :GROUP_NAME, :VM_ID, :VM_NAME, :MONTH, :YEAR, :HOURS, :RUNNING_HOURS, :COST
|
224
228
|
end
|
225
229
|
|
226
230
|
def self.print_start_end_time_header(start_time, end_time)
|
@@ -188,14 +188,14 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
188
188
|
|
189
189
|
# This method will print a list for a vcenter_resource.
|
190
190
|
#
|
191
|
-
def list_object(
|
191
|
+
def list_object(options, list)
|
192
192
|
vcenter_host = list.keys[0]
|
193
193
|
list = cli_format(list.values.first)
|
194
194
|
table = format_list
|
195
195
|
|
196
196
|
show_header(vcenter_host)
|
197
197
|
|
198
|
-
table.show(list)
|
198
|
+
table.show(list, options)
|
199
199
|
end
|
200
200
|
|
201
201
|
# handles :cli section of TABLE
|
@@ -493,10 +493,11 @@ class OneVcenterHelper < OpenNebulaHelper::OneHelper
|
|
493
493
|
|
494
494
|
keys_to_remove = []
|
495
495
|
vm['config.extraConfig'].each do |extraconfig|
|
496
|
-
|
497
|
-
extraconfig.key.include?('opennebula.vm')
|
498
|
-
|
499
|
-
|
496
|
+
next unless extraconfig.key.include?('opennebula.disk') ||
|
497
|
+
extraconfig.key.include?('opennebula.vm') ||
|
498
|
+
extraconfig.key.downcase.include?('remotedisplay')
|
499
|
+
|
500
|
+
keys_to_remove << extraconfig.key
|
500
501
|
end
|
501
502
|
|
502
503
|
[vm, keys_to_remove]
|