#19: Cleanup fails when some error happens before machines are parsed
------------------------+-----------------------
Reporter: rpazdera | Owner: somebody
Type: defect | Status: new
Priority: minor | Milestone:
Component: component1 | Version:
Keywords: | Blocked By:
Blocking: |
------------------------+-----------------------
There's a little bug in the controller cleanup sequence.
If the recipe fails "too early", i. e., before the machines get parsed,
the application fails to do the cleanup, because it cannot find any
configured
machines. See the traceback below:
{{{
06/09 11:59:49| (127.0.0.1)NetTestControll:0302| DEBUG: Exception
raised during recipe parsing. Deconfiguring machines.
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: Traceback
(most recent call last):
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: File
"./nettestctl.py", line 165, in <module>
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: main()
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: File
"./nettestctl.py", line 152, in main
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR:
packet_capture))
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: File
"./nettestctl.py", line 80, in get_recipe_result
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR:
res_serializer, packet_capture)
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: File
"./nettestctl.py", line 53, in process_recipe
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: return
nettestctl.run_recipe(packet_capture)
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: File
"/home/rpazdera/work/lnst-readonly-clean/NetTest/NetTestController.py",
line 375, in run_recipe
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR:
self._prepare()
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: File
"/home/rpazdera/work/lnst-readonly-clean/NetTest/NetTestController.py",
line 304, in _prepare
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR:
self._deconfigure_slaves()
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: File
"/home/rpazdera/work/lnst-readonly-clean/NetTest/NetTestController.py",
line 265, in _deconfigure_slaves
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: for
machine_id in self._recipe["machines"]:
06/09 11:59:49| (127.0.0.1) stdio:0000| ERROR: KeyError:
'machines'
}}}
The expected behavior in this case is to skip the machine cleanup, since
no machines were configured yet.
--
Ticket URL: <
https://fedorahosted.org/lnst/ticket/19>
lnst <
http://example.org/>
My example project