Esempio n. 1
0
 def pre_enable(self):
     # ensure a manager is set
     manager = mount_ctrl.get_manager()
     if manager is None:
         from stashutils import mount_manager  # import here to prevent an error
         manager = mount_manager.MountManager()
         mount_ctrl.set_manager(manager)
Esempio n. 2
0
def list_mounts():
    """list all mounts"""
    manager = mount_ctrl.get_manager()
    if manager is None:
        manager = mount_manager.MountManager()
        mount_ctrl.set_manager(manager)

    mounts = manager.get_mounts()
    for p, fsi, readonly in mounts:
        print("{f} on {p}".format(f=fsi.repr(), p=p))
Esempio n. 3
0
def list_mounts():
	"""list all mounts"""
	manager = mount_ctrl.get_manager()
	if manager is None:
		manager = mount_manager.MountManager()
		mount_ctrl.set_manager(manager)
	
	mounts = manager.get_mounts()
	for p, fsi, readonly in mounts:
		print("{f} on {p}".format(f=fsi.repr(), p=p))
Esempio n. 4
0
    def unmount_fsi(self, path, force=False):
        """unmounts a fsi."""
        path = os.path.abspath(path)
        if not path in self.path2fs:
            raise MountError("Nothing mounted there.")
        fsi, readonly = self.path2fs[path]
        if not force:
            try:
                fsi.close()
            except OperationFailure as e:
                raise MountError(e.message)
        del self.path2fs[path]  # todo: close files

    def get_mounts(self):
        """
		returns a list of (path, fsi, readonly) containing all currently
		mounted filesystems.
		"""
        ret = []
        for p in self.path2fs:
            fs, readonly = self.path2fs[p]
            ret.append((p, fs, readonly))
        return ret


# install manager

if get_manager() is None:
    set_manager(MountManager())
Esempio n. 5
0
        nargs="?",
        default=None,
        help="directory to remove mounted filesystem from",
    )
    ns = parser.parse_args()

    if not (ns.directory or ("-a" in sys.argv) or ("--all" in sys.argv)):
        print(_stash.text_color("Error: no target directory specified!",
                                "red"))
        sys.exit(1)

    manager = mount_ctrl.get_manager()

    if manager is None:
        manager = mount_manager.MountManager()
        mount_ctrl.set_manager(manager)

    if ns.all:
        to_unmount = [m[0] for m in manager.get_mounts()]
    else:
        to_unmount = [ns.directory]

    exitcode = 0

    for path in to_unmount:
        if ns.v:
            print("Unmounting '{p}'...".format(p=path))
        try:
            manager.unmount_fsi(path, force=ns.force)
        except mount_manager.MountError as e:
            exitcode = 1
Esempio n. 6
0
		"directory", action="store", nargs="?", default=None,
		help="directory to remove mounted filesystem from",
		)
	ns = parser.parse_args()
	
	if not (ns.directory or ("-a" in sys.argv) or ("--all" in sys.argv)):
		print(_stash.text_color(
			"Error: no target directory specified!", "red"
			))
		sys.exit(1)
	
	manager = mount_ctrl.get_manager()
	
	if manager is None:
		manager = mount_manager.MountManager()
		mount_ctrl.set_manager(manager)
	
	if ns.all:
		to_unmount = [m[0] for m in manager.get_mounts()]
	else:
		to_unmount = [ns.directory]
	
	exitcode = 0
	
	for path in to_unmount:
		if ns.v:
			print("Unmounting '{p}'...".format(p=path))
		try:
			manager.unmount_fsi(path, force=ns.force)
		except mount_manager.MountError as e:
			exitcode = 1
Esempio n. 7
0
		self.path2fs[path] = (fsi, readonly)
	
	def unmount_fsi(self, path, force=False):
		"""unmounts a fsi."""
		path = os.path.abspath(path)
		if not path in self.path2fs:
			raise MountError("Nothing mounted there.")
		fsi, readonly = self.path2fs[path]
		if not force:
			try:
				fsi.close()
			except OperationFailure as e:
				raise MountError(e.message)
		del self.path2fs[path]  # todo: close files
	
	def get_mounts(self):
		"""
		returns a list of (path, fsi, readonly) containing all currently
		mounted filesystems.
		"""
		ret = []
		for p in self.path2fs:
			fs, readonly = self.path2fs[p]
			ret.append((p,fs, readonly))
		return ret

# install manager

if get_manager() is None:
	set_manager(MountManager())