[Libguestfs] [PATCH v2v v2 2/2] rhv-upload: Check that rhv-disk-uuid is not already taken (RHBZ#1789279)

Pino Toscano ptoscano at redhat.com
Mon Feb 24 09:28:46 UTC 2020


On Wednesday, 29 January 2020 15:34:49 CET Martin Kletzander wrote:
> This makes the code fail with a sensible error message instead of cryptic error
> from ovirtsdk.
> 
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>  v2v/rhv-upload-plugin.py | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/v2v/rhv-upload-plugin.py b/v2v/rhv-upload-plugin.py
> index d3e6260e97f4..413ad53b05ab 100644
> --- a/v2v/rhv-upload-plugin.py
> +++ b/v2v/rhv-upload-plugin.py
> @@ -26,6 +26,9 @@ import ssl
>  import sys
>  import time
>  
> +import nbdkit
> +import errno
> +
>  from http.client import HTTPSConnection, HTTPConnection
>  from urllib.parse import urlparse
>  
> @@ -461,6 +464,15 @@ def create_disk(connection):
>      system_service = connection.system_service()
>      disks_service = system_service.disks_service()
>  
> +    uuid = params.get('rhv_disk_uuid')
> +    if uuid is not None:
> +        try:
> +            disks_service.disk_service(uuid).get()
> +            nbdkit.set_error(errno.EEXIST)
> +            raise ValueError("Disk with the UUID '%s' already exists" % uuid)
> +        except sdk.NotFoundError:
> +            pass

This check seems correct to me, although it is done too late: IMHO this
is something to do in the precheck script, so we do not even attempt to
connect to the source if any of the specified UUIDs already exists in
oVirt.

-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20200224/e35b7a3c/attachment.sig>


More information about the Libguestfs mailing list