(server, parent_nodeid, rdesc, nodeid, recursive)
| 20 | |
| 21 | |
| 22 | def _copy_node(server, parent_nodeid, rdesc, nodeid, recursive): |
| 23 | addnode = ua.AddNodesItem() |
| 24 | addnode.RequestedNewNodeId = nodeid |
| 25 | addnode.BrowseName = rdesc.BrowseName |
| 26 | addnode.ParentNodeId = parent_nodeid |
| 27 | addnode.ReferenceTypeId = rdesc.ReferenceTypeId |
| 28 | addnode.TypeDefinition = rdesc.TypeDefinition |
| 29 | addnode.NodeClass = rdesc.NodeClass |
| 30 | |
| 31 | node_to_copy = Node(server, rdesc.NodeId) |
| 32 | |
| 33 | attrObj = getattr(ua, rdesc.NodeClass.name + "Attributes") |
| 34 | _read_and_copy_attrs(node_to_copy, attrObj(), addnode) |
| 35 | |
| 36 | res = server.add_nodes([addnode])[0] |
| 37 | |
| 38 | added_nodes = [res.AddedNodeId] |
| 39 | |
| 40 | if recursive: |
| 41 | descs = node_to_copy.get_children_descriptions() |
| 42 | for desc in descs: |
| 43 | nodes = _copy_node(server, res.AddedNodeId, desc, nodeid=ua.NodeId(namespaceidx=desc.NodeId.NamespaceIndex), recursive=True) |
| 44 | added_nodes.extend(nodes) |
| 45 | |
| 46 | return added_nodes |
| 47 | |
| 48 | |
| 49 | def _rdesc_from_node(parent, node): |
no test coverage detected