[libvirt] lvm backed storage

Hi, When lvm.conf has 'command_names = 1', then all results are prefixed with the command name. This confuses libvirt which does not ignore those. I thought fixing that would be a simple case of detecting those conditions at virStorageBackendLogicalMakeVol() and friends, but I was wrong - those functions are not getting called at all when command_names=1. I'll keep nosing around, but it seemed prudent to ping the list and ask what you think would be the cleanest way to handle this case? thanks, -serge

On Thu, Sep 08, 2011 at 11:00:07AM -0500, Serge Hallyn wrote:
Hi,
When lvm.conf has 'command_names = 1', then all results are prefixed with the command name. This confuses libvirt which does not ignore those. I thought fixing that would be a simple case of detecting those conditions at virStorageBackendLogicalMakeVol() and friends, but I was wrong - those functions are not getting called at all when command_names=1. I'll keep nosing around, but it seemed prudent to ping the list and ask what you think would be the cleanest way to handle this case?
Urgh, what a frickin' horrible feature to have in a config file, with no command line override. That said, it should be possible to fix via a regex tweak. There are several places where we call virStorageBackendRunProgRegex in storage_backend_logical.c. In all of those cases you need to tweak the 'regexes' definition to add a bit of magic to optionally detect and ignore the prefix. 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 :|

Quoting Daniel P. Berrange (berrange@redhat.com):
On Thu, Sep 08, 2011 at 11:00:07AM -0500, Serge Hallyn wrote:
Hi,
When lvm.conf has 'command_names = 1', then all results are prefixed with the command name. This confuses libvirt which does not ignore those. I thought fixing that would be a simple case of detecting those conditions at virStorageBackendLogicalMakeVol() and friends, but I was wrong - those functions are not getting called at all when command_names=1. I'll keep nosing around, but it seemed prudent to ping the list and ask what you think would be the cleanest way to handle this case?
Urgh, what a frickin' horrible feature to have in a config file, with no command line override.
Agreed!
That said, it should be possible to fix via a regex tweak. There are several places where we call virStorageBackendRunProgRegex in storage_backend_logical.c. In all of those cases you need to tweak the 'regexes' definition to add a bit of magic to optionally detect and ignore the prefix.
I was trying that in the backend_logical.c file, but when command_names=1 that code never even gets called, so there is some other place that is calling a pvscan or somesuch that I haven't found yet. Will take another look though. thanks, -serge
participants (3)
-
Daniel P. Berrange
-
Serge E. Hallyn
-
Serge Hallyn