Not possible to add nodes with no input dependency or if no workflows on engine
- It should be possible to add a node to an empty engine (no worklfows -> no parent nodes).
- It should be possible to add a node with no dependencies, i.e. no node id of parent nodes required.
File /pfs/data5/home/kit/scc/jk7683/vre-middleware/src/virtmat/middleware/engine/wfengine.py:392, in WFEngine.add_node(self, func, inputs, outputs, name, kwargs, category, fworker, qadapter)
390 qres = self.launchpad.get_wf_ids({'nodes': {'$in': node_ids}})
391 if len(qres) <= 0:
--> 392 raise ConfigurationException('no valid parent nodes defined')
393 if len(qres) != 1:
394 raise ConfigurationException('some parent nodes are not in one workflow')
ConfigurationException: no valid parent nodes defined
Implementation
- To add a node to an existing workflow without data dependency: we either need a special root node or may append to any node (using a flag to enforce it).
- To add a node to an empty engine -> create a workflow with the node (as it is now but also with a special root node) and add it to the launchpad as a new workflow.
Root nodes are nodes without parents. A special root node, that has no data outputs, can be used to attach children with no dynamic data inputs. This is used in the textS interpreter. It requires that every new workflow includes such a special root node.
Also to check
The GUI options for this extension, including GUI options for worker, category, qadapter, kwargs etc.
Edited by Ivan Kondov