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.
- checksums.yaml +4 -4
- data/bin/oneacct +5 -18
- data/bin/oneacl +2 -18
- data/bin/onebackupjob +2 -18
- data/bin/onecluster +36 -18
- data/bin/onedatastore +2 -18
- data/bin/oneflow +2 -18
- data/bin/oneflow-template +8 -24
- data/bin/onegroup +2 -18
- data/bin/onehook +2 -18
- data/bin/onehost +4 -48
- data/bin/oneimage +2 -18
- data/bin/oneirb +2 -61
- data/bin/onelog +3 -22
- data/bin/onemarket +2 -18
- data/bin/onemarketapp +2 -30
- data/bin/onesecgroup +2 -18
- data/bin/oneshowback +2 -18
- data/bin/onetemplate +2 -19
- data/bin/oneuser +2 -18
- data/bin/onevdc +2 -18
- data/bin/onevm +21 -19
- data/bin/onevmgroup +2 -18
- data/bin/onevnet +2 -18
- data/bin/onevntemplate +2 -18
- data/bin/onevrouter +13 -20
- data/bin/onezone +2 -18
- data/lib/cli_helper.rb +1 -1
- data/lib/command_parser.rb +1 -1
- data/lib/one_helper/oneacct_helper.rb +10 -2
- data/lib/one_helper/oneacl_helper.rb +1 -1
- data/lib/one_helper/onebackupjob_helper.rb +1 -1
- data/lib/one_helper/onecluster_helper.rb +49 -1
- data/lib/one_helper/onedatastore_helper.rb +1 -1
- data/lib/one_helper/oneflow_helper.rb +1 -1
- data/lib/one_helper/oneflowtemplate_helper.rb +17 -17
- data/lib/one_helper/onegroup_helper.rb +4 -55
- data/lib/one_helper/onehook_helper.rb +1 -1
- data/lib/one_helper/onehost_helper.rb +29 -87
- data/lib/one_helper/oneimage_helper.rb +2 -19
- data/lib/one_helper/onemarket_helper.rb +1 -1
- data/lib/one_helper/onemarketapp_helper.rb +13 -3
- data/lib/one_helper/onequota_helper.rb +35 -8
- data/lib/one_helper/onesecgroup_helper.rb +1 -1
- data/lib/one_helper/onetemplate_helper.rb +1 -8
- data/lib/one_helper/oneuser_helper.rb +41 -75
- data/lib/one_helper/onevdc_helper.rb +1 -1
- data/lib/one_helper/onevm_helper.rb +119 -102
- data/lib/one_helper/onevmgroup_helper.rb +1 -1
- data/lib/one_helper/onevnet_helper.rb +1 -1
- data/lib/one_helper/onevntemplate_helper.rb +1 -1
- data/lib/one_helper/onevrouter_helper.rb +1 -1
- data/lib/one_helper/onezone_helper.rb +10 -23
- data/lib/one_helper.rb +34 -156
- data/share/schemas/xsd/acct.xsd +2 -0
- data/share/schemas/xsd/cluster.xsd +21 -0
- data/share/schemas/xsd/datastore.xsd +1 -13
- data/share/schemas/xsd/group.xsd +11 -122
- data/share/schemas/xsd/group_pool.xsd +8 -120
- data/share/schemas/xsd/host.xsd +19 -21
- data/share/schemas/xsd/image.xsd +0 -1
- data/share/schemas/xsd/monitoring_data.xsd +0 -8
- data/share/schemas/xsd/opennebula_configuration.xsd +23 -1
- data/share/schemas/xsd/plan.xsd +29 -0
- data/share/schemas/xsd/requirements.xsd +45 -0
- data/share/schemas/xsd/scheduler_driver_action.xsd +24 -0
- data/share/schemas/xsd/shared.xsd +67 -0
- data/share/schemas/xsd/user.xsd +10 -122
- data/share/schemas/xsd/user_pool.xsd +8 -120
- data/share/schemas/xsd/vm.xsd +37 -28
- data/share/schemas/xsd/vm_pool.xsd +0 -12
- data/share/schemas/xsd/vm_pool_extended.xsd +12 -0
- data/share/schemas/xsd/vmtemplate.xsd +0 -3
- data/share/schemas/xsd/vnet.xsd +0 -5
- data/share/schemas/xsd/vnet_pool_extended.xsd +12 -0
- metadata +11 -9
- data/bin/onevcenter +0 -471
- data/lib/one_helper/onevcenter_helper.rb +0 -523
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
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
|
183
|
+
# Get user inputs values from user
|
184
184
|
#
|
185
|
-
# @param
|
185
|
+
# @param user_inputs [Hash] User inputs from template
|
186
186
|
#
|
187
|
-
# @return [Hash]
|
188
|
-
def
|
187
|
+
# @return [Hash] User Input values
|
188
|
+
def user_inputs(user_inputs)
|
189
189
|
# rubocop:disable Layout/LineLength
|
190
|
-
return if
|
190
|
+
return if user_inputs.nil? || user_inputs.empty?
|
191
191
|
|
192
192
|
ret = {}
|
193
|
-
ret['
|
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
|
199
|
+
# Get user input values from user
|
200
200
|
#
|
201
|
-
# @param role [Hash] Service role with
|
201
|
+
# @param role [Hash] Service role with user inputs
|
202
202
|
#
|
203
|
-
# @return [Hash] Role with
|
204
|
-
def
|
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
|
-
|
208
|
+
role_with_user_inputs = false
|
209
209
|
|
210
210
|
roles.each do |role|
|
211
|
-
next unless role.key?('
|
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!(
|
220
|
-
|
219
|
+
role.merge!(user_inputs(role['user_inputs']))
|
220
|
+
role_with_user_inputs = true
|
221
221
|
end
|
222
222
|
|
223
|
-
ret['roles'] = roles if
|
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) &&
|
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-
|
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-
|
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-
|
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'
|
82
|
-
'
|
83
|
-
'
|
84
|
-
'
|
85
|
-
'
|
86
|
-
'
|
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
|
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 &&
|
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
|
-
'
|
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['
|
722
|
-
import =
|
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-
|
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', '
|
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-
|
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-
|
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['
|
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['
|
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-
|
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
|
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 :"
|
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
|
-
"%
|
278
|
+
"%4d / -" % [d["VMS_USED"]]
|
257
279
|
else
|
258
|
-
"%
|
280
|
+
"%4d / %4d" % [d["VMS_USED"], limit]
|
259
281
|
end
|
260
282
|
end
|
261
283
|
end
|
262
284
|
|
263
|
-
column :"MEMORY", "", :right, :size=>
|
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=>
|
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=>
|
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-
|
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-
|
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",
|