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)
def _parse_dfs_sb_dkey(dkey_raw, iods, akey_count): key = ctypes.string_at(dkey_raw.iov_buf, dkey_raw.iov_buf_len) overhead = Overhead.META dkey = DKey(key=key.decode('utf-8'), overhead=overhead) for i in range(0, akey_count.value): akey = _create_akey(iods[i]) dkey.add_value(akey) return dkey
def get_dfs_sb_obj(): try: dfs_sb = DFS_SB() dkey = dfs_sb.get_dfs_sb_dkey() dfs_inode = dfs_sb.get_dfs_inode_akey() except Exception as err: raise Exception( 'Failed to get the DFS superblock VOS object: {0}'.format(err)) sb_obj = VosObject() sb_obj.add_value(dkey) root_dkey = DKey(key='/', overhead=Overhead.USER) root_dkey.add_value(dfs_inode) sb_obj.add_value(root_dkey) return sb_obj
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) # nosec 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) # nosec 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() # nosec
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)
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