opennebula-cli 6.10.5 → 6.99.85.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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/bin/oneacct +2 -18
  3. data/bin/oneacl +2 -18
  4. data/bin/onebackupjob +2 -18
  5. data/bin/onecluster +36 -18
  6. data/bin/onedatastore +2 -18
  7. data/bin/oneflow +2 -18
  8. data/bin/oneflow-template +8 -24
  9. data/bin/onegroup +2 -18
  10. data/bin/onehook +2 -18
  11. data/bin/onehost +4 -48
  12. data/bin/oneimage +2 -18
  13. data/bin/oneirb +2 -61
  14. data/bin/onelog +3 -22
  15. data/bin/onemarket +2 -18
  16. data/bin/onemarketapp +2 -30
  17. data/bin/onesecgroup +2 -18
  18. data/bin/oneshowback +2 -18
  19. data/bin/onetemplate +2 -19
  20. data/bin/oneuser +3 -19
  21. data/bin/onevdc +2 -18
  22. data/bin/onevm +3 -19
  23. data/bin/onevmgroup +2 -18
  24. data/bin/onevnet +2 -18
  25. data/bin/onevntemplate +2 -18
  26. data/bin/onevrouter +2 -18
  27. data/bin/onezone +2 -18
  28. data/lib/cli_helper.rb +1 -1
  29. data/lib/command_parser.rb +1 -1
  30. data/lib/one_helper/oneacct_helper.rb +1 -1
  31. data/lib/one_helper/oneacl_helper.rb +1 -1
  32. data/lib/one_helper/onebackupjob_helper.rb +1 -1
  33. data/lib/one_helper/onecluster_helper.rb +49 -1
  34. data/lib/one_helper/onedatastore_helper.rb +1 -1
  35. data/lib/one_helper/oneflow_helper.rb +1 -1
  36. data/lib/one_helper/oneflowtemplate_helper.rb +16 -16
  37. data/lib/one_helper/onegroup_helper.rb +4 -55
  38. data/lib/one_helper/onehook_helper.rb +1 -1
  39. data/lib/one_helper/onehost_helper.rb +25 -86
  40. data/lib/one_helper/oneimage_helper.rb +2 -19
  41. data/lib/one_helper/onemarket_helper.rb +1 -1
  42. data/lib/one_helper/onemarketapp_helper.rb +13 -3
  43. data/lib/one_helper/onequota_helper.rb +35 -8
  44. data/lib/one_helper/onesecgroup_helper.rb +1 -1
  45. data/lib/one_helper/onetemplate_helper.rb +1 -8
  46. data/lib/one_helper/oneuser_helper.rb +41 -75
  47. data/lib/one_helper/onevdc_helper.rb +1 -1
  48. data/lib/one_helper/onevm_helper.rb +96 -85
  49. data/lib/one_helper/onevmgroup_helper.rb +1 -1
  50. data/lib/one_helper/onevnet_helper.rb +1 -1
  51. data/lib/one_helper/onevntemplate_helper.rb +1 -1
  52. data/lib/one_helper/onevrouter_helper.rb +1 -1
  53. data/lib/one_helper/onezone_helper.rb +10 -23
  54. data/lib/one_helper.rb +6 -126
  55. data/share/schemas/xsd/acct.xsd +2 -0
  56. data/share/schemas/xsd/cluster.xsd +21 -0
  57. data/share/schemas/xsd/datastore.xsd +1 -13
  58. data/share/schemas/xsd/group.xsd +11 -122
  59. data/share/schemas/xsd/group_pool.xsd +8 -120
  60. data/share/schemas/xsd/host.xsd +19 -21
  61. data/share/schemas/xsd/image.xsd +0 -1
  62. data/share/schemas/xsd/monitoring_data.xsd +0 -8
  63. data/share/schemas/xsd/opennebula_configuration.xsd +23 -2
  64. data/share/schemas/xsd/plan.xsd +29 -0
  65. data/share/schemas/xsd/requirements.xsd +45 -0
  66. data/share/schemas/xsd/scheduler_driver_action.xsd +24 -0
  67. data/share/schemas/xsd/shared.xsd +67 -0
  68. data/share/schemas/xsd/user.xsd +10 -122
  69. data/share/schemas/xsd/user_pool.xsd +8 -120
  70. data/share/schemas/xsd/vm.xsd +37 -28
  71. data/share/schemas/xsd/vm_pool.xsd +0 -12
  72. data/share/schemas/xsd/vm_pool_extended.xsd +12 -0
  73. data/share/schemas/xsd/vmtemplate.xsd +0 -3
  74. data/share/schemas/xsd/vnet.xsd +0 -5
  75. data/share/schemas/xsd/vnet_pool_extended.xsd +12 -0
  76. metadata +11 -9
  77. data/bin/onevcenter +0 -471
  78. data/lib/one_helper/onevcenter_helper.rb +0 -523
