opennebula-cli 6.10.2 → 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 +5 -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 +2 -18
  21. data/bin/onevdc +2 -18
  22. data/bin/onevm +21 -19
  23. data/bin/onevmgroup +2 -18
  24. data/bin/onevnet +2 -18
  25. data/bin/onevntemplate +2 -18
  26. data/bin/onevrouter +13 -20
  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 +10 -2
  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 +17 -17
  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 +29 -87
  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 +119 -102
  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 +34 -156
  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 -1
  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
@@ -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 #
@@ -180,35 +180,35 @@ class OneFlowTemplateHelper < OpenNebulaHelper::OneHelper
180
180
  end
181
181
  end
182
182
 
183
- # Get custom attributes values from user
183
+ # Get user inputs values from user
184
184
  #
185
- # @param custom_attrs [Hash] Custom attributes from template
185
+ # @param user_inputs [Hash] User inputs from template
186
186
  #
187
- # @return [Hash] Custom attributes values
188
- def custom_attrs(custom_attrs)
187
+ # @return [Hash] User Input values
188
+ def user_inputs(user_inputs)
189
189
  # rubocop:disable Layout/LineLength
190
- return if custom_attrs.nil? || custom_attrs.empty?
190
+ return if user_inputs.nil? || user_inputs.empty?
191
191
 
192
192
  ret = {}
193
- ret['custom_attrs_values'] = OpenNebulaHelper.parse_user_inputs(custom_attrs)
193
+ ret['user_inputs_values'] = OpenNebulaHelper.parse_user_inputs(user_inputs)
194
194
 
195
195
  # rubocop:enable Layout/LineLength
196
196
  ret
197
197
  end
198
198
 
199
- # Get custom role attributes values from user
199
+ # Get user input values from user
200
200
  #
201
- # @param role [Hash] Service role with custom attributes
201
+ # @param role [Hash] Service role with user inputs
202
202
  #
203
- # @return [Hash] Role with custom attributes values
204
- def custom_role_attrs(roles)
203
+ # @return [Hash] Role with user inputs values
204
+ def role_user_inputs(roles)
205
205
  return if roles.nil? || roles.empty?
206
206
 
207
207
  ret = {}
208
- role_with_custom_attrs = false
208
+ role_with_user_inputs = false
209
209
 
210
210
  roles.each do |role|
211
- next unless role.key?('custom_attrs')
211
+ next unless role.key?('user_inputs')
212
212
 
213
213
  ####################################################################
214
214
  # Display Role Information
@@ -216,11 +216,11 @@ class OneFlowTemplateHelper < OpenNebulaHelper::OneHelper
216
216
  header = "> Please insert the user inputs for the role \"#{role['name']}\""
217
217
  puts header
218
218
 
219
- role.merge!(custom_attrs(role['custom_attrs']))
220
- role_with_custom_attrs = true
219
+ role.merge!(user_inputs(role['user_inputs']))
220
+ role_with_user_inputs = true
221
221
  end
222
222
 
223
- ret['roles'] = roles if role_with_custom_attrs
223
+ ret['roles'] = roles if role_with_user_inputs
224
224
 
225
225
  ret
226
226
  end
@@ -260,7 +260,7 @@ class OneFlowTemplateHelper < OpenNebulaHelper::OneHelper
260
260
  type, resource_id, extra = initial.split(':', -1)
261
261
  end
262
262
 
263
- if (!type || !resource_id) && (initial && !initial.empty?)
263
+ if (!type || !resource_id) && initial && !initial.empty?
264
264
  STDERR.puts 'Wrong type for user input default value:'
265
265
  STDERR.puts " #{key}: #{val}"
266
266
  exit(-1)
@@ -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 #
@@ -110,24 +110,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
110
110
  q = quotas[d['ID']]
111
111
 
112
112
  if q['VM_QUOTA']['VM'].nil? && d["ID"].to_i != 0
