oca 3.0.1
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.
- data/lib/OpenNebula/Acl.rb +266 -0
- data/lib/OpenNebula/AclPool.rb +52 -0
- data/lib/OpenNebula/Group.rb +148 -0
- data/lib/OpenNebula/GroupPool.rb +52 -0
- data/lib/OpenNebula/Host.rb +142 -0
- data/lib/OpenNebula/HostPool.rb +52 -0
- data/lib/OpenNebula/Image.rb +214 -0
- data/lib/OpenNebula/ImagePool.rb +72 -0
- data/lib/OpenNebula/Pool.rb +245 -0
- data/lib/OpenNebula/Template.rb +146 -0
- data/lib/OpenNebula/TemplatePool.rb +71 -0
- data/lib/OpenNebula/User.rb +117 -0
- data/lib/OpenNebula/UserPool.rb +52 -0
- data/lib/OpenNebula/VirtualMachine.rb +289 -0
- data/lib/OpenNebula/VirtualMachinePool.rb +117 -0
- data/lib/OpenNebula/VirtualNetwork.rb +166 -0
- data/lib/OpenNebula/VirtualNetworkPool.rb +72 -0
- data/lib/OpenNebula/XMLUtils.rb +340 -0
- data/lib/OpenNebula.rb +144 -0
- data/lib/oca.rb +1 -0
- data/test/HostPool_spec.rb +82 -0
- data/test/Host_spec.rb +220 -0
- data/test/UserPool_spec.rb +66 -0
- data/test/User_spec.rb +146 -0
- data/test/VirtualMachinePool_spec.rb +118 -0
- data/test/VirtualMachine_spec.rb +473 -0
- data/test/VirtualNetworkPool_spec.rb +88 -0
- data/test/VirtualNetwork_spec.rb +156 -0
- data/test/fixtures/host.xml +38 -0
- data/test/fixtures/hostpool.xml +52 -0
- data/test/fixtures/user.xml +6 -0
- data/test/fixtures/userpool.xml +14 -0
- data/test/fixtures/vm.xml +59 -0
- data/test/fixtures/vmpool.xml +92 -0
- data/test/fixtures/vnet.xml +23 -0
- data/test/fixtures/vnetpool.xml +20 -0
- data/test/helpers/MockClient.rb +49 -0
- metadata +131 -0
@@ -0,0 +1,118 @@
|
|
1
|
+
$: << '../' \
|
2
|
+
<< './'
|
3
|
+
|
4
|
+
require 'OpenNebula'
|
5
|
+
require 'helpers/MockClient'
|
6
|
+
|
7
|
+
module OpenNebula
|
8
|
+
|
9
|
+
describe "VirtualMachinePool using NOKOGIRI" do
|
10
|
+
before(:all) do
|
11
|
+
NOKOGIRI=true
|
12
|
+
|
13
|
+
client = MockClient.new()
|
14
|
+
@vm_pool = VirtualMachinePool.new(client)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should update the VM_POOL info" do
|
18
|
+
rc = @vm_pool.info()
|
19
|
+
rc.nil?.should eql(true)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should iterate the VM_POOL elements and get info from them using to_hash" do
|
23
|
+
vm_pool = @vm_pool.to_hash
|
24
|
+
|
25
|
+
vm_pool['VM_POOL']['VM'].each{ |vm|
|
26
|
+
if vm['ID'] == 6
|
27
|
+
vm.name.should eql('vm-example')
|
28
|
+
vm.state.should eql(3)
|
29
|
+
vm.state_str.should eql('ACTIVE')
|
30
|
+
vm['UID'].should eql('0')
|
31
|
+
vm['USERNAME'].should eql('oneadmin')
|
32
|
+
vm['LAST_POLL'].should eql('1277910006')
|
33
|
+
vm['HISTORY']['HOSTNAME'].should eql('dummyhost')
|
34
|
+
vm['HISTORY']['STIME'].should eql('1277375186')
|
35
|
+
vm['HISTORY']['REASON'].should eql('0')
|
36
|
+
elsif vm['ID'] == 8
|
37
|
+
vm.name.should eql('vmext')
|
38
|
+
vm.state.should eql(4)
|
39
|
+
vm.state_str.should eql('STOPPED')
|
40
|
+
vm['UID'].should eql('0')
|
41
|
+
vm['USERNAME'].should eql('oneadmin')
|
42
|
+
vm['LAST_POLL'].should eql('1277910006')
|
43
|
+
vm['HISTORY']['HOSTNAME'].should eql('thost')
|
44
|
+
vm['HISTORY']['STIME'].should eql('1277377556')
|
45
|
+
vm['HISTORY']['REASON'].should eql('0')
|
46
|
+
end
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should iterate the VM_POOL elements and get info from them" do
|
51
|
+
rc = @vm_pool.each{ |vm|
|
52
|
+
vm.class.to_s.should eql("OpenNebula::VirtualMachine")
|
53
|
+
if vm.id == 6
|
54
|
+
vm.name.should eql('vm-example')
|
55
|
+
vm.state.should eql(3)
|
56
|
+
vm.state_str.should eql('ACTIVE')
|
57
|
+
vm['UID'].should eql('0')
|
58
|
+
vm['USERNAME'].should eql('oneadmin')
|
59
|
+
vm['LAST_POLL'].should eql('1277910006')
|
60
|
+
vm['HISTORY/HOSTNAME'].should eql('dummyhost')
|
61
|
+
vm['HISTORY/STIME'].should eql('1277375186')
|
62
|
+
vm['HISTORY/REASON'].should eql('0')
|
63
|
+
elsif vm.id == 8
|
64
|
+
vm.name.should eql('vmext')
|
65
|
+
vm.state.should eql(4)
|
66
|
+
vm.state_str.should eql('STOPPED')
|
67
|
+
vm['UID'].should eql('0')
|
68
|
+
vm['USERNAME'].should eql('oneadmin')
|
69
|
+
vm['LAST_POLL'].should eql('1277910006')
|
70
|
+
vm['HISTORY/HOSTNAME'].should eql('thost')
|
71
|
+
vm['HISTORY/STIME'].should eql('1277377556')
|
72
|
+
vm['HISTORY/REASON'].should eql('0')
|
73
|
+
end
|
74
|
+
}
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "VirtualMachinePool using REXML" do
|
79
|
+
before(:all) do
|
80
|
+
NOKOGIRI=false
|
81
|
+
|
82
|
+
client = MockClient.new()
|
83
|
+
@vm_pool = VirtualMachinePool.new(client)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should update the VM_POOL info" do
|
87
|
+
rc = @vm_pool.info()
|
88
|
+
rc.nil?.should eql(true)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should iterate the VM_POOL elements and get info from them" do
|
92
|
+
rc = @vm_pool.each{ |vm|
|
93
|
+
vm.class.to_s.should eql("OpenNebula::VirtualMachine")
|
94
|
+
if vm.id == 6
|
95
|
+
vm.name.should eql('vm-example')
|
96
|
+
vm.state.should eql(3)
|
97
|
+
vm.state_str.should eql('ACTIVE')
|
98
|
+
vm['UID'].should eql('0')
|
99
|
+
vm['USERNAME'].should eql('oneadmin')
|
100
|
+
vm['LAST_POLL'].should eql('1277910006')
|
101
|
+
vm['HISTORY/HOSTNAME'].should eql('dummyhost')
|
102
|
+
vm['HISTORY/STIME'].should eql('1277375186')
|
103
|
+
vm['HISTORY/REASON'].should eql('0')
|
104
|
+
elsif vm.id == 8
|
105
|
+
vm.name.should eql('vmext')
|
106
|
+
vm.state.should eql(4)
|
107
|
+
vm.state_str.should eql('STOPPED')
|
108
|
+
vm['UID'].should eql('0')
|
109
|
+
vm['USERNAME'].should eql('oneadmin')
|
110
|
+
vm['LAST_POLL'].should eql('1277910006')
|
111
|
+
vm['HISTORY/HOSTNAME'].should eql('thost')
|
112
|
+
vm['HISTORY/STIME'].should eql('1277377556')
|
113
|
+
vm['HISTORY/REASON'].should eql('0')
|
114
|
+
end
|
115
|
+
}
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,473 @@
|
|
1
|
+
$: << '../' \
|
2
|
+
<< './'
|
3
|
+
|
4
|
+
require 'OpenNebula'
|
5
|
+
require 'helpers/MockClient'
|
6
|
+
|
7
|
+
module OpenNebula
|
8
|
+
|
9
|
+
describe "VirtualMachine using NOKOGIRI" do
|
10
|
+
before(:all) do
|
11
|
+
NOKOGIRI=true
|
12
|
+
|
13
|
+
@xml = VirtualMachine.build_xml(6)
|
14
|
+
|
15
|
+
client = MockClient.new()
|
16
|
+
@vm = VirtualMachine.new(@xml,client)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should create a Nokogiri Node" do
|
20
|
+
@xml.class.to_s.should eql('Nokogiri::XML::NodeSet')
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should allocate the new VM" do
|
24
|
+
@vm.allocate(nil)
|
25
|
+
|
26
|
+
@vm.id.should eql(6)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should update the VM info" do
|
30
|
+
@vm.info()
|
31
|
+
|
32
|
+
@vm.id.should eql(6)
|
33
|
+
@vm.name.should eql('vm-example')
|
34
|
+
@vm.state.should eql(3)
|
35
|
+
@vm.state_str.should eql('ACTIVE')
|
36
|
+
@vm.lcm_state.should eql(3)
|
37
|
+
@vm.lcm_state_str.should eql('RUNNING')
|
38
|
+
@vm.status.should eql('runn')
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should deploy the VNET" do
|
42
|
+
rc = @vm.deploy(nil)
|
43
|
+
|
44
|
+
rc.should eql(nil)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should migrate the VNET" do
|
48
|
+
rc = @vm.migrate(nil)
|
49
|
+
|
50
|
+
rc.should eql(nil)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should live_migrate the VNET" do
|
54
|
+
rc = @vm.live_migrate(nil)
|
55
|
+
|
56
|
+
rc.should eql(nil)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should shutdown the VNET" do
|
60
|
+
rc = @vm.shutdown()
|
61
|
+
|
62
|
+
rc.should eql(nil)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should cancel the VNET" do
|
66
|
+
rc = @vm.cancel()
|
67
|
+
|
68
|
+
rc.should eql(nil)
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should hold the VNET" do
|
72
|
+
rc = @vm.hold()
|
73
|
+
|
74
|
+
rc.should eql(nil)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should release the VNET" do
|
78
|
+
rc = @vm.release()
|
79
|
+
|
80
|
+
rc.should eql(nil)
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should stop the VNET" do
|
84
|
+
rc = @vm.stop()
|
85
|
+
|
86
|
+
rc.should eql(nil)
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should suspend the VNET" do
|
90
|
+
rc = @vm.suspend()
|
91
|
+
|
92
|
+
rc.should eql(nil)
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should resume the VNET" do
|
96
|
+
rc = @vm.resume()
|
97
|
+
|
98
|
+
rc.should eql(nil)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should finalize the VNET" do
|
102
|
+
rc = @vm.finalize()
|
103
|
+
|
104
|
+
rc.should eql(nil)
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should restart the VNET" do
|
108
|
+
rc = @vm.restart()
|
109
|
+
|
110
|
+
rc.should eql(nil)
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should access an attribute using []" do
|
114
|
+
@vm['NAME'].should eql('vm-example')
|
115
|
+
@vm['DEPLOY_ID'].should eql('dummy')
|
116
|
+
@vm['TEMPLATE/MEMORY'].should eql('512')
|
117
|
+
@vm['ID'].should eql('6')
|
118
|
+
@vm['NAME'].should eql('vm-example')
|
119
|
+
@vm['LCM_STATE'].should eql('3')
|
120
|
+
@vm['DEPLOY_ID'].should eql('dummy')
|
121
|
+
@vm['TEMPLATE/MEMORY'].should eql('512')
|
122
|
+
@vm['TEMPLATE/CONTEXT/DNS'].should eql('192.169.1.4')
|
123
|
+
@vm['TEMPLATE/DISK/SIZE'].should eql('1024')
|
124
|
+
@vm['HISTORY/HOSTNAME'].should eql('dummyhost')
|
125
|
+
@vm['HISTORY/PSTIME'].should eql('1277375186')
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should access an attribute using to_hash" do
|
129
|
+
vm_hash = @vm.to_hash
|
130
|
+
|
131
|
+
vm_hash['VM']['NAME'].should eql('vm-example')
|
132
|
+
vm_hash['VM']['DEPLOY_ID'].should eql('dummy')
|
133
|
+
vm_hash['VM']['TEMPLATE']['MEMORY'].should eql('512')
|
134
|
+
vm_hash['VM']['ID'].should eql('6')
|
135
|
+
vm_hash['VM']['NAME'].should eql('vm-example')
|
136
|
+
vm_hash['VM']['LCM_STATE'].should eql('3')
|
137
|
+
vm_hash['VM']['DEPLOY_ID'].should eql('dummy')
|
138
|
+
vm_hash['VM']['TEMPLATE']['MEMORY'].should eql('512')
|
139
|
+
vm_hash['VM']['TEMPLATE']['CONTEXT']['DNS'].should eql('192.169.1.4')
|
140
|
+
vm_hash['VM']['TEMPLATE']['DISK'][1]['SIZE'].should eql('1024')
|
141
|
+
vm_hash['VM']['HISTORY']['HOSTNAME'].should eql('dummyhost')
|
142
|
+
vm_hash['VM']['HISTORY']['PSTIME'].should eql('1277375186')
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
describe "VirtualMachine using REXML" do
|
147
|
+
before(:all) do
|
148
|
+
NOKOGIRI=false
|
149
|
+
|
150
|
+
@xml = VirtualMachine.build_xml(6)
|
151
|
+
|
152
|
+
client = MockClient.new()
|
153
|
+
@vm = VirtualMachine.new(@xml,client)
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should create a REXML Element" do
|
157
|
+
@xml.class.to_s.should eql('REXML::Element')
|
158
|
+
end
|
159
|
+
|
160
|
+
it "should allocate the new VM" do
|
161
|
+
@vm.allocate(nil)
|
162
|
+
|
163
|
+
@vm.id.should eql(6)
|
164
|
+
end
|
165
|
+
|
166
|
+
it "should update the VM info" do
|
167
|
+
@vm.info()
|
168
|
+
|
169
|
+
@vm.id.should eql(6)
|
170
|
+
@vm.name.should eql('vm-example')
|
171
|
+
@vm.state.should eql(3)
|
172
|
+
@vm.state_str.should eql('ACTIVE')
|
173
|
+
@vm.lcm_state.should eql(3)
|
174
|
+
@vm.lcm_state_str.should eql('RUNNING')
|
175
|
+
@vm.status.should eql('runn')
|
176
|
+
end
|
177
|
+
|
178
|
+
it "should deploy the VNET" do
|
179
|
+
rc = @vm.deploy(nil)
|
180
|
+
|
181
|
+
rc.should eql(nil)
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should migrate the VNET" do
|
185
|
+
rc = @vm.migrate(nil)
|
186
|
+
|
187
|
+
rc.should eql(nil)
|
188
|
+
end
|
189
|
+
|
190
|
+
it "should live_migrate the VNET" do
|
191
|
+
rc = @vm.live_migrate(nil)
|
192
|
+
|
193
|
+
rc.should eql(nil)
|
194
|
+
end
|
195
|
+
|
196
|
+
it "should shutdown the VNET" do
|
197
|
+
rc = @vm.shutdown()
|
198
|
+
|
199
|
+
rc.should eql(nil)
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should cancel the VNET" do
|
203
|
+
rc = @vm.cancel()
|
204
|
+
|
205
|
+
rc.should eql(nil)
|
206
|
+
end
|
207
|
+
|
208
|
+
it "should hold the VNET" do
|
209
|
+
rc = @vm.hold()
|
210
|
+
|
211
|
+
rc.should eql(nil)
|
212
|
+
end
|
213
|
+
|
214
|
+
it "should release the VNET" do
|
215
|
+
rc = @vm.release()
|
216
|
+
|
217
|
+
rc.should eql(nil)
|
218
|
+
end
|
219
|
+
|
220
|
+
it "should stop the VNET" do
|
221
|
+
rc = @vm.stop()
|
222
|
+
|
223
|
+
rc.should eql(nil)
|
224
|
+
end
|
225
|
+
|
226
|
+
it "should suspend the VNET" do
|
227
|
+
rc = @vm.suspend()
|
228
|
+
|
229
|
+
rc.should eql(nil)
|
230
|
+
end
|
231
|
+
|
232
|
+
it "should resume the VNET" do
|
233
|
+
rc = @vm.resume()
|
234
|
+
|
235
|
+
rc.should eql(nil)
|
236
|
+
end
|
237
|
+
|
238
|
+
it "should finalize the VNET" do
|
239
|
+
rc = @vm.finalize()
|
240
|
+
|
241
|
+
rc.should eql(nil)
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should restart the VNET" do
|
245
|
+
rc = @vm.restart()
|
246
|
+
|
247
|
+
rc.should eql(nil)
|
248
|
+
end
|
249
|
+
|
250
|
+
it "should access an attribute using []" do
|
251
|
+
@vm['NAME'].should eql('vm-example')
|
252
|
+
@vm['DEPLOY_ID'].should eql('dummy')
|
253
|
+
@vm['TEMPLATE/MEMORY'].should eql('512')
|
254
|
+
@vm['ID'].should eql('6')
|
255
|
+
@vm['NAME'].should eql('vm-example')
|
256
|
+
@vm['LCM_STATE'].should eql('3')
|
257
|
+
@vm['DEPLOY_ID'].should eql('dummy')
|
258
|
+
@vm['TEMPLATE/MEMORY'].should eql('512')
|
259
|
+
@vm['TEMPLATE/CONTEXT/DNS'].should eql('192.169.1.4')
|
260
|
+
@vm['TEMPLATE/DISK/SIZE'].should eql('1024')
|
261
|
+
@vm['HISTORY/HOSTNAME'].should eql('dummyhost')
|
262
|
+
@vm['HISTORY/PSTIME'].should eql('1277375186')
|
263
|
+
end
|
264
|
+
|
265
|
+
it "should access an attribute using to_hash" do
|
266
|
+
vm_hash = @vm.to_hash
|
267
|
+
|
268
|
+
vm_hash['VM']['NAME'].should eql('vm-example')
|
269
|
+
vm_hash['VM']['DEPLOY_ID'].should eql('dummy')
|
270
|
+
vm_hash['VM']['TEMPLATE']['MEMORY'].should eql('512')
|
271
|
+
vm_hash['VM']['ID'].should eql('6')
|
272
|
+
vm_hash['VM']['NAME'].should eql('vm-example')
|
273
|
+
vm_hash['VM']['LCM_STATE'].should eql('3')
|
274
|
+
vm_hash['VM']['DEPLOY_ID'].should eql('dummy')
|
275
|
+
vm_hash['VM']['TEMPLATE']['MEMORY'].should eql('512')
|
276
|
+
vm_hash['VM']['TEMPLATE']['CONTEXT']['DNS'].should eql('192.169.1.4')
|
277
|
+
vm_hash['VM']['TEMPLATE']['DISK'][1]['SIZE'].should eql('1024')
|
278
|
+
vm_hash['VM']['HISTORY']['HOSTNAME'].should eql('dummyhost')
|
279
|
+
vm_hash['VM']['HISTORY']['PSTIME'].should eql('1277375186')
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
|
284
|
+
describe "VirtualMachine using NOKOGIRI without id" do
|
285
|
+
before(:all) do
|
286
|
+
NOKOGIRI=true
|
287
|
+
|
288
|
+
@xml = VirtualMachine.build_xml()
|
289
|
+
|
290
|
+
client = MockClient.new()
|
291
|
+
@vm = VirtualMachine.new(@xml,client)
|
292
|
+
end
|
293
|
+
|
294
|
+
it "should create a Nokogiri Node" do
|
295
|
+
@xml.class.to_s.should eql('Nokogiri::XML::NodeSet')
|
296
|
+
end
|
297
|
+
|
298
|
+
it "should deploy the VNET" do
|
299
|
+
rc = @vm.deploy(nil)
|
300
|
+
|
301
|
+
OpenNebula.is_error?(rc).should eql(true)
|
302
|
+
end
|
303
|
+
|
304
|
+
it "should migrate the VNET" do
|
305
|
+
rc = @vm.migrate(nil)
|
306
|
+
|
307
|
+
OpenNebula.is_error?(rc).should eql(true)
|
308
|
+
end
|
309
|
+
|
310
|
+
it "should live_migrate the VNET" do
|
311
|
+
rc = @vm.live_migrate(nil)
|
312
|
+
|
313
|
+
OpenNebula.is_error?(rc).should eql(true)
|
314
|
+
end
|
315
|
+
|
316
|
+
it "should shutdown the VNET" do
|
317
|
+
rc = @vm.shutdown()
|
318
|
+
|
319
|
+
OpenNebula.is_error?(rc).should eql(true)
|
320
|
+
end
|
321
|
+
|
322
|
+
it "should cancel the VNET" do
|
323
|
+
rc = @vm.cancel()
|
324
|
+
|
325
|
+
OpenNebula.is_error?(rc).should eql(true)
|
326
|
+
end
|
327
|
+
|
328
|
+
it "should hold the VNET" do
|
329
|
+
rc = @vm.hold()
|
330
|
+
|
331
|
+
OpenNebula.is_error?(rc).should eql(true)
|
332
|
+
end
|
333
|
+
|
334
|
+
it "should release the VNET" do
|
335
|
+
rc = @vm.release()
|
336
|
+
|
337
|
+
OpenNebula.is_error?(rc).should eql(true)
|
338
|
+
end
|
339
|
+
|
340
|
+
it "should stop the VNET" do
|
341
|
+
rc = @vm.stop()
|
342
|
+
|
343
|
+
OpenNebula.is_error?(rc).should eql(true)
|
344
|
+
end
|
345
|
+
|
346
|
+
it "should suspend the VNET" do
|
347
|
+
rc = @vm.suspend()
|
348
|
+
|
349
|
+
OpenNebula.is_error?(rc).should eql(true)
|
350
|
+
end
|
351
|
+
|
352
|
+
it "should resume the VNET" do
|
353
|
+
rc = @vm.resume()
|
354
|
+
|
355
|
+
OpenNebula.is_error?(rc).should eql(true)
|
356
|
+
end
|
357
|
+
|
358
|
+
it "should finalize the VNET" do
|
359
|
+
rc = @vm.finalize()
|
360
|
+
|
361
|
+
OpenNebula.is_error?(rc).should eql(true)
|
362
|
+
end
|
363
|
+
|
364
|
+
it "should restart the VNET" do
|
365
|
+
rc = @vm.restart()
|
366
|
+
|
367
|
+
OpenNebula.is_error?(rc).should eql(true)
|
368
|
+
end
|
369
|
+
|
370
|
+
it "should get Error getting info" do
|
371
|
+
rc = @vm.info()
|
372
|
+
|
373
|
+
OpenNebula.is_error?(rc).should eql(true)
|
374
|
+
@vm.id.should eql(nil)
|
375
|
+
@vm.name.should eql(nil)
|
376
|
+
end
|
377
|
+
end
|
378
|
+
|
379
|
+
describe "VirtualMachine using REXML without id" do
|
380
|
+
before(:all) do
|
381
|
+
NOKOGIRI=false
|
382
|
+
|
383
|
+
@xml = VirtualMachine.build_xml()
|
384
|
+
|
385
|
+
client = MockClient.new()
|
386
|
+
@vm = VirtualMachine.new(@xml,client)
|
387
|
+
end
|
388
|
+
|
389
|
+
it "should create a REXML Element" do
|
390
|
+
@xml.class.to_s.should eql('REXML::Element')
|
391
|
+
end
|
392
|
+
|
393
|
+
it "should deploy the VNET" do
|
394
|
+
rc = @vm.deploy(nil)
|
395
|
+
|
396
|
+
OpenNebula.is_error?(rc).should eql(true)
|
397
|
+
end
|
398
|
+
|
399
|
+
it "should migrate the VNET" do
|
400
|
+
rc = @vm.migrate(nil)
|
401
|
+
|
402
|
+
OpenNebula.is_error?(rc).should eql(true)
|
403
|
+
end
|
404
|
+
|
405
|
+
it "should live_migrate the VNET" do
|
406
|
+
rc = @vm.live_migrate(nil)
|
407
|
+
|
408
|
+
OpenNebula.is_error?(rc).should eql(true)
|
409
|
+
end
|
410
|
+
|
411
|
+
it "should shutdown the VNET" do
|
412
|
+
rc = @vm.shutdown()
|
413
|
+
|
414
|
+
OpenNebula.is_error?(rc).should eql(true)
|
415
|
+
end
|
416
|
+
|
417
|
+
it "should cancel the VNET" do
|
418
|
+
rc = @vm.cancel()
|
419
|
+
|
420
|
+
OpenNebula.is_error?(rc).should eql(true)
|
421
|
+
end
|
422
|
+
|
423
|
+
it "should hold the VNET" do
|
424
|
+
rc = @vm.hold()
|
425
|
+
|
426
|
+
OpenNebula.is_error?(rc).should eql(true)
|
427
|
+
end
|
428
|
+
|
429
|
+
it "should release the VNET" do
|
430
|
+
rc = @vm.release()
|
431
|
+
|
432
|
+
OpenNebula.is_error?(rc).should eql(true)
|
433
|
+
end
|
434
|
+
|
435
|
+
it "should stop the VNET" do
|
436
|
+
rc = @vm.stop()
|
437
|
+
|
438
|
+
OpenNebula.is_error?(rc).should eql(true)
|
439
|
+
end
|
440
|
+
|
441
|
+
it "should suspend the VNET" do
|
442
|
+
rc = @vm.suspend()
|
443
|
+
|
444
|
+
OpenNebula.is_error?(rc).should eql(true)
|
445
|
+
end
|
446
|
+
|
447
|
+
it "should resume the VNET" do
|
448
|
+
rc = @vm.resume()
|
449
|
+
|
450
|
+
OpenNebula.is_error?(rc).should eql(true)
|
451
|
+
end
|
452
|
+
|
453
|
+
it "should finalize the VNET" do
|
454
|
+
rc = @vm.finalize()
|
455
|
+
|
456
|
+
OpenNebula.is_error?(rc).should eql(true)
|
457
|
+
end
|
458
|
+
|
459
|
+
it "should restart the VNET" do
|
460
|
+
rc = @vm.restart()
|
461
|
+
|
462
|
+
OpenNebula.is_error?(rc).should eql(true)
|
463
|
+
end
|
464
|
+
|
465
|
+
it "should get Error getting info" do
|
466
|
+
rc = @vm.info()
|
467
|
+
|
468
|
+
OpenNebula.is_error?(rc).should eql(true)
|
469
|
+
@vm.id.should eql(nil)
|
470
|
+
@vm.name.should eql(nil)
|
471
|
+
end
|
472
|
+
end
|
473
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
$: << '../' \
|
2
|
+
<< './'
|
3
|
+
|
4
|
+
require 'OpenNebula'
|
5
|
+
require 'helpers/MockClient'
|
6
|
+
|
7
|
+
module OpenNebula
|
8
|
+
|
9
|
+
describe "VirtualNetwork using NOKOGIRI" do
|
10
|
+
before(:all) do
|
11
|
+
NOKOGIRI=true
|
12
|
+
|
13
|
+
client = MockClient.new()
|
14
|
+
@vnet_pool = VirtualNetworkPool.new(client)
|
15
|
+
end
|
16
|
+
|
17
|
+
#it "should get nil, trying to get a hash, if the info method was not called before" do
|
18
|
+
# vnet_hash = @vnet_pool.to_hash
|
19
|
+
# vnet_hash.nil?.should eql(true)
|
20
|
+
#end
|
21
|
+
|
22
|
+
it "should update the VNET_POOL info" do
|
23
|
+
rc = @vnet_pool.info()
|
24
|
+
rc.nil?.should eql(true)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should iterate the VNET_POOL elements and get info from them" do
|
28
|
+
rc = @vnet_pool.each{ |vn|
|
29
|
+
vn.class.to_s.should eql("OpenNebula::VirtualNetwork")
|
30
|
+
if vn.id == 4
|
31
|
+
vn.name.should eql('Red LAN')
|
32
|
+
vn['UID'].should eql('0')
|
33
|
+
vn['USERNAME'].should eql('oneadmin')
|
34
|
+
vn['TYPE'].should eql('0')
|
35
|
+
vn['BRIDGE'].should eql('vbr0')
|
36
|
+
vn['TOTAL_LEASES'].should eql('0')
|
37
|
+
elsif vn.id == 5
|
38
|
+
vn.name.should eql('Public')
|
39
|
+
vn['UID'].should eql('0')
|
40
|
+
vn['USERNAME'].should eql('oneadmin')
|
41
|
+
vn['TYPE'].should eql('0')
|
42
|
+
vn['BRIDGE'].should eql('vbr0')
|
43
|
+
vn['TOTAL_LEASES'].should eql('1')
|
44
|
+
end
|
45
|
+
}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "VirtualNetwork using REXML" do
|
50
|
+
before(:all) do
|
51
|
+
NOKOGIRI=false
|
52
|
+
|
53
|
+
client = MockClient.new()
|
54
|
+
@vnet_pool = VirtualNetworkPool.new(client)
|
55
|
+
end
|
56
|
+
|
57
|
+
#it "should get nil, trying to get a hash, if the info method was not called before" do
|
58
|
+
# vnet_hash = @vnet_pool.to_hash
|
59
|
+
# vnet_hash.nil?.should eql(true)
|
60
|
+
#end
|
61
|
+
|
62
|
+
it "should update the VNET_POOL info" do
|
63
|
+
rc = @vnet_pool.info()
|
64
|
+
rc.nil?.should eql(true)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should iterate the VNET_POOL elements and get info from them" do
|
68
|
+
rc = @vnet_pool.each{ |vn|
|
69
|
+
vn.class.to_s.should eql("OpenNebula::VirtualNetwork")
|
70
|
+
if vn.id == 4
|
71
|
+
vn.name.should eql('Red LAN')
|
72
|
+
vn['UID'].should eql('0')
|
73
|
+
vn['USERNAME'].should eql('oneadmin')
|
74
|
+
vn['TYPE'].should eql('0')
|
75
|
+
vn['BRIDGE'].should eql('vbr0')
|
76
|
+
vn['TOTAL_LEASES'].should eql('0')
|
77
|
+
elsif vn.id == 5
|
78
|
+
vn.name.should eql('Public')
|
79
|
+
vn['UID'].should eql('0')
|
80
|
+
vn['USERNAME'].should eql('oneadmin')
|
81
|
+
vn['TYPE'].should eql('0')
|
82
|
+
vn['BRIDGE'].should eql('vbr0')
|
83
|
+
vn['TOTAL_LEASES'].should eql('1')
|
84
|
+
end
|
85
|
+
}
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|