opennebula-cli 6.0.0.2 → 6.1.80.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/oneflow +76 -5
- data/bin/oneflow-template +4 -5
- data/bin/oneimage +2 -2
- data/bin/onemarket +20 -0
- data/bin/onevcenter +15 -6
- data/bin/onevm +9 -66
- data/bin/onezone +20 -0
- 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 +98 -36
- data/lib/one_helper/onezone_helper.rb +13 -1
- data/lib/one_helper.rb +114 -125
- 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/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 +2 -1
- metadata +8 -8
@@ -499,6 +499,13 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
|
|
499
499
|
"onezone.yaml"
|
500
500
|
end
|
501
501
|
|
502
|
+
def self.state_to_str(id)
|
503
|
+
id = id.to_i
|
504
|
+
state_str = Zone::ZONE_STATES[id]
|
505
|
+
|
506
|
+
Zone::SHORT_ZONE_STATES[state_str]
|
507
|
+
end
|
508
|
+
|
502
509
|
def format_pool(options)
|
503
510
|
config_file = self.class.table_conf
|
504
511
|
|
@@ -524,7 +531,11 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
|
|
524
531
|
helper.get_fed_index(d["TEMPLATE"]['ENDPOINT'])
|
525
532
|
end
|
526
533
|
|
527
|
-
|
534
|
+
column :STAT, 'Zone status', :left, :size => 6 do |d|
|
535
|
+
OneZoneHelper.state_to_str(d['STATE'])
|
536
|
+
end
|
537
|
+
|
538
|
+
default :CURRENT, :ID, :NAME, :ENDPOINT, :FED_INDEX, :STAT
|
528
539
|
end
|
529
540
|
|
530
541
|
table
|
@@ -591,6 +602,7 @@ class OneZoneHelper < OpenNebulaHelper::OneHelper
|
|
591
602
|
CLIHelper.print_header(str_h1 % "ZONE #{zone['ID']} INFORMATION")
|
592
603
|
puts str % ["ID", zone.id.to_s]
|
593
604
|
puts str % ["NAME", zone.name]
|
605
|
+
puts str % ["STATE",zone.state_str]
|
594
606
|
puts
|
595
607
|
|
596
608
|
zone_hash=zone.to_hash
|
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)
|
@@ -899,6 +900,9 @@ EOT
|
|
899
900
|
|
900
901
|
|
901
902
|
def list_pool(options, top=false, filter_flag=nil)
|
903
|
+
# Capture Broken pipe
|
904
|
+
Signal.trap('PIPE', 'EXIT')
|
905
|
+
|
902
906
|
table = format_pool(options)
|
903
907
|
|
904
908
|
if options[:describe]
|
@@ -920,15 +924,11 @@ EOT
|
|
920
924
|
elsif options[:json]
|
921
925
|
list_pool_format(pool, options, filter_flag) do |pool|
|
922
926
|
hash = check_resource_xsd(pool, pname)
|
923
|
-
hash[pname] = check_resource_xsd(hash[pname], ename)
|
924
|
-
|
925
927
|
puts ::JSON.pretty_generate(hash)
|
926
928
|
end
|
927
929
|
elsif options[:yaml]
|
928
930
|
list_pool_format(pool, options, filter_flag) do |pool|
|
929
931
|
hash = check_resource_xsd(pool, pname)
|
930
|
-
hash[pname] = check_resource_xsd(hash[pname], ename)
|
931
|
-
|
932
932
|
puts hash.to_yaml(:indent => 4)
|
933
933
|
end
|
934
934
|
else
|
@@ -936,6 +936,9 @@ EOT
|
|
936
936
|
end
|
937
937
|
|
938
938
|
return 0
|
939
|
+
rescue SystemExit, Interrupt
|
940
|
+
# Rescue ctrl + c when paginated
|
941
|
+
0
|
939
942
|
end
|
940
943
|
|
941
944
|
# Check if a resource defined by attributes is referenced in pool
|
@@ -1223,11 +1226,41 @@ EOT
|
|
1223
1226
|
|
1224
1227
|
return hash unless xsd
|
1225
1228
|
|
1226
|
-
|
1229
|
+
if xsd.keys.include?('complexType')
|
1230
|
+
xsd = xsd['complexType']['sequence']['element']
|
1231
|
+
else
|
1232
|
+
xsd = xsd['element']
|
1233
|
+
end
|
1234
|
+
|
1235
|
+
xsd = [ xsd ] unless xsd.is_a? Array
|
1236
|
+
|
1237
|
+
check_xsd(hash[ename], xsd)
|
1227
1238
|
|
1228
1239
|
hash
|
1229
1240
|
end
|
1230
1241
|
|
1242
|
+
|
1243
|
+
# Replaces refs in xsd definition
|
1244
|
+
# limited func: only traverse hashes (not arrays), but works well for pools
|
1245
|
+
#
|
1246
|
+
# @param h [Hash] XSD in hash format
|
1247
|
+
#
|
1248
|
+
# @return [Object] XSD but where ref were, there inner XSD is loaded
|
1249
|
+
def replace_refs(h)
|
1250
|
+
return h unless h.is_a? Hash
|
1251
|
+
|
1252
|
+
if h.keys.include? 'ref'
|
1253
|
+
ref_xsd = read_xsd(h['ref'])
|
1254
|
+
return ref_xsd unless ref_xsd.nil?
|
1255
|
+
return h
|
1256
|
+
else
|
1257
|
+
h.each do |k,v|
|
1258
|
+
h[k] = replace_refs(v)
|
1259
|
+
end
|
1260
|
+
end
|
1261
|
+
end
|
1262
|
+
|
1263
|
+
|
1231
1264
|
# Read XSD file and parse to XML
|
1232
1265
|
#
|
1233
1266
|
# @param ename [String] Element name to read XSD
|
@@ -1250,141 +1283,95 @@ EOT
|
|
1250
1283
|
end
|
1251
1284
|
|
1252
1285
|
hash = Hash.from_xml(Nokogiri::XML(File.read(file)).to_s)
|
1286
|
+
|
1253
1287
|
hash = hash['schema']['element']
|
1254
1288
|
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1258
|
-
hash['element']
|
1259
|
-
end
|
1289
|
+
hash = replace_refs(hash)
|
1290
|
+
|
1291
|
+
hash
|
1260
1292
|
end
|
1261
1293
|
|
1262
|
-
#
|
1294
|
+
# Decides if given xsd definiton should be array in xml
|
1295
|
+
# Must be hash and contain either 'maxOccurs' => unbounded'
|
1296
|
+
# or 'maxOccurs' => >1
|
1263
1297
|
#
|
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
|
1298
|
+
# @param e [Hash] XSD definition transfomred in hash
|
1299
|
+
#
|
1300
|
+
# @return [Boolean]
|
1301
|
+
#
|
1302
|
+
def is_array?(e)
|
1303
|
+
return false if e.nil?
|
1304
|
+
return false unless e.is_a? Hash
|
1305
|
+
e['maxOccurs'] == 'unbounded' || e['maxOccurs'].to_i > 1
|
1315
1306
|
end
|
1316
1307
|
|
1317
|
-
#
|
1308
|
+
# Decides if given xsd definiton is complex type sequence
|
1309
|
+
# Must be hash and contain nested hash
|
1310
|
+
# ['complexType']['sequence']['element']
|
1318
1311
|
#
|
1319
|
-
# @param
|
1320
|
-
# @param elements [Array] Path to get
|
1312
|
+
# @param [Hash] XSD definition transfomred in hash
|
1321
1313
|
#
|
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
|
1314
|
+
# @return [Boolean]
|
1315
|
+
#
|
1316
|
+
def xsd_complex_sequence?(x)
|
1317
|
+
x['complexType']['sequence']['element'] rescue return false
|
1318
|
+
true
|
1349
1319
|
end
|
1350
1320
|
|
1351
|
-
#
|
1321
|
+
# Decides if given xsd definiton is complex type all
|
1322
|
+
# Must be hash and contain nested hash
|
1323
|
+
# ['complexType']['all']['element']
|
1352
1324
|
#
|
1353
|
-
# @param
|
1354
|
-
# @param elements [Array] Path to check
|
1325
|
+
# @param [Hash] XSD definition transfomred in hash
|
1355
1326
|
#
|
1356
|
-
# @return [Boolean]
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
max == 'unbounded' || max.to_i > 1
|
1327
|
+
# @return [Boolean]
|
1328
|
+
#
|
1329
|
+
def xsd_complex_all?(x)
|
1330
|
+
x['complexType']['all']['element'] rescue return false
|
1331
|
+
true
|
1362
1332
|
end
|
1363
1333
|
|
1364
|
-
#
|
1334
|
+
# Recursively traverse the OpenNebula resource (in Hash) and it's XSD
|
1335
|
+
# Where array is required in XSD, there encapsulate the entry into [ ]
|
1336
|
+
# Typically usefull for single disk, snapshots etc.
|
1365
1337
|
#
|
1366
|
-
# @param
|
1338
|
+
# @param hash [Hash] Resource information in hash format
|
1339
|
+
# @param xsd [Hash] XSD of the resource, transformed into hash
|
1367
1340
|
#
|
1368
|
-
|
1369
|
-
|
1370
|
-
type = yield if block_given?
|
1341
|
+
def check_xsd(hash, xsd)
|
1342
|
+
return unless hash or hash.empty?
|
1371
1343
|
|
1372
|
-
|
1373
|
-
return value unless type
|
1344
|
+
hash.each do |k, v|
|
1374
1345
|
|
1375
|
-
|
1376
|
-
|
1346
|
+
# find the elem definition in xsd array
|
1347
|
+
xsd_elem = xsd.select { |e| e['name'] == k }.first unless xsd.nil?
|
1377
1348
|
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1349
|
+
if xsd_complex_sequence?(xsd_elem) || xsd_complex_all?(xsd_elem)
|
1350
|
+
|
1351
|
+
# go deeper in xsd, xsd is ehter complex sequence or all
|
1352
|
+
begin
|
1353
|
+
inner_xsd = xsd_elem['complexType']['sequence']['element']
|
1354
|
+
rescue
|
1355
|
+
inner_xsd = xsd_elem['complexType']['all']['element']
|
1356
|
+
end
|
1357
|
+
|
1358
|
+
# recursively traverse resource - hash
|
1359
|
+
if v.is_a? Hash
|
1360
|
+
hash[k] = check_xsd(v, inner_xsd)
|
1361
|
+
|
1362
|
+
# recursively traverse resource - array
|
1363
|
+
elsif v.is_a? Array
|
1364
|
+
hash[k] = []
|
1365
|
+
v.each do |e|
|
1366
|
+
hash[k] << check_xsd(e, inner_xsd)
|
1367
|
+
end
|
1368
|
+
end
|
1369
|
+
end
|
1370
|
+
|
1371
|
+
# if XSD requires array, do so in resource if missing
|
1372
|
+
if is_array?(xsd_elem) && (! v.is_a? Array)
|
1373
|
+
hash[k] = [ v ]
|
1385
1374
|
end
|
1386
|
-
else
|
1387
|
-
value
|
1388
1375
|
end
|
1389
1376
|
end
|
1390
1377
|
end
|
@@ -1893,8 +1880,10 @@ EOT
|
|
1893
1880
|
if options[:size]
|
1894
1881
|
ar << ', SIZE = ' << options[:size]
|
1895
1882
|
else
|
1896
|
-
|
1897
|
-
|
1883
|
+
unless options[:ip6]
|
1884
|
+
STDERR.puts 'Address range needs to specify size (-s size)'
|
1885
|
+
exit(-1)
|
1886
|
+
end
|
1898
1887
|
end
|
1899
1888
|
|
1900
1889
|
if options[:ip6]
|
@@ -2164,10 +2153,10 @@ EOT
|
|
2164
2153
|
when 'number', 'number-float'
|
2165
2154
|
if type == 'number'
|
2166
2155
|
header += 'Integer: '
|
2167
|
-
exp = INT_EXP
|
2156
|
+
exp = OneTemplateHelper::INT_EXP
|
2168
2157
|
else
|
2169
2158
|
header += 'Float: '
|
2170
|
-
exp = FLOAT_EXP
|
2159
|
+
exp = OneTemplateHelper::FLOAT_EXP
|
2171
2160
|
end
|
2172
2161
|
|
2173
2162
|
begin
|
@@ -2193,13 +2182,13 @@ EOT
|
|
2193
2182
|
end
|
2194
2183
|
|
2195
2184
|
if type == 'range'
|
2196
|
-
exp = INT_EXP
|
2185
|
+
exp = OneTemplateHelper::INT_EXP
|
2197
2186
|
min = min.to_i
|
2198
2187
|
max = max.to_i
|
2199
2188
|
|
2200
2189
|
header += "Integer in the range [#{min}..#{max}]: "
|
2201
2190
|
else
|
2202
|
-
exp = FLOAT_EXP
|
2191
|
+
exp = OneTemplateHelper::FLOAT_EXP
|
2203
2192
|
min = min.to_f
|
2204
2193
|
max = max.to_f
|
2205
2194
|
|
@@ -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>
|
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>
|