
On Tue, Oct 22, 2013 at 04:15:37PM +0530, Nehal J Wani wrote:
Q1. The --dhcp-script option will require libvirt to provide a script or executable file to be run. Now as the man page says, this file is executed "Whenever a new DHCP ease is created, or an old one destroyed". Life was easy with the script, as it used the command sed to remove the destroyed lease. eblake had suggested me to use a C program instead. So I wanted to finalize whether to go with C or continue with shell script.
Libvirt aims to avoid shell code whereever possible, since it is really a very bad language from terms of reliability and security. eg quoting rules are easy to get wrong, error handling is awful, portability is non-trivial.
Q2. The above executable file will be writing the custom formatted lease parameters to a file "dnsmasq-ip-mac.status" (suggestion open for name). This newly created/updated file will be parsed by the API. We need to decide the format for the file. Do we continue with space separated parameters as before?
Ideally do not invent any new format - use a format that we already have a parser for - eg the src/util/virconf.h or src/util/virkeyfile.h APIs for loading configs.
Q3. What should be the location of the above two files? Is there any example that I can follow in libvirt for deploying custom-script files/C programs which are not to be linked?
We aim to put such state in /var/lib/libvirt/network/ if it needs to survive reboots, or /var/run/libvirt/network if it does not need to survive reboots Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|