113
- q['VM_QUOTA']['VM'] = {
114
- "VMS" => OneQuotaHelper::LIMIT_DEFAULT,
115
- "VMS_USED" => "0",
116
- "CPU" => OneQuotaHelper::LIMIT_DEFAULT,
117
- "CPU_USED" => "0",
118
- "MEMORY" => OneQuotaHelper::LIMIT_DEFAULT,
119
- "MEMORY_USED" => "0",
120
- "RUNNING_VMS" => OneQuotaHelper::LIMIT_DEFAULT,
121
- "RUNNING_VMS_USED" => "0",
122
- "RUNNING_CPU" => OneQuotaHelper::LIMIT_DEFAULT,
123
- "RUNNING_CPU_USED" => "0",
124
- "RUNNING_MEMORY" => OneQuotaHelper::LIMIT_DEFAULT,
125
- "RUNNING_MEMORY_USED" => "0",
126
- "SYSTEM_DISK_SIZE" => OneQuotaHelper::LIMIT_DEFAULT,
127
- "SYSTEM_DISK_SIZE_USED" => "0"
128
- }
129
-
130
- quotas[d['ID']] = q
113
+ q['VM_QUOTA']['VM'] = OneQuotaHelper::DEFAULT_VM_QUOTA
131
114
  end
132
115
 
133
116
  limit = q['VM_QUOTA']['VM']["VMS"]
@@ -153,24 +136,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
153
136
  q = quotas[d['ID']]
154
137
 
155
138
  if q['VM_QUOTA']['VM'].nil? && d["ID"].to_i != 0
156
- q['VM_QUOTA']['VM'] = {
157
- "VMS" => OneQuotaHelper::LIMIT_DEFAULT,
158
- "VMS_USED" => "0",
159
- "CPU" => OneQuotaHelper::LIMIT_DEFAULT,
160
- "CPU_USED" => "0",
161
- "MEMORY" => OneQuotaHelper::LIMIT_DEFAULT,
162
- "MEMORY_USED" => "0",
163
- "RUNNING_VMS" => OneQuotaHelper::LIMIT_DEFAULT,
164
- "RUNNING_VMS_USED" => "0",
165
- "RUNNING_CPU" => OneQuotaHelper::LIMIT_DEFAULT,
166
- "RUNNING_CPU_USED" => "0",
167
- "RUNNING_MEMORY" => OneQuotaHelper::LIMIT_DEFAULT,
168
- "RUNNING_MEMORY_USED" => "0",
169
- "SYSTEM_DISK_SIZE" => OneQuotaHelper::LIMIT_DEFAULT,
170
- "SYSTEM_DISK_SIZE_USED" => "0"
171
- }
172
-
173
- quotas[d['ID']] = q
139
+ q['VM_QUOTA']['VM'] = OneQuotaHelper::DEFAULT_VM_QUOTA
174
140
  end
175
141
 
176
142
  limit = q['VM_QUOTA']['VM']["MEMORY"]
@@ -199,24 +165,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
199
165
  q = quotas[d['ID']]
200
166
 
201
167
  if q['VM_QUOTA']['VM'].nil? && d["ID"].to_i != 0
202
- q['VM_QUOTA']['VM'] = {
203
- "VMS" => OneQuotaHelper::LIMIT_DEFAULT,
204
- "VMS_USED" => "0",
205
- "CPU" => OneQuotaHelper::LIMIT_DEFAULT,
206
- "CPU_USED" => "0",
207
- "MEMORY" => OneQuotaHelper::LIMIT_DEFAULT,
208
- "MEMORY_USED" => "0",
209
- "RUNNING_VMS" => OneQuotaHelper::LIMIT_DEFAULT,
210
- "RUNNING_VMS_USED" => "0",
211
- "RUNNING_CPU" => OneQuotaHelper::LIMIT_DEFAULT,
212
- "RUNNING_CPU_USED" => "0",
213
- "RUNNING_MEMORY" => OneQuotaHelper::LIMIT_DEFAULT,
214
- "RUNNING_MEMORY_USED" => "0",
215
- "SYSTEM_DISK_SIZE" => OneQuotaHelper::LIMIT_DEFAULT,
216
- "SYSTEM_DISK_SIZE_USED" => "0"
217
- }
218
-
219
- quotas[d['ID']] = q
168
+ q['VM_QUOTA']['VM'] = OneQuotaHelper::DEFAULT_VM_QUOTA
220
169
  end
221
170
 
222
171
  limit = q['VM_QUOTA']['VM']["CPU"]
@@ -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 #
@@ -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 #
@@ -24,66 +24,27 @@ require 'time'
24
24
  class OneHostHelper < OpenNebulaHelper::OneHelper
25
25
 
26
26
  TEMPLATE_XPATH = '//HOST/TEMPLATE'
