예제 #1
0
    def add_symlink(self, oid, name, link_size, dkey_count=1):
        akey = copy.deepcopy(self._dfs_inode_akey)
        value = VosValue(size=link_size)
        akey.add_value(value)

        dkey = DKey(key=name)
        dkey.set_count(dkey_count)
        dkey.add_value(akey)

        self._objects[oid].add_value(dkey)
예제 #2
0
    def test_invalid_parameters(self):
        with pytest.raises(TypeError) as err:
            akey = DKey(count="rubbish")
        assert "count parameter must be of type int" in str(err.value)

        with pytest.raises(TypeError) as err:
            akey = DKey(key_type="rubbish")
        assert "key_type parameter must be of type" in str(err.value)

        with pytest.raises(TypeError) as err:
            akey = DKey(overhead="rubbish")
        assert "overhead parameter must be of type" in str(err.value)

        with pytest.raises(VosValueError) as err:
            dkey = DKey()
            akey = dkey.dump()
        assert "list of akeys must not be empty" in str(err.value)
예제 #3
0
    def _add_entry(self, oid, name, dkey_count=1):
        dkey = DKey(key=name)
        dkey.set_count(dkey_count)
        dkey.add_value(self._dfs_inode_akey)

        self._objects[oid].add_value(dkey)
예제 #4
0
    def test_add_value(self):
        with pytest.raises(VosValueError) as err:
            dkey = DKey(key="D-key 1")
            dkey.dump()
        assert "list of akeys must not be empty" in str(err.value)

        with pytest.raises(TypeError) as err:
            dkey = DKey(key="D-key 1")
            dkey.add_value("rubbish")
        assert "must be of type" in str(err.value)

        dkey = DKey(key="D-key 1")
        akey = AKey(key="A-key 1",
                    value_type="single_value",
                    values=self.test_data.create_values())
        dkey.add_value(akey)
        akey = AKey(key="A-key 2",
                    value_type="array",
                    values=self.test_data.create_values())
        dkey.add_value(akey)

        want = self.test_data.create_default_dkey()

        assert want == dkey.dump()
예제 #5
0
        def get_mock_dfs_superblock_obj(self):
            dkey_sb = DKey(key="DFS_SB_METADATA", overhead=Overhead.META)
            dkey_sb.add_value(self._create_sb_akey(key="DFS_MAGIC", size=8))
            dkey_sb.add_value(
                self._create_sb_akey(key="DFS_SB_VERSION", size=2))
            dkey_sb.add_value(
                self._create_sb_akey(key="DFS_LAYOUT_VERSION", size=2))
            dkey_sb.add_value(
                self._create_sb_akey(key="DFS_CHUNK_SIZE", size=8))
            dkey_sb.add_value(self._create_sb_akey(key="DFS_OBJ_CLASS",
                                                   size=2))

            inode_value = VosValue(size=64)
            akey_inode = AKey(key="DFS_INODE",
                              overhead=Overhead.META,
                              value_type=ValType.ARRAY)
            akey_inode.add_value(inode_value)
            dkey_root = DKey(key="/")
            dkey_root.add_value(akey_inode)

            superblock_obj = VosObject()
            superblock_obj.add_value(dkey_sb)
            superblock_obj.add_value(dkey_root)

            return superblock_obj