Import and export VM in XO

A very important (and coming!) feature in Xen Orchestra, will be VM import & export. Want to know how it will work and what will be possible to do with it? Go on!

XenServer mechanism

Before getting on use cases and UI consideration, we'll see how XenServer, and its API (XAPI) deal with VM import or export. Like the RRD for the statistics, it's not directly incorporated in the XAPI. We need to do a HTTP request to get or to push our VM.

The request for exporting a VM via a HTTP PUT look like this:
http://myxenserver.mydomain/export/?session_id=mySessionId&ref=myVmRef&use_compression=true

For importing, it's very similar:
http://myxenserver.mydomain/import/?session_id=mySessionId

Great, but we need to pass this request from xo-web to xo-server and getting back the answer from your host. That's the major part of our work in order to have this feature in XO.

UI considerations

VM Export

Not a problem: we just have to add an option in the VM view, with a check-box for the compression, then you'll download directly the file on your computer.

VM Import

This feature will probably need a dedicated page, with a progress bar. Because you'll want to know how it goes.

Conclusion

As you can see, the major gap for having this feature working is in the back-end. But the implementation will be relatively similar to the statistics, so it should be fast as soon as we are on it.