opennebula-cli 6.0.1 → 6.1.90.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/oneacct +13 -2
- data/bin/oneacl +13 -2
- data/bin/onecluster +13 -2
- data/bin/onedatastore +13 -2
- data/bin/oneflow +115 -11
- data/bin/oneflow-template +17 -7
- data/bin/onegroup +13 -2
- data/bin/onehook +17 -6
- data/bin/onehost +13 -2
- data/bin/oneimage +19 -8
- data/bin/onemarket +33 -2
- data/bin/onemarketapp +21 -10
- data/bin/onesecgroup +13 -2
- data/bin/oneshowback +13 -2
- data/bin/onetemplate +28 -8
- data/bin/oneuser +13 -2
- data/bin/onevcenter +29 -9
- data/bin/onevdc +13 -2
- data/bin/onevm +141 -36
- data/bin/onevmgroup +17 -6
- data/bin/onevnet +17 -6
- data/bin/onevntemplate +17 -6
- data/bin/onevrouter +17 -6
- data/bin/onezone +34 -3
- data/lib/one_helper/oneacct_helper.rb +5 -1
- data/lib/one_helper/onecluster_helper.rb +75 -42
- data/lib/one_helper/onemarket_helper.rb +12 -1
- data/lib/one_helper/onevcenter_helper.rb +2 -2
- data/lib/one_helper/onevm_helper.rb +118 -36
- data/lib/one_helper/onevnet_helper.rb +173 -151
- data/lib/one_helper/onezone_helper.rb +25 -5
- data/lib/one_helper.rb +119 -131
- data/share/schemas/xsd/api_info.xsd +2 -2
- data/share/schemas/xsd/hook_message_api.xsd +1 -1
- data/share/schemas/xsd/hook_message_state.xsd +1 -1
- data/share/schemas/xsd/host.xsd +21 -1
- data/share/schemas/xsd/marketplace.xsd +1 -0
- 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 +6 -1
- data/share/schemas/xsd/zone.xsd +1 -0
- data/share/schemas/xsd/zone_pool.xsd +2 -1
- metadata +6 -6
data/lib/one_helper.rb
CHANGED
@@ -576,6 +576,7 @@ EOT
|
|
576
576
|
p_r, p_w = IO.pipe
|
577
577
|
|
578
578
|
Signal.trap('PIPE', 'SIG_IGN')
|
579
|
+
Signal.trap('PIPE', 'EXIT')
|
579
580
|
|
580
581
|
lpid = fork do
|
581
582
|
$stdin.reopen(p_r)
|
@@ -615,10 +616,9 @@ EOT
|
|
615
616
|
page = ""
|
616
617
|
|
617
618
|
if options[:xml]
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
}
|
619
|
+
elements += 1
|
620
|
+
|
621
|
+
page << pool.to_xml(true)
|
622
622
|
else
|
623
623
|
pname = pool.pool_name
|
624
624
|
ename = pool.element_name
|
@@ -710,8 +710,8 @@ EOT
|
|
710
710
|
elements, hash = print_page(pool, options)
|
711
711
|
|
712
712
|
if options[:ids] && elements
|
713
|
-
|
714
|
-
|
713
|
+
hash = [hash[pool.pool_name][pool.element_name]].flatten
|
714
|
+
hash.reject! do |element|
|
715
715
|
!options[:ids].include?(element['ID'].to_i)
|
716
716
|
end
|
717
717
|
end
|
@@ -899,6 +899,9 @@ EOT
|
|
899
899
|
|
900
900
|
|
901
901
|
def list_pool(options, top=false, filter_flag=nil)
|
902
|
+
# Capture Broken pipe
|
903
|
+
Signal.trap('PIPE', 'EXIT')
|
904
|
+
|
902
905
|
table = format_pool(options)
|
903
906
|
|
904
907
|
if options[:describe]
|
@@ -920,15 +923,11 @@ EOT
|
|
920
923
|
elsif options[:json]
|
921
924
|
list_pool_format(pool, options, filter_flag) do |pool|
|
922
925
|
hash = check_resource_xsd(pool, pname)
|
923
|
-
hash[pname] = check_resource_xsd(hash[pname], ename)
|
924
|
-
|
925
926
|
puts ::JSON.pretty_generate(hash)
|
926
927
|
end
|
927
928
|
elsif options[:yaml]
|
928
929
|
list_pool_format(pool, options, filter_flag) do |pool|
|
929
930
|
hash = check_resource_xsd(pool, pname)
|
930
|
-
hash[pname] = check_resource_xsd(hash[pname], ename)
|
931
|
-
|
932
931
|
puts hash.to_yaml(:indent => 4)
|
933
932
|
end
|
934
933
|
else
|
@@ -936,6 +935,9 @@ EOT
|
|
936
935
|
end
|
937
936
|
|
938
937
|
return 0
|
938
|
+
rescue SystemExit, Interrupt
|
939
|
+
# Rescue ctrl + c when paginated
|
940
|
+
0
|
939
941
|
end
|
940
942
|
|
941
943
|
# Check if a resource defined by attributes is referenced in pool
|
@@ -1223,11 +1225,41 @@ EOT
|
|
1223
1225
|
|
1224
1226
|
return hash unless xsd
|
1225
1227
|
|
1226
|
-
|
1228
|
+
if xsd.keys.include?('complexType')
|
1229
|
+
xsd = xsd['complexType']['sequence']['element']
|
1230
|
+
else
|
1231
|
+
xsd = xsd['element']
|
1232
|
+
end
|
1233
|
+
|
1234
|
+
xsd = [ xsd ] unless xsd.is_a? Array
|
1235
|
+
|
1236
|
+
check_xsd(hash[ename], xsd)
|
1227
1237
|
|
1228
1238
|
hash
|
1229
1239
|
end
|
1230
1240
|
|
1241
|
+
|
1242
|
+
# Replaces refs in xsd definition
|
1243
|
+
# limited func: only traverse hashes (not arrays), but works well for pools
|
1244
|
+
#
|
1245
|
+
# @param h [Hash] XSD in hash format
|
1246
|
+
#
|
1247
|
+
# @return [Object] XSD but where ref were, there inner XSD is loaded
|
1248
|
+
def replace_refs(h)
|
1249
|
+
return h unless h.is_a? Hash
|
1250
|
+
|
1251
|
+
if h.keys.include? 'ref'
|
1252
|
+
ref_xsd = read_xsd(h['ref'])
|
1253
|
+
return ref_xsd unless ref_xsd.nil?
|
1254
|
+
return h
|
1255
|
+
else
|
1256
|
+
h.each do |k,v|
|
1257
|
+
h[k] = replace_refs(v)
|
1258
|
+
end
|
1259
|
+
end
|
1260
|
+
end
|
1261
|
+
|
1262
|
+
|
1231
1263
|
# Read XSD file and parse to XML
|
1232
1264
|
#
|
1233
1265
|
# @param ename [String] Element name to read XSD
|
@@ -1250,141 +1282,95 @@ EOT
|
|
1250
1282
|
end
|
1251
1283
|
|
1252
1284
|
hash = Hash.from_xml(Nokogiri::XML(File.read(file)).to_s)
|
1285
|
+
|
1253
1286
|
hash = hash['schema']['element']
|
1254
1287
|
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1258
|
-
hash['element']
|
1259
|
-
end
|
1288
|
+
hash = replace_refs(hash)
|
1289
|
+
|
1290
|
+
hash
|
1260
1291
|
end
|
1261
1292
|
|
1262
|
-
#
|
1293
|
+
# Decides if given xsd definiton should be array in xml
|
1294
|
+
# Must be hash and contain either 'maxOccurs' => unbounded'
|
1295
|
+
# or 'maxOccurs' => >1
|
1263
1296
|
#
|
1264
|
-
# @param
|
1265
|
-
#
|
1266
|
-
# @
|
1267
|
-
#
|
1268
|
-
|
1269
|
-
|
1270
|
-
return unless
|
1271
|
-
|
1272
|
-
if (hash.is_a? Hash) && !hash.empty?
|
1273
|
-
hash.map do |ki, vi|
|
1274
|
-
vi = [vi].flatten if is_array?(xsd, [ki])
|
1275
|
-
|
1276
|
-
if (vi.is_a? Hash) && !vi.empty?
|
1277
|
-
parents << ki
|
1278
|
-
|
1279
|
-
vi.map do |kj, vj|
|
1280
|
-
parents << kj
|
1281
|
-
|
1282
|
-
path = (parents + [ki, kj]).uniq
|
1283
|
-
vj = [vj].flatten if is_array?(xsd, path)
|
1284
|
-
|
1285
|
-
hash[ki][kj] = check_xsd(vj,
|
1286
|
-
[ki, kj],
|
1287
|
-
ename,
|
1288
|
-
xsd,
|
1289
|
-
parents)
|
1290
|
-
end
|
1291
|
-
|
1292
|
-
parents.clear
|
1293
|
-
elsif vi.is_a? Array
|
1294
|
-
hash[ki] = check_xsd(vi, [ki], ename, xsd, parents)
|
1295
|
-
else
|
1296
|
-
hash[ki] = check_xsd(vi, [ki], ename, xsd, parents)
|
1297
|
-
end
|
1298
|
-
end
|
1299
|
-
|
1300
|
-
hash
|
1301
|
-
elsif hash.is_a? Array
|
1302
|
-
ret = []
|
1303
|
-
|
1304
|
-
hash.each do |v|
|
1305
|
-
ret << check_xsd(v, elements, ename, xsd, parents)
|
1306
|
-
end
|
1307
|
-
|
1308
|
-
ret
|
1309
|
-
else
|
1310
|
-
check_type(hash) do
|
1311
|
-
type = get_xsd_path(xsd, elements)
|
1312
|
-
type['type'] unless type.nil?
|
1313
|
-
end
|
1314
|
-
end
|
1297
|
+
# @param e [Hash] XSD definition transfomred in hash
|
1298
|
+
#
|
1299
|
+
# @return [Boolean]
|
1300
|
+
#
|
1301
|
+
def is_array?(e)
|
1302
|
+
return false if e.nil?
|
1303
|
+
return false unless e.is_a? Hash
|
1304
|
+
e['maxOccurs'] == 'unbounded' || e['maxOccurs'].to_i > 1
|
1315
1305
|
end
|
1316
1306
|
|
1317
|
-
#
|
1307
|
+
# Decides if given xsd definiton is complex type sequence
|
1308
|
+
# Must be hash and contain nested hash
|
1309
|
+
# ['complexType']['sequence']['element']
|
1318
1310
|
#
|
1319
|
-
# @param
|
1320
|
-
# @param elements [Array] Path to get
|
1311
|
+
# @param [Hash] XSD definition transfomred in hash
|
1321
1312
|
#
|
1322
|
-
# @return [
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
# Return nil, because is an empty complexType
|
1329
|
-
return unless element
|
1330
|
-
|
1331
|
-
element = [xsd].flatten.find do |v|
|
1332
|
-
v['name'] == element || v['ref'] == element
|
1333
|
-
end
|
1334
|
-
|
1335
|
-
# Return nil, because element was not find in XSD
|
1336
|
-
return unless element
|
1337
|
-
|
1338
|
-
if element.keys.include?('complexType') && !elements.empty?
|
1339
|
-
if element['complexType']['all']
|
1340
|
-
element = element['complexType']['all']['element']
|
1341
|
-
else
|
1342
|
-
element = element['complexType']['sequence']['element']
|
1343
|
-
end
|
1344
|
-
|
1345
|
-
get_xsd_path(element, elements)
|
1346
|
-
else
|
1347
|
-
element
|
1348
|
-
end
|
1313
|
+
# @return [Boolean]
|
1314
|
+
#
|
1315
|
+
def xsd_complex_sequence?(x)
|
1316
|
+
x['complexType']['sequence']['element'] rescue return false
|
1317
|
+
true
|
1349
1318
|
end
|
1350
1319
|
|
1351
|
-
#
|
1320
|
+
# Decides if given xsd definiton is complex type all
|
1321
|
+
# Must be hash and contain nested hash
|
1322
|
+
# ['complexType']['all']['element']
|
1352
1323
|
#
|
1353
|
-
# @param
|
1354
|
-
# @param elements [Array] Path to check
|
1324
|
+
# @param [Hash] XSD definition transfomred in hash
|
1355
1325
|
#
|
1356
|
-
# @return [Boolean]
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
max == 'unbounded' || max.to_i > 1
|
1326
|
+
# @return [Boolean]
|
1327
|
+
#
|
1328
|
+
def xsd_complex_all?(x)
|
1329
|
+
x['complexType']['all']['element'] rescue return false
|
1330
|
+
true
|
1362
1331
|
end
|
1363
1332
|
|
1364
|
-
#
|
1333
|
+
# Recursively traverse the OpenNebula resource (in Hash) and it's XSD
|
1334
|
+
# Where array is required in XSD, there encapsulate the entry into [ ]
|
1335
|
+
# Typically usefull for single disk, snapshots etc.
|
1365
1336
|
#
|
1366
|
-
# @param
|
1337
|
+
# @param hash [Hash] Resource information in hash format
|
1338
|
+
# @param xsd [Hash] XSD of the resource, transformed into hash
|
1367
1339
|
#
|
1368
|
-
|
1369
|
-
|
1370
|
-
type = yield if block_given?
|
1340
|
+
def check_xsd(hash, xsd)
|
1341
|
+
return unless hash or hash.empty?
|
1371
1342
|
|
1372
|
-
|
1373
|
-
return value unless type
|
1343
|
+
hash.each do |k, v|
|
1374
1344
|
|
1375
|
-
|
1376
|
-
|
1345
|
+
# find the elem definition in xsd array
|
1346
|
+
xsd_elem = xsd.select { |e| e['name'] == k }.first unless xsd.nil?
|
1377
1347
|
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1348
|
+
if xsd_complex_sequence?(xsd_elem) || xsd_complex_all?(xsd_elem)
|
1349
|
+
|
1350
|
+
# go deeper in xsd, xsd is ehter complex sequence or all
|
1351
|
+
begin
|
1352
|
+
inner_xsd = xsd_elem['complexType']['sequence']['element']
|
1353
|
+
rescue
|
1354
|
+
inner_xsd = xsd_elem['complexType']['all']['element']
|
1355
|
+
end
|
1356
|
+
|
1357
|
+
# recursively traverse resource - hash
|
1358
|
+
if v.is_a? Hash
|
1359
|
+
hash[k] = check_xsd(v, inner_xsd)
|
1360
|
+
|
1361
|
+
# recursively traverse resource - array
|
1362
|
+
elsif v.is_a? Array
|
1363
|
+
hash[k] = []
|
1364
|
+
v.each do |e|
|
1365
|
+
hash[k] << check_xsd(e, inner_xsd)
|
1366
|
+
end
|
1367
|
+
end
|
1368
|
+
end
|
1369
|
+
|
1370
|
+
# if XSD requires array, do so in resource if missing
|
1371
|
+
if is_array?(xsd_elem) && (! v.is_a? Array)
|
1372
|
+
hash[k] = [ v ]
|
1385
1373
|
end
|
1386
|
-
else
|
1387
|
-
value
|
1388
1374
|
end
|
1389
1375
|
end
|
1390
1376
|
end
|
@@ -1893,8 +1879,10 @@ EOT
|
|
1893
1879
|
if options[:size]
|
1894
1880
|
ar << ', SIZE = ' << options[:size]
|
1895
1881
|
else
|
1896
|
-
|
1897
|
-
|
1882
|
+
unless options[:ip6]
|
1883
|
+
STDERR.puts 'Address range needs to specify size (-s size)'
|
1884
|
+
exit(-1)
|
1885
|
+
end
|
1898
1886
|
end
|
1899
1887
|
|
1900
1888
|
if options[:ip6]
|
@@ -2164,10 +2152,10 @@ EOT
|
|
2164
2152
|
when 'number', 'number-float'
|
2165
2153
|
if type == 'number'
|
2166
2154
|
header += 'Integer: '
|
2167
|
-
exp = INT_EXP
|
2155
|
+
exp = OneTemplateHelper::INT_EXP
|
2168
2156
|
else
|
2169
2157
|
header += 'Float: '
|
2170
|
-
exp = FLOAT_EXP
|
2158
|
+
exp = OneTemplateHelper::FLOAT_EXP
|
2171
2159
|
end
|
2172
2160
|
|
2173
2161
|
begin
|
@@ -2193,13 +2181,13 @@ EOT
|
|
2193
2181
|
end
|
2194
2182
|
|
2195
2183
|
if type == 'range'
|
2196
|
-
exp = INT_EXP
|
2184
|
+
exp = OneTemplateHelper::INT_EXP
|
2197
2185
|
min = min.to_i
|
2198
2186
|
max = max.to_i
|
2199
2187
|
|
2200
2188
|
header += "Integer in the range [#{min}..#{max}]: "
|
2201
2189
|
else
|
2202
|
-
exp = FLOAT_EXP
|
2190
|
+
exp = OneTemplateHelper::FLOAT_EXP
|
2203
2191
|
min = min.to_f
|
2204
2192
|
max = max.to_f
|
2205
2193
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!-- The information sent to the hook when $API is used in an API Hook
|
2
|
+
<!-- The information sent to the hook when $API is used in an API Hook follow the following schema -->
|
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="CALL_INFO">
|
5
5
|
<xs:complexType>
|
@@ -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" type="xs:
|
16
|
+
<xs:element name="TYPE" type="xs:string">
|
17
17
|
<xs:simpleType>
|
18
18
|
<xs:restriction base="xs:string">
|
19
19
|
<xs:enumeration value="IN"/>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<xs:sequence>
|
7
7
|
<xs:element name="HOOK_TYPE" type="xs:string" fixed="API"/>
|
8
8
|
<xs:element name="CALL" type="xs:string"/>
|
9
|
-
<!-- CALL_INFO type is defined in
|
9
|
+
<!-- CALL_INFO type is defined in api_info.xsd -->
|
10
10
|
<xs:element ref="CALL_INFO" maxOccurs="unbounded" minOccurs="0"/>
|
11
11
|
</xs:sequence>
|
12
12
|
</xs:complexType>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<xs:element name="STATE" type="xs:string"/>
|
17
17
|
<xs:element name="LCM_STATE" type="xs:string" maxOccurs="1" minOccurs="0"/>
|
18
18
|
<xs:element name="REMOTE_HOST" type="xs:string" maxOccurs="1" minOccurs="0"/>
|
19
|
-
<!-- The template of the resource (VM or Host) is
|
19
|
+
<!-- The template of the resource (VM or Host) is included here -->
|
20
20
|
<xs:element ref="HOST" maxOccurs="1" minOccurs="0"/>
|
21
21
|
<xs:element ref="VM" maxOccurs="1" minOccurs="0"/>
|
22
22
|
</xs:sequence>
|
data/share/schemas/xsd/host.xsd
CHANGED
@@ -53,7 +53,27 @@
|
|
53
53
|
<xs:element name="PCI_DEVICES">
|
54
54
|
<xs:complexType>
|
55
55
|
<xs:sequence>
|
56
|
-
<xs:element name="PCI"
|
56
|
+
<xs:element name="PCI" minOccurs="0" maxOccurs="unbounded">
|
57
|
+
<xs:complexType>
|
58
|
+
<xs:sequence>
|
59
|
+
<xs:element name="ADDRESS" type="xs:string"/>
|
60
|
+
<xs:element name="BUS" type="xs:string"/>
|
61
|
+
<xs:element name="CLASS" type="xs:string"/>
|
62
|
+
<xs:element name="CLASS_NAME" type="xs:string"/>
|
63
|
+
<xs:element name="DEVICE" type="xs:string"/>
|
64
|
+
<xs:element name="DEVICE_NAME" type="xs:string"/>
|
65
|
+
<xs:element name="DOMAIN" type="xs:string"/>
|
66
|
+
<xs:element name="FUNCTION" type="xs:string"/>
|
67
|
+
<xs:element name="NUMA_NODE" type="xs:string"/>
|
68
|
+
<xs:element name="SHORT_ADDRESS" type="xs:string"/>
|
69
|
+
<xs:element name="SLOT" type="xs:string"/>
|
70
|
+
<xs:element name="TYPE" type="xs:string"/>
|
71
|
+
<xs:element name="VENDOR" type="xs:string"/>
|
72
|
+
<xs:element name="VENDOR_NAME" type="xs:string"/>
|
73
|
+
<xs:element name="VMID" type="xs:integer"/>
|
74
|
+
</xs:sequence>
|
75
|
+
</xs:complexType>
|
76
|
+
</xs:element>
|
57
77
|
</xs:sequence>
|
58
78
|
</xs:complexType>
|
59
79
|
</xs:element>
|
@@ -10,6 +10,7 @@
|
|
10
10
|
<xs:element name="UNAME" type="xs:string"/>
|
11
11
|
<xs:element name="GNAME" type="xs:string"/>
|
12
12
|
<xs:element name="NAME" type="xs:string"/>
|
13
|
+
<xs:element name="STATE" type="xs:integer"/>
|
13
14
|
<xs:element name="MARKET_MAD" type="xs:string"/>
|
14
15
|
<xs:element name="ZONE_ID" type="xs:string"/>
|
15
16
|
<xs:element name="TOTAL_MB" type="xs:integer"/>
|
@@ -6,17 +6,37 @@
|
|
6
6
|
<xs:sequence>
|
7
7
|
<xs:element name="MONITORING" minOccurs="0" maxOccurs="unbounded">
|
8
8
|
<xs:complexType>
|
9
|
-
<xs:
|
9
|
+
<xs:sequence>
|
10
|
+
<!-- Percentage of 1 CPU consumed (two fully consumed cpu is 2.0) -->
|
10
11
|
<xs:element name="CPU" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
|
12
|
+
<!-- Amount of bytes read from disk-->
|
11
13
|
<xs:element name="DISKRDBYTES" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
14
|
+
<!-- Number of IO read operations -->
|
12
15
|
<xs:element name="DISKRDIOPS" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
16
|
+
<!-- Amount of bytes written to disk -->
|
13
17
|
<xs:element name="DISKWRBYTES" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
18
|
+
<!-- Number of IO write operations -->
|
14
19
|
<xs:element name="DISKWRIOPS" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
20
|
+
<!-- Disk size details -->
|
21
|
+
<xs:element name="DISK_SIZE" minOccurs="0" maxOccurs="unbounded">
|
22
|
+
<xs:complexType>
|
23
|
+
<xs:sequence>
|
24
|
+
<xs:element name="ID" type="xs:integer"/>
|
25
|
+
<xs:element name="SIZE" type="xs:integer"/>
|
26
|
+
</xs:sequence>
|
27
|
+
</xs:complexType>
|
28
|
+
</xs:element>
|
29
|
+
<!-- ID of the VM -->
|
15
30
|
<xs:element name="ID" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
31
|
+
<!-- Consumption in kilobytes -->
|
16
32
|
<xs:element name="MEMORY" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
17
|
-
|
33
|
+
<!-- Received bytes from the network -->
|
18
34
|
<xs:element name="NETRX" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
35
|
+
<!-- Sent bytes to the network -->
|
36
|
+
<xs:element name="NETTX" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
37
|
+
<!-- Exact time when monitoring info were retieved -->
|
19
38
|
<xs:element name="TIMESTAMP" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
39
|
+
<!-- vCetner information -->
|
20
40
|
<xs:element name="VCENTER_ESX_HOST" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
21
41
|
<xs:element name="VCENTER_GUEST_STATE" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
22
42
|
<xs:element name="VCENTER_RP_NAME" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
@@ -24,15 +44,7 @@
|
|
24
44
|
<xs:element name="VCENTER_VMWARETOOLS_VERSION" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
25
45
|
<xs:element name="VCENTER_VMWARETOOLS_VERSION_STATUS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
26
46
|
<xs:element name="VCENTER_VM_NAME" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
27
|
-
|
28
|
-
<xs:complexType>
|
29
|
-
<xs:sequence>
|
30
|
-
<xs:element name="ID" type="xs:integer"/>
|
31
|
-
<xs:element name="SIZE" type="xs:integer"/>
|
32
|
-
</xs:sequence>
|
33
|
-
</xs:complexType>
|
34
|
-
</xs:element>
|
35
|
-
</xs:all>
|
47
|
+
</xs:sequence>
|
36
48
|
</xs:complexType>
|
37
49
|
</xs:element>
|
38
50
|
</xs:sequence>
|
@@ -270,6 +270,7 @@
|
|
270
270
|
<xs:element name="RPC_LOG" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
271
271
|
<xs:element name="SCRIPTS_REMOTE_DIR" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
272
272
|
<xs:element name="SESSION_EXPIRATION_TIME" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
273
|
+
<xs:element name="SHOWBACK_ONLY_RUNNING" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
273
274
|
<xs:element name="TIMEOUT" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
274
275
|
|
275
276
|
<xs:element name="TM_MAD" minOccurs="0" maxOccurs="unbounded">
|
@@ -20,6 +20,7 @@
|
|
20
20
|
<xs:element name="DISK_COST" type="xs:float"/>
|
21
21
|
<xs:element name="TOTAL_COST" type="xs:float"/>
|
22
22
|
<xs:element name="HOURS" type="xs:float"/>
|
23
|
+
<xs:element name="RHOURS" type="xs:float" minOccurs="0" maxOccurs="1"/>
|
23
24
|
</xs:sequence>
|
24
25
|
</xs:complexType>
|
25
26
|
</xs:element>
|
data/share/schemas/xsd/vm.xsd
CHANGED
@@ -50,7 +50,7 @@
|
|
50
50
|
</xs:element>
|
51
51
|
<xs:element name="MONITORING">
|
52
52
|
<xs:complexType>
|
53
|
-
<xs:
|
53
|
+
<xs:sequence>
|
54
54
|
<!-- Percentage of 1 CPU consumed (two fully consumed cpu is 2.0) -->
|
55
55
|
<xs:element name="CPU" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
|
56
56
|
<!-- Amount of bytes read from disk-->
|
@@ -61,14 +61,23 @@
|
|
61
61
|
<xs:element name="DISKWRBYTES" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
62
62
|
<!-- Number of IO write operations -->
|
63
63
|
<xs:element name="DISKWRIOPS" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
64
|
+
<!-- Disk size details -->
|
65
|
+
<xs:element name="DISK_SIZE" minOccurs="0" maxOccurs="unbounded">
|
66
|
+
<xs:complexType>
|
67
|
+
<xs:sequence>
|
68
|
+
<xs:element name="ID" type="xs:integer"/>
|
69
|
+
<xs:element name="SIZE" type="xs:integer"/>
|
70
|
+
</xs:sequence>
|
71
|
+
</xs:complexType>
|
72
|
+
</xs:element>
|
64
73
|
<!-- ID of the VM -->
|
65
74
|
<xs:element name="ID" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
66
75
|
<!-- Consumption in kilobytes -->
|
67
76
|
<xs:element name="MEMORY" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
68
|
-
<!-- Sent bytes to the network -->
|
69
|
-
<xs:element name="NETTX" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
70
77
|
<!-- Received bytes from the network -->
|
71
78
|
<xs:element name="NETRX" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
79
|
+
<!-- Sent bytes to the network -->
|
80
|
+
<xs:element name="NETTX" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
72
81
|
<!-- Exact time when monitoring info were retieved -->
|
73
82
|
<xs:element name="TIMESTAMP" type="xs:integer" minOccurs="0" maxOccurs="1"/>
|
74
83
|
<!-- vCetner information -->
|
@@ -79,13 +88,19 @@
|
|
79
88
|
<xs:element name="VCENTER_VMWARETOOLS_VERSION" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
80
89
|
<xs:element name="VCENTER_VMWARETOOLS_VERSION_STATUS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
81
90
|
<xs:element name="VCENTER_VM_NAME" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
82
|
-
</xs:
|
91
|
+
</xs:sequence>
|
83
92
|
</xs:complexType>
|
84
93
|
</xs:element>
|
85
94
|
<xs:element name="TEMPLATE">
|
86
95
|
<xs:complexType>
|
87
96
|
<xs:sequence>
|
88
|
-
<xs:
|
97
|
+
<xs:element name="AUTOMATIC_DS_REQUIREMENTS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
98
|
+
<xs:element name="AUTOMATIC_NIC_REQUIREMENTS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
99
|
+
<xs:element name="AUTOMATIC_REQUIREMENTS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
100
|
+
<xs:element name="CLONING_TEMPLATE_ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
101
|
+
<xs:element name="CONTEXT" minOccurs="0" maxOccurs="1"/>
|
102
|
+
<xs:element name="CPU" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
103
|
+
<xs:element name="CPU_COST" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
89
104
|
<xs:element name="DISK" minOccurs="0" maxOccurs="unbounded">
|
90
105
|
<xs:complexType>
|
91
106
|
<xs:sequence>
|
@@ -96,12 +111,20 @@
|
|
96
111
|
</xs:sequence>
|
97
112
|
</xs:complexType>
|
98
113
|
</xs:element>
|
99
|
-
<xs:
|
114
|
+
<xs:element name="DISK_COST" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
115
|
+
<xs:element name="EMULATOR" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
116
|
+
<xs:element name="FEATURES" minOccurs="0" maxOccurs="1"/>
|
117
|
+
<xs:element name="HYPERV_OPTIONS" minOccurs="0" maxOccurs="1"/>
|
118
|
+
<xs:element name="GRAPHICS" minOccurs="0" maxOccurs="1"/>
|
119
|
+
<xs:element name="IMPORTED" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
120
|
+
<xs:element name="INPUT" minOccurs="0" maxOccurs="1"/>
|
121
|
+
<xs:element name="MEMORY" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
122
|
+
<xs:element name="MEMORY_COST" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
123
|
+
<xs:element name="MEMORY_MAX" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
124
|
+
<xs:element name="MEMORY_SLOTS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
100
125
|
<xs:element name="NIC" minOccurs="0" maxOccurs="unbounded">
|
101
126
|
<xs:complexType>
|
102
127
|
<xs:sequence>
|
103
|
-
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
|
104
|
-
<xs:element name="BRIDGE_TYPE" type="xs:string"/>
|
105
128
|
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
|
106
129
|
<xs:element name="VCENTER_INSTANCE_ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
107
130
|
<xs:element name="VCENTER_NET_REF" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
@@ -109,7 +132,6 @@
|
|
109
132
|
</xs:sequence>
|
110
133
|
</xs:complexType>
|
111
134
|
</xs:element>
|
112
|
-
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
|
113
135
|
<xs:element name="NIC_ALIAS" minOccurs="0" maxOccurs="unbounded">
|
114
136
|
<xs:complexType>
|
115
137
|
<xs:sequence>
|
@@ -124,7 +146,39 @@
|
|
124
146
|
</xs:sequence>
|
125
147
|
</xs:complexType>
|
126
148
|
</xs:element>
|
127
|
-
<xs:
|
149
|
+
<xs:element name="NIC_DEFAULT" minOccurs="0" maxOccurs="1"/>
|
150
|
+
<xs:element name="NUMA_NODE" minOccurs="0" maxOccurs="1"/>
|
151
|
+
<xs:element name="OS" minOccurs="0" maxOccurs="1"/>
|
152
|
+
<xs:element name="PCI" minOccurs="0" maxOccurs="1"/>
|
153
|
+
<xs:element name="RAW" minOccurs="0" maxOccurs="1"/>
|
154
|
+
<xs:element name="SCHED_ACTION" minOccurs="0" maxOccurs="unbounded">
|
155
|
+
<xs:complexType>
|
156
|
+
<xs:sequence>
|
157
|
+
<xs:element name="ACTION" type="xs:string"/>
|
158
|
+
<xs:element name="ARGS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
159
|
+
<xs:element name="DAYS" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
160
|
+
<xs:element name="END_TYPE" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
161
|
+
<xs:element name="END_VALUE" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
162
|
+
<xs:element name="ID" type="xs:string"/>
|
163
|
+
<xs:element name="REPEAT" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
164
|
+
<xs:element name="TIME" type="xs:string"/>
|
165
|
+
<xs:element name="WARNING" type="xs:string"/>
|
166
|
+
</xs:sequence>
|
167
|
+
</xs:complexType>
|
168
|
+
</xs:element>
|
169
|
+
<xs:element name="SECURITY_GROUP_RULE" minOccurs="0" maxOccurs="unbounded"/>
|
170
|
+
<xs:element name="SPICE_OPTIONS" minOccurs="0" maxOccurs="1"/>
|
171
|
+
<xs:element name="SUBMIT_ON_HOLD" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
172
|
+
<xs:element name="TEMPLATE_ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
173
|
+
<xs:element name="TM_MAD_SYSTEM" type="xs:string"/>
|
174
|
+
<xs:element name="TOPOLOGY" minOccurs="0" maxOccurs="1"/>
|
175
|
+
<xs:element name="VCPU" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
176
|
+
<xs:element name="VCPU_MAX" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
177
|
+
<xs:element name="VMGROUP" minOccurs="0" maxOccurs="unbounded"/>
|
178
|
+
<xs:element name="VMID" type="xs:string"/>
|
179
|
+
<xs:element name="VROUTER_ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
180
|
+
<xs:element name="VROUTER_KEEPALIVED_ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
181
|
+
<xs:element name="VROUTER_KEEPALIVED_PASSWORD" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
128
182
|
</xs:sequence>
|
129
183
|
</xs:complexType>
|
130
184
|
</xs:element>
|