def test_load(self): with self.setup_env() as (testvm, tmpdir): stored = recovery.File(testvm.id) stored.save(testvm) loaded = recovery.File(testvm.id) fakecif = fake.ClientIF() res = loaded.load(fakecif) self.assertTrue(res) self.assertVmStatus(testvm, fakecif.vmRequests[testvm.id][0])
def test_load_with_createVm_error(self, createVm): with self.setup_env() as (testvm, tmpdir): stored = recovery.File(testvm.id) stored.save(testvm) loaded = recovery.File(testvm.id) fakecif = fake.ClientIF() fakecif.createVm = createVm res = loaded.load(fakecif) self.assertFalse(res) self.assertEqual(fakecif.vmContainer, {}) self.assertEqual(fakecif.vmRequests, {})
def test_save(self): with self.setup_env() as (testvm, tmpdir): rec = recovery.File(testvm.id) rec.save(testvm) with open(os.path.join(tmpdir, rec.name), 'rb') as f: self.assertTrue(pickle.load(f))
def test_cleanup(self): with self.setup_env() as (testvm, tmpdir): stored = recovery.File(testvm.id) stored.save(testvm) self.assertEqual(len(os.listdir(tmpdir)), 1) stored.cleanup() self.assertEqual(len(os.listdir(tmpdir)), 0)
def test_clean_vm_files(self): with fake.VM() as testvm, namedTemporaryDir() as tmpdir: with MonkeyPatchScope([(constants, 'P_VDSM_RUN', tmpdir + '/')]): stored = recovery.File(testvm.id) stored.save(testvm) loaded = recovery.File(testvm.id) fakecif = fake.ClientIF() loaded.load(fakecif) # we have one recovery file (just created) self.assertEqual(len(os.listdir(tmpdir)), 1) # ...but somehow ClientIF failed to create the VM. self.assertEqual(fakecif.vmContainer, {}) # ... so we can actually do our test. recovery.clean_vm_files(fakecif) self.assertEqual(os.listdir(tmpdir), [])
def test_save_after_cleanup(self): with self.setup_env() as (testvm, tmpdir): rec = recovery.File(testvm.id) rec.save(testvm) rec.cleanup() self.assertEqual(os.listdir(tmpdir), []) rec.save(testvm) # must silently fail self.assertEqual(os.listdir(tmpdir), [])
def test_vmid(self): with self.setup_env() as (testvm, tmpdir): state = recovery.File(testvm.id) self.assertEqual(testvm.id, state.vmid)
def test_name(self): with self.setup_env() as (testvm, tmpdir): state = recovery.File(testvm.id) self.assertIn(testvm.id, state.name) self.assertTrue(state.name.endswith(recovery.File.EXTENSION))