Comment 2 for bug 1308106

Revision history for this message
Daniel Manrique (roadmr) wrote :

Prior to running the selection tree, the manager.state.desired_job_list contains the correct order. This is just the relevant fragment as the djl is originally a bit long:

 <JobDefinition id:'2013.com.canonical.certification::__miscellanea__' plugin:'local'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_results.log' plugin:'attachment'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/ipmi_test' plugin:'shell'>,

I selected only the miscellaneous tests in the tree selection, and the tree.selection now has an incorrect order:

djl from tree
[<JobDefinition id:'2013.com.canonical.certification::optical_drive_sr0' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_results.log' plugin:'attachment'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/submission-resources' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/ipmi_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::package' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::device' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::cpuinfo' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::uname' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::requirements' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::dpkg' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::lsb' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::dmi' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::block_device' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::rtc' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::usb' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::virtualization' plugin:'resource'>]

Then apparently when updating the desired job list, the wrong order seen above is considered:

self._update_desired_job_list(manager, tree.selection)

after this, the manager.state.desired_job_list contains the bad order:

[<JobDefinition id:'2013.com.canonical.certification::optical_drive_sr0' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_results.log' plugin:'attachment'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/submission-resources' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/ipmi_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::package' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::device' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::cpuinfo' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::uname' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::requirements' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::dpkg' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::lsb' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::dmi' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::block_device' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::rtc' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::usb' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::virtualization' plugin:'resource'>]

===========
Note however that this is not 100% reproducible; the following run, I got this from the selection tree:
[<JobDefinition id:'2013.com.canonical.certification::optical_drive_sr0' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/submission-resources' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_results.log' plugin:'attachment'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/ipmi_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::package' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::device' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::dmi' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::cpuinfo' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::requirements' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::uname' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::dpkg' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::lsb' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::block_device' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::rtc' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::usb' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::virtualization' plugin:'resource'>]

with that ordering, the actual run did produce the correct results.

Once again, running this produced this from the selectiontree, note the relative ordering of the fwts_tests is correct, but submission_resources now snuck in between them:
djl from tree
[<JobDefinition id:'2013.com.canonical.certification::optical_drive_sr0' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/submission-resources' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/fwts_results.log' plugin:'attachment'>,
 <JobDefinition id:'2013.com.canonical.certification::miscellanea/ipmi_test' plugin:'shell'>,
 <JobDefinition id:'2013.com.canonical.certification::package' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::device' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::dmi' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::uname' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::cpuinfo' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::lsb' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::dpkg' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::requirements' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::block_device' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::rtc' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::usb' plugin:'resource'>,
 <JobDefinition id:'2013.com.canonical.certification::virtualization' plugin:'resource'>]