We have four different hints that the test / suite control file can give to autotest infra via these job dependency labels:
(second column is the number of recent jobs that used this label)
| skip_provision | 123182 |
| cleanup-reboot | 115547 |
| rpm | 35879 |
| modem_repair | 3517 |
These are currently passed in as labels, but they are not labels -- they are not used for making any scheduling decisions about the job. They are only hints to the test running infrastructure to prepare the DUT in a special way:
skip_provision: Do not run provision before the job.
cleanup-reboot: Reboot the DUT during cleanup
rpm: verify RPM functionality duirng verify [THIS HAS NOT WORKED IN 3 YEARS] Perhaps we don't really care?
modem_repair: Reboot the modem during verify
This abuse of labels means that the inventory definition of labels (what can DUTs be labeled with) differs from the job's definition of labels (what labels can a job demand). The host matching logic has to special case these labels so that it doesn't reject the jobs because of these un-matchable labels: http://shortn/_x7JVKvxYJY
Here's where we fiter these labels away when matching hosts: http://shortn/_9QvLiYTGkt
----------------------
With skylab, we would have to migrate this hack to TFC. I do not plan on doing that.
----------------------
Plan of action:
[1] Introduce a new field in control files to provide hints to the test runner like the ones above.
[2] Update autotest infra to respect *both*
[3] Update all control files to use the new functionality
[4] When migrating to skylab, forget about these labels.
Note that:
- This means we'll lose the ability to provide these hints when creating an individual job (from the UI say). I am happy to see that go.
- We can never really drop the support for this hack in autotest infra because old control files use it. We can let it die when we move to skylab.
Comment 1 by pprabhu@chromium.org
, Aug 8 2017