コード例 #1
0
    def testRegisterInvalidNamespace(self):
        try:
            rm.registerNamespace("I.HEART.DOTS", rm.SimpleResourceFactory())
        except ValueError:
            return

        self.fail("Managed to register an invalid namespace")
コード例 #2
0
def tmp_manager(monkeypatch):
    """
    Create fresh _ResourceManager instance for testing.
    """
    manager = rm._ResourceManager()
    manager.registerNamespace("storage", rm.SimpleResourceFactory())
    manager.registerNamespace("null", NullResourceFactory())
    manager.registerNamespace("string", StringResourceFactory())
    manager.registerNamespace("error", ErrorResourceFactory())
    manager.registerNamespace("switchfail", SwitchFailFactory())
    manager.registerNamespace("crashy", CrashOnCloseFactory())
    manager.registerNamespace("failAfterSwitch", FailAfterSwitchFactory())
    monkeypatch.setattr(rm, "_manager", manager)
コード例 #3
0
def manager():
    """
    Create fresh _ResourceManager instance for testing.
    """
    manager = rm._ResourceManager()
    manager.registerNamespace("storage", rm.SimpleResourceFactory())
    manager.registerNamespace("null", NullResourceFactory())
    manager.registerNamespace("string", StringResourceFactory())
    manager.registerNamespace("error", ErrorResourceFactory())
    manager.registerNamespace("switchfail", SwitchFailFactory())
    manager.registerNamespace("crashy", CrashOnCloseFactory())
    manager.registerNamespace("failAfterSwitch", FailAfterSwitchFactory())
    return manager
コード例 #4
0
def tmp_repo(tmpdir, monkeypatch, tmp_fs):
    """
    Provide a temporary repo directory and patch vsdm to use it instead of
    /rhev/data-center.
    """
    repo = tmprepo.TemporaryRepo(tmpdir, tmp_fs)

    # Patch repo directory.
    monkeypatch.setattr(sc, "REPO_DATA_CENTER", repo.path)
    monkeypatch.setattr(sc, "REPO_MOUNT_DIR", repo.mnt_dir)

    # Patch multipath discovery and resize
    monkeypatch.setattr(multipath, "rescan", lambda: None)
    monkeypatch.setattr(multipath, "resize_devices", lambda: None)

    # Patch the resource manager.
    manager = rm._ResourceManager()
    manager.registerNamespace(sc.STORAGE, rm.SimpleResourceFactory())
    monkeypatch.setattr(rm, "_manager", manager)

    # Invalidate sdCache so stale data from previous test will affect
    # this test.
    sdCache.refresh()
    sdCache.knownSDs.clear()

    try:
        yield repo
    finally:
        # ioprocess is typically invoked from tests using tmp_repo. This
        # terminate ioprocess instances, avoiding thread and process leaks in
        # tests, and errors in __del__ during test shutdown.
        oop.stop()

        # Invalidate sdCache so stale data from this test will affect
        # the next test.
        sdCache.refresh()
        sdCache.knownSDs.clear()
コード例 #5
0
ファイル: sd.py プロジェクト: benipeled/vdsm
    def _registerResourceNamespaces(self):
        """
        Register resources namespaces and create
        factories for it.
        """
        # Register image resource namespace
        imageResourceFactory = \
            resourceFactories.ImageResourceFactory(self.sdUUID)
        imageResourcesNamespace = rm.getNamespace(sc.IMAGE_NAMESPACE,
                                                  self.sdUUID)
        try:
            rm.registerNamespace(imageResourcesNamespace, imageResourceFactory)
        except rm.NamespaceRegistered:
            self.log.debug("Resource namespace %s already registered",
                           imageResourcesNamespace)

        volumeResourcesNamespace = rm.getNamespace(sc.VOLUME_NAMESPACE,
                                                   self.sdUUID)
        try:
            rm.registerNamespace(volumeResourcesNamespace,
                                 rm.SimpleResourceFactory())
        except rm.NamespaceRegistered:
            self.log.debug("Resource namespace %s already registered",
                           volumeResourcesNamespace)
コード例 #6
0
 def testRegisterExistingNamespace(self, tmp_manager):
     with pytest.raises(rm.NamespaceRegistered):
         rm.registerNamespace("storage", rm.SimpleResourceFactory())
コード例 #7
0
 def testRegisterInvalidNamespace(self, tmp_manager):
     with pytest.raises(rm.InvalidNamespace) as e:
         rm.registerNamespace("I.HEART.DOTS", rm.SimpleResourceFactory())
     assert "I.HEART.DOTS" in str(e)
コード例 #8
0
 def testRegisterExistingNamespace(self):
     self.assertRaises(rm.NamespaceRegistered, rm.registerNamespace,
                       "storage", rm.SimpleResourceFactory())
コード例 #9
0
 def testRegisterInvalidNamespace(self):
     with pytest.raises(ValueError,
                        message="Managed to register an invalid namespace"):
         rm.registerNamespace("I.HEART.DOTS", rm.SimpleResourceFactory())