@@ 219-236 (lines=18) @@ | ||
216 | node.NodeAttributes = attrs |
|
217 | res = self.server.add_nodes([node]) |
|
218 | self._add_refs(obj) |
|
219 | return res[0].AddedNodeId |
|
220 | ||
221 | def _make_ext_obj(sefl, obj): |
|
222 | ext = getattr(ua, obj.objname)() |
|
223 | for name, val in obj.body: |
|
224 | if type(val) is str: |
|
225 | raise Exception("Error val should a dict", name, val) |
|
226 | else: |
|
227 | for attname, v in val: |
|
228 | # tow possible values: |
|
229 | # either we get value directly |
|
230 | # or a dict if it s an object or a list |
|
231 | if type(v) is str: |
|
232 | setattr(ext, attname, to_python(v, ext, attname)) |
|
233 | else: |
|
234 | # so we habve either an object or a list... |
|
235 | obj2 = getattr(ext, attname) |
|
236 | if isinstance(obj2, ua.NodeId): |
|
237 | for attname2, v2 in v: |
|
238 | if attname2 == "Identifier": |
|
239 | obj2 = ua.NodeId.from_string(v2) |
|
@@ 238-253 (lines=16) @@ | ||
235 | obj2 = getattr(ext, attname) |
|
236 | if isinstance(obj2, ua.NodeId): |
|
237 | for attname2, v2 in v: |
|
238 | if attname2 == "Identifier": |
|
239 | obj2 = ua.NodeId.from_string(v2) |
|
240 | setattr(ext, attname, obj2) |
|
241 | break |
|
242 | elif not isinstance(obj2, ua.NodeId) and not hasattr(obj2, "ua_types"): |
|
243 | # we probably have a list |
|
244 | my_list = [] |
|
245 | for vtype, v2 in v: |
|
246 | my_list.append(ua_type_to_python(v2, vtype)) |
|
247 | setattr(ext, attname, my_list) |
|
248 | else: |
|
249 | for attname2, v2 in v: |
|
250 | setattr(obj2, attname2, to_python(v2, obj2, attname2)) |
|
251 | setattr(ext, attname, obj2) |
|
252 | return ext |
|
253 | ||
254 | def _add_variable_value(self, obj): |
|
255 | """ |
|
256 | Returns the value for a Variable based on the objects valuetype. |