Skip to content

Commit 453bfe3

Browse files
committed
better information when importer fails
1 parent 452f0c9 commit 453bfe3

1 file changed

Lines changed: 24 additions & 17 deletions

File tree

opcua/common/xmlimporter.py

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -57,26 +57,33 @@ def import_xml(self, xmlpath):
5757

5858
nodes = []
5959
for nodedata in nodes_parsed: # self.parser:
60-
if nodedata.nodetype == 'UAObject':
61-
node = self.add_object(nodedata)
62-
elif nodedata.nodetype == 'UAObjectType':
63-
node = self.add_object_type(nodedata)
64-
elif nodedata.nodetype == 'UAVariable':
65-
node = self.add_variable(nodedata)
66-
elif nodedata.nodetype == 'UAVariableType':
67-
node = self.add_variable_type(nodedata)
68-
elif nodedata.nodetype == 'UAReferenceType':
69-
node = self.add_reference_type(nodedata)
70-
elif nodedata.nodetype == 'UADataType':
71-
node = self.add_datatype(nodedata)
72-
elif nodedata.nodetype == 'UAMethod':
73-
node = self.add_method(nodedata)
74-
else:
75-
self.logger.warning("Not implemented node type: %s ", nodedata.nodetype)
76-
continue
60+
try:
61+
node = self._add_node_data(nodedata)
62+
except Exception:
63+
self.logger.warning("failure adding node %s", nodedata)
64+
raise
7765
nodes.append(node)
7866
return nodes
7967

68+
def _add_node_data(self, nodedata):
69+
if nodedata.nodetype == 'UAObject':
70+
node = self.add_object(nodedata)
71+
elif nodedata.nodetype == 'UAObjectType':
72+
node = self.add_object_type(nodedata)
73+
elif nodedata.nodetype == 'UAVariable':
74+
node = self.add_variable(nodedata)
75+
elif nodedata.nodetype == 'UAVariableType':
76+
node = self.add_variable_type(nodedata)
77+
elif nodedata.nodetype == 'UAReferenceType':
78+
node = self.add_reference_type(nodedata)
79+
elif nodedata.nodetype == 'UADataType':
80+
node = self.add_datatype(nodedata)
81+
elif nodedata.nodetype == 'UAMethod':
82+
node = self.add_method(nodedata)
83+
else:
84+
self.logger.warning("Not implemented node type: %s ", nodedata.nodetype)
85+
return node
86+
8087
def _add_node(self, node):
8188
if isinstance(self.server, opcua.server.server.Server):
8289
return self.server.iserver.isession.add_nodes([node])

0 commit comments

Comments
 (0)