def test_unget_dev(self, mock_loopremove): tempdir = self.useFixture(fixtures.TempDir()).path mount = loop.LoopMount(self.file, tempdir) # This just checks that a free of something we don't have doesn't # throw an exception mount.unget_dev()
def test_unget_dev(self): tempdir = self.useFixture(fixtures.TempDir()).path l = loop.LoopMount(self.file, tempdir) self.useFixture(fixtures.MonkeyPatch('nova.utils.execute', _fake_noop)) # This just checks that a free of something we don't have doesn't # throw an exception l.unget_dev()
def test_inner_get_dev_fails(self, mock_loopsetup): tempdir = self.useFixture(fixtures.TempDir()).path mount = loop.LoopMount(self.file, tempdir) # No error logged, device consumed self.assertFalse(mount._inner_get_dev()) self.assertFalse(mount.linked) self.assertNotEqual('', mount.error) self.assertIsNone(mount.device) # Free mount.unget_dev() self.assertFalse(mount.linked) self.assertIsNone(mount.device)
def test_get_dev_timeout(self): tempdir = self.useFixture(fixtures.TempDir()).path l = loop.LoopMount(None, tempdir) self.useFixture(fixtures.MonkeyPatch('time.sleep', _fake_noop)) self.useFixture(fixtures.MonkeyPatch('nova.utils.trycmd', _fake_trycmd_losetup_fails)) self.useFixture(fixtures.MonkeyPatch(('nova.virt.disk.mount.api.' 'MAX_DEVICE_WAIT'), -10)) # Always fail to get a device def fake_get_dev_fails(): return False l._inner_get_dev = fake_get_dev_fails # Fail to get a device self.assertFalse(l.get_dev())
def test_inner_get_dev_fails(self): tempdir = self.useFixture(fixtures.TempDir()).path l = loop.LoopMount(None, tempdir) self.useFixture(fixtures.MonkeyPatch('nova.utils.trycmd', _fake_trycmd_losetup_fails)) # No error logged, device consumed self.assertFalse(l._inner_get_dev()) self.assertFalse(l.linked) self.assertNotEqual('', l.error) self.assertIsNone(l.device) # Free l.unget_dev() self.assertFalse(l.linked) self.assertIsNone(l.device)
def test_get_dev_timeout(self, mock_loopsetup): tempdir = self.useFixture(fixtures.TempDir()).path mount = loop.LoopMount(self.file, tempdir) self.useFixture(fixtures.MonkeyPatch('time.sleep', _fake_noop)) self.useFixture( fixtures.MonkeyPatch(('nova.virt.disk.mount.api.' 'MAX_DEVICE_WAIT'), -10)) # Always fail to get a device def fake_get_dev_fails(): return False mount._inner_get_dev = fake_get_dev_fails # Fail to get a device self.assertFalse(mount.get_dev())
def setup(self): self.imgdir = tempfile.mkdtemp(prefix="openstack-vfs-localfs") try: if self.imgfmt == "raw": LOG.debug(_("Using LoopMount")) mount = loop.LoopMount(self.imgfile, self.imgdir, self.partition) else: LOG.debug(_("Using NbdMount")) mount = nbd.NbdMount(self.imgfile, self.imgdir, self.partition) if not mount.do_mount(): raise exception.NovaException(mount.error) self.mount = mount except Exception as e: with excutils.save_and_reraise_exception(): LOG.debug(_("Failed to mount image %(ex)s)"), {'ex': str(e)}) self.teardown()
def test_get_dev(self): tempdir = self.useFixture(fixtures.TempDir()).path l = loop.LoopMount(self.file, tempdir) self.useFixture( fixtures.MonkeyPatch('nova.utils.trycmd', _fake_trycmd_losetup_works)) self.useFixture(fixtures.MonkeyPatch('nova.utils.execute', _fake_noop)) # No error logged, device consumed self.assertTrue(l.get_dev()) self.assertTrue(l.linked) self.assertEqual('', l.error) self.assertEqual('/dev/loop0', l.device) # Free l.unget_dev() self.assertFalse(l.linked) self.assertEqual('', l.error) self.assertIsNone(l.device)