feat(file): ensure upload of ISO/VSTMPL is completed upon resource creation #471
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The upload of ISO/VMTMPLs uses the Proxmox REST API Upload. But as the code doesn't wait for this to finish you can run into problems deploying the VM
We saw this when creating multiple VMs that were using a "proxmox_virtual_environment_file" to point to our Ubuntu image (~6GB). You could see the upload task was still running on the Proxmox node, but then started creating the VM. This led to a corrupt image that couldn't start
We've added WaitForTask for the upload so that it polls to check it really is uploaded.
Rather that hardcode a timeout (as in network.go) we've added a parameter into "proxmox_virtual_environment_file" which defaults to 1800s but can be overridden
Updated file_test.go that checks the file Schema
Tested locally and with the fix we were then able to create VMs as the upload always completed first
Didn't add anything to examples as this is primarily a fix and the documentation is enough to explain what the new argument does
Contributor's Note
Please mark the following items with an [x] if they apply to your PR.
Leave the [ ] if they are not applicable, or if you have not completed the item.
/docs
for any user-facing features or additions./examples
for any new or updated resources / data sources.make examples
to verify that the change works as expected.Community Note
Relates OR Closes #0000