def umount_dev(mntdir, rmdir=True): def umount_loop_dev(mntdir): cmd = '/bin/umount' argv = [mntdir] cmdres = run_bash(cmd, argv) if cmdres['ret']: return False, str(cmdres['err']) else: loop_dev, isopath = LOOP_DEVICES[mntdir] cmd = '/sbin/losetup' argv = ['-d', loop_dev] cmdres = run_bash(cmd, argv) if cmdres['ret']: return False, str(cmdres['err']) else: free_loop(loop_dev) LOOP_DEVICES.pop(mntdir, '') return True, '' isys.sync() if USE_ISYS: try: isys.umount(mntdir) except SystemError, e: errmsg = "umount_dev: umount failed: %s\n" % str(e) logger.e(errmsg) return False, errmsg
if not os.path.exists(mntdir): try: os.makedirs(mntdir) except OSError, e: return False, str(e) logger.i("mount_dev: Device = %s Mount = %s Fstype = %s\n" % \ (devfn, mntdir, fstype)) if not os.path.exists(mntdir): os.makedirs(mntdir) if USE_ISYS: try: isys.mount(fstype, devfn, mntdir, flags) except SystemError, e: errmsg = "mount_dev: mount failed: %s\n" % str(e) logger.e(errmsg) return False, errmsg else: return True, mntdir else: f_loop = False if flags: flag_list = flags.split(',') else: flag_list = [] new_flag_list = [] for f in flag_list: if f.strip().startswith('loop'): f_loop = True else: new_flag_list.append(f.strip())