opennebula 5.4.15 → 5.5.80.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/NOTICE +1 -1
- data/lib/ActionManager.rb +1 -1
- data/lib/CommandManager.rb +82 -59
- data/lib/DriverExecHelper.rb +1 -1
- data/lib/OpenNebulaDriver.rb +1 -1
- data/lib/VirtualMachineDriver.rb +1 -1
- data/lib/cloud/CloudClient.rb +3 -3
- data/lib/opennebula.rb +2 -2
- data/lib/opennebula/acl.rb +1 -1
- data/lib/opennebula/acl_pool.rb +1 -1
- data/lib/opennebula/client.rb +1 -1
- data/lib/opennebula/cluster.rb +1 -1
- data/lib/opennebula/cluster_pool.rb +1 -1
- data/lib/opennebula/datastore.rb +1 -1
- data/lib/opennebula/datastore_pool.rb +1 -1
- data/lib/opennebula/document.rb +1 -1
- data/lib/opennebula/document_json.rb +1 -1
- data/lib/opennebula/document_pool.rb +1 -1
- data/lib/opennebula/document_pool_json.rb +1 -1
- data/lib/opennebula/error.rb +1 -1
- data/lib/opennebula/group.rb +1 -1
- data/lib/opennebula/group_pool.rb +1 -1
- data/lib/opennebula/host.rb +1 -1
- data/lib/opennebula/host_pool.rb +1 -1
- data/lib/opennebula/image.rb +12 -2
- data/lib/opennebula/image_pool.rb +1 -1
- data/lib/opennebula/ldap_auth.rb +15 -20
- data/lib/opennebula/ldap_auth_spec.rb +1 -1
- data/lib/opennebula/marketplace.rb +1 -1
- data/lib/opennebula/marketplace_pool.rb +1 -1
- data/lib/opennebula/marketplaceapp.rb +14 -2
- data/lib/opennebula/marketplaceapp_pool.rb +1 -1
- data/lib/opennebula/oneflow_client.rb +1 -1
- data/lib/opennebula/pool.rb +1 -1
- data/lib/opennebula/pool_element.rb +24 -3
- data/lib/opennebula/security_group.rb +1 -1
- data/lib/opennebula/security_group_pool.rb +1 -1
- data/lib/opennebula/server_cipher_auth.rb +1 -1
- data/lib/opennebula/server_x509_auth.rb +1 -1
- data/lib/opennebula/ssh_auth.rb +1 -1
- data/lib/opennebula/system.rb +1 -1
- data/lib/opennebula/template.rb +14 -2
- data/lib/opennebula/template_pool.rb +1 -1
- data/lib/opennebula/user.rb +1 -1
- data/lib/opennebula/user_pool.rb +1 -1
- data/lib/opennebula/utils.rb +20 -1
- data/lib/opennebula/vdc.rb +1 -1
- data/lib/opennebula/vdc_pool.rb +1 -1
- data/lib/opennebula/virtual_machine.rb +19 -4
- data/lib/opennebula/virtual_machine_pool.rb +1 -1
- data/lib/opennebula/virtual_network.rb +12 -2
- data/lib/opennebula/virtual_network_pool.rb +1 -1
- data/lib/opennebula/virtual_router.rb +13 -1
- data/lib/opennebula/virtual_router_pool.rb +1 -1
- data/lib/opennebula/vm_group.rb +14 -2
- data/lib/opennebula/vm_group_pool.rb +1 -1
- data/lib/opennebula/x509_auth.rb +1 -1
- data/lib/opennebula/xml_element.rb +10 -1
- data/lib/opennebula/xml_pool.rb +1 -1
- data/lib/opennebula/xml_utils.rb +1 -1
- data/lib/opennebula/zone.rb +67 -1
- data/lib/opennebula/zone_pool.rb +1 -1
- data/lib/vcenter_driver.rb +17 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3d15137240bd50cd5cd0b5b710f2391a9f59a02
|
4
|
+
data.tar.gz: 8e57ca62e09d70ba52f2ed134277b87666815e3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8493c8467c61fe2da156ac062f69ebc85274f8b6de47c0ce49322d7214e7ce0a8ae3c56582d86593040fd93997499b3adbe0c5da6134115926fb1a1de95030fd
|
7
|
+
data.tar.gz: a398e6261cb6c11383b2dcfc395f32c91a9d2d611567156e322305041c2245c856858beae40cb164167535ccf2729fc91274842e8388f4ad9f067c815683b2f1
|
data/NOTICE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
OpenNebula Open Source Project
|
2
2
|
--------------------------------------------------------------------------------
|
3
|
-
Copyright 2002-
|
3
|
+
Copyright 2002-2018, OpenNebula Project, OpenNebula Systems (formerly C12G Labs)
|
4
4
|
--------------------------------------------------------------------------------
|
5
5
|
|
6
6
|
You can find more information about the project, release notes and
|
data/lib/ActionManager.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- */
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, OpenNebula Project, OpenNebula Systems #
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may */
|
4
4
|
# not use this file except in compliance with the License. You may obtain */
|
5
5
|
# a copy of the License at */
|
data/lib/CommandManager.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# --------------------------------------------------------------------------
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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,7 +16,6 @@
|
|
16
16
|
|
17
17
|
require 'pp'
|
18
18
|
require 'open3'
|
19
|
-
require 'stringio'
|
20
19
|
require 'timeout'
|
21
20
|
|
22
21
|
# Generic command executor that holds the code shared by all the command
|
@@ -70,59 +69,30 @@ class GenericCommand
|
|
70
69
|
@logger.call(message, all) if @logger
|
71
70
|
end
|
72
71
|
|
73
|
-
def kill(pid)
|
74
|
-
# executed processes now have its own process group to be able
|
75
|
-
# to kill all children
|
76
|
-
pgid = Process.getpgid(pid)
|
77
|
-
|
78
|
-
# Kill all processes belonging to process group
|
79
|
-
Process.kill("HUP", pgid * -1)
|
80
|
-
end
|
81
|
-
|
82
72
|
# Runs the command
|
83
73
|
def run
|
84
|
-
|
85
|
-
|
86
|
-
std = execute
|
87
|
-
|
88
|
-
# Close standard IO descriptors
|
89
|
-
if @stdin
|
90
|
-
std[0] << @stdin
|
91
|
-
std[0].flush
|
92
|
-
end
|
93
|
-
std[0].close if !std[0].closed?
|
94
|
-
|
95
|
-
@stdout=std[1].read
|
96
|
-
std[1].close if !std[1].closed?
|
97
|
-
|
98
|
-
@stderr=std[2].read
|
99
|
-
std[2].close if !std[2].closed?
|
74
|
+
begin
|
75
|
+
@stdout, @stderr, status = execute
|
100
76
|
|
101
|
-
|
77
|
+
if status && status.exited?
|
78
|
+
@code = status.exitstatus
|
79
|
+
else
|
80
|
+
@code = 255
|
81
|
+
end
|
102
82
|
|
103
|
-
if @code!=0
|
104
|
-
log("Command execution
|
83
|
+
if @code != 0
|
84
|
+
log("Command execution failed (exit code: #{@code}): #{command}")
|
105
85
|
log(@stderr)
|
106
86
|
end
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
if @timeout
|
111
|
-
Timeout.timeout(@timeout, nil, &process)
|
87
|
+
rescue Exception => e
|
88
|
+
if e.is_a?(Timeout::Error)
|
89
|
+
error_message = "Timeout executing #{command}"
|
112
90
|
else
|
113
|
-
|
91
|
+
error_message = "Internal error #{e}"
|
114
92
|
end
|
115
|
-
rescue Timeout::Error
|
116
|
-
error_message = "Timeout executing #{command}"
|
117
|
-
log(error_message)
|
118
93
|
|
94
|
+
log(error_message)
|
119
95
|
@stderr = ERROR_OPEN + "\n" + error_message + "\n" + ERROR_CLOSE
|
120
|
-
|
121
|
-
3.times {|n| std[n].close if !std[n].closed? }
|
122
|
-
|
123
|
-
pid = std[-1].pid
|
124
|
-
self.kill(pid)
|
125
|
-
|
126
96
|
@code = 255
|
127
97
|
end
|
128
98
|
|
@@ -138,19 +108,72 @@ class GenericCommand
|
|
138
108
|
|
139
109
|
private
|
140
110
|
|
141
|
-
# Gets exit code from STDERR
|
142
|
-
def get_exit_code(str)
|
143
|
-
tmp=str.scan(/^ExitCode: (\d*)$/)
|
144
|
-
return nil if !tmp[0]
|
145
|
-
tmp[0][0].to_i
|
146
|
-
end
|
147
|
-
|
148
111
|
# Low level command execution. This method has to be redefined
|
149
112
|
# for each kind of command execution. Returns an array with
|
150
|
-
# +
|
113
|
+
# +stdout+, +stderr+ and +status+ of the command execution.
|
151
114
|
def execute
|
152
115
|
puts "About to execute \"#{@command}\""
|
153
|
-
[
|
116
|
+
['', '', nil]
|
117
|
+
end
|
118
|
+
|
119
|
+
# modified Open3.capture with terminator thread
|
120
|
+
# to deal with timeouts
|
121
|
+
def capture3_timeout(*cmd)
|
122
|
+
if Hash === cmd.last
|
123
|
+
opts = cmd.pop.dup
|
124
|
+
else
|
125
|
+
opts = {}
|
126
|
+
end
|
127
|
+
|
128
|
+
stdin_data = opts.delete(:stdin_data) || ''
|
129
|
+
binmode = opts.delete(:binmode)
|
130
|
+
|
131
|
+
Open3.popen3(*cmd, opts) {|i, o, e, t|
|
132
|
+
if binmode
|
133
|
+
i.binmode
|
134
|
+
o.binmode
|
135
|
+
e.binmode
|
136
|
+
end
|
137
|
+
|
138
|
+
terminator_e = nil
|
139
|
+
mutex = Mutex.new
|
140
|
+
|
141
|
+
out_reader = Thread.new { o.read }
|
142
|
+
err_reader = Thread.new { e.read }
|
143
|
+
terminator = Thread.new {
|
144
|
+
if @timeout and @timeout>0
|
145
|
+
begin
|
146
|
+
pid = Process.getpgid(t.pid) * -1
|
147
|
+
rescue
|
148
|
+
pid = t.pid
|
149
|
+
end
|
150
|
+
|
151
|
+
if pid
|
152
|
+
begin
|
153
|
+
sleep @timeout
|
154
|
+
|
155
|
+
mutex.synchronize do
|
156
|
+
terminator_e = Timeout::Error
|
157
|
+
end
|
158
|
+
ensure
|
159
|
+
end
|
160
|
+
|
161
|
+
Process.kill('TERM', pid)
|
162
|
+
end
|
163
|
+
end
|
164
|
+
}
|
165
|
+
|
166
|
+
i.write stdin_data
|
167
|
+
i.close
|
168
|
+
|
169
|
+
out = [out_reader.value, err_reader.value, t.value]
|
170
|
+
|
171
|
+
mutex.lock
|
172
|
+
terminator.kill
|
173
|
+
raise terminator_e if terminator_e
|
174
|
+
|
175
|
+
out
|
176
|
+
}
|
154
177
|
end
|
155
178
|
|
156
179
|
end
|
@@ -161,8 +184,8 @@ class LocalCommand < GenericCommand
|
|
161
184
|
private
|
162
185
|
|
163
186
|
def execute
|
164
|
-
|
165
|
-
:pgroup => true)
|
187
|
+
capture3_timeout("#{command}",
|
188
|
+
:pgroup => true, :stdin_data => @stdin)
|
166
189
|
end
|
167
190
|
end
|
168
191
|
|
@@ -189,10 +212,10 @@ private
|
|
189
212
|
|
190
213
|
def execute
|
191
214
|
if @stdin
|
192
|
-
|
193
|
-
:pgroup => true)
|
215
|
+
capture3_timeout("ssh #{@host} #{@command}",
|
216
|
+
:pgroup => true, :stdin_data => @stdin)
|
194
217
|
else
|
195
|
-
|
218
|
+
capture3_timeout("ssh -n #{@host} #{@command}",
|
196
219
|
:pgroup => true)
|
197
220
|
end
|
198
221
|
end
|
data/lib/DriverExecHelper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/OpenNebulaDriver.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/VirtualMachineDriver.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/cloud/CloudClient.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
@@ -50,7 +50,7 @@ end
|
|
50
50
|
module CloudClient
|
51
51
|
|
52
52
|
# OpenNebula version
|
53
|
-
VERSION = '5.
|
53
|
+
VERSION = '5.5.80'
|
54
54
|
|
55
55
|
# #########################################################################
|
56
56
|
# Default location for the authentication file
|
@@ -207,7 +207,7 @@ module CloudCLI
|
|
207
207
|
def version_text
|
208
208
|
version=<<EOT
|
209
209
|
OpenNebula #{CloudClient::VERSION}
|
210
|
-
Copyright 2002-
|
210
|
+
Copyright 2002-2018, OpenNebula Project, OpenNebula Systems
|
211
211
|
|
212
212
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
213
213
|
not use this file except in compliance with the License. You may obtain
|
data/lib/opennebula.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
@@ -69,5 +69,5 @@ require 'opennebula/vm_group_pool'
|
|
69
69
|
module OpenNebula
|
70
70
|
|
71
71
|
# OpenNebula version
|
72
|
-
VERSION = '5.
|
72
|
+
VERSION = '5.5.80'
|
73
73
|
end
|
data/lib/opennebula/acl.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/opennebula/acl_pool.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/opennebula/client.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/opennebula/cluster.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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-2018, 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 #
|
data/lib/opennebula/datastore.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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-2018, 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 #
|
data/lib/opennebula/document.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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-2018, 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-2018, 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-2018, 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 #
|
data/lib/opennebula/error.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/opennebula/group.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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-2018, 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 #
|
data/lib/opennebula/host.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/opennebula/host_pool.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
data/lib/opennebula/image.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|
@@ -38,7 +38,9 @@ module OpenNebula
|
|
38
38
|
:rename => "image.rename",
|
39
39
|
:snapshotdelete => "image.snapshotdelete",
|
40
40
|
:snapshotrevert => "image.snapshotrevert",
|
41
|
-
:snapshotflatten=> "image.snapshotflatten"
|
41
|
+
:snapshotflatten=> "image.snapshotflatten",
|
42
|
+
:lock => "image.lock",
|
43
|
+
:unlock => "image.unlock"
|
42
44
|
}
|
43
45
|
|
44
46
|
IMAGE_STATES=%w{INIT READY USED DISABLED LOCKED ERROR CLONE DELETE
|
@@ -296,6 +298,14 @@ module OpenNebula
|
|
296
298
|
self['GID'].to_i
|
297
299
|
end
|
298
300
|
|
301
|
+
def lock(level)
|
302
|
+
return call(IMAGE_METHODS[:lock], @pe_id, level)
|
303
|
+
end
|
304
|
+
|
305
|
+
def unlock()
|
306
|
+
return call(IMAGE_METHODS[:unlock], @pe_id)
|
307
|
+
end
|
308
|
+
|
299
309
|
def public?
|
300
310
|
if self['PERMISSIONS/GROUP_U'] == "1" || self['PERMISSIONS/OTHER_U'] == "1"
|
301
311
|
true
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -------------------------------------------------------------------------- #
|
2
|
-
# Copyright 2002-
|
2
|
+
# Copyright 2002-2018, 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 #
|