Now that we have the sha1s of the cros vm images in gs (thanks Achuith), we can be smart about when we download them, which should unblock us from getting these tests running on swarming.
Though, we'll need to add some special-case isolate steps in the recipe to do that. Following MA's outline in https://groups.google.com/a/google.com/d/msg/luci-eng/4f5IL-Y9g-I/44MPZUYwCgAJ, this works out to:
- Get the gs path of the image we want to use in the tests
- Get its sha1 (via the uploaded.json in that lives right next to it in gs)
- Check if the sha1 exists in isolateserver
- if not, download the image onto recipe-running machine and `isolateserver.py archive` it
- Slip the sha1 into the .isolated file for the test we want to run (and make sure the test's invocation of cros_run_vm_test points --image-path to the location where the isolated drops it)
Which should be possible, but I'm not sure how easily that will all fit into our current isolating mechanism. I know we have some special logic for isolating the layout tests... I wonder if I could add another check for cros VMs. Maybe I end up writing a standalone isolate_cros_vm_test.py that encapsulates all that and gets called from the recipe.
Filing this to track how we end up deciding to implement it.