[SDKs] Fix unreliable image timestamp recording in arv keep docker
Docker metadata links for Docker image collections should include an
image_timestamp property. This helps the API server with job reuse so that if an older image is uploaded after a newer one, it continues to use the newer image to resolve symbolic names, consider it during job reuse decisions, etc.
arv keep docker has been creating these links without the
image_timestamp property. They're usually easy to spot with a query like
arv link list --filters='[["link_class", "=", "docker_image_repo+tag"]]'. This is expected behavior if
arv keep docker can't get an image's
created timestamp from Docker, but we should investigate why this is happening and make the tool more robust in this situation. It's not a simple code regression; some recent links do have the timestamp. It's something more subtle, like an interaction with a specific Docker version or details about how the image was created.
#4 Updated by Brett Smith over 6 years ago
After investigation, arv-copy seems like a more likely culprit. I found a family of images on su92l which all had the same tag. Some of them had the image_timestamp, and others didn't. That makes me think that the difference is not how in the image is built, but how it's uploaded. I've prepared a branch to teach arv-copy to preserve that data.