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

Martin Kletzander mkletzan at redhat.com
Tue Oct 1 14:50:54 UTC 2019


On Tue, Oct 01, 2019 at 12:53:50PM +0100, Daniel P. Berrangé wrote:
>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.
>

Both are good points, but they are greyscale rather than black/white.  It
depends on the size and complexity of the script.  It also contradicts the use
of declarative language when you are offloading lot of the logic into the input
file.  I also think that both points are very much relevant to the build system
as well, just not that visible because not all parts of the build system are
used/modified by everyone.

>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 :|
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20191001/ebb600cc/attachment-0001.sig>


More information about the libvir-list mailing list