3 # NEPI, a framework to manage network experiments
4 # Copyright (C) 2013 INRIA
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License version 2 as
8 # published by the Free Software Foundation;
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 # Author: Julien Tribino <julien.tribino@inria.fr>
21 from nepi.execution.resource import ResourceFactory, ResourceManager, \
22 ResourceAction, ResourceState
23 from nepi.execution.ec import ExperimentController
25 from nepi.resources.omf.node import OMFNode
26 from nepi.resources.omf.application import OMFApplication
27 from nepi.resources.omf.interface import OMFWifiInterface
28 from nepi.resources.omf.channel import OMFChannel
29 from nepi.resources.omf.omf_api_factory import OMFAPIFactory
31 from nepi.util.timefuncs import *
36 class OMFVLCWrongCaseWithNonCritical(unittest.TestCase):
41 self.ec = ExperimentController(exp_id = str(OMFVLCWrongCaseWithNonCritical.id))
42 OMFVLCWrongCaseWithNonCritical.id += 1
44 self.node1 = self.ec.register_resource("omf::Node")
45 self.ec.set(self.node1, 'hostname', 'wlab12')
46 self.ec.set(self.node1, 'xmppUser', "nepi")
47 self.ec.set(self.node1, 'xmppServer', "xmpp-plexus.onelab.eu")
48 self.ec.set(self.node1, 'xmppPort', "5222")
49 self.ec.set(self.node1, 'xmppPassword', "1234")
51 self.iface1 = self.ec.register_resource("omf::WifiInterface")
52 self.ec.set(self.iface1, 'name', "wlan0")
53 self.ec.set(self.iface1, 'mode', "adhoc")
54 self.ec.set(self.iface1, 'hw_mode', "g")
55 self.ec.set(self.iface1, 'essid', "vlcexp")
56 self.ec.set(self.iface1, 'ip', "10.0.0.12/24")
58 self.app1 = self.ec.register_resource("omf::Application")
59 self.ec.set(self.app1, 'appid', 'Kill#1')
60 self.ec.set(self.app1, 'command', "/usr/bin/test -1")
61 self.ec.set(self.app1, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
63 self.ec.register_connection(self.app1, self.node1)
64 self.ec.register_connection(self.node1, self.iface1)
66 def test_deploy_with_node_nc(self):
67 self.node2 = self.ec.register_resource("omf::Node")
68 self.ec.set(self.node2, "critical", False)
70 self.iface2 = self.ec.register_resource("omf::WifiInterface")
71 self.ec.set(self.iface2, 'name', "wlan0")
72 self.ec.set(self.iface2, 'mode', "adhoc")
73 self.ec.set(self.iface2, 'hw_mode', "g")
74 self.ec.set(self.iface2, 'essid', "vlcexp")
75 self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
77 self.channel = self.ec.register_resource("omf::Channel")
78 self.ec.set(self.channel, 'channel', "6")
80 self.ec.register_connection(self.iface1, self.channel)
81 self.ec.register_connection(self.node2, self.iface2)
82 self.ec.register_connection(self.iface2, self.channel)
84 self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "5s")
88 self.ec.wait_finished([self.app1])
90 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.FAILED)
91 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.FAILED)
95 self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
96 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
97 self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
98 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
99 self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
100 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
102 def test_deploy_with_node_and_iface_nc(self):
103 self.node2 = self.ec.register_resource("omf::Node")
104 self.ec.set(self.node2, "critical", False)
106 self.iface2 = self.ec.register_resource("omf::WifiInterface")
107 self.ec.set(self.node2, "critical", False)
108 self.ec.set(self.iface2, 'name', "wlan0")
109 self.ec.set(self.iface2, 'mode', "adhoc")
110 self.ec.set(self.iface2, 'hw_mode', "g")
111 self.ec.set(self.iface2, 'essid', "vlcexp")
112 self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
114 self.channel = self.ec.register_resource("omf::Channel")
115 self.ec.set(self.channel, 'channel', "6")
117 self.ec.register_connection(self.iface1, self.channel)
118 self.ec.register_connection(self.node2, self.iface2)
119 self.ec.register_connection(self.iface2, self.channel)
121 self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "5s")
125 self.ec.wait_finished([self.app1])
127 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.FAILED)
128 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.FAILED)
132 self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
133 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
134 self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
135 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
136 self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
137 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
139 def test_deploy_with_node_iface_channel_nc(self):
140 self.node2 = self.ec.register_resource("omf::Node")
141 self.ec.set(self.node2, "critical", False)
142 self.ec.set(self.node2, 'hostname', 'wlab49')
144 self.iface2 = self.ec.register_resource("omf::WifiInterface")
145 self.ec.set(self.node2, "critical", False)
146 self.ec.set(self.iface2, 'name', "wlan0")
147 self.ec.set(self.iface2, 'mode', "adhoc")
148 self.ec.set(self.iface2, 'hw_mode', "g")
149 self.ec.set(self.iface2, 'essid', "vlcexp")
150 self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
152 self.channel = self.ec.register_resource("omf::Channel")
153 self.ec.set(self.channel, 'channel', "6")
154 self.ec.set(self.channel, "critical", False)
156 self.ec.register_connection(self.iface1, self.channel)
157 self.ec.register_connection(self.node2, self.iface2)
158 self.ec.register_connection(self.iface2, self.channel)
160 self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "10s")
164 self.ec.wait_finished([self.app1])
166 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.FAILED)
167 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.FAILED)
171 self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
172 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
173 self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
174 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
175 self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
176 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
178 def test_deploy_with_app_nc(self):
179 self.node2 = self.ec.register_resource("omf::Node")
180 self.ec.set(self.node2, 'hostname', 'wlab49')
181 self.ec.set(self.node2, 'xmppUser', "nepi")
182 self.ec.set(self.node2, 'xmppServer', "xmpp-plexus.onelab.eu")
183 self.ec.set(self.node2, 'xmppPort', "5222")
184 self.ec.set(self.node2, 'xmppPassword', "1234")
186 self.iface2 = self.ec.register_resource("omf::WifiInterface")
187 self.ec.set(self.iface2, 'name', "wlan0")
188 self.ec.set(self.iface2, 'mode', "adhoc")
189 self.ec.set(self.iface2, 'hw_mode', "g")
190 self.ec.set(self.iface2, 'essid', "vlcexp")
191 self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
193 self.channel = self.ec.register_resource("omf::Channel")
194 self.ec.set(self.channel, 'channel', "6")
196 self.app2 = self.ec.register_resource("omf::Application")
197 self.ec.set(self.app2, "critical", False)
198 self.ec.set(self.app2, 'appid', 'Kill#22')
200 self.ec.register_connection(self.iface1, self.channel)
201 self.ec.register_connection(self.node2, self.iface2)
202 self.ec.register_connection(self.iface2, self.channel)
203 self.ec.register_connection(self.app2, self.node2)
205 self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "6s")
206 self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP, self.app1, ResourceState.STARTED , "10s")
210 self.ec.wait_finished([self.app1, self.app2])
212 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.STOPPED)
213 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)
217 self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
218 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
219 self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
220 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
221 self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
222 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
223 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
225 def test_deploy_with_all_nc_and_app_critical(self):
226 self.node2 = self.ec.register_resource("omf::Node")
227 self.ec.set(self.node2, "critical", False)
228 self.ec.set(self.node2, 'hostname', 'wlab49')
230 self.iface2 = self.ec.register_resource("omf::WifiInterface")
231 self.ec.set(self.iface2, "critical", False)
233 self.channel = self.ec.register_resource("omf::Channel")
234 self.ec.set(self.channel, "critical", False)
235 self.ec.set(self.channel, 'channel', "6")
237 self.app2 = self.ec.register_resource("omf::Application")
238 self.ec.set(self.app2, 'appid', 'Kill#22')
240 self.ec.register_connection(self.iface1, self.channel)
241 self.ec.register_connection(self.node2, self.iface2)
242 self.ec.register_connection(self.iface2, self.channel)
243 self.ec.register_connection(self.app2, self.node2)
245 self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "6s")
246 self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP, self.app1, ResourceState.STARTED , "10s")
250 self.ec.wait_finished([self.app1, self.app2])
252 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)
256 self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
257 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
258 self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
259 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
260 self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
261 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
262 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
265 class OMFVLCWrongCaseWithNonCriticalDep(unittest.TestCase):
270 self.ec = ExperimentController(exp_id = str(OMFVLCWrongCaseWithNonCriticalDep.id))
271 OMFVLCWrongCaseWithNonCriticalDep.id += 1
273 self.node1 = self.ec.register_resource("omf::Node")
274 self.ec.set(self.node1, 'hostname', 'wlab12')
275 self.ec.set(self.node1, 'xmppUser', "nepi")
276 self.ec.set(self.node1, 'xmppServer', "xmpp-plexus.onelab.eu")
277 self.ec.set(self.node1, 'xmppPort', "5222")
278 self.ec.set(self.node1, 'xmppPassword', "1234")
280 self.iface1 = self.ec.register_resource("omf::WifiInterface")
281 self.ec.set(self.iface1, 'name', "wlan0")
282 self.ec.set(self.iface1, 'mode', "adhoc")
283 self.ec.set(self.iface1, 'hw_mode', "g")
284 self.ec.set(self.iface1, 'essid', "vlcexp")
285 self.ec.set(self.iface1, 'ip', "10.0.0.12/24")
287 self.app1 = self.ec.register_resource("omf::Application")
288 self.ec.set(self.app1, 'appid', 'Kill#1')
289 self.ec.set(self.app1, 'command', "/usr/bin/test -1")
290 self.ec.set(self.app1, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
292 self.ec.register_connection(self.app1, self.node1)
293 self.ec.register_connection(self.node1, self.iface1)
295 def test_deploy_with_app_nc_and_critical_wrong(self):
296 self.node2 = self.ec.register_resource("omf::Node")
297 self.ec.set(self.node2, 'hostname', 'wlab49')
298 self.ec.set(self.node2, 'xmppUser', "nepi")
299 self.ec.set(self.node2, 'xmppServer', "xmpp-plexus.onelab.eu")
300 self.ec.set(self.node2, 'xmppPort', "5222")
301 self.ec.set(self.node2, 'xmppPassword', "1234")
303 self.iface2 = self.ec.register_resource("omf::WifiInterface")
304 self.ec.set(self.iface2, 'name', "wlan0")
305 self.ec.set(self.iface2, 'mode', "adhoc")
306 self.ec.set(self.iface2, 'hw_mode', "g")
307 self.ec.set(self.iface2, 'essid', "vlcexp")
308 self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
310 self.channel = self.ec.register_resource("omf::Channel")
311 self.ec.set(self.channel, 'channel', "6")
313 self.app2 = self.ec.register_resource("omf::Application")
314 self.ec.set(self.app2, "critical", False)
315 self.ec.set(self.app2, 'appid', 'Kill#32')
317 self.app3 = self.ec.register_resource("omf::Application")
318 self.ec.set(self.app3, 'appid', 'Kill#33')
320 self.ec.register_connection(self.iface1, self.channel)
321 self.ec.register_connection(self.node2, self.iface2)
322 self.ec.register_connection(self.iface2, self.channel)
323 self.ec.register_connection(self.app2, self.node2)
324 self.ec.register_connection(self.app3, self.node2)
326 self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "5s")
327 self.ec.register_condition(self.app3, ResourceAction.START, self.app2, ResourceState.STARTED , "5s")
328 self.ec.register_condition([self.app1, self.app2, self.app3], ResourceAction.STOP, self.app1, ResourceState.STARTED , "15s")
332 self.ec.wait_finished([self.app1, self.app2, self.app3])
334 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)
335 self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.FAILED)
339 self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
340 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
341 self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
342 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
343 self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
344 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
345 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
346 self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.RELEASED)
348 def test_deploy_with_app_nc_and_critical_right(self):
349 self.node2 = self.ec.register_resource("omf::Node")
350 self.ec.set(self.node2, 'hostname', 'wlab49')
351 self.ec.set(self.node2, 'xmppUser', "nepi")
352 self.ec.set(self.node2, 'xmppServer', "xmpp-plexus.onelab.eu")
353 self.ec.set(self.node2, 'xmppPort', "5222")
354 self.ec.set(self.node2, 'xmppPassword', "1234")
356 self.iface2 = self.ec.register_resource("omf::WifiInterface")
357 self.ec.set(self.iface2, 'name', "wlan0")
358 self.ec.set(self.iface2, 'mode', "adhoc")
359 self.ec.set(self.iface2, 'hw_mode', "g")
360 self.ec.set(self.iface2, 'essid', "vlcexp")
361 self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
363 self.channel = self.ec.register_resource("omf::Channel")
364 self.ec.set(self.channel, 'channel', "6")
366 self.app2 = self.ec.register_resource("omf::Application")
367 self.ec.set(self.app2, "critical", False)
368 self.ec.set(self.app2, 'appid', 'Kill#32')
370 self.app3 = self.ec.register_resource("omf::Application")
371 self.ec.set(self.app3, 'appid', 'Kill#3')
372 self.ec.set(self.app3, 'command', "/usr/bin/test -3")
373 self.ec.set(self.app3, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
375 self.ec.register_connection(self.iface1, self.channel)
376 self.ec.register_connection(self.node2, self.iface2)
377 self.ec.register_connection(self.iface2, self.channel)
378 self.ec.register_connection(self.app2, self.node2)
379 self.ec.register_connection(self.app3, self.node2)
381 self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "5s")
382 self.ec.register_condition(self.app3, ResourceAction.START, self.app2, ResourceState.STARTED , "5s")
383 self.ec.register_condition([self.app1, self.app2, self.app3], ResourceAction.STOP, self.app1, ResourceState.STARTED , "15s")
387 self.ec.wait_finished([self.app1, self.app2, self.app3])
389 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)
390 #self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.STOPPED)
394 self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
395 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
396 self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
397 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
398 self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
399 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
400 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
401 self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.RELEASED)
404 def test_deploy_with_many_app_nc_and_critical(self):
405 self.node2 = self.ec.register_resource("omf::Node")
406 self.ec.set(self.node2, 'hostname', 'wlab49')
407 self.ec.set(self.node2, 'xmppUser', "nepi")
408 self.ec.set(self.node2, 'xmppServer', "xmpp-plexus.onelab.eu")
409 self.ec.set(self.node2, 'xmppPort', "5222")
410 self.ec.set(self.node2, 'xmppPassword', "1234")
412 self.iface2 = self.ec.register_resource("omf::WifiInterface")
413 self.ec.set(self.iface2, 'name', "wlan0")
414 self.ec.set(self.iface2, 'mode', "adhoc")
415 self.ec.set(self.iface2, 'hw_mode', "g")
416 self.ec.set(self.iface2, 'essid', "vlcexp")
417 self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
419 self.channel = self.ec.register_resource("omf::Channel")
420 self.ec.set(self.channel, 'channel', "6")
422 self.app2 = self.ec.register_resource("omf::Application")
423 self.ec.set(self.app2, "critical", False)
424 self.ec.set(self.app2, 'appid', 'Kill#32')
426 self.app3 = self.ec.register_resource("omf::Application")
427 self.ec.set(self.app3, "critical", False)
428 self.ec.set(self.app3, 'appid', 'Kill#3')
429 self.ec.set(self.app3, 'command', "/usr/bin/test -3")
430 self.ec.set(self.app3, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
432 self.app4 = self.ec.register_resource("omf::Application")
433 self.ec.set(self.app4, 'appid', 'Kill#4')
434 self.ec.set(self.app4, 'command', "/usr/bin/test -4")
435 self.ec.set(self.app4, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
437 self.app5 = self.ec.register_resource("omf::Application")
438 self.ec.set(self.app5, "critical", False)
439 self.ec.set(self.app5, 'appid', 'Kill#32')
441 self.app6 = self.ec.register_resource("omf::Application")
442 self.ec.set(self.app6, 'appid', 'Kill#6')
443 self.ec.set(self.app6, 'command', "/usr/bin/test -6")
444 self.ec.set(self.app6, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
446 self.ec.register_connection(self.iface1, self.channel)
447 self.ec.register_connection(self.node2, self.iface2)
448 self.ec.register_connection(self.iface2, self.channel)
449 self.ec.register_connection(self.app2, self.node1)
450 self.ec.register_connection(self.app3, self.node1)
451 self.ec.register_connection(self.app4, self.node2)
452 self.ec.register_connection(self.app5, self.node2)
453 self.ec.register_connection(self.app6, self.node2)
455 self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "4s")
456 self.ec.register_condition(self.app3, ResourceAction.START, self.app2, ResourceState.STARTED , "4s")
457 self.ec.register_condition(self.app4, ResourceAction.START, self.app1, ResourceState.STARTED , "4s")
458 self.ec.register_condition(self.app5, ResourceAction.START, self.app4, ResourceState.STARTED , "4s")
459 self.ec.register_condition(self.app6, ResourceAction.START, self.app5, ResourceState.STARTED , "4s")
460 self.ec.register_condition([self.app1, self.app2, self.app3, self.app4, self.app5, self.app6 ], ResourceAction.STOP, [self.app1, self.app2, self.app3, self.app4, self.app5, self.app6 ], ResourceState.STARTED , "5s")
464 self.ec.wait_finished([self.app1, self.app2, self.app3, self.app4, self.app5, self.app6])
466 #self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.STOPPED)
467 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)
468 #self.assertEquals(self.ec.get_resource(self.app4).state, ResourceState.STOPPED)
469 self.assertEquals(self.ec.get_resource(self.app5).state, ResourceState.FAILED)
470 #self.assertEquals(self.ec.get_resource(self.app6).state, ResourceState.STOPPED)
474 self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
475 self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
476 self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
477 self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
478 self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
479 self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
480 self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
481 self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.RELEASED)
482 self.assertEquals(self.ec.get_resource(self.app4).state, ResourceState.RELEASED)
483 self.assertEquals(self.ec.get_resource(self.app5).state, ResourceState.RELEASED)
484 self.assertEquals(self.ec.get_resource(self.app6).state, ResourceState.RELEASED)
487 if __name__ == '__main__':