func()

in component/libfuse/libfuse.go [183:255]


func (lf *Libfuse) Validate(opt *LibfuseOptions) error {
	lf.mountPath = opt.mountPath
	lf.readOnly = opt.readOnly
	lf.traceEnable = opt.EnableFuseTrace
	lf.allowOther = opt.allowOther
	lf.allowRoot = opt.allowRoot
	lf.extensionPath = opt.ExtensionPath
	lf.disableWritebackCache = opt.DisableWritebackCache
	lf.ignoreOpenFlags = opt.IgnoreOpenFlags
	lf.nonEmptyMount = opt.nonEmptyMount
	lf.directIO = opt.DirectIO
	lf.ownerGID = opt.Gid
	lf.ownerUID = opt.Uid
	lf.umask = opt.Umask

	if opt.allowOther {
		lf.dirPermission = uint(common.DefaultAllowOtherPermissionBits)
		lf.filePermission = uint(common.DefaultAllowOtherPermissionBits)
	} else {
		if opt.DefaultPermission != 0 {
			lf.dirPermission = uint(opt.DefaultPermission)
			lf.filePermission = uint(opt.DefaultPermission)
		} else {
			lf.dirPermission = uint(common.DefaultDirectoryPermissionBits)
			lf.filePermission = uint(common.DefaultFilePermissionBits)
		}
	}

	if config.IsSet(compName+".entry-expiration-sec") || config.IsSet("lfuse.entry-expiration-sec") {
		lf.entryExpiration = opt.EntryExpiration
	} else {
		lf.entryExpiration = defaultEntryExpiration
	}

	if config.IsSet(compName+".attribute-expiration-sec") || config.IsSet("lfuse.attribute-expiration-sec") {
		lf.attributeExpiration = opt.AttributeExpiration
	} else {
		lf.attributeExpiration = defaultAttrExpiration
	}

	if config.IsSet(compName+".negative-entry-expiration-sec") || config.IsSet("lfuse.negative-entry-expiration-sec") {
		lf.negativeTimeout = opt.NegativeEntryExpiration
	} else {
		lf.negativeTimeout = defaultNegativeEntryExpiration
	}

	if lf.directIO {
		lf.negativeTimeout = 0
		lf.attributeExpiration = 0
		lf.entryExpiration = 0
		log.Crit("Libfuse::Validate : DirectIO enabled, setting fuse timeouts to 0")
	}

	if !(config.IsSet(compName+".uid") || config.IsSet(compName+".gid") ||
		config.IsSet("lfuse.uid") || config.IsSet("lfuse.gid")) {
		var err error
		lf.ownerUID, lf.ownerGID, err = common.GetCurrentUser()
		if err != nil {
			log.Err("Libfuse::Validate : config error [unable to obtain current user info]")
			return nil
		}
	}

	if config.IsSet(compName + ".max-fuse-threads") {
		lf.maxFuseThreads = opt.MaxFuseThreads
	} else {
		lf.maxFuseThreads = defaultMaxFuseThreads
	}

	log.Info("Libfuse::Validate : UID %v, GID %v", lf.ownerUID, lf.ownerGID)

	return nil
}