opennebula-cli 6.10.0 → 6.10.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/onebackupjob +4 -0
- data/bin/onehook +4 -0
- data/bin/oneimage +7 -1
- data/bin/onevm +49 -4
- data/bin/onevmgroup +1 -1
- data/bin/onevnet +1 -1
- data/bin/onevrouter +4 -0
- data/bin/onezone +7 -1
- data/lib/command_parser.rb +1 -1
- data/lib/one_helper/oneimage_helper.rb +16 -0
- data/lib/one_helper/onevm_helper.rb +15 -0
- data/lib/one_helper/onezone_helper.rb +16 -0
- data/share/schemas/xsd/api_info.xsd +2 -2
- data/share/schemas/xsd/hook_message_api.xsd +1 -0
- data/share/schemas/xsd/hook_message_retry.xsd +1 -1
- data/share/schemas/xsd/hook_message_state.xsd +7 -2
- data/share/schemas/xsd/zone_pool.xsd +35 -31
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e16b4ae09bc6027eed37b849e4be26e871cdff014d1858850f7aaf00d9382d6
|
4
|
+
data.tar.gz: 02a56e0e71ca7939bb166211d8e1fcffc694d0012d03af4e0effc3d418f69039
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4e1ec4685a156226e45cae79603bd104badfc110bba23f912bd9b3fc068931718e439b8b4ebe1b7125946043156081a807f62e3b1b42ed2fc6f53f50ae77b0c
|
7
|
+
data.tar.gz: d82f045b25801d6d6b844766bbd7b8593a909e2f4dbe99ba125d062108a7e4e733b87ec9b1d8a7790634ba71c2964f93075be893bebe8e2098ff7ebb59463d82
|
data/bin/onebackupjob
CHANGED
@@ -120,6 +120,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
120
120
|
helper.filterflag_to_i(arg)
|
121
121
|
end
|
122
122
|
|
123
|
+
set :format, :schedid, 'Scheduled Action id' do |arg|
|
124
|
+
format_int(arg)
|
125
|
+
end
|
126
|
+
|
123
127
|
########################################################################
|
124
128
|
# Commands
|
125
129
|
########################################################################
|
data/bin/onehook
CHANGED
@@ -103,6 +103,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
103
103
|
helper.list_to_id(arg)
|
104
104
|
end
|
105
105
|
|
106
|
+
set :format, :execid, 'Hook execution id' do |arg|
|
107
|
+
format_int(arg)
|
108
|
+
end
|
109
|
+
|
106
110
|
########################################################################
|
107
111
|
# Hook log Options
|
108
112
|
########################################################################
|
data/bin/oneimage
CHANGED
@@ -149,7 +149,9 @@ CommandParser::CmdParser.new(ARGV) do
|
|
149
149
|
end
|
150
150
|
|
151
151
|
set :format, :imageid, OneImageHelper.to_id_desc do |arg|
|
152
|
-
helper.to_id(arg)
|
152
|
+
tmp = helper.to_id(arg)
|
153
|
+
@current_image = tmp[1]
|
154
|
+
tmp
|
153
155
|
end
|
154
156
|
|
155
157
|
set :format, :imageid_list, OneImageHelper.list_to_id_desc do |arg|
|
@@ -170,6 +172,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
170
172
|
end
|
171
173
|
end
|
172
174
|
|
175
|
+
set :format, :snapshot_id, 'Snapshot name or id' do |arg|
|
176
|
+
helper.retrieve_snapshot_id(@current_image, arg)
|
177
|
+
end
|
178
|
+
|
173
179
|
########################################################################
|
174
180
|
# Commands
|
175
181
|
########################################################################
|
data/bin/onevm
CHANGED
@@ -320,7 +320,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
320
320
|
helper.filterflag_to_i(arg)
|
321
321
|
end
|
322
322
|
|
323
|
-
set :format, :diskid, '
|
323
|
+
set :format, :diskid, 'Disk id' do |arg|
|
324
324
|
format_int(arg)
|
325
325
|
end
|
326
326
|
|
@@ -328,14 +328,30 @@ CommandParser::CmdParser.new(ARGV) do
|
|
328
328
|
OpenNebulaHelper.size_in_mb(arg)
|
329
329
|
end
|
330
330
|
|
331
|
-
format :snapshot_id, 'Snapshot
|
331
|
+
set :format, :snapshot_id, 'Snapshot name or id' do |arg|
|
332
332
|
helper.retrieve_snapshot_id(@current_vm, arg)
|
333
333
|
end
|
334
334
|
|
335
|
-
format :disk_snapshot_id, 'Disk_snapshot
|
335
|
+
set :format, :disk_snapshot_id, 'Disk_snapshot name or id' do |arg|
|
336
336
|
helper.retrieve_disk_snapshot_id(@current_vm, arg)
|
337
337
|
end
|
338
338
|
|
339
|
+
set :format, :nicid, 'NIC name or id' do |arg|
|
340
|
+
helper.retrieve_nic_id(@current_vm, arg)
|
341
|
+
end
|
342
|
+
|
343
|
+
set :format, :pciid, 'PCI id' do |arg|
|
344
|
+
format_int(arg)
|
345
|
+
end
|
346
|
+
|
347
|
+
set :format, :sched_id, 'Scheduled Action id' do |arg|
|
348
|
+
format_int(arg)
|
349
|
+
end
|
350
|
+
|
351
|
+
set :format, :sgid, 'Security Group id' do |arg|
|
352
|
+
format_int(arg)
|
353
|
+
end
|
354
|
+
|
339
355
|
########################################################################
|
340
356
|
# Commands
|
341
357
|
########################################################################
|
@@ -647,7 +663,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
647
663
|
|
648
664
|
migrate_desc = <<-EOT.unindent
|
649
665
|
Migrates the given running VM to another Host. If used with --live
|
650
|
-
parameter the
|
666
|
+
parameter the migration is done without downtime.
|
651
667
|
|
652
668
|
States: RUNNING
|
653
669
|
EOT
|
@@ -1282,6 +1298,35 @@ CommandParser::CmdParser.new(ARGV) do
|
|
1282
1298
|
helper.show_resource(args[0], options)
|
1283
1299
|
end
|
1284
1300
|
|
1301
|
+
disk_snapshot_list_desc = <<-EOT.unindent
|
1302
|
+
Lists the snapshots of a disk
|
1303
|
+
EOT
|
1304
|
+
|
1305
|
+
command :"disk-snapshot-list", disk_snapshot_list_desc, :vmid, :diskid do
|
1306
|
+
vm = helper.retrieve_resource(args[0])
|
1307
|
+
vm.info
|
1308
|
+
|
1309
|
+
if vm.has_elements?('/VM/SNAPSHOTS')
|
1310
|
+
filtered = []
|
1311
|
+
vm_hash = vm.to_hash
|
1312
|
+
vm_snapshots = [vm_hash['VM']['SNAPSHOTS']].flatten
|
1313
|
+
|
1314
|
+
vm_snapshots.each do |snap|
|
1315
|
+
if snap['DISK_ID'] == args[1]
|
1316
|
+
filtered << snap
|
1317
|
+
end
|
1318
|
+
end
|
1319
|
+
|
1320
|
+
vm_hash['VM']['SNAPSHOTS'] = filtered
|
1321
|
+
|
1322
|
+
CLIHelper.print_header('VM DISK SNAPSHOTS'.ljust(80), false)
|
1323
|
+
helper.format_snapshots(vm_hash)
|
1324
|
+
else
|
1325
|
+
puts 'No snapshots available in this disk'
|
1326
|
+
end
|
1327
|
+
0
|
1328
|
+
end
|
1329
|
+
|
1285
1330
|
top_desc = <<-EOT.unindent
|
1286
1331
|
Lists Images continuously
|
1287
1332
|
EOT
|
data/bin/onevmgroup
CHANGED
data/bin/onevnet
CHANGED
data/bin/onevrouter
CHANGED
@@ -128,6 +128,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
128
128
|
OpenNebulaHelper.rname_to_id(arg, 'VMTEMPLATE')
|
129
129
|
end
|
130
130
|
|
131
|
+
set :format, :nicid, 'NIC id' do |arg|
|
132
|
+
format_int(arg)
|
133
|
+
end
|
134
|
+
|
131
135
|
########################################################################
|
132
136
|
# Commands
|
133
137
|
########################################################################
|
data/bin/onezone
CHANGED
@@ -91,13 +91,19 @@ CommandParser::CmdParser.new(ARGV) do
|
|
91
91
|
# Formatters for arguments
|
92
92
|
########################################################################
|
93
93
|
set :format, :zoneid, OneZoneHelper.to_id_desc do |arg|
|
94
|
-
helper.to_id(arg)
|
94
|
+
tmp = helper.to_id(arg)
|
95
|
+
@current_zone = tmp[1]
|
96
|
+
tmp
|
95
97
|
end
|
96
98
|
|
97
99
|
set :format, :zoneid_list, OneZoneHelper.list_to_id_desc do |arg|
|
98
100
|
helper.list_to_id(arg)
|
99
101
|
end
|
100
102
|
|
103
|
+
set :format, :serverid, 'Server name or id' do |arg|
|
104
|
+
helper.retrieve_server_id(@current_zone, arg)
|
105
|
+
end
|
106
|
+
|
101
107
|
########################################################################
|
102
108
|
# Commands
|
103
109
|
########################################################################
|
data/lib/command_parser.rb
CHANGED
@@ -201,6 +201,22 @@ class OneImageHelper < OpenNebulaHelper::OneHelper
|
|
201
201
|
Image::SHORT_IMAGE_TYPES[type_str]
|
202
202
|
end
|
203
203
|
|
204
|
+
def retrieve_snapshot_id(image_id, id)
|
205
|
+
return [0, id.to_i] if id =~ /\A\d+\z/
|
206
|
+
|
207
|
+
image = retrieve_resource(image_id)
|
208
|
+
image.info
|
209
|
+
|
210
|
+
ids = image.retrieve_elements(
|
211
|
+
"/IMAGE/SNAPSHOTS/SNAPSHOT[NAME='#{id}']/ID"
|
212
|
+
)
|
213
|
+
|
214
|
+
return [-1, "#{id} not found or duplicated"] \
|
215
|
+
if ids.nil? || ids.size > 1
|
216
|
+
|
217
|
+
[0, ids[0].to_i]
|
218
|
+
end
|
219
|
+
|
204
220
|
def format_pool(options)
|
205
221
|
config_file = self.class.table_conf
|
206
222
|
|
@@ -252,6 +252,19 @@ class OneVMHelper < OpenNebulaHelper::OneHelper
|
|
252
252
|
[0, ids[0].to_i]
|
253
253
|
end
|
254
254
|
|
255
|
+
def retrieve_nic_id(vm_id, id)
|
256
|
+
return [0, id.to_i] if id =~ /\A\d+\z/
|
257
|
+
|
258
|
+
vm = retrieve_resource(vm_id)
|
259
|
+
vm.info
|
260
|
+
ids = vm.retrieve_elements("/VM/TEMPLATE/NIC[NAME='#{id}']/NIC_ID")
|
261
|
+
|
262
|
+
return [-1, "NIC #{id} not found or duplicated"] \
|
263
|
+
if ids.nil? || ids.size > 1
|
264
|
+
|
265
|
+
[0, ids[0].to_i]
|
266
|
+
end
|
267
|
+
|
255
268
|
def format_pool(options)
|
256
269
|
config_file = self.class.table_conf
|
257
270
|
|
@@ -1398,6 +1411,8 @@ class OneVMHelper < OpenNebulaHelper::OneHelper
|
|
1398
1411
|
table.show(history)
|
1399
1412
|
end
|
1400
1413
|
|
1414
|
+
public
|
1415
|
+
|
1401
1416
|
def format_snapshots(vm)
|
1402
1417
|
table = CLIHelper::ShowTable.new(nil, self) do
|
1403
1418
|
column :AC, 'Is active', :left, :size => 2 do |d|
|
@@ -506,6 +506,22 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
|
|
506
506
|
Zone::SHORT_ZONE_STATES[state_str]
|
507
507
|
end
|
508
508
|
|
509
|
+
def retrieve_server_id(zone_id, id)
|
510
|
+
return [0, id.to_i] if id =~ /\A\d+\z/
|
511
|
+
|
512
|
+
zone = retrieve_resource(zone_id)
|
513
|
+
zone.info
|
514
|
+
|
515
|
+
ids = zone.retrieve_elements(
|
516
|
+
"/ZONE/SERVER_POOL/SERVER[NAME='#{id}']/ID"
|
517
|
+
)
|
518
|
+
|
519
|
+
return [-1, "#{id} not found or duplicated"] \
|
520
|
+
if ids.nil? || ids.size > 1
|
521
|
+
|
522
|
+
[0, ids[0].to_i]
|
523
|
+
end
|
524
|
+
|
509
525
|
def format_pool(options)
|
510
526
|
config_file = self.class.table_conf
|
511
527
|
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<xs:complexType>
|
14
14
|
<xs:sequence>
|
15
15
|
<xs:element name="POSITION" type="xs:integer"/>
|
16
|
-
<xs:element name="TYPE"
|
16
|
+
<xs:element name="TYPE">
|
17
17
|
<xs:simpleType>
|
18
18
|
<xs:restriction base="xs:string">
|
19
19
|
<xs:enumeration value="IN"/>
|
@@ -21,7 +21,7 @@
|
|
21
21
|
</xs:restriction>
|
22
22
|
</xs:simpleType>
|
23
23
|
</xs:element>
|
24
|
-
<xs:element name="VALUE" type="xs:
|
24
|
+
<xs:element name="VALUE" type="xs:anyType"/>
|
25
25
|
</xs:sequence>
|
26
26
|
</xs:complexType>
|
27
27
|
</xs:element>
|
@@ -1,6 +1,7 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<!-- This schema is followd by the EVENT API message sent by the Hook Manager -->
|
3
3
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://opennebula.org/XMLSchema" elementFormDefault="qualified" targetNamespace="http://opennebula.org/XMLSchema">
|
4
|
+
<xs:include schemaLocation="api_info.xsd"/>
|
4
5
|
<xs:element name="HOOK_MESSAGE">
|
5
6
|
<xs:complexType>
|
6
7
|
<xs:sequence>
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<!-- This schema is followd by the EVENT API message sent by the Hook Manager -->
|
2
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- This schema is followed by the EVENT API message sent by the Hook Manager -->
|
3
3
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://opennebula.org/XMLSchema" elementFormDefault="qualified" targetNamespace="http://opennebula.org/XMLSchema">
|
4
4
|
<xs:element name="HOOK_MESSAGE">
|
5
5
|
<xs:complexType>
|
@@ -1,11 +1,15 @@
|
|
1
|
-
<!-- This schema is followd by the EVENT API message sent by the Hook Manager -->
|
2
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- This schema is followed by the EVENT API message sent by the Hook Manager -->
|
3
3
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://opennebula.org/XMLSchema" elementFormDefault="qualified" targetNamespace="http://opennebula.org/XMLSchema">
|
4
|
+
<xs:include schemaLocation="host.xsd"/>
|
5
|
+
<xs:include schemaLocation="vm.xsd"/>
|
6
|
+
<xs:include schemaLocation="image.xsd"/>
|
7
|
+
<xs:include schemaLocation="vnet.xsd"/>
|
4
8
|
<xs:element name="HOOK_MESSAGE">
|
5
9
|
<xs:complexType>
|
6
10
|
<xs:sequence>
|
7
11
|
<xs:element name="HOOK_TYPE" type="xs:string" fixed="STATE"/>
|
8
|
-
<xs:element name="HOOK_OBJECT"
|
12
|
+
<xs:element name="HOOK_OBJECT">
|
9
13
|
<xs:simpleType>
|
10
14
|
<xs:restriction base="xs:string">
|
11
15
|
<xs:enumeration value="VM"/>
|
@@ -17,6 +21,7 @@
|
|
17
21
|
</xs:element>
|
18
22
|
<xs:element name="STATE" type="xs:string"/>
|
19
23
|
<xs:element name="LCM_STATE" type="xs:string" maxOccurs="1" minOccurs="0"/>
|
24
|
+
<xs:element name="RESOURCE_ID" type="xs:integer"/>
|
20
25
|
<xs:element name="REMOTE_HOST" type="xs:string" maxOccurs="1" minOccurs="0"/>
|
21
26
|
<!-- The template of the resource (VM, Host, Image or VNet) is included here -->
|
22
27
|
<xs:element ref="HOST" maxOccurs="1" minOccurs="0"/>
|
@@ -2,36 +2,40 @@
|
|
2
2
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
|
3
3
|
targetNamespace="http://opennebula.org/XMLSchema" xmlns="http://opennebula.org/XMLSchema">
|
4
4
|
<xs:element name="ZONE_POOL">
|
5
|
-
<xs:
|
6
|
-
<xs:
|
7
|
-
<xs:
|
8
|
-
<xs:
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
<xs:
|
14
|
-
<xs:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
<xs:
|
21
|
-
<xs:
|
22
|
-
<xs:
|
23
|
-
<xs:
|
24
|
-
<xs:
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
5
|
+
<xs:complexType>
|
6
|
+
<xs:sequence>
|
7
|
+
<xs:element name="ZONE" minOccurs="1" maxOccurs="unbounded">
|
8
|
+
<xs:complexType>
|
9
|
+
<xs:sequence>
|
10
|
+
<xs:element name="ID" type="xs:integer"/>
|
11
|
+
<xs:element name="NAME" type="xs:string"/>
|
12
|
+
<xs:element name="STATE" type="xs:integer"/>
|
13
|
+
<xs:element name="TEMPLATE">
|
14
|
+
<xs:complexType>
|
15
|
+
<xs:sequence>
|
16
|
+
<xs:element name="ENDPOINT" type="xs:string"/>
|
17
|
+
</xs:sequence>
|
18
|
+
</xs:complexType>
|
19
|
+
</xs:element>
|
20
|
+
<xs:element name="SERVER_POOL">
|
21
|
+
<xs:complexType>
|
22
|
+
<xs:sequence>
|
23
|
+
<xs:element name="SERVER" minOccurs="0" maxOccurs="unbounded">
|
24
|
+
<xs:complexType>
|
25
|
+
<xs:sequence>
|
26
|
+
<xs:element name="ENDPOINT" type="xs:string"/>
|
27
|
+
<xs:element name="ID" type="xs:integer"/>
|
28
|
+
<xs:element name="NAME" type="xs:string"/>
|
29
|
+
</xs:sequence>
|
30
|
+
</xs:complexType>
|
31
|
+
</xs:element>
|
32
|
+
</xs:sequence>
|
33
|
+
</xs:complexType>
|
34
|
+
</xs:element>
|
35
|
+
</xs:sequence>
|
36
|
+
</xs:complexType>
|
37
|
+
</xs:element>
|
38
|
+
</xs:sequence>
|
39
|
+
</xs:complexType>
|
36
40
|
</xs:element>
|
37
41
|
</xs:schema>
|
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.10.
|
4
|
+
version: 6.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenNebula
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opennebula
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 6.10.
|
19
|
+
version: 6.10.1
|
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.10.
|
26
|
+
version: 6.10.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|