Summary
How can I tell which states were called, and which transitions were taken. A view such as:
Start \-> State 2 (succeeded) \-> State 3 (succeeded) \-> State 4 (failed) \-> End
Solution
Use the findObjects API on logEntry, and the filter with containerName equal to your workflowName. Something like:
$[/projects/EC-Admin/scripts/perlHeader] $[/projects/EC-Admin/scripts/perlLib] my $wkfName="workflow_222_201308090956"; # create filterList my @filterList; # get only log associated to my workflow push (@filterList, {"propertyName" => "containerName", "operator" => "equals", "operand1" => "workflow_222_201308090956"}); push (@filterList, {"propertyName" => "containerType", "operator" => "equals", "operand1" => "workflow"}); my ($success, $xPath) = InvokeCommander("", "findObjects", "logEntry", {maxIds => 5000, filter => \\@filterList , sort => [ {propertyName => "time", order => "ascending"} \]});
It should return a number of objects like:
<object> <objectId>logEntry-122325</objectId> <logEntry> <logEntryId>122325</logEntryId> <container>workflow-222</container> <containerName>workflow_222_201308090956</containerName> <message>Invoking the sub-job for state 'Test'</message> <principal>project: Training_user</principal> <severity>INFO</severity> <subject>state-1319</subject> <subjectName>Test</subjectName> <time>2013-08-09T16:56:29.586Z</time> </logEntry> </object> <object> <objectId>logEntry-122328</objectId> <logEntry> <logEntryId>122328</logEntryId> <container>workflow-222</container> <containerName>workflow_222_201308090956</containerName> <message>The sub-job 'job_34687_201308090956' for state 'Test' has completed</message> <principal>project: Training_user</principal> <severity>INFO</severity> <subject>state-1319</subject> <subjectName>Test</subjectName> <time>2013-08-09T16:56:29.788Z</time> </logEntry> </object>
This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.