Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
    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)
Пример #4
0
    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())
Пример #5
0
    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)
Пример #6
0
    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())
Пример #7
0
 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()
Пример #8
0
    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)