Blob Blame History Raw
From b37ca67f769749b7b3b5d51e171b7cccfa3b5fd2 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Mon, 15 Apr 2019 17:24:42 +0200
Subject: [PATCH] v2v: -o rhv-upload: check whether the cluster exists

In the precheck script, check that the target cluster actually exists.
This will avoid errors when creating the VM after the data copying.

(cherry picked from commit 05e559549dab75f17e147f4a4eafbac868a7aa5d)
---
 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 []
-- 
2.24.1