data/lib/one_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # -------------------------------------------------------------------------- #
2
- # Copyright 2002-2024, OpenNebula Project, OpenNebula Systems #
2
+ # Copyright 2002-2025, OpenNebula Project, OpenNebula Systems #
3
3
  # #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
5
5
  # not use this file except in compliance with the License. You may obtain #
@@ -33,7 +33,7 @@ module OpenNebulaHelper
33
33
 
34
34
  ONE_VERSION=<<~EOT
35
35
  OpenNebula #{OpenNebula::VERSION}
36
- Copyright 2002-2024, OpenNebula Project, OpenNebula Systems
36
+ Copyright 2002-2025, OpenNebula Project, OpenNebula Systems
37
37
  EOT
38
38
 
39
39
  if ONE_LOCATION
@@ -411,13 +411,6 @@ Bash symbols must be escaped on STDIN passing'
411
411
  :large => '--report_ready',
412
412
  :description => 'Sends READY=YES to OneGate, useful for OneFlow'
413
413
  },
414
- {
415
- :name => 'vcenter_vm_folder',
416
- :large => '--vcenter_vm_folder path',
417
- :format => String,
418
- :description => 'In a vCenter environment sets the the VMs and Template folder where the VM will be placed in.' \
419
- ' The path uses slashes to separate folders. For example: --vcenter_vm_folder "/Management/VMs"'
420
- },
421
414
  {
422
415
  :name => 'user_inputs',
423
416
  :large => '--user-inputs ui1,ui2,ui3',
@@ -1410,7 +1403,6 @@ Bash symbols must be escaped on STDIN passing'
1410
1403
  #
1411
1404
  # @return [Hash] XSD in hash format, nil if not found
1412
1405
  def read_xsd(ename)
1413
- require 'logger'
1414
1406
  require 'active_support'
1415
1407
  require 'active_support/core_ext/hash/conversions'
1416
1408
 
@@ -1873,7 +1865,7 @@ Bash symbols must be escaped on STDIN passing'
1873
1865
  context_hash['SSH_PUBLIC_KEY'] = key
1874
1866
  end
1875
1867
  end
1876
-
1868
+
1877
1869
  if options[:net_context]
1878
1870
  context_hash['NETWORK'] = "YES"
1879
1871
  end
@@ -1883,11 +1875,11 @@ Bash symbols must be escaped on STDIN passing'
1883
1875
 
1884
1876
  context_hash['FILES_DS'] = files
1885
1877
  end
1886
-
1878
+
1887
1879
  if options[:init]
1888
1880
  context_hash['INIT_SCRIPTS'] = options[:init].join(" ")
1889
1881
  end
1890
-
1882
+
1891
1883
  if options[:startscript]
1892
1884
  script = nil
1893
1885
  begin
@@ -1910,7 +1902,7 @@ Bash symbols must be escaped on STDIN passing'
1910
1902
  formatted_context << options[:context].map {|l| ' ' << l }.join(",\n") if options[:context]
1911
1903
  if context_hash.any?
1912
1904
  formatted_context << ",\n" if options[:context]
1913
- formatted_context << context_hash.map { |k, v| " #{k}=\"#{v}\"" }.join(",\n")
1905
+ formatted_context << context_hash.map { |k, v| " #{k}=\"#{v}\"" }.join(",\n")
1914
1906
  end
1915
1907
  formatted_context << "\n]\n"
1916
1908
  formatted_context
@@ -1994,23 +1986,12 @@ Bash symbols must be escaped on STDIN passing'
1994
1986
  template<<' ]' << "\n"
1995
1987
  end
1996
1988
 
1997
- template<<"VCENTER_VM_FOLDER=#{options[:vcenter_vm_folder]}\n" if options[:vcenter_vm_folder]
1998
1989
  context_hash = {}
1999
1990
  if !template_obj.nil? && template_obj.has_elements?('TEMPLATE/CONTEXT')
2000
1991
  context_hash = template_obj.to_hash["VMTEMPLATE"]["TEMPLATE"]["CONTEXT"]
2001
1992
  end
2002
1993
  context_str=create_context_str(options, context_hash)
2003
1994
  template<<context_str if context_str
2004
- if options[:userdata] && !template_obj.nil? && template_obj.has_elements?('TEMPLATE/EC2')
2005
- template_obj.add_element(
2006
- 'TEMPLATE/EC2',
2007
- 'USERDATA' => options[:userdata]
2008
- )
2009
-
2010
- template << template_obj.template_like_str(
2011
- 'TEMPLATE', false, 'EC2'
2012
- )
2013
- end
2014
1995
 
2015
1996
  [0, template]
2016
1997
  end
@@ -2106,107 +2087,6 @@ Bash symbols must be escaped on STDIN passing'
2106
2087
  !conflicting_opts.empty?
2107
2088
  end
2108
2089
 
2109
- def self.sunstone_url
2110
- if (one_sunstone = ENV['ONE_SUNSTONE'])
2111
- one_sunstone
2112
- elsif (one_xmlrpc = ENV['ONE_XMLRPC'])
2113
- uri = URI(one_xmlrpc)
2114
- "#{uri.scheme}://#{uri.host}:9869"
2115
- else
2116
- 'http://localhost:9869'
2117
- end
2118
- end
2119
-
2120
- def self.download_resource_sunstone(kind, id, path, _force)
2121
- client = OneHelper.client
2122
- user, password = client.one_auth.split(':', 2)
2123
-
2124
- # Step 1: Build Session to get Cookie
2125
- uri = URI(File.join(sunstone_url, 'login'))
2126
-
2127
- req = Net::HTTP::Post.new(uri)
2128
- req.basic_auth user, password
2129
-
2130
- begin
2131
- res = Net::HTTP.start(uri.hostname, uri.port) do |http|
2132
- http.request(req)
2133
- end
2134
- rescue StandardError
2135
- return OpenNebula::Error.new("Error connecting to '#{uri}'.")
2136
- end
2137
-
2138
- cookie = res.response['set-cookie'].split('; ')[0]
2139
-
2140
- if cookie.nil?
2141
- return OpenNebula::Error.new('Unable to get Cookie. Is OpenNebula running?')
2142
- end
2143
-
2144
- # Step 2: Open '/' to get the csrftoken
2145
- uri = URI(sunstone_url)
2146
-
2147
- req = Net::HTTP::Get.new(uri)
2148
- req['Cookie'] = cookie
2149
-
2150
- begin
2151
- res = Net::HTTP.start(uri.hostname, uri.port) do |http|
2152
- http.request(req)
2153
- end
2154
- rescue StandardError
2155
- return OpenNebula::Error.new("Error connecting to '#{uri}'.")
2156
- end
2157
-
2158
- m = res.body.match(/var csrftoken = '(.*)';/)
2159
- csrftoken = m[1] rescue nil
2160
-
2161
- if csrftoken.nil?
2162
- return OpenNebula::Error.new('Unable to get csrftoken.')
2163
- end
2164
-
2165
- # Step 3: Download resource
2166
- uri = URI(File.join(sunstone_url,
2167
- kind.to_s,
2168
- id.to_s,
2169
- "download?csrftoken=#{csrftoken}"))
2170
-
2171
- req = Net::HTTP::Get.new(uri)
2172
-
2173
- req['Cookie'] = cookie
2174
- req['User-Agent'] = 'OpenNebula CLI'
2175
-
2176
- begin
2177
- File.open(path, 'wb') do |f|
2178
- Net::HTTP.start(uri.hostname, uri.port) do |http|
2179
- http.request(req) do |res|
2180
- res.read_body do |chunk|
2181
- f.write(chunk)
2182
- end
2183
- end
2184
- end
2185
- end
2186
- rescue Errno::EACCES
2187
- return OpenNebula::Error.new('Target file not writable.')
2188
- end
2189
-
2190
- error_message = nil
2191
-
2192
- File.open(path, 'rb') do |f|
2193
- begin
2194
- f.seek(-1024, IO::SEEK_END)
2195
- rescue Errno::EINVAL
2196
- end
2197
-
2198
- tail = f.read
2199
-
2200
- m = tail.match(/@\^_\^@ (.*) @\^_\^@/m)
2201
- error_message = m[1] if m
2202
- end
2203
-
2204
- return unless error_message
2205
-
2206
- File.unlink(path)
2207
- OpenNebula::Error.new("Remote server error: #{error_message}")
2208
- end
2209
-
2210
2090
  def self.level_lock_to_str(str)
2211
2091
  level = str.to_i
2212
2092
  if level == 0
@@ -23,6 +23,8 @@
23
23
  <xs:element name="VM_MAD" type="xs:string"/>
24
24
  <xs:element name="TM_MAD" type="xs:string"/>
25
25
  <xs:element name="DS_ID" type="xs:integer"/>
26
+ <xs:element name="PLAN_ID" type="xs:integer"/>
27
+ <xs:element name="ACTION_ID" type="xs:integer"/>
26
28
  <xs:element name="PSTIME" type="xs:integer"/>
27
29
  <xs:element name="PETIME" type="xs:integer"/>
28
30
  <xs:element name="RSTIME" type="xs:integer"/>
@@ -28,6 +28,27 @@
28
28
  </xs:complexType>
29
29
  </xs:element>
30
30
  <xs:element name="TEMPLATE" type="xs:anyType"/>
31
+ <xs:element name="PLAN" minOccurs="0" maxOccurs="1">
32
+ <xs:complexType>
33
+ <xs:sequence>
34
+ <xs:element name="ID" type="xs:integer"/>
35
+ <xs:element name="STATE" type="xs:integer"/>
36
+ <xs:element name="ACTION">
37
+ <xs:complexType>
38
+ <xs:sequence>
39
+ <xs:element name="ID" type="xs:integer"/>
40
+ <xs:element name="VM_ID" type="xs:integer"/>
41
+ <xs:element name="STATE" type="xs:integer"/>
42
+ <xs:element name="OPERATION" type="xs:string"/>
43
+ <xs:element name="HOST_ID" type="xs:integer"/>
44
+ <xs:element name="DS_ID" type="xs:integer"/>
45
+ <xs:element name="TIMESTAMP" type="xs:integer"/>
46
+ </xs:sequence>
47
+ </xs:complexType>
48
+ </xs:element>
49
+ </xs:sequence>
50
+ </xs:complexType>
51
+ </xs:element>
31
52
  </xs:sequence>
32
53
  </xs:complexType>
33
54
  </xs:element>
@@ -48,19 +48,7 @@
48
48
  </xs:sequence>
49
49
  </xs:complexType>
50
50
  </xs:element>
51
- <xs:element name="TEMPLATE">
52
- <xs:complexType>
53
- <xs:sequence>
54
- <xs:element name="VCENTER_DC_NAME" type="xs:string" minOccurs="0" maxOccurs="1"/>
55
- <xs:element name="VCENTER_DC_REF" type="xs:string" minOccurs="0" maxOccurs="1"/>
56
- <xs:element name="VCENTER_DS_NAME" type="xs:string" minOccurs="0" maxOccurs="1"/>
57
- <xs:element name="VCENTER_DS_REF" type="xs:string" minOccurs="0" maxOccurs="1"/>
58
- <xs:element name="VCENTER_HOST" type="xs:string" minOccurs="0" maxOccurs="1"/>
59
- <xs:element name="VCENTER_INSTANCE_ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
60
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
61
- </xs:sequence>
62
- </xs:complexType>
63
- </xs:element>
51
+ <xs:element name="TEMPLATE"/>
64
52
  </xs:sequence>
65
53
  </xs:complexType>
66
54
  </xs:element>
@@ -1,6 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
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
+ <xs:include schemaLocation="shared.xsd"/>
4
5
  <xs:element name="GROUP">
5
6
  <xs:complexType>
6
7
  <xs:sequence>
@@ -21,120 +22,22 @@
21
22
  </xs:sequence>
22
23
  </xs:complexType>
23
24
  </xs:element>
24
- <xs:element name="DATASTORE_QUOTA" minOccurs="0" maxOccurs="1">
25
- <xs:complexType>
26
- <xs:sequence>
27
- <xs:element name="DATASTORE" minOccurs="0" maxOccurs="unbounded">
28
- <xs:complexType>
29
- <xs:sequence>
30
- <xs:element name="ID" type="xs:string"/>
31
- <xs:element name="IMAGES" type="xs:string"/>
32
- <xs:element name="IMAGES_USED" type="xs:string"/>
33
- <xs:element name="SIZE" type="xs:string"/>
34
- <xs:element name="SIZE_USED" type="xs:string"/>
35
- </xs:sequence>
36
- </xs:complexType>
37
- </xs:element>
38
- </xs:sequence>
39
- </xs:complexType>
40
- </xs:element>
41
- <xs:element name="NETWORK_QUOTA" minOccurs="0" maxOccurs="1">
42
- <xs:complexType>
43
- <xs:sequence>
44
- <xs:element name="NETWORK" minOccurs="0" maxOccurs="unbounded">
45
- <xs:complexType>
46
- <xs:sequence>
47
- <xs:element name="ID" type="xs:string"/>
48
- <xs:element name="LEASES" type="xs:string"/>
49
- <xs:element name="LEASES_USED" type="xs:string"/>
50
- </xs:sequence>
51
- </xs:complexType>
52
- </xs:element>
53
- </xs:sequence>
54
- </xs:complexType>
55
- </xs:element>
56
- <xs:element name="VM_QUOTA" minOccurs="0" maxOccurs="1">
57
- <xs:complexType>
58
- <xs:sequence>
59
- <xs:element name="VM" minOccurs="0" maxOccurs="1">
60
- <xs:complexType>
61
- <xs:sequence>
62
- <xs:element name="CPU" type="xs:float"/>
63
- <xs:element name="CPU_USED" type="xs:float"/>
64
- <xs:element name="MEMORY" type="xs:integer"/>
65
- <xs:element name="MEMORY_USED" type="xs:integer"/>
66
- <xs:element name="RUNNING_CPU" type="xs:float"/>
67
- <xs:element name="RUNNING_CPU_USED" type="xs:float"/>
68
- <xs:element name="RUNNING_MEMORY" type="xs:integer"/>
69
- <xs:element name="RUNNING_MEMORY_USED" type="xs:integer"/>
70
- <xs:element name="RUNNING_VMS" type="xs:integer"/>
71
- <xs:element name="RUNNING_VMS_USED" type="xs:integer"/>
72
- <xs:element name="SYSTEM_DISK_SIZE" type="xs:long"/>
73
- <xs:element name="SYSTEM_DISK_SIZE_USED" type="xs:long"/>
74
- <xs:element name="VMS" type="xs:integer"/>
75
- <xs:element name="VMS_USED" type="xs:integer"/>
76
- </xs:sequence>
77
- </xs:complexType>
78
- </xs:element>
79
- </xs:sequence>
80
- </xs:complexType>
81
- </xs:element>
82
- <xs:element name="IMAGE_QUOTA" minOccurs="0" maxOccurs="1">
83
- <xs:complexType>
84
- <xs:sequence>
85
- <xs:element name="IMAGE" minOccurs="0" maxOccurs="unbounded">
86
- <xs:complexType>
87
- <xs:sequence>
88
- <xs:element name="ID" type="xs:string"/>
89
- <xs:element name="RVMS" type="xs:string"/>
90
- <xs:element name="RVMS_USED" type="xs:string"/>
91
- </xs:sequence>
92
- </xs:complexType>
93
- </xs:element>
94
- </xs:sequence>
95
- </xs:complexType>
96
- </xs:element>
25
+ <xs:element name="DATASTORE_QUOTA" type="DATASTORE_QUOTA" minOccurs="0"/>
26
+ <xs:element name="NETWORK_QUOTA" type="NETWORK_QUOTA" minOccurs="0"/>
27
+ <xs:element name="VM_QUOTA" type="VM_QUOTA" minOccurs="0"/>
28
+ <xs:element name="IMAGE_QUOTA" type="IMAGE_QUOTA" minOccurs="0"/>
97
29
  <xs:element name="DEFAULT_GROUP_QUOTAS">
98
30
  <xs:complexType>
99
31
  <xs:sequence>
100
- <xs:element name="DATASTORE_QUOTA" minOccurs="0" maxOccurs="1">
101
- <xs:complexType>
102
- <xs:sequence>
103
- <xs:element name="DATASTORE" minOccurs="0" maxOccurs="unbounded">
104
- <xs:complexType>
105
- <xs:sequence>
106
- <xs:element name="ID" type="xs:string"/>
107
- <xs:element name="IMAGES" type="xs:string"/>
108
- <xs:element name="IMAGES_USED" type="xs:string"/>
109
- <xs:element name="SIZE" type="xs:string"/>
110
- <xs:element name="SIZE_USED" type="xs:string"/>
111
- </xs:sequence>
112
- </xs:complexType>
113
- </xs:element>
114
- </xs:sequence>
115
- </xs:complexType>
116
- </xs:element>
117
- <xs:element name="NETWORK_QUOTA" minOccurs="0" maxOccurs="1">
118
- <xs:complexType>
119
- <xs:sequence>
120
- <xs:element name="NETWORK" minOccurs="0" maxOccurs="unbounded">
121
- <xs:complexType>
122
- <xs:sequence>
123
- <xs:element name="ID" type="xs:string"/>
124
- <xs:element name="LEASES" type="xs:string"/>
125
- <xs:element name="LEASES_USED" type="xs:string"/>
126
- </xs:sequence>
127
- </xs:complexType>
128
- </xs:element>
129
- </xs:sequence>
130
- </xs:complexType>
131
- </xs:element>
132
- <xs:element name="VM_QUOTA" minOccurs="0" maxOccurs="1">
32
+ <xs:element name="DATASTORE_QUOTA" type="DATASTORE_QUOTA" minOccurs="0"/>
33
+ <xs:element name="NETWORK_QUOTA" type="NETWORK_QUOTA" minOccurs="0"/>
34
+ <xs:element name="VM_QUOTA" minOccurs="0">
133
35
  <xs:complexType>
134
36
  <xs:sequence>
135
- <xs:element name="VM" minOccurs="0" maxOccurs="1">
37
+ <xs:element name="VM" minOccurs="0">
136
38
  <xs:complexType>
137
39
  <xs:sequence>
40
+ <xs:element name="CLUSTER_IDS" type="xs:string" minOccurs="0"/>
138
41
  <xs:element name="CPU" type="xs:float"/>
139
42
  <xs:element name="CPU_USED" type="xs:float"/>
140
43
  <xs:element name="MEMORY" type="xs:integer"/>
@@ -155,21 +58,7 @@
155
58
  </xs:sequence>
156
59
  </xs:complexType>
157
60
  </xs:element>
158
- <xs:element name="IMAGE_QUOTA" minOccurs="0" maxOccurs="1">
159
- <xs:complexType>
160
- <xs:sequence>
161
- <xs:element name="IMAGE" minOccurs="0" maxOccurs="unbounded">
162
- <xs:complexType>
163
- <xs:sequence>
164
- <xs:element name="ID" type="xs:string"/>
165
- <xs:element name="RVMS" type="xs:string"/>
166
- <xs:element name="RVMS_USED" type="xs:string"/>
167
- </xs:sequence>
168
- </xs:complexType>
169
- </xs:element>
170
- </xs:sequence>
171
- </xs:complexType>
172
- </xs:element>
61
+ <xs:element name="IMAGE_QUOTA" type="IMAGE_QUOTA" minOccurs="0"/>
173
62
  </xs:sequence>
174
63
  </xs:complexType>
175
64
  </xs:element>
@@ -1,6 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
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
+ <xs:include schemaLocation="shared.xsd"/>
4
5
  <xs:element name="GROUP_POOL">
5
6
  <xs:complexType>
6
7
  <xs:sequence maxOccurs="1" minOccurs="1">
@@ -32,79 +33,10 @@
32
33
  <xs:complexType>
33
34
  <xs:sequence>
34
35
  <xs:element name="ID" type="xs:integer"/>
35
- <xs:element name="DATASTORE_QUOTA" minOccurs="0" maxOccurs="1">
36
- <xs:complexType>
37
- <xs:sequence>
38
- <xs:element name="DATASTORE" minOccurs="0" maxOccurs="unbounded">
39
- <xs:complexType>
40
- <xs:sequence>
41
- <xs:element name="ID" type="xs:string"/>
42
- <xs:element name="IMAGES" type="xs:string"/>
43
- <xs:element name="IMAGES_USED" type="xs:string"/>
44
- <xs:element name="SIZE" type="xs:string"/>
45
- <xs:element name="SIZE_USED" type="xs:string"/>
46
- </xs:sequence>
47
- </xs:complexType>
48
- </xs:element>
49
- </xs:sequence>
50
- </xs:complexType>
51
- </xs:element>
52
- <xs:element name="NETWORK_QUOTA" minOccurs="0" maxOccurs="1">
53
- <xs:complexType>
54
- <xs:sequence>
55
- <xs:element name="NETWORK" minOccurs="0" maxOccurs="unbounded">
56
- <xs:complexType>
57
- <xs:sequence>
58
- <xs:element name="ID" type="xs:string"/>
59
- <xs:element name="LEASES" type="xs:string"/>
60
- <xs:element name="LEASES_USED" type="xs:string"/>
61
- </xs:sequence>
62
- </xs:complexType>
63
- </xs:element>
64
- </xs:sequence>
65
- </xs:complexType>
66
- </xs:element>
67
- <xs:element name="VM_QUOTA" minOccurs="0" maxOccurs="1">
68
- <xs:complexType>
69
- <xs:sequence>
70
- <xs:element name="VM" minOccurs="0" maxOccurs="1">
71
- <xs:complexType>
72
- <xs:sequence>
73
- <xs:element name="CPU" type="xs:string"/>
74
- <xs:element name="CPU_USED" type="xs:string"/>
75
- <xs:element name="MEMORY" type="xs:string"/>
76
- <xs:element name="MEMORY_USED" type="xs:string"/>
77
- <xs:element name="RUNNING_CPU" type="xs:string"/>
78
- <xs:element name="RUNNING_CPU_USED" type="xs:string"/>
79
- <xs:element name="RUNNING_MEMORY" type="xs:string"/>
80
- <xs:element name="RUNNING_MEMORY_USED" type="xs:string"/>
81
- <xs:element name="RUNNING_VMS" type="xs:string"/>
82
- <xs:element name="RUNNING_VMS_USED" type="xs:string"/>
83
- <xs:element name="SYSTEM_DISK_SIZE" type="xs:string"/>
84
- <xs:element name="SYSTEM_DISK_SIZE_USED" type="xs:string"/>
85
- <xs:element name="VMS" type="xs:string"/>
86
- <xs:element name="VMS_USED" type="xs:string"/>
87
- </xs:sequence>
88
- </xs:complexType>
89
- </xs:element>
90
- </xs:sequence>
91
- </xs:complexType>
92
- </xs:element>
93
- <xs:element name="IMAGE_QUOTA" minOccurs="0" maxOccurs="1">
94
- <xs:complexType>
95
- <xs:sequence>
96
- <xs:element name="IMAGE" minOccurs="0" maxOccurs="unbounded">
97
- <xs:complexType>
98
- <xs:sequence>
99
- <xs:element name="ID" type="xs:string"/>
100
- <xs:element name="RVMS" type="xs:string"/>
101
- <xs:element name="RVMS_USED" type="xs:string"/>
102
- </xs:sequence>
103
- </xs:complexType>
104
- </xs:element>
105
- </xs:sequence>
106
- </xs:complexType>
107
- </xs:element>
36
+ <xs:element name="DATASTORE_QUOTA" type="DATASTORE_QUOTA" minOccurs="0"/>
37
+ <xs:element name="NETWORK_QUOTA" type="NETWORK_QUOTA" minOccurs="0"/>
38
+ <xs:element name="VM_QUOTA" type="VM_QUOTA" minOccurs="0"/>
39
+ <xs:element name="IMAGE_QUOTA" type="IMAGE_QUOTA" minOccurs="0"/>
108
40
  </xs:sequence>
109
41
  </xs:complexType>
110
42
  </xs:element>
@@ -112,38 +44,8 @@
112
44
  <xs:element name="DEFAULT_GROUP_QUOTAS" minOccurs="1" maxOccurs="1">
113
45
  <xs:complexType>
114
46
  <xs:sequence>
115
- <xs:element name="DATASTORE_QUOTA" minOccurs="0" maxOccurs="1">
116
- <xs:complexType>
117
- <xs:sequence>
118
- <xs:element name="DATASTORE" minOccurs="0" maxOccurs="unbounded">
119
- <xs:complexType>
120
- <xs:sequence>
121
- <xs:element name="ID" type="xs:string"/>
122
- <xs:element name="IMAGES" type="xs:string"/>
123
- <xs:element name="IMAGES_USED" type="xs:string"/>
124
- <xs:element name="SIZE" type="xs:string"/>
125
- <xs:element name="SIZE_USED" type="xs:string"/>
126
- </xs:sequence>
127
- </xs:complexType>
128
- </xs:element>
129
- </xs:sequence>
130
- </xs:complexType>
131
- </xs:element>
132
- <xs:element name="NETWORK_QUOTA" minOccurs="0" maxOccurs="1">
133
- <xs:complexType>
134
- <xs:sequence>
135
- <xs:element name="NETWORK" minOccurs="0" maxOccurs="unbounded">
136
- <xs:complexType>
137
- <xs:sequence>
138
- <xs:element name="ID" type="xs:string"/>
139
- <xs:element name="LEASES" type="xs:string"/>
140
- <xs:element name="LEASES_USED" type="xs:string"/>
141
- </xs:sequence>
142
- </xs:complexType>
143
- </xs:element>
144
- </xs:sequence>
145
- </xs:complexType>
146
- </xs:element>
47
+ <xs:element name="DATASTORE_QUOTA" type="DATASTORE_QUOTA" minOccurs="0"/>
48
+ <xs:element name="NETWORK_QUOTA" type="NETWORK_QUOTA" minOccurs="0"/>
147
49
  <xs:element name="VM_QUOTA" minOccurs="0" maxOccurs="1">
148
50
  <xs:complexType>
149
51
  <xs:sequence>
@@ -170,21 +72,7 @@
170
72
  </xs:sequence>
171
73
  </xs:complexType>
172
74
  </xs:element>
173
- <xs:element name="IMAGE_QUOTA" minOccurs="0" maxOccurs="1">
174
- <xs:complexType>
175
- <xs:sequence>
176
- <xs:element name="IMAGE" minOccurs="0" maxOccurs="unbounded">
177
- <xs:complexType>
178
- <xs:sequence>
179
- <xs:element name="ID" type="xs:string"/>
180
- <xs:element name="RVMS" type="xs:string"/>
181
- <xs:element name="RVMS_USED" type="xs:string"/>
182
- </xs:sequence>
183
- </xs:complexType>
184
- </xs:element>
185
- </xs:sequence>
186
- </xs:complexType>
187
- </xs:element>
75
+ <xs:element name="IMAGE_QUOTA" type="IMAGE_QUOTA" minOccurs="0"/>
188
76
  </xs:sequence>
189
77
  </xs:complexType>
190
78
  </xs:element>
@@ -143,23 +143,7 @@
143
143
  </xs:sequence>
144
144
  </xs:complexType>
145
145
  </xs:element>
146
- <xs:element name="TEMPLATE">
147
- <xs:complexType>
148
- <xs:sequence>
149
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
150
- <xs:element name="VCENTER_CCR_REF" type="xs:string" minOccurs="0" maxOccurs="1"/>
151
- <xs:element name="VCENTER_DS_REF" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
152
- <xs:element name="VCENTER_HOST" type="xs:string" minOccurs="0" maxOccurs="1"/>
153
- <xs:element name="VCENTER_INSTANCE_ID" type="xs:string" minOccurs="0" maxOccurs="1"/>
154
- <xs:element name="VCENTER_NAME" type="xs:string" minOccurs="0" maxOccurs="1"/>
155
- <xs:element name="VCENTER_PASSWORD" type="xs:string" minOccurs="0" maxOccurs="1"/>
156
- <xs:element name="VCENTER_RESOURCE_POOL_INFO" minOccurs="0" maxOccurs="unbounded"/>
157
- <xs:element name="VCENTER_USER" type="xs:string" minOccurs="0" maxOccurs="1"/>
158
- <xs:element name="VCENTER_VERSION" type="xs:string" minOccurs="0" maxOccurs="1"/>
159
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
160
- </xs:sequence>
161
- </xs:complexType>
162
- </xs:element>
146
+ <xs:element name="TEMPLATE"/>
163
147
  <xs:element name="MONITORING">
164
148
  <xs:complexType>
165
149
  <xs:sequence>
@@ -168,13 +152,21 @@
168
152
  <xs:element name="CAPACITY" minOccurs="0">
169
153
  <xs:complexType>
170
154
  <xs:sequence>
171
- <xs:element name="FREE_CPU" type="xs:integer"/>
155
+ <xs:element name="FREE_CPU" type="xs:integer" minOccurs="0"/>
156
+ <xs:element name="FREE_CPU_FORECAST" type="xs:decimal" minOccurs="0"/>
157
+ <xs:element name="FREE_CPU_FORECAST_FAR" type="xs:decimal" minOccurs="0"/>
172
158
  <!-- ^^ Percentage, Free CPU as returned by the probes -->
173
- <xs:element name="FREE_MEMORY" type="xs:integer"/>
159
+ <xs:element name="FREE_MEMORY" type="xs:integer" minOccurs="0"/>
160
+ <xs:element name="FREE_MEMORY_FORECAST" type="xs:decimal" minOccurs="0"/>
161
+ <xs:element name="FREE_MEMORY_FORECAST_FAR" type="xs:decimal" minOccurs="0"/>
174
162
  <!-- ^^ KB, Free MEMORY returned by the probes -->
175
- <xs:element name="USED_CPU" type="xs:integer"/>
163
+ <xs:element name="USED_CPU" type="xs:integer" minOccurs="0"/>
164
+ <xs:element name="USED_CPU_FORECAST" type="xs:decimal" minOccurs="0"/>
165
+ <xs:element name="USED_CPU_FORECAST_FAR" type="xs:decimal" minOccurs="0"/>
176
166
  <!-- ^^ Percentage of CPU used by all host processes (including VMs) over a total of # cores * 100 -->
177
- <xs:element name="USED_MEMORY" type="xs:integer"/>
167
+ <xs:element name="USED_MEMORY" type="xs:integer" minOccurs="0"/>
168
+ <xs:element name="USED_MEMORY_FORECAST" type="xs:decimal" minOccurs="0"/>
169
+ <xs:element name="USED_MEMORY_FORECAST_FAR" type="xs:decimal" minOccurs="0"/>
178
170
  <!-- ^^ KB, Memory used by all host processes (including VMs) over a total of MAX_MEM -->
179
171
  </xs:sequence>
180
172
  </xs:complexType>
@@ -183,7 +175,13 @@
183
175
  <xs:complexType>
184
176
  <xs:sequence>
185
177
  <xs:element name="NETRX" type="xs:integer" minOccurs="0"/>
178
+ <xs:element name="NETRX_BW" type="xs:decimal" minOccurs="0"/>
179
+ <xs:element name="NETRX_BW_FORECAST" type="xs:decimal" minOccurs="0"/>
180
+ <xs:element name="NETRX_BW_FORECAST_FAR" type="xs:decimal" minOccurs="0"/>
186
181
  <xs:element name="NETTX" type="xs:integer" minOccurs="0"/>
182
+ <xs:element name="NETTX_BW" type="xs:decimal" minOccurs="0"/>
183
+ <xs:element name="NETTX_BW_FORECAST" type="xs:decimal" minOccurs="0"/>
184
+ <xs:element name="NETTX_BW_FORECAST_FAR" type="xs:decimal" minOccurs="0"/>
187
185
  </xs:sequence>
188
186
  </xs:complexType>
189
187
  </xs:element>
@@ -73,7 +73,6 @@
73
73
  <xs:complexType>
74
74
  <xs:sequence>
75
75
  <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
76
- <xs:element name="VCENTER_IMPORTED" type="xs:string" minOccurs="0" maxOccurs="1"/>
77
76
  <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
78
77
  </xs:sequence>
79
78
  </xs:complexType>