opennebula-cli 7.0.2 → 7.2.0
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 +1 -1
- data/bin/oneacl +1 -1
- data/bin/onebackupjob +1 -1
- data/bin/onecluster +1 -1
- data/bin/onedatastore +1 -1
- data/bin/oneflow +1 -1
- data/bin/oneflow-template +1 -1
- data/bin/oneform +150 -0
- data/bin/onegroup +1 -1
- data/bin/onehook +1 -1
- data/bin/onehost +1 -1
- data/bin/oneimage +1 -1
- data/bin/oneirb +1 -1
- data/bin/onelog +1 -1
- data/bin/onemarket +1 -1
- data/bin/onemarketapp +4 -1
- data/bin/onesecgroup +1 -1
- data/bin/oneshowback +1 -1
- data/bin/onetemplate +16 -5
- data/bin/oneuser +3 -2
- data/bin/onevdc +1 -1
- data/bin/onevm +51 -6
- data/bin/onevmgroup +1 -1
- data/bin/onevnet +1 -1
- data/bin/onevntemplate +3 -2
- data/bin/onevrouter +1 -1
- data/bin/onezone +12 -6
- data/lib/cli_helper.rb +153 -1
- data/lib/command_parser.rb +1 -1
- data/lib/one_helper/oneacct_helper.rb +3 -1
- data/lib/one_helper/oneacl_helper.rb +3 -1
- data/lib/one_helper/onebackupjob_helper.rb +3 -1
- data/lib/one_helper/onecluster_helper.rb +4 -1
- data/lib/one_helper/onedatastore_helper.rb +4 -1
- data/lib/one_helper/oneflow_helper.rb +1 -1
- data/lib/one_helper/oneflowtemplate_helper.rb +1 -1
- data/lib/one_helper/oneform_helper.rb +255 -0
- data/lib/one_helper/onegroup_helper.rb +133 -98
- data/lib/one_helper/onehook_helper.rb +5 -2
- data/lib/one_helper/onehost_helper.rb +6 -3
- data/lib/one_helper/oneimage_helper.rb +3 -1
- data/lib/one_helper/onemarket_helper.rb +3 -1
- data/lib/one_helper/onemarketapp_helper.rb +4 -1
- data/lib/one_helper/onequota_helper.rb +105 -22
- data/lib/one_helper/onesecgroup_helper.rb +3 -1
- data/lib/one_helper/onetemplate_helper.rb +3 -2
- data/lib/one_helper/oneuser_helper.rb +165 -156
- data/lib/one_helper/onevdc_helper.rb +3 -1
- data/lib/one_helper/onevm_helper.rb +6 -2
- data/lib/one_helper/onevmgroup_helper.rb +3 -1
- data/lib/one_helper/onevnet_helper.rb +16 -5
- data/lib/one_helper/onevntemplate_helper.rb +3 -2
- data/lib/one_helper/onevrouter_helper.rb +3 -1
- data/lib/one_helper/onezone_helper.rb +16 -5
- data/lib/one_helper.rb +53 -18
- data/share/schemas/xsd/group.xsd +8 -0
- data/share/schemas/xsd/group_pool.xsd +8 -0
- data/share/schemas/xsd/opennebula_configuration.xsd +6 -10
- data/share/schemas/xsd/shared.xsd +8 -0
- data/share/schemas/xsd/user.xsd +8 -0
- data/share/schemas/xsd/user_pool.xsd +8 -0
- data/share/schemas/xsd/vm.xsd +20 -0
- data/share/schemas/xsd/vnet.xsd +2 -1
- data/share/schemas/xsd/vnet_pool.xsd +1 -0
- metadata +7 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
|
2
|
-
# Copyright 2002-
|
|
2
|
+
# Copyright 2002-2026, 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 #
|
|
@@ -16,14 +16,18 @@
|
|
|
16
16
|
|
|
17
17
|
require 'one_helper'
|
|
18
18
|
require 'one_helper/onequota_helper'
|
|
19
|
+
require 'opennebula/group'
|
|
20
|
+
require 'opennebula/group_pool'
|
|
19
21
|
|
|
22
|
+
# CLI helper for onegroup command
|
|
20
23
|
class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
24
|
+
|
|
21
25
|
def self.rname
|
|
22
|
-
|
|
26
|
+
'GROUP'
|
|
23
27
|
end
|
|
24
28
|
|
|
25
29
|
def self.conf_file
|
|
26
|
-
|
|
30
|
+
'onegroup.yaml'
|
|
27
31
|
end
|
|
28
32
|
|
|
29
33
|
def create_resource(options, &block)
|
|
@@ -34,12 +38,12 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
|
34
38
|
if OpenNebula.is_error?(rc)
|
|
35
39
|
return -1, rc.message
|
|
36
40
|
else
|
|
37
|
-
puts "ID: #{group.id
|
|
41
|
+
puts "ID: #{group.id}"
|
|
38
42
|
end
|
|
39
43
|
|
|
40
44
|
puts "Creating default ACL rules: #{GROUP_DEFAULT_ACLS}" if options[:verbose]
|
|
41
45
|
|
|
42
|
-
exit_code
|
|
46
|
+
exit_code, _msg = group.create_default_acls
|
|
43
47
|
|
|
44
48
|
if OpenNebula.is_error?(exit_code)
|
|
45
49
|
return -1, exit_code.message
|
|
@@ -60,23 +64,32 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
|
60
64
|
return 0
|
|
61
65
|
end
|
|
62
66
|
|
|
63
|
-
def format_pool(
|
|
67
|
+
def format_pool(_options)
|
|
64
68
|
config_file = self.class.table_conf
|
|
65
69
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
# rubocop:disable Style/FormatStringToken
|
|
71
|
+
CLIHelper::ShowTable.new(config_file, self) do
|
|
72
|
+
pool_default_quotas = lambda do |path|
|
|
73
|
+
limit = @data.dsearch('/GROUP_POOL/DEFAULT_GROUP_QUOTAS/'+path)
|
|
74
|
+
limit = OneQuotaHelper::LIMIT_UNLIMITED if limit.nil? || limit.empty?
|
|
75
|
+
limit
|
|
69
76
|
end
|
|
70
77
|
|
|
71
|
-
|
|
78
|
+
quotas_proc = lambda do
|
|
72
79
|
if !defined?(@quotas)
|
|
73
80
|
quotas = @data.dsearch('GROUP_POOL/QUOTAS')
|
|
74
|
-
@quotas =
|
|
81
|
+
@quotas = {}
|
|
75
82
|
|
|
76
|
-
if
|
|
83
|
+
if !quotas.nil?
|
|
77
84
|
quotas = [quotas].flatten
|
|
78
85
|
|
|
79
86
|
quotas.each do |q|
|
|
87
|
+
# Fix rare bug, when there are multiple VM_QUOTA values
|
|
88
|
+
vm_quota = q['VM_QUOTA']
|
|
89
|
+
if vm_quota.is_a?(Array)
|
|
90
|
+
q['VM_QUOTA'] = vm_quota.max_by {|h| h.size }
|
|
91
|
+
end
|
|
92
|
+
|
|
80
93
|
@quotas[q['ID']] = q
|
|
81
94
|
end
|
|
82
95
|
end
|
|
@@ -84,112 +97,141 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
|
84
97
|
@quotas
|
|
85
98
|
end
|
|
86
99
|
|
|
87
|
-
column :ID,
|
|
88
|
-
d[
|
|
100
|
+
column :ID, 'ONE identifier for the Group', :size=>4 do |d|
|
|
101
|
+
d['ID']
|
|
89
102
|
end
|
|
90
103
|
|
|
91
|
-
column :NAME,
|
|
92
|
-
d[
|
|
104
|
+
column :NAME, 'Name of the Group', :left, :size=>29 do |d|
|
|
105
|
+
d['NAME']
|
|
93
106
|
end
|
|
94
107
|
|
|
95
|
-
column :USERS,
|
|
96
|
-
ids = d[
|
|
108
|
+
column :USERS, 'Number of Users in this group', :size=>5 do |d|
|
|
109
|
+
ids = d['USERS']['ID']
|
|
97
110
|
|
|
98
111
|
case ids
|
|
99
112
|
when String
|
|
100
|
-
|
|
113
|
+
'1'
|
|
101
114
|
when Array
|
|
102
115
|
ids.size
|
|
103
116
|
else
|
|
104
|
-
|
|
117
|
+
'0'
|
|
105
118
|
end
|
|
106
119
|
end
|
|
107
120
|
|
|
108
|
-
column :VMS
|
|
121
|
+
column :VMS, 'Number of VMS', :size=>9 do |d|
|
|
109
122
|
begin
|
|
110
|
-
q =
|
|
123
|
+
q = quotas_proc.call[d['ID']]['VM_QUOTA']['VM']
|
|
111
124
|
|
|
112
|
-
if q
|
|
113
|
-
q
|
|
125
|
+
if q.nil? && d['ID'].to_i != 0
|
|
126
|
+
q = OneQuotaHelper::DEFAULT_VM_QUOTA
|
|
114
127
|
end
|
|
115
128
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
limit = OneQuotaHelper::LIMIT_UNLIMITED if limit.nil? || limit == ""
|
|
129
|
+
# In case of multiple quotas, use the global quota or the first
|
|
130
|
+
if q.is_a?(Array)
|
|
131
|
+
global_h = q.find {|h| h['CLUSTER_IDS'].nil? || h['CLUSTER_IDS'].empty? }
|
|
132
|
+
q = global_h || q[0]
|
|
121
133
|
end
|
|
122
134
|
|
|
135
|
+
limit = q['VMS']
|
|
136
|
+
limit = pool_default_quotas.call('VM_QUOTA/VM/VMS') if limit == OneQuotaHelper::LIMIT_DEFAULT
|
|
137
|
+
|
|
123
138
|
if limit == OneQuotaHelper::LIMIT_UNLIMITED
|
|
124
|
-
|
|
139
|
+
format('%3d / -', q['VMS_USED'])
|
|
125
140
|
else
|
|
126
|
-
|
|
141
|
+
format('%3d / %3d', q['VMS_USED'], limit)
|
|
127
142
|
end
|
|
128
|
-
|
|
129
143
|
rescue NoMethodError
|
|
130
|
-
|
|
144
|
+
'-'
|
|
131
145
|
end
|
|
132
146
|
end
|
|
133
147
|
|
|
134
|
-
column :MEMORY,
|
|
148
|
+
column :MEMORY, 'Total memory allocated to user VMs', :size=>15 do |d|
|
|
135
149
|
begin
|
|
136
|
-
q =
|
|
150
|
+
q = quotas_proc.call[d['ID']]['VM_QUOTA']['VM']
|
|
137
151
|
|
|
138
|
-
if q
|
|
139
|
-
q
|
|
152
|
+
if q.nil? && d['ID'].to_i != 0
|
|
153
|
+
q = OneQuotaHelper::DEFAULT_VM_QUOTA
|
|
140
154
|
end
|
|
141
155
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
limit = OneQuotaHelper::LIMIT_UNLIMITED if limit.nil? || limit == ""
|
|
156
|
+
# In case of multiple quotas, use the global quota or the first
|
|
157
|
+
if q.is_a?(Array)
|
|
158
|
+
global_h = q.find {|h| h['CLUSTER_IDS'].nil? || h['CLUSTER_IDS'].empty? }
|
|
159
|
+
q = global_h || q[0]
|
|
147
160
|
end
|
|
148
161
|
|
|
162
|
+
limit = q['MEMORY']
|
|
163
|
+
limit = pool_default_quotas.call('VM_QUOTA/VM/MEMORY') if limit == OneQuotaHelper::LIMIT_DEFAULT
|
|
164
|
+
|
|
149
165
|
if limit == OneQuotaHelper::LIMIT_UNLIMITED
|
|
150
|
-
|
|
151
|
-
|
|
166
|
+
format('%6s / -',
|
|
167
|
+
OpenNebulaHelper.unit_to_str(q['MEMORY_USED'].to_i, {}, 'M'))
|
|
152
168
|
else
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
169
|
+
format('%6s / %6s',
|
|
170
|
+
OpenNebulaHelper.unit_to_str(q['MEMORY_USED'].to_i, {}, 'M'),
|
|
171
|
+
OpenNebulaHelper.unit_to_str(limit.to_i, {}, 'M'))
|
|
156
172
|
end
|
|
157
|
-
|
|
158
173
|
rescue NoMethodError
|
|
159
|
-
|
|
174
|
+
'-'
|
|
160
175
|
end
|
|
161
176
|
end
|
|
162
177
|
|
|
163
|
-
column :CPU,
|
|
178
|
+
column :CPU, 'Total CPU allocated to user VMs', :size=>11 do |d|
|
|
164
179
|
begin
|
|
165
|
-
q =
|
|
180
|
+
q = quotas_proc.call[d['ID']]['VM_QUOTA']['VM']
|
|
166
181
|
|
|
167
|
-
if q
|
|
168
|
-
q
|
|
182
|
+
if q.nil? && d['ID'].to_i != 0
|
|
183
|
+
q = OneQuotaHelper::DEFAULT_VM_QUOTA
|
|
169
184
|
end
|
|
170
185
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
limit = OneQuotaHelper::LIMIT_UNLIMITED if limit.nil? || limit == ""
|
|
186
|
+
# In case of multiple quotas, use the global quota or the first
|
|
187
|
+
if q.is_a?(Array)
|
|
188
|
+
global_h = q.find {|h| h['CLUSTER_IDS'].nil? || h['CLUSTER_IDS'].empty? }
|
|
189
|
+
q = global_h || q[0]
|
|
176
190
|
end
|
|
177
191
|
|
|
192
|
+
limit = q['CPU']
|
|
193
|
+
limit = pool_default_quotas.call('VM_QUOTA/VM/CPU') if limit == OneQuotaHelper::LIMIT_DEFAULT
|
|
194
|
+
|
|
178
195
|
if limit == OneQuotaHelper::LIMIT_UNLIMITED
|
|
179
|
-
|
|
196
|
+
format('%3.1f / -', q['CPU_USED'])
|
|
180
197
|
else
|
|
181
|
-
|
|
198
|
+
format('%3.1f / %3.1f', q['CPU_USED'], limit)
|
|
199
|
+
end
|
|
200
|
+
rescue NoMethodError
|
|
201
|
+
'-'
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
column :PCI, 'Total PCIs allocated to user VMs', :size=>9 do |d|
|
|
206
|
+
begin
|
|
207
|
+
q = quotas_proc.call[d['ID']]['VM_QUOTA']['VM']
|
|
208
|
+
|
|
209
|
+
if q.nil? && d['ID'].to_i != 0
|
|
210
|
+
q = OneQuotaHelper::DEFAULT_VM_QUOTA
|
|
182
211
|
end
|
|
183
212
|
|
|
213
|
+
# In case of multiple quotas, use the global quota or the first
|
|
214
|
+
if q.is_a?(Array)
|
|
215
|
+
global_q = q.find {|h| h['CLUSTER_IDS'].nil? || h['CLUSTER_IDS'].empty? }
|
|
216
|
+
q = global_q || q[0]
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
limit = q['PCI_DEV']
|
|
220
|
+
limit = pool_default_quotas.call('VM_QUOTA/VM/PCI_DEV') if limit == OneQuotaHelper::LIMIT_DEFAULT
|
|
221
|
+
|
|
222
|
+
if limit == OneQuotaHelper::LIMIT_UNLIMITED
|
|
223
|
+
format('%3s / -', q['PCI_DEV_USED'])
|
|
224
|
+
else
|
|
225
|
+
format('%3s / %3s', q['PCI_DEV_USED'], limit)
|
|
226
|
+
end
|
|
184
227
|
rescue NoMethodError
|
|
185
|
-
|
|
228
|
+
'-'
|
|
186
229
|
end
|
|
187
230
|
end
|
|
188
231
|
|
|
189
|
-
default :ID, :NAME, :USERS, :VMS, :MEMORY, :CPU
|
|
232
|
+
default :ID, :NAME, :USERS, :VMS, :MEMORY, :CPU, :PCI
|
|
190
233
|
end
|
|
191
|
-
|
|
192
|
-
table
|
|
234
|
+
# rubocop:enable Style/FormatStringToken
|
|
193
235
|
end
|
|
194
236
|
|
|
195
237
|
# Parses a OpenNebula template string and turns it into a Hash
|
|
@@ -200,21 +242,21 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
|
200
242
|
variable_reg =/\s*(#{name_reg})\s*=\s*/
|
|
201
243
|
single_variable_reg =/^#{variable_reg}([^\[]+?)(#.*)?$/
|
|
202
244
|
|
|
203
|
-
tmpl
|
|
204
|
-
tmpl['user']
|
|
245
|
+
tmpl = {}
|
|
246
|
+
tmpl['user'] = {}
|
|
205
247
|
|
|
206
|
-
tmpl_str.scan(single_variable_reg) do |
|
|
248
|
+
tmpl_str.scan(single_variable_reg) do |m|
|
|
207
249
|
key = m[0].strip.downcase
|
|
208
|
-
value = m[1].strip.gsub("
|
|
250
|
+
value = m[1].strip.gsub('"', '')
|
|
209
251
|
case key
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
252
|
+
when 'admin_user_name'
|
|
253
|
+
tmpl['user']['name']=value
|
|
254
|
+
when 'admin_user_password'
|
|
255
|
+
tmpl['user']['password']=value
|
|
256
|
+
when 'admin_user_auth_driver'
|
|
257
|
+
tmpl['user']['auth_driver']=value
|
|
258
|
+
else
|
|
259
|
+
tmpl[key] = value
|
|
218
260
|
end
|
|
219
261
|
end
|
|
220
262
|
|
|
@@ -223,7 +265,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
|
223
265
|
|
|
224
266
|
private
|
|
225
267
|
|
|
226
|
-
def factory(id=nil)
|
|
268
|
+
def factory(id = nil)
|
|
227
269
|
if id
|
|
228
270
|
OpenNebula::Group.new_with_id(id, @client)
|
|
229
271
|
else
|
|
@@ -232,39 +274,33 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
|
232
274
|
end
|
|
233
275
|
end
|
|
234
276
|
|
|
235
|
-
def factory_pool(
|
|
236
|
-
#TBD OpenNebula::UserPool.new(@client, user_flag)
|
|
277
|
+
def factory_pool(_user_flag = -2)
|
|
237
278
|
@group_pool = OpenNebula::GroupPool.new(@client)
|
|
238
|
-
return @group_pool
|
|
239
279
|
end
|
|
240
280
|
|
|
241
|
-
def format_resource(group,
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
str="%-15s: %-20s"
|
|
245
|
-
str_h1="%-80s"
|
|
281
|
+
def format_resource(group, _options = {})
|
|
282
|
+
str='%-15s: %-20s'
|
|
283
|
+
str_h1='%-80s'
|
|
246
284
|
|
|
247
285
|
CLIHelper.print_header(str_h1 % "GROUP #{group['ID']} INFORMATION")
|
|
248
|
-
puts str
|
|
249
|
-
puts str
|
|
286
|
+
puts format(str, 'ID', group.id.to_s)
|
|
287
|
+
puts format(str, 'NAME', group.name)
|
|
250
288
|
puts
|
|
251
289
|
|
|
252
|
-
CLIHelper.print_header(str_h1 %
|
|
290
|
+
CLIHelper.print_header(str_h1 % 'GROUP TEMPLATE', false)
|
|
253
291
|
puts group.template_str
|
|
254
292
|
puts
|
|
255
293
|
|
|
256
|
-
admin_ids = group.admin_ids
|
|
257
|
-
|
|
258
294
|
CLIHelper::ShowTable.new(nil, self) do
|
|
259
|
-
column :"USER ID",
|
|
295
|
+
column :"USER ID", '', :right, :size=>7 do |d|
|
|
260
296
|
d
|
|
261
297
|
end
|
|
262
298
|
|
|
263
|
-
column :
|
|
264
|
-
if
|
|
265
|
-
|
|
299
|
+
column :ADMIN, '', :left, :size=>5 do |d|
|
|
300
|
+
if group.admin_ids.include?(d)
|
|
301
|
+
'*'
|
|
266
302
|
else
|
|
267
|
-
|
|
303
|
+
''
|
|
268
304
|
end
|
|
269
305
|
end
|
|
270
306
|
end.show(group.user_ids, {})
|
|
@@ -273,11 +309,10 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
|
273
309
|
|
|
274
310
|
default_quotas = nil
|
|
275
311
|
|
|
276
|
-
group.each('/GROUP/DEFAULT_GROUP_QUOTAS') {
|
|
277
|
-
default_quotas = elem
|
|
278
|
-
}
|
|
312
|
+
group.each('/GROUP/DEFAULT_GROUP_QUOTAS') {|elem| default_quotas = elem }
|
|
279
313
|
|
|
280
314
|
helper = OneQuotaHelper.new(@client)
|
|
281
315
|
helper.format_quota(group_hash['GROUP'], default_quotas, group.id)
|
|
282
316
|
end
|
|
317
|
+
|
|
283
318
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
|
2
|
-
# Copyright 2002-
|
|
2
|
+
# Copyright 2002-2026, 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 #
|
|
@@ -15,7 +15,10 @@
|
|
|
15
15
|
#--------------------------------------------------------------------------- #
|
|
16
16
|
|
|
17
17
|
require 'one_helper'
|
|
18
|
-
require '
|
|
18
|
+
require 'opennebula/hook'
|
|
19
|
+
require 'opennebula/hook_pool'
|
|
20
|
+
require 'opennebula/hook_log'
|
|
21
|
+
require 'base64'
|
|
19
22
|
|
|
20
23
|
# implements onehook command
|
|
21
24
|
class OneHookHelper < OpenNebulaHelper::OneHelper
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
|
2
|
-
# Copyright 2002-
|
|
2
|
+
# Copyright 2002-2026, 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 #
|
|
@@ -14,11 +14,14 @@
|
|
|
14
14
|
# limitations under the License. #
|
|
15
15
|
#--------------------------------------------------------------------------- #
|
|
16
16
|
|
|
17
|
+
require 'time'
|
|
18
|
+
require 'fileutils'
|
|
17
19
|
require 'HostSyncManager'
|
|
18
20
|
require 'one_helper'
|
|
19
21
|
require 'one_helper/onevm_helper'
|
|
20
|
-
require '
|
|
21
|
-
require '
|
|
22
|
+
require 'opennebula/host'
|
|
23
|
+
require 'opennebula/host_pool'
|
|
24
|
+
require 'opennebula/system'
|
|
22
25
|
|
|
23
26
|
# implements onehost command
|
|
24
27
|
class OneHostHelper < OpenNebulaHelper::OneHelper
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
|
2
|
-
# Copyright 2002-
|
|
2
|
+
# Copyright 2002-2026, 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 #
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
require 'one_helper'
|
|
18
18
|
require 'one_helper/onevm_helper'
|
|
19
|
+
require 'opennebula/image'
|
|
20
|
+
require 'opennebula/image_pool'
|
|
19
21
|
|
|
20
22
|
# CLI helper for oneimage command
|
|
21
23
|
class OneImageHelper < OpenNebulaHelper::OneHelper
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
|
2
|
-
# Copyright 2002-
|
|
2
|
+
# Copyright 2002-2026, 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 #
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
#--------------------------------------------------------------------------- #
|
|
16
16
|
|
|
17
17
|
require 'one_helper'
|
|
18
|
+
require 'opennebula/marketplace'
|
|
19
|
+
require 'opennebula/marketplace_pool'
|
|
18
20
|
|
|
19
21
|
class OneMarketPlaceHelper < OpenNebulaHelper::OneHelper
|
|
20
22
|
MARKETPLACE = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
|
2
|
-
# Copyright 2002-
|
|
2
|
+
# Copyright 2002-2026, 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 #
|
|
@@ -15,9 +15,12 @@
|
|
|
15
15
|
#--------------------------------------------------------------------------- #
|
|
16
16
|
|
|
17
17
|
require 'one_helper'
|
|
18
|
+
require 'opennebula/marketplaceapp'
|
|
19
|
+
require 'opennebula/marketplaceapp_pool'
|
|
18
20
|
require 'opennebula/marketplaceapp_ext'
|
|
19
21
|
require 'opennebula/template_ext'
|
|
20
22
|
require 'opennebula/virtual_machine_ext'
|
|
23
|
+
require 'opennebula/flow/service_template'
|
|
21
24
|
require 'opennebula/flow/service_template_ext'
|
|
22
25
|
|
|
23
26
|
require 'securerandom'
|