27
- HYBRID = {
28
- :ec2 => {
29
- :help => <<-EOT.unindent
30
- #-----------------------------------------------------------------------
31
- # Supported EC2 AUTH ATTRIBUTTES:
32
- #
33
- # REGION_NAME = <the name of the ec2 region>
34
- #
35
- # EC2_ACCESS = <Your ec2 access key id>
36
- # EC2_SECRET = <Your ec2 secret key>
37
- #
38
- # CAPACITY = [
39
- # M1_SMALL = <number of machines m1.small>,
40
- # M1_XLARGE = <number of machines m1.xlarge>,
41
- # M1_LARGE = <number of machines m1.large>
42
- # ]
43
- #
44
- # You can set any machine type supported by ec2
45
- # See your ec2_driver.conf for more information
46
- #
47
- #-----------------------------------------------------------------------
48
- EOT
49
- },
50
- :az => {
51
- :help => <<-EOT.unindent
52
- #-----------------------------------------------------------------------
53
- # Mandatory AZURE ATTRIBUTTES:
54
- #
55
- # AZ_SUB = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
56
- # AZ_CLIENT = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
57
- # AZ_SECRET = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
58
- # AZ_TENANT = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
59
- # AZ_REGION = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
60
- #
61
- # CAPACITY=[
62
- # STANDARD_B1LS =<number of machines Standard_B1ls>,
63
- # STANDARD_A1_V2=<number of machines Standard_A1_v2>
64
- # ]
65
- #
66
- # Optional AZURE ATTRIBUTES:
67
- #
68
- # AZ_RGROUP = ""
69
- #
70
- # You can set any machine type supported by azure
71
- # See your az_driver.conf for more information
72
- #
73
- #-----------------------------------------------------------------------
74
- EOT
75
- }
76
- }
77
-
78
27
  VERSION_XPATH = "#{TEMPLATE_XPATH}/VERSION"
79
28
 
80
29
  MONITORING = {
81
- 'FREE_CPU' => 'CAPACITY',
82
- 'FREE_MEMORY' => 'CAPACITY',
83
- 'USED_CPU' => 'CAPACITY',
84
- 'USED_MEMORY' => 'CAPACITY',
85
- 'NETRX' => 'SYSTEM',
86
- 'NETTX' => 'SYSTEM'
30
+ 'FREE_CPU' => 'CAPACITY',
31
+ 'FREE_CPU_FORECAST' => 'CAPACITY',
32
+ 'FREE_CPU_FORECAST_FAR' => 'CAPACITY',
33
+ 'FREE_MEMORY' => 'CAPACITY',
34
+ 'FREE_MEMORY_FORECAST' => 'CAPACITY',
35
+ 'FREE_MEMORY_FORECAST_FAR' => 'CAPACITY',
36
+ 'USED_CPU' => 'CAPACITY',
37
+ 'USED_CPU_FORECAST' => 'CAPACITY',
38
+ 'USED_CPU_FORECAST_FAR' => 'CAPACITY',
39
+ 'USED_MEMORY' => 'CAPACITY',
40
+ 'USED_MEMORY_FORECAST' => 'CAPACITY',
41
+ 'USED_MEMORY_FORECAST_FAR' => 'CAPACITY',
42
+ 'NETRX' => 'SYSTEM',
43
+ 'NETRX_FORECAST' => 'SYSTEM',
44
+ 'NETRX_FORECAST_FAR' => 'SYSTEM',
45
+ 'NETTX' => 'SYSTEM',
46
+ 'NETTX_FORECAST' => 'SYSTEM',
47
+ 'NETTX_FORECAST_FARR' => 'SYSTEM'
87
48
  }
88
49
 
89
50
  def self.rname
@@ -232,16 +193,6 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
232
193
  end
233
194
  end
234
195
 
235
- def set_hybrid(type, path)
236
- k = type.to_sym
237
-
238
- return unless HYBRID.key?(k)
239
-
240
- return OpenNebulaHelper.editor_input(HYBRID[k][:help]) if path.nil?
241
-
242
- File.read(path)
243
- end
244
-
245
196
  NUM_THREADS = 15
246
197
  def sync(host_ids, options)
247
198
  if Process.uid.zero? || Process.gid.zero?
@@ -303,18 +254,11 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
303
254
  next if host['CLUSTER_ID'].to_i != cluster_id
304
255
  end
305
256
 
306
- vm_mad = host['VM_MAD'].downcase
307
257
  state = host['STATE']
