[virt-tools-list] Plan for removing virtinst as a public API

Cole Robinson crobinso at redhat.com
Tue Feb 7 14:30:36 UTC 2012


On 02/07/2012 09:05 AM, Daniel P. Berrange wrote:
> On Mon, Feb 06, 2012 at 06:52:40PM -0500, Cole Robinson wrote:
>> Hi all,
>>
>> I'd like to remove virtinst as a public API, and make it private code shared
>> by virt-manager and virt-{install,clone,image,convert}.
>>
>> virtinst really never should have been a library, it's historically not well
>> thought out or stable, and really using the command line tools is a much more
>> stable API. Longer term there are C libraries built around libvirt and gobject
>> that are being developed which will fill the role of virtinst in a much more
>> API friendly way. Privatizing this code will also allow us to clean house a
>> lot, including hopefully merging virt-manager and virtinst into the same repo,
>> so we don't have the annoying lockstep upgrade problem for developers.
>>
>> There aren't many API users that I know of: aside from virt-*, there are
>> pieces of cobbler and koji, which I'm in the process of patching.
>>
>> Ideally I'd like to cut a release at the end of the month which drops virtinst
>> as a public API and possibly merges the two repos.
>>
>> Any comments or thoughts?
> 
> If we are to ever try to convert virt-manager / virt-instal over to
> use libosinfo & libvirt-glib, then I think that declaring the existing
> virtinst API as private is a mandatory step. The conversion will
> require non-trivial changes to the existing code and it is just not
> worth the pain of trying to retain compatibility for external apps.
> 

Agreed. Though it'll probably be a while before all of virtinst parsing code
is gone, certainly near term I'd like to start integrating libosinfo and
libvirt-glib.

> Any other apps currently using virtinst's internal API should also
> really be planning to switch to libvirt-glib + libosinfo themselves.
> 

Truth is the other apps I mentioned (cobbler and koji) using virtinst are
really just duplicating virt-install and virt-clone respectively. So I've
prepared patches to have them call out to the cli tools. They probably won't
ever have much need for the libvirt-glib family, they are just deploying
guests (which using virtinst API for is pretty painful anyways).

The more interesting virtinst benefit of parsing the XML into an easily
editable readable/editable object is kinda new in the history of virtinst, and
I've deliberately made a point of not advertising it so people wouldn't start
using it as a public API. If we people were using it, ripping that out at this
point would be exponentially harder.

- Cole




More information about the virt-tools-list mailing list