def test_volume_accessibility(self): with fake_block_env() as env: sd_id = env.sd_manifest.sdUUID img_id = make_uuid() vol_id = make_uuid() make_block_volume(env.lvm, env.sd_manifest, 1 * MB, img_id, vol_id) self.assertTrue(os.path.isfile(env.lvm.lvPath(sd_id, vol_id))) domain_path = os.path.join(env.sd_manifest.domaindir, sd.DOMAIN_IMAGES, img_id, vol_id) repo_path = os.path.join(env.sd_manifest.getRepoPath(), sd_id, sd.DOMAIN_IMAGES, img_id, vol_id) self.assertNotEqual(repo_path, domain_path) # The links to the dev are created only when producing the volume self.assertFalse(os.path.isfile(domain_path)) self.assertFalse(os.path.isfile(repo_path)) env.sd_manifest.produceVolume(img_id, vol_id) self.assertTrue(os.path.samefile(repo_path, domain_path))
def test_volume_type(self, vol_type): with fake_block_env() as env: img_id = make_uuid() vol_id = make_uuid() make_block_volume(env.lvm, env.sd_manifest, 0, img_id, vol_id, vol_type=vol_type) vol = env.sd_manifest.produceVolume(img_id, vol_id) self.assertEqual(vol.getVolType(), sc.type2name(vol_type))
def test_volume_size_alignment(self, size_param): with fake_block_env() as env: sd_id = env.sd_manifest.sdUUID img_id = make_uuid() vol_id = make_uuid() make_block_volume(env.lvm, env.sd_manifest, size_param, img_id, vol_id) vol = env.sd_manifest.produceVolume(img_id, vol_id) extent_size = sc.VG_EXTENT_SIZE_MB * MB expected_size = utils.round(size_param, extent_size) self.assertEqual(expected_size / sc.BLOCK_SIZE, vol.getSize()) self.assertEqual(expected_size, int(env.lvm.getLV(sd_id, vol_id).size)) lv_file_size = os.stat(env.lvm.lvPath(sd_id, vol_id)).st_size self.assertEqual(expected_size, lv_file_size)
def test_volume_metadata_io(self): with fake_block_env() as env: sd_id = env.sd_manifest.sdUUID img_id = make_uuid() vol_id = make_uuid() size_mb = sc.VG_EXTENT_SIZE_MB size = size_mb * MB size_blk = size_mb * MB / sc.BLOCK_SIZE make_block_volume(env.lvm, env.sd_manifest, size, img_id, vol_id) self.assertEqual(vol_id, env.lvm.getLV(sd_id, vol_id).name) vol = env.sd_manifest.produceVolume(img_id, vol_id) self.assertEqual(size_blk, vol.getSize()) desc = 'foo' vol.setDescription(desc) # Test that metadata is persisted to our temporary storage area vol = env.sd_manifest.produceVolume(img_id, vol_id) self.assertEqual(desc, vol.getDescription())
def test_volume_metadata_io(self): with fake_block_env() as env: sd_id = env.sd_manifest.sdUUID img_id = str(uuid.uuid4()) vol_id = str(uuid.uuid4()) size_mb = 1 * MB size_blk = size_mb * MB / sc.BLOCK_SIZE make_block_volume(env.lvm, env.sd_manifest, size_mb, img_id, vol_id) self.assertEqual(vol_id, env.lvm.getLV(sd_id, vol_id).name) vol = env.sd_manifest.produceVolume(img_id, vol_id) self.assertEqual(size_blk, vol.getSize()) desc = 'foo' vol.setDescription(desc) # Test that metadata is persisted to our temporary storage area vol = env.sd_manifest.produceVolume(img_id, vol_id) self.assertEqual(desc, vol.getDescription())