308
258
 
309
- # Skip this host from remote syncing if it's a PUBLIC_CLOUD host
310
- next if host['TEMPLATE/PUBLIC_CLOUD'] == 'YES'
311
-
312
259
  # Skip this host from remote syncing if it's OFFLINE
313
260
  next if Host::HOST_STATES[state.to_i] == 'OFFLINE'
314
261
 
315
- # Skip this host if it is a vCenter cluster
316
- next if vm_mad == 'vcenter'
317
-
318
262
  host_version = host['TEMPLATE/VERSION']
319
263
 
320
264
  begin
@@ -432,9 +376,6 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
432
376
 
433
377
  state = host['STATE']
434
378
 
435
- # Skip this host from remote syncing if it's a PUBLIC_CLOUD host
436
- next if host['TEMPLATE/PUBLIC_CLOUD'] == 'YES'
437
-
438
379
  # Skip this host from remote syncing if it's OFFLINE
439
380
  next if Host::HOST_STATES[state.to_i] == 'OFFLINE'
440
381
 
@@ -462,9 +403,6 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
462
403
  # Different available size units
463
404
  units = ['K', 'M', 'G', 'T']
464
405
 
465
- # Attrs that need units conversion
466
- attrs = ['FREE_MEMORY', 'USED_MEMORY']
467
-
468
406
  if unit && !units.include?(unit)
469
407
  STDERR.puts "Invalid unit `#{unit}`"
470
408
  exit(-1)
@@ -507,7 +445,7 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
507
445
  # Parse dcollected data
508
446
  x = monitoring_data.collect {|v| Time.at(v[0].to_i).strftime('%H:%M') }
509
447
  y = monitoring_data.collect do |v|
510
- if attrs.include?(attr)
448
+ if attr.match(/_MEMORY/)
511
449
  # GB is the default unit
512
450
  v = OpenNebulaHelper.bytes_to_unit(v[1].to_i, unit).round(2)
513
451
  "#{v} #{unit}B"
@@ -518,7 +456,7 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
518
456
 
519
457
  title = ''
520
458
  title << "Host #{host.id} #{attr} "
521
- title << "in #{unit}B " if unit && attrs.include?(attr)
459
+ title << "in #{unit}B " if unit && attr.match(/_MEMORY/)
522
460
  title << "from #{start_d} to #{end_d}"
523
461
 
524
462
  x = x.last(n_elems)
@@ -700,7 +638,7 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
700
638
 
701
639
  format = '%-30.30s %36s %4s %10s'
702
640
  CLIHelper.print_header(format(format, 'NAME',
703
- 'IMPORT_ID', 'CPU', 'MEMORY'),
641
+ 'DEPLOY_ID', 'CPU', 'MEMORY'),
704
642
  true)
705
643
 
706
644
  wilds.each do |wild|
@@ -718,8 +656,9 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
718
656
  line[/CPU/]
719
657
  end[0].split('=')[1].tr('"', ' ').strip
720
658
  else
721
- name = wild['DEPLOY_ID']
722
- import = memory = cpu = '-'
659
+ name = wild['VM_NAME']
660
+ import = wild['DEPLOY_ID']
661
+ memory = cpu = '-'
723
662
  end
724
663
 
725
664
  puts format(format, name, import, cpu, memory)
@@ -799,9 +738,12 @@ class OneHostHelper < OpenNebulaHelper::OneHelper
799
738
  node['MEMORY']['FREE'] = mon_node['MEMORY']['FREE']
800
739
  node['MEMORY']['USED'] = mon_node['MEMORY']['USED']
801
740
 
741
+ node['HUGEPAGE'] = [node['HUGEPAGE']].flatten.compact
742
+ mon_node['HUGEPAGE'] = [mon_node['HUGEPAGE']].flatten.compact
743
+
802
744
  node['HUGEPAGE'].each do |hp|
803
745
  mon_hp = mon_node['HUGEPAGE'].find {|x| x['SIZE'] == hp['SIZE'] }
804
- hp['FREE'] = mon_hp['FREE']
746
+ hp['FREE'] = mon_hp['FREE'] unless mon_hp.nil?
805
747
  end
806
748
  end
807
749
  end
@@ -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 #
@@ -22,7 +22,7 @@ class OneImageHelper < OpenNebulaHelper::OneHelper
22
22
 
