[libvirt] [PATCH v2 0/6] rewrite virt-host-validate to be data driven, using Go & YAML

Daniel P. Berrangé berrange at redhat.com
Tue Oct 1 11:53:50 UTC 2019


On Tue, Oct 01, 2019 at 01:36:07PM +0200, Bjoern Walk wrote:
> Daniel P. Berrangé <berrange at redhat.com> [2019-09-30, 03:48PM +0100]:
> > In this case, our existing C language for writing our production code is
> > not well suited for the task we're applying it too. You could make an
> > argument that the virt-host-validate could be written in Python, but
> > I think it is preferred to keep all our deployable code written in
> > compiled languages, leaving the scripting languages for our supporting
> > build system. 
> 
> Any hard arguments on why that's preferential? I don't see a reasoning
> as to not ship python code as many other project do just fine.

The various core system tools which involve python have a history of
poor performance. For example, we previously used "firewall-cmd" for
talking to firewalld and it caused a massive performance hit, because
of all the time spent during startup processing imported modules. This
is seen again in OpenStack with its command line tools being so terribly
slow - it takes 1.5 seconds just to load the client & do nothing.

There's the classic difference of dynamic vs compiled languages where
with the former many basic syntax errors don't appear until you hit
them at runtime unless. Only mitigated if you invest a tonne of time
in unit testing every possible codepath.

Using compiled languages also enables us to share code between the
tools and library. This would enable us to actually embed the host
validation functionality into the virt driver, so its exposed as a
normal API in libvirt.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list