Change in vdsm[master]: tests: storagetestlib: normalize make_file_volume

alitke at redhat.com alitke at redhat.com
Thu Apr 14 20:46:55 UTC 2016


Adam Litke has uploaded a new change for review.

Change subject: tests: storagetestlib: normalize make_file_volume
......................................................................

tests: storagetestlib: normalize make_file_volume

The test utility make_block_volume was recently improved so that the
created volume had correct metadata in the fake storage domain.  Do the
same for make_file_volume and normalize the interface so that it works
like make_block_volume (ie. requires image and volume ids).

Change-Id: I79a94da73e370541277ad6fa55fcf4655681e1c2
Signed-off-by: Adam Litke <alitke at redhat.com>
---
M tests/domain_manifest_test.py
M tests/storagetestlib.py
M tests/storagetestlibTests.py
3 files changed, 45 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/70/56170/1

diff --git a/tests/domain_manifest_test.py b/tests/domain_manifest_test.py
index 0d9a543..202fdfc 100644
--- a/tests/domain_manifest_test.py
+++ b/tests/domain_manifest_test.py
@@ -20,7 +20,7 @@
 import os
 import uuid
 
-from testlib import VdsmTestCase, make_file, recorded
+from testlib import VdsmTestCase, recorded
 from storagetestlib import (
     make_file_volume,
     fake_block_env,
@@ -35,21 +35,27 @@
 
 class FileManifestTests(VdsmTestCase):
 
+    def setUp(self):
+        self.img_id = str(uuid.uuid4())
+        self.vol_id = str(uuid.uuid4())
+
     def test_getreaddelay(self):
         with fake_file_env() as env:
             self.assertIsInstance(env.sd_manifest.getReadDelay(), float)
 
     def test_getvsize(self):
         with fake_file_env() as env:
-            sd_manifest = env.sd_manifest
-            imguuid, voluuid = make_file_volume(sd_manifest.domaindir, VOLSIZE)
-            self.assertEqual(VOLSIZE, sd_manifest.getVSize(imguuid, voluuid))
+            make_file_volume(env.sd_manifest, VOLSIZE,
+                             self.img_id, self.vol_id)
+            self.assertEqual(VOLSIZE, env.sd_manifest.getVSize(
+                self.img_id, self.vol_id))
 
     def test_getvallocsize(self):
         with fake_file_env() as env:
-            sd_manifest = env.sd_manifest
-            imguuid, voluuid = make_file_volume(sd_manifest.domaindir, VOLSIZE)
-            self.assertEqual(0, sd_manifest.getVAllocSize(imguuid, voluuid))
+            make_file_volume(env.sd_manifest, VOLSIZE,
+                             self.img_id, self.vol_id)
+            self.assertEqual(0, env.sd_manifest.getVAllocSize(
+                self.img_id, self.vol_id))
 
     def test_getisodomainimagesdir(self):
         with fake_file_env() as env:
@@ -72,17 +78,16 @@
     def test_getallimages(self):
         with fake_file_env() as env:
             self.assertEqual(set(), env.sd_manifest.getAllImages())
-            img_uuid = str(uuid.uuid4())
-            make_file_volume(env.sd_manifest.domaindir, VOLSIZE, img_uuid)
-            self.assertIn(img_uuid, env.sd_manifest.getAllImages())
+            img_id = str(uuid.uuid4())
+            vol_id = str(uuid.uuid4())
+            make_file_volume(env.sd_manifest, VOLSIZE, img_id, vol_id)
+            self.assertIn(img_id, env.sd_manifest.getAllImages())
 
 
 class BlockManifestTests(VdsmTestCase):
 
     def test_getreaddelay(self):
         with fake_block_env() as env:
-            vg_name = env.sd_manifest.sdUUID
-            make_file(env.lvm.lvPath(vg_name, 'metadata'))
             self.assertIsInstance(env.sd_manifest.getReadDelay(), float)
 
     def test_getvsize_active_lv(self):
diff --git a/tests/storagetestlib.py b/tests/storagetestlib.py
index ebe2e0d..d005e28 100644
--- a/tests/storagetestlib.py
+++ b/tests/storagetestlib.py
@@ -136,15 +136,32 @@
     return manifest
 
 
-def make_file_volume(domaindir, size, imguuid=None, voluuid=None):
-    imguuid = imguuid or str(uuid.uuid4())
-    voluuid = voluuid or str(uuid.uuid4())
-    volpath = os.path.join(domaindir, "images", imguuid, voluuid)
+def make_file_volume(sd_manifest, size, imguuid, voluuid,
+                     parent_vol_id=volume.BLANK_UUID,
+                     vol_format=volume.RAW_FORMAT,
+                     prealloc=volume.SPARSE_VOL,
+                     disk_type=image.UNKNOWN_DISK_TYPE,
+                     desc='fake volume'):
+    volpath = os.path.join(sd_manifest.domaindir, "images", imguuid, voluuid)
     mdfiles = [volpath + '.meta', volpath + '.lease']
     make_file(volpath, size)
     for mdfile in mdfiles:
         make_file(mdfile)
-    return imguuid, voluuid
+
+    size_blk = size / volume.BLOCK_SIZE
+    vol_class = sd_manifest.getVolumeClass()
+    vol_class.newMetadata(
+        (volpath,),
+        sd_manifest.sdUUID,
+        imguuid,
+        parent_vol_id,
+        size_blk,
+        volume.type2name(vol_format),
+        volume.type2name(prealloc),
+        volume.type2name(volume.LEAF_VOL),
+        disk_type,
+        desc,
+        volume.LEGAL_VOL)
 
 
 def make_block_volume(lvm, sd_manifest, size, imguuid, voluuid,
diff --git a/tests/storagetestlibTests.py b/tests/storagetestlibTests.py
index cafeb85..0a1a4a6 100644
--- a/tests/storagetestlibTests.py
+++ b/tests/storagetestlibTests.py
@@ -63,7 +63,9 @@
 
     def test_volume_structure(self):
         with fake_file_env() as env:
-            img_id, vol_id = make_file_volume(env.sd_manifest.domaindir, 0)
+            img_id = str(uuid.uuid4())
+            vol_id = str(uuid.uuid4())
+            make_file_volume(env.sd_manifest, 0, img_id, vol_id)
             image_dir = env.sd_manifest.getImagePath(img_id)
             files = (vol_id, vol_id + constants.LEASE_FILEEXT,
                      vol_id + fileVolume.META_FILEEXT)
@@ -74,7 +76,9 @@
     def test_volume_metadata_io(self):
         with fake_file_env() as env:
             size = 1 * MB
-            img_id, vol_id = make_file_volume(env.sd_manifest.domaindir, size)
+            img_id = str(uuid.uuid4())
+            vol_id = str(uuid.uuid4())
+            make_file_volume(env.sd_manifest, size, img_id, vol_id)
             vol = env.sd_manifest.produceVolume(img_id, vol_id)
             desc = 'foo'
             vol.setDescription(desc)


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I79a94da73e370541277ad6fa55fcf4655681e1c2
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Adam Litke <alitke at redhat.com>


More information about the vdsm-patches mailing list