23
23
  # This list contains prefixes that should skip adding user home to the path
24
24
  # This must have the same content as the case $FROM in downloader.sh
25
- PREFIXES = ['http', 'https', 'ssh', 's3', 'rbd', 'vcenter', 'lxd']
25
+ PREFIXES = ['http', 'https', 'ssh', 's3', 'rbd', 'lxd']
26
26
 
27
27
  TEMPLATE_OPTIONS=[
28
28
  {
@@ -111,23 +111,6 @@ class OneImageHelper < OpenNebulaHelper::OneHelper
111
111
  '(for others, check the documentation) ',
112
112
  :format => String
113
113
  },
114
- {
115
- :name => 'vcenter_disk_type',
116
- :large => '--vcenter_disk_type vcenter_disk_type',
117
- :description => "The vCenter Disk Type of the image \n"<<
118
- ' ' * 31 <<
119
- 'for vCenter: THIN, THICK, ZEROEDTHICK ' \
120
- '(for others, check the documentation) ',
121
- :format => String
122
- },
123
- {
124
- :name => 'vcenter_adapter_type',
125
- :large => '--vcenter_adapter_type vcenter_adapter_type',
126
- :description => 'Controller that will handle this image in ' \
127
- 'vCenter (lsiLogic, ide, busLogic). For other '\
128
- 'values check the documentation',
129
- :format => String
130
- },
131
114
  {
132
115
  :name => 'source',
133
116
  :large => '--source source',
@@ -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 #
@@ -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 #
@@ -96,6 +96,14 @@ class OneMarketPlaceAppHelper < OpenNebulaHelper::OneHelper
96
96
  OpenNebulaHelper.unit_to_str(d['SIZE'].to_i, {}, 'M')
97
97
  end
98
98
 
99
+ column :ARCH, 'OS Architecture', :size =>7 do |d|
100
+ d['TEMPLATE']['ARCHITECTURE']
101
+ end
102
+
103
+ column :HYPERVISOR, 'Hypervisor to use for VMs', :left, :size =>10 do |d|
104
+ d['TEMPLATE']['HYPERVISOR']
105
+ end
106
+
99
107
  column :STAT, 'State of the app', :size=>4 do |d|
100
108
  OneMarketPlaceAppHelper.state_to_str(d['STATE'])
101
109
  end
@@ -121,6 +129,8 @@ class OneMarketPlaceAppHelper < OpenNebulaHelper::OneHelper
121
129
  :NAME,
122
130
  :VERSION,
123
131
  :SIZE,
132
+ :ARCH,
133
+ :HYPERVISOR,
124
134
  :STAT,
125
135
  :TYPE,
126
136
  :REGTIME,
@@ -547,7 +557,7 @@ class OneMarketPlaceAppHelper < OpenNebulaHelper::OneHelper
547
557
  # Iterate all the roles to ask for the marketplace
548
558
  body['roles'].each do |role|
549
559
  # Read role VM template information from OpenNebula
550
- template = Template.new_with_id(role['vm_template'], @client)
560
+ template = Template.new_with_id(role['template_id'], @client)
551
561
  rc = template.info
552
562
 
553
563
  return rc if OpenNebula.is_error?(rc)
@@ -581,7 +591,7 @@ class OneMarketPlaceAppHelper < OpenNebulaHelper::OneHelper
581
591
  # Do not ask for marketplaces, just fill templates information
582
592
  body['roles'].each do |role|
583
593
  # Read role VM template information from OpenNebula
584
- template = Template.new_with_id(role['vm_template'], @client)
594
+ template = Template.new_with_id(role['template_id'], @client)
585
595
  rc = template.info
586
596
 
587
597
  return rc if OpenNebula.is_error?(rc)
@@ -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 #
@@ -20,6 +20,22 @@ class OneQuotaHelper
20
20
 
21
21
  LIMIT_DEFAULT = "-1"
22
22
  LIMIT_UNLIMITED = "-2"
23
+ DEFAULT_VM_QUOTA = {
24
+ "VMS" => LIMIT_DEFAULT,
25
+ "VMS_USED" => "0",
26
+ "CPU" => LIMIT_DEFAULT,
27
+ "CPU_USED" => "0",
28
+ "MEMORY" => LIMIT_DEFAULT,
29
+ "MEMORY_USED" => "0",
30
+ "RUNNING_VMS" => LIMIT_DEFAULT,
31
+ "RUNNING_VMS_USED" => "0",
32
+ "RUNNING_CPU" => LIMIT_DEFAULT,
33
+ "RUNNING_CPU_USED" => "0",
34
+ "RUNNING_MEMORY" => LIMIT_DEFAULT,
35
+ "RUNNING_MEMORY_USED" => "0",
36
+ "SYSTEM_DISK_SIZE" => LIMIT_DEFAULT,
37
+ "SYSTEM_DISK_SIZE_USED" => "0"
38
+ }
23
39
 
24
40
  EDITOR_PATH='/usr/bin/vi'
25
41
 
@@ -214,7 +230,7 @@ class OneQuotaHelper
214
230
  generic_quotas = get_generic_quotas
215
231
 
216
232
  # This initializes the VM quotas for users/groups that don't have any
217
- # resource usage yet. It not applied to oneamdin
233
+ # resource usage yet. It not applied to oneadmin
218
234
  if vm_quotas[0].nil? && resource_id.to_i != 0
219
235
  limit = LIMIT_DEFAULT
220
236
 
@@ -245,7 +261,13 @@ class OneQuotaHelper
245
261
 
246
262
  if !vm_quotas[0].nil?
247
263
  CLIHelper::ShowTable.new(nil, self) do
248
- column :"VMS", "", :right, :size=>17 do |d|
264
+ column :"CLUSTERS", "", :right, :size=>8 do |d|
265
+ if !d.nil?
266
+ d['CLUSTER_IDS']
267
+ end
268
+ end
269
+
270
+ column :"VMS", "", :right, :size=>11 do |d|
249
271
  if !d.nil?
250
272
  elem = 'VMS'
251
273
  limit = d[elem]
@@ -253,14 +275,14 @@ class OneQuotaHelper
253
275
  limit, "VM_QUOTA/VM/#{elem}")
254
276
 
255
277
  if limit == LIMIT_UNLIMITED
256
- "%7d / -" % [d["VMS_USED"]]
278
+ "%4d / -" % [d["VMS_USED"]]
257
279
  else
258
- "%7d / %7d" % [d["VMS_USED"], limit]
280
+ "%4d / %4d" % [d["VMS_USED"], limit]
259
281
  end
260
282
  end
261
283
  end
262
284
 
263
- column :"MEMORY", "", :right, :size=>20 do |d|
285
+ column :"MEMORY", "", :right, :size=>19 do |d|
264
286
  if !d.nil?
265
287
  elem = 'MEMORY'
266
288
  limit = d[elem]
@@ -280,7 +302,7 @@ class OneQuotaHelper
280
302
  end
281
303
  end
282
304
 
283
- column :"CPU", "", :right, :size=>20 do |d|
305
+ column :"CPU", "", :right, :size=>19 do |d|
284
306
  if !d.nil?
285
307
  elem = 'CPU'
286
308
  limit = d[elem]
@@ -295,7 +317,7 @@ class OneQuotaHelper
295
317
  end
296
318
  end
297
319
 
298
- column :"SYSTEM_DISK_SIZE", "", :right, :size=>20 do |d|
320
+ column :"SYSTEM_DISK_SIZE", "", :right, :size=>19 do |d|
299
321
  if !d.nil?
300
322
  elem = 'SYSTEM_DISK_SIZE'
301
323
  limit = d[elem]
@@ -325,6 +347,11 @@ class OneQuotaHelper
325
347
 
326
348
  if !vm_quotas[0].nil?
327
349
  CLIHelper::ShowTable.new(nil, self) do
350
+ column :"CLUSTERS", "", :right, :size=>8 do |d|
351
+ if !d.nil?
352
+ d['CLUSTER_IDS']
353
+ end
354
+ end
328
355
  column :"RUNNING VMS", "", :right, :size=>17 do |d|
329
356
  if !d.nil?
330
357
  elem = 'RUNNING_VMS'
@@ -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 #
@@ -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 #
@@ -37,13 +37,6 @@ EOT
37
37
  :description => "Instance multiple VMs"
38
38
  }
39
39
 
40
- USERDATA={
41
- :name => "userdata",
42
- :large => "--userdata userdata",
43
- :format => String,
44
- :description => "Integrate userdata into the EC2 section"
45
- }
46
-
47
40
  EXTENDED={
48
41
  :name => "extended",
49
42
  :large => "--extended",