commit 16f9e75c6f9fdbd851d3da9da49471fbc2e21c41
Author: Ondrej Lichtner <olichtne(a)redhat.com>
Date: Wed Aug 15 13:07:42 2012 +0200
NetTestParse: Exception handling for triggers
Exceptions raised during execution of triggers are now catched and
transformed into XmlProcessing exceptions. This gives the user
additional information about where the problem occured during parsing of
the recipe.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
NetTest/NetTestParse.py | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
---
diff --git a/NetTest/NetTestParse.py b/NetTest/NetTestParse.py
index fbe5adc..4c46b0c 100644
--- a/NetTest/NetTestParse.py
+++ b/NetTest/NetTestParse.py
@@ -139,8 +139,11 @@ class NetMachineConfigParse(RecipeParser):
info["system_config"] = {}
- self._trigger_event("machine_info_ready",
- {"machine_id": self._machine_id})
+ try:
+ self._trigger_event("machine_info_ready",
+ {"machine_id": self._machine_id})
+ except Exception, exc:
+ raise XmlProcessingError(str(exc), node)
def _netdevices(self, node, params):
scheme = {"netdevice": self._netdevice,
@@ -179,8 +182,11 @@ class NetMachineConfigParse(RecipeParser):
self._has_attribute(node, "libvirt_bridge"):
dev["libvirt_bridge"] = self._get_attribute(node,
"libvirt_bridge")
- self._trigger_event("netdevice_ready", {"machine_id":
self._machine_id,
- "dev_id": phys_id})
+ try:
+ self._trigger_event("netdevice_ready",
+ {"machine_id": self._machine_id, "dev_id":
phys_id})
+ except Exception, exc:
+ raise XmlProcessingError(str(exc), node)
class NetConfigParse(RecipeParser):
@@ -230,9 +236,12 @@ class NetConfigParse(RecipeParser):
self._process_child_nodes(node, scheme, params)
- self._trigger_event("interface_config_ready",
- {"machine_id": self._machine_id,
- "netdev_config_id": dev_id})
+ try:
+ self._trigger_event("interface_config_ready",
+ {"machine_id": self._machine_id,
+ "netdev_config_id": dev_id})
+ except Exception, exc:
+ raise XmlProcessingError(str(exc), node)
def _process_phys_id_attr(self, node, dev):
netconfig = self._netconfig