opennebula-cli 6.10.4 → 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 +2 -18
  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 -125
  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 #
@@ -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)
@@ -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",