[Libguestfs] [PATCH] v2v: -o rhv-upload: check whether the cluster exists

Richard W.M. Jones rjones at redhat.com
Tue Apr 16 07:50:28 UTC 2019


On Mon, Apr 15, 2019 at 06:01:12PM +0200, Pino Toscano wrote:
> In the precheck script, check that the target cluster actually exists.
> This will avoid errors when creating the VM after the data copying.
> ---
>  v2v/rhv-upload-precheck.py                             | 10 ++++++++++
>  v2v/test-v2v-o-rhv-upload-module/ovirtsdk4/__init__.py |  7 +++++++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/v2v/rhv-upload-precheck.py b/v2v/rhv-upload-precheck.py
> index 2798a29dd..b79f91b4a 100644
> --- a/v2v/rhv-upload-precheck.py
> +++ b/v2v/rhv-upload-precheck.py
> @@ -70,4 +70,14 @@ if len(vms) > 0:
>      raise RuntimeError("VM already exists with name ‘%s’, id ‘%s’" %
>                         (params['output_name'], vm.id))
>  
> +# Check whether the specified cluster exists.
> +clusters_service = system_service.clusters_service()
> +clusters = clusters_service.list(
> +    search='name=%s' % params['rhv_cluster'],
> +    case_sensitive=True,
> +)
> +if len(clusters) == 0:
> +    raise RuntimeError("The cluster ‘%s’ does not exist" %
> +                       (params['rhv_cluster']))
> +
>  # Otherwise everything is OK, exit with no error.
> diff --git a/v2v/test-v2v-o-rhv-upload-module/ovirtsdk4/__init__.py b/v2v/test-v2v-o-rhv-upload-module/ovirtsdk4/__init__.py
> index 8d1058d67..cc4224ccd 100644
> --- a/v2v/test-v2v-o-rhv-upload-module/ovirtsdk4/__init__.py
> +++ b/v2v/test-v2v-o-rhv-upload-module/ovirtsdk4/__init__.py
> @@ -39,6 +39,9 @@ class Connection(object):
>          return SystemService()
>  
>  class SystemService(object):
> +    def clusters_service(self):
> +        return ClustersService()
> +
>      def data_centers_service(self):
>          return DataCentersService()
>  
> @@ -54,6 +57,10 @@ class SystemService(object):
>      def vms_service(self):
>          return VmsService()
>  
> +class ClustersService(object):
> +    def list(self, search=None, case_sensitive=False):
> +        return ["Default"]
> +
>  class DataCentersService(object):
>      def list(self, search=None, case_sensitive=False):
>          return []

Seems reasonable, ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list