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:
===========
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'>]
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'>, com.canonical. certification: :miscellanea/ fwts_test' plugin:'shell'>, com.canonical. certification: :miscellanea/ fwts_results. log' plugin: 'attachment' >, com.canonical. certification: :miscellanea/ ipmi_test' plugin:'shell'>,
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
I selected only the miscellaneous tests in the tree selection, and the tree.selection now has an incorrect order:
djl from tree com.canonical. certification: :optical_ drive_sr0' plugin:'resource'>, com.canonical. certification: :miscellanea/ fwts_results. log' plugin: 'attachment' >, com.canonical. certification: :miscellanea/ submission- resources' plugin:'shell'>, com.canonical. certification: :miscellanea/ fwts_test' plugin:'shell'>, com.canonical. certification: :miscellanea/ ipmi_test' plugin:'shell'>, com.canonical. certification: :package' plugin:'resource'>, com.canonical. certification: :device' plugin:'resource'>, com.canonical. certification: :cpuinfo' plugin:'resource'>, com.canonical. certification: :uname' plugin:'resource'>, com.canonical. certification: :requirements' plugin:'resource'>, com.canonical. certification: :dpkg' plugin:'resource'>, com.canonical. certification: :lsb' plugin:'resource'>, com.canonical. certification: :dmi' plugin:'resource'>, com.canonical. certification: :block_ device' plugin:'resource'>, com.canonical. certification: :rtc' plugin:'resource'>, com.canonical. certification: :usb' plugin:'resource'>, com.canonical. certification: :virtualization ' plugin:'resource'>]
[<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
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'>, com.canonical. certification: :miscellanea/ fwts_results. log' plugin: 'attachment' >, com.canonical. certification: :miscellanea/ submission- resources' plugin:'shell'>, com.canonical. certification: :miscellanea/ fwts_test' plugin:'shell'>, com.canonical. certification: :miscellanea/ ipmi_test' plugin:'shell'>, com.canonical. certification: :package' plugin:'resource'>, com.canonical. certification: :device' plugin:'resource'>, com.canonical. certification: :cpuinfo' plugin:'resource'>, com.canonical. certification: :uname' plugin:'resource'>, com.canonical. certification: :requirements' plugin:'resource'>, com.canonical. certification: :dpkg' plugin:'resource'>, com.canonical. certification: :lsb' plugin:'resource'>, com.canonical. certification: :dmi' plugin:'resource'>, com.canonical. certification: :block_ device' plugin:'resource'>, com.canonical. certification: :rtc' plugin:'resource'>, com.canonical. certification: :usb' plugin:'resource'>, com.canonical. certification: :virtualization ' plugin:'resource'>]
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
=========== com.canonical. certification: :optical_ drive_sr0' plugin:'resource'>, com.canonical. certification: :miscellanea/ submission- resources' plugin:'shell'>, com.canonical. certification: :miscellanea/ fwts_test' plugin:'shell'>, com.canonical. certification: :miscellanea/ fwts_results. log' plugin: 'attachment' >, com.canonical. certification: :miscellanea/ ipmi_test' plugin:'shell'>, com.canonical. certification: :package' plugin:'resource'>, com.canonical. certification: :device' plugin:'resource'>, com.canonical. certification: :dmi' plugin:'resource'>, com.canonical. certification: :cpuinfo' plugin:'resource'>, com.canonical. certification: :requirements' plugin:'resource'>, com.canonical. certification: :uname' plugin:'resource'>, com.canonical. certification: :dpkg' plugin:'resource'>, com.canonical. certification: :lsb' plugin:'resource'>, com.canonical. certification: :block_ device' plugin:'resource'>, com.canonical. certification: :rtc' plugin:'resource'>, com.canonical. certification: :usb' plugin:'resource'>, 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.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
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: com.canonical. certification: :optical_ drive_sr0' plugin:'resource'>, com.canonical. certification: :miscellanea/ fwts_test' plugin:'shell'>, com.canonical. certification: :miscellanea/ submission- resources' plugin:'shell'>, com.canonical. certification: :miscellanea/ fwts_results. log' plugin: 'attachment' >, com.canonical. certification: :miscellanea/ ipmi_test' plugin:'shell'>, com.canonical. certification: :package' plugin:'resource'>, com.canonical. certification: :device' plugin:'resource'>, com.canonical. certification: :dmi' plugin:'resource'>, com.canonical. certification: :uname' plugin:'resource'>, com.canonical. certification: :cpuinfo' plugin:'resource'>, com.canonical. certification: :lsb' plugin:'resource'>, com.canonical. certification: :dpkg' plugin:'resource'>, com.canonical. certification: :requirements' plugin:'resource'>, com.canonical. certification: :block_ device' plugin:'resource'>, com.canonical. certification: :rtc' plugin:'resource'>, com.canonical. certification: :usb' plugin:'resource'>, com.canonical. certification: :virtualization ' plugin:'resource'>]
djl from tree
[<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.
<JobDefinition id:'2013.