Best Python code snippet using avocado_python
partition.py
Source:partition.py  
...198            except process.CmdError as details:199                raise PartitionError(self, "Mount failed", details)200        # Update the fstype as the mount command passed201        self.fstype = fstype202    def _unmount_force(self, mountpoint):203        """204        Kill all other jobs accessing this partition and force unmount it.205        :return: None206        :raise PartitionError: On critical failure207        """208        # Human readable list of processes209        out = process.system_output("lsof " + mountpoint, ignore_status=True)210        # Try to kill all pids211        for pid in (line.split()[1] for line in out.splitlines()[1:]):212            try:213                process.system("kill -9 %s" % pid, ignore_status=True,214                               sudo=True)215            except OSError:216                pass217        # Unmount218        try:219            process.run("umount -f %s" % mountpoint, sudo=True)220        except process.CmdError as details:221            try:222                process.run("umount -l %s" % mountpoint, sudo=True)223            except process.CmdError as details:224                raise PartitionError(self, "Force unmount failed", details)225    def unmount(self, force=True):226        """227        Umount this partition.228        It's easier said than done to umount a partition.229        We need to lock the mtab file to make sure we don't have any230        locking problems if we are umounting in parallel.231        When the unmount fails and force==True we unmount the partition232        ungracefully.233        :return: 1 on success, 2 on force umount success234        :raise PartitionError: On failure235        """236        with MtabLock():237            mountpoint = self.get_mountpoint()238            if not mountpoint:239                LOG.debug('%s not mounted', self.device)240                return 1241            try:242                process.run("umount " + mountpoint, sudo=True)243                return 1244            except process.CmdError as details:245                if force:246                    LOG.debug("Standard umount failed on %s, forcing",247                              mountpoint)248                    self._unmount_force(mountpoint)249                    return 2250                else:251                    raise PartitionError(self, "Unable to unmount gracefully",...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
