Per cloud-init, I think that's doable. I added support for cloud-init so Ill see if that can get me going on an easy path.
Per uploading: I'm not sure. This might be pretty complex. Vagrant has a concept of boxes (for non local files its usually just a zip folder with a metadata manifest) [1] and uploading to their cloud platform atlas [2] but that kind of gets outside the realm of Vagrant and more into the niche that Packer[3] fits.
There has been some work on packer with qemu[4] but not oVirt so possibly thats a good place for another project to fit (ovirt packer provider)