On Wed, Nov 16, 2011 at 6:55 AM, Yun Mao <yun...@gmail.com> wrote: > > Hi Mike, thanks for the info. > > You mentioned in the wiki that: "Error handling is decent; most of my > logic mistakes generated a reasonable error when the workflow was > being assembled. Some errors were head scratchers if the linking was > really mixed up." > > Could you be more specific? For example, are you talking about design > time errors or runtime errors? > > Thanks, > > Yun > Yun,
In the example I was thinking of, my error was design time / logical , but caught at run time. (The flows are validated when executed.) Here's the rough sequence I implemented: http://www.websequencediagrams.com/cgi-bin/cdraw?lz=V29ya2Zsb3cgLT4gU2NoZWR1bGU6IHJlcXVlc3Rfc3BlYwoAFwxSZXNlcnYABhxQcm92aXNpb24APApTcGVjCgBVCAA7CyA6IGNvbXB1dGVfbm9kZQAWDQA-CQAWDyAKADUIABYPcgCBFQVhdGlvbl9pZA&s=napkin The Provision step needs the build_spec, compute_node, and reservation_id as inputs. I forgot to link the reservation_id from the Reserve step. At when the flow is executed, the error is: Traceback (most recent call last): File "workflow1.py", line 109, in <module> result = create_instance_flow(request_spec=spec) File "/Users/mikeyp/Documents/Projects/OpenStack/essex/workflow/test_env/lib/python2.7/site-packages/pyutilib/workflow/task.py", line 113, in __call__ return self._call_fini(*options, **kwds) File "/Users/mikeyp/Documents/Projects/OpenStack/essex/workflow/test_env/lib/python2.7/site-packages/pyutilib/workflow/workflow.py", line 126, in _call_fini self._final_task.inputs[key].compute_value() File "/Users/mikeyp/Documents/Projects/OpenStack/essex/workflow/test_env/lib/python2.7/site-packages/pyutilib/workflow/port.py", line 106, in compute_value self.validate() File "/Users/mikeyp/Documents/Projects/OpenStack/essex/workflow/test_env/lib/python2.7/site-packages/pyutilib/workflow/port.py", line 111, in validate raise ValueError, "Task %s Port %s requires a nontrivial value. Value specified is None." % (str(self.task.id), self.name) ValueError: Task 3 Port instance requires a nontrivial value. Value specified is None. So, the error indicates a problem with instance, the _output_ of task 3, rather than catching the missing input (reservation_id.) As far as I can tell, this particular error would only occur during workflow development mike -- Mailing list: https://launchpad.net/~nova-orchestration Post to : nova-orchestration@lists.launchpad.net Unsubscribe : https://launchpad.net/~nova-orchestration More help : https://help.launchpad.net/ListHelp