Question

I need to be able to export the domain's XML configs to XEN config format under libvirt using libvirt-python. Apparently to make that call, you use the following in C:

virConnectDomainXMLToNative

Reads a domain XML configuration document, and generates a native configuration file describing the domain. The format of the native data is hypervisor dependant.

conn:   a connection object
nativeFormat:   configuration format exporting to
domainXml:  the domain configuration to export
flags:  extra flags; not used yet, so callers should always pass 0
Returns:    a 0 terminated UTF-8 encoded native config datafile, or NULL in case of error. the caller must free() the returned value.

However, there is no equivalent function in Python.

I noticed you can call certain C functions in libvirt-python. I don't see that in the current list of calls, though, when I use help(libvirt). (I am using the libvirt-python package that is available with CentOS 5, BTW).

Is there a way to make that call anyway within Python and convert the domain .xml to xen config?

Was it helpful?

Solution

According to the Python API bindings page, functions starting with virConnect are mapped to methods of a virConnect object in Python. So you should create a virConnect object and then call its domainXMLToNative method.

If that still doesn't work, you can use the ctypes module to call functions from a shared library.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top