[libvirt] [PATCH perl-Sys-Virt] Don't die if snapshots are unsupported

Daniel P. Berrange berrange at redhat.com
Tue Apr 22 10:35:31 UTC 2014


On Mon, Apr 21, 2014 at 02:19:12PM -0600, Mike Latimer wrote:
> Many libvirt-tck tests do not explicitly cleanup test domains before exiting.
> In this case Sys::Virt::TCK->cleanup is triggered, and the environment is
> reset automatically. During this reset, any existing snapshots are found for
> deletion through Sys::Virt::Domain->list_snapshots. If the underlying
> connection driver does not support snapshot functions (such as lxc or libxl),
> the process dies with the following error:
> 
> libvirt error code: 3, message: this function is not supported by the
>  connection driver: virDomainSnapshotListNames
> 
> The best resolution would be to add snapshot support to the driver(s), but as
> this requires a long term effort, it is better to catch the error and return
> an empty list of snapshots to the calling function. In the case of
> libvirt-tck, this allows the cleanup to succeed and subsequent testing to
> continue normally.
> 
> ---
>  Domain.pm |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> --- a/lib/Sys/Virt/Domain.pm	2014-04-07 04:35:31.000000000 -0600
> +++ b/lib/Sys/Virt/Domain.pm	2014-04-21 13:48:22.868956838 -0600
> @@ -1416,7 +1416,10 @@ recommended as a more efficient alternat
>  sub list_snapshots {
>      my $self = shift;
>  
> -    my $nnames = $self->num_of_snapshots();
> +    # If snapshots are not supported by the driver (lxc, libxl...), catch the
> +    # function not supported error and simply return as there are no snapshots
> +    my $nnames = eval { $self->num_of_snapshots() };
> +    return if($@ =~ /function is not supported/);
>      my @names = $self->list_snapshot_names($nnames);

Unfortunately this is a change in API behaviour that affects more
than just the TCK. You need todo the equivalent change to the TCK
code instead really.


Regards,
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 :|




More information about the libvir-list mailing list