def __init__(self, disk, parent=None, index="0", size=0, offset=0, flag='alloc', slot=0, fstype=None, key="", vstype='', volume_detector='auto'): """Creates a Volume object that is not mounted yet. Only use arguments as keyword arguments. :param disk: the parent disk :type disk: :class:`Disk` :param parent: the parent volume or disk. :param str index: the volume index within its volume system, see the attribute documentation. :param int size: the volume size, see the attribute documentation. :param int offset: the volume offset, see the attribute documentation. :param str flag: the volume flag, see the attribute documentation. :param int slot: the volume slot, see the attribute documentation. :param FileSystem fstype: the fstype you wish to use for this Volume. If not specified, will be retrieved from the ImageParser instance instead. :param str key: the key to use for this Volume. :param str vstype: the volume system type to use. :param str volume_detector: the volume system detection method to use """ self.parent = parent self.disk = disk # Should be filled somewhere self.size = size self.offset = offset self.index = index self.slot = slot self.flag = flag self.block_size = self.disk.block_size self.volumes = VolumeSystem(parent=self, vstype=vstype, volume_detector=volume_detector) self._get_fstype_from_parser(fstype) if key: self.key = key elif self.index in self.disk.parser.keys: self.key = self.disk.parser.keys[self.index] elif '*' in self.disk.parser.keys: self.key = self.disk.parser.keys['*'] else: self.key = "" self.info = {} self._paths = {} self.mountpoint = "" self.loopback = "" self.was_mounted = False self.is_mounted = False
def __init__(self, parser, path, index=None, offset=0, block_size=BLOCK_SIZE, read_write=False, vstype='', disk_mounter='auto', volume_detector='auto'): """Instantiation of this class does not automatically mount, detect or analyse the disk. You will need the :func:`init` method for this. Only use arguments offset and further as keyword arguments. :param parser: the parent parser :type parser: :class:`ImageParser` :param str path: the path of the Disk :param str index: the base index of this Disk :param int offset: offset of the disk where the volume (system) resides :param int block_size: :param bool read_write: indicates whether the disk should be mounted with a read-write cache enabled :param str vstype: the volume system type to use. :param str disk_mounter: the method to mount the base image with :param str volume_detector: the volume system detection method to use """ self.parser = parser # Find the type and the paths path = os.path.expandvars(os.path.expanduser(path)) self.paths = sorted(_util.expand_path(path)) self.offset = offset self.block_size = block_size self.read_write = read_write self.disk_mounter = disk_mounter or 'auto' self.index = index self._name = os.path.split(path)[1] self._paths = {} self.rwpath = "" self.mountpoint = "" self.volumes = VolumeSystem(parent=self, volume_detector=volume_detector, vstype=vstype) self.was_mounted = False self.is_mounted = False self._disktype = defaultdict(dict)