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
}