Change in vdsm[master]: tests: v2v: add test for commit fb4c72a

fromani at redhat.com fromani at redhat.com
Thu Oct 15 11:00:31 UTC 2015


Francesco Romani has uploaded a new change for review.

Change subject: tests: v2v: add test for commit fb4c72a
......................................................................

tests: v2v: add test for commit fb4c72a

In commit fb4c72a we made sure to continue to extract VM information
if the call to get allocation and capacity failed.
This patch adds one test to make it unlikely to break this again.

Change-Id: Iad523dc7c34276c6811513220cd7230ca5fc6e45
Signed-off-by: Francesco Romani <fromani at redhat.com>
---
M tests/v2vTests.py
1 file changed, 45 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/64/47364/1

diff --git a/tests/v2vTests.py b/tests/v2vTests.py
index d793bf9..cd79427 100644
--- a/tests/v2vTests.py
+++ b/tests/v2vTests.py
@@ -19,6 +19,7 @@
 
 from StringIO import StringIO
 
+import libvirt
 
 import v2v
 from vdsm import libvirtconnection
@@ -27,7 +28,9 @@
 
 from nose.plugins.skip import SkipTest
 from testlib import VdsmTestCase as TestCaseBase
-from monkeypatch import MonkeyPatch
+from monkeypatch import MonkeyPatch, MonkeyPatchScope
+
+import vmfakelib as fake
 
 
 class VmMock(object):
@@ -73,6 +76,10 @@
 
 # FIXME: extend vmfakelib allowing to set predefined domain in Connection class
 class LibvirtMock(object):
+
+    def __init__(self, storage_lookup_fail=False):
+        self._storage_lookup_fail = storage_lookup_fail
+
     def close(self):
         pass
 
@@ -80,6 +87,9 @@
         return [VmMock()]
 
     def storageVolLookupByPath(self, name):
+        if self._storage_lookup_fail:
+            e = fake.Error(libvirt.VIR_ERR_INTERNAL_ERROR)
+            raise e
         return LibvirtMock.Volume()
 
     class Volume(object):
@@ -140,9 +150,13 @@
         self.assertEquals(vm['smp'], 1)
         self.assertEquals(len(vm['disks']), 1)
         self.assertEquals(len(vm['networks']), 1)
+
         disk = vm['disks'][0]
         self.assertEquals(disk['dev'], 'sda')
         self.assertEquals(disk['alias'], '[datastore1] RHEL/RHEL.vmdk')
+        self.assertIn('capacity', disk)
+        self.assertIn('allocation', disk)
+
         network = vm['networks'][0]
         self.assertEquals(network['type'], 'bridge')
         self.assertEquals(network['macAddr'], '00:0c:29:c6:a6:11')
@@ -193,3 +207,33 @@
         self.assertEquals(network['model'], 'E1000')
         self.assertEquals(network['type'], 'bridge')
         self.assertEquals(network['dev'], 'Ethernet 1')
+
+    def testGetExternalVMsWithoutDisksInfo(self):
+        if not v2v.supported():
+            raise SkipTest('v2v is not supported current os version')
+
+        def _connect(uri, username, passwd):
+            return LibvirtMock(storage_lookup_fail=True)
+
+        with MonkeyPatchScope([(libvirtconnection, 'open_connection',
+                                _connect)]):
+            vms = v2v.get_external_vms('esx://mydomain', 'user',
+                                       ProtectedPassword('password'))['vmList']
+        self.assertEquals(len(vms), 1)
+        vm = vms[0]
+        self.assertEquals(vm['vmId'], '564d7cb4-8e3d-06ec-ce82-7b2b13c6a611')
+        self.assertEquals(vm['memSize'], 2048)
+        self.assertEquals(vm['smp'], 1)
+
+        self.assertEquals(len(vm['disks']), 1)
+        disk = vm['disks'][0]
+        self.assertEquals(disk['dev'], 'sda')
+        self.assertEquals(disk['alias'], '[datastore1] RHEL/RHEL.vmdk')
+        self.assertNotIn('capacity', disk)
+        self.assertNotIn('allocation', disk)
+
+        self.assertEquals(len(vm['networks']), 1)
+        network = vm['networks'][0]
+        self.assertEquals(network['type'], 'bridge')
+        self.assertEquals(network['macAddr'], '00:0c:29:c6:a6:11')
+        self.assertEquals(network['bridge'], 'VM Network')


-- 
To view, visit https://gerrit.ovirt.org/47364
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iad523dc7c34276c6811513220cd7230ca5fc6e45
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani at redhat.com>


More information about the vdsm-patches mailing list