mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
feat(client): trash can be disabled by sdk
close:#22775703 Signed-off-by: chihe <chihe@oppo.com>
This commit is contained in:
parent
5c43034c5f
commit
8209e99634
@ -66,12 +66,13 @@ func NewS3Scanner(adminTask *proto.AdminTask, l *LcNode) (*LcScanner, error) {
|
||||
var err error
|
||||
|
||||
metaConfig := &meta.MetaConfig{
|
||||
Volume: scanTask.VolName,
|
||||
Masters: l.masters,
|
||||
Authenticate: false,
|
||||
ValidateOwner: false,
|
||||
InnerReq: true,
|
||||
MetaSendTimeout: 600,
|
||||
Volume: scanTask.VolName,
|
||||
Masters: l.masters,
|
||||
Authenticate: false,
|
||||
ValidateOwner: false,
|
||||
InnerReq: true,
|
||||
MetaSendTimeout: 600,
|
||||
DisableTrashByClient: true,
|
||||
}
|
||||
var metaWrapper *meta.MetaWrapper
|
||||
if metaWrapper, err = meta.NewMetaWrapper(metaConfig); err != nil {
|
||||
|
||||
@ -466,12 +466,13 @@ func (l *LcNode) httpServiceGetFile(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
metaConfig := &meta.MetaConfig{
|
||||
Volume: vol,
|
||||
Masters: l.masters,
|
||||
Authenticate: false,
|
||||
ValidateOwner: false,
|
||||
InnerReq: true,
|
||||
MetaSendTimeout: 600,
|
||||
Volume: vol,
|
||||
Masters: l.masters,
|
||||
Authenticate: false,
|
||||
ValidateOwner: false,
|
||||
InnerReq: true,
|
||||
MetaSendTimeout: 600,
|
||||
DisableTrashByClient: true,
|
||||
}
|
||||
var metaWrapper *meta.MetaWrapper
|
||||
if metaWrapper, err = meta.NewMetaWrapper(metaConfig); err != nil {
|
||||
|
||||
@ -50,12 +50,13 @@ func NewSnapshotScanner(adminTask *proto.AdminTask, l *LcNode) (*SnapshotScanner
|
||||
request := adminTask.Request.(*proto.SnapshotVerDelTaskRequest)
|
||||
var err error
|
||||
metaConfig := &meta.MetaConfig{
|
||||
Volume: request.Task.VolName,
|
||||
Masters: l.masters,
|
||||
Authenticate: false,
|
||||
ValidateOwner: false,
|
||||
InnerReq: true,
|
||||
MetaSendTimeout: 600,
|
||||
Volume: request.Task.VolName,
|
||||
Masters: l.masters,
|
||||
Authenticate: false,
|
||||
ValidateOwner: false,
|
||||
InnerReq: true,
|
||||
MetaSendTimeout: 600,
|
||||
DisableTrashByClient: true,
|
||||
}
|
||||
|
||||
var metaWrapper *meta.MetaWrapper
|
||||
|
||||
@ -100,8 +100,9 @@ type MetaConfig struct {
|
||||
TrashTraverseLimit int
|
||||
TrashRebuildGoroutineLimit int
|
||||
|
||||
VerReadSeq uint64
|
||||
InnerReq bool
|
||||
VerReadSeq uint64
|
||||
InnerReq bool
|
||||
DisableTrashByClient bool
|
||||
}
|
||||
|
||||
type MetaWrapper struct {
|
||||
@ -253,6 +254,7 @@ func NewMetaWrapper(config *MetaConfig) (*MetaWrapper, error) {
|
||||
limit := MaxMountRetryLimit
|
||||
mw.DefaultStorageClass = proto.StorageClass_Unspecified
|
||||
mw.InnerReq = config.InnerReq
|
||||
mw.disableTrashByClient = config.DisableTrashByClient
|
||||
|
||||
for limit > 0 {
|
||||
err = mw.initMetaWrapper()
|
||||
@ -275,7 +277,9 @@ func NewMetaWrapper(config *MetaConfig) (*MetaWrapper, error) {
|
||||
}
|
||||
break
|
||||
}
|
||||
mw.enableTrash()
|
||||
if !mw.disableTrashByClient {
|
||||
mw.enableTrash()
|
||||
}
|
||||
if limit <= 0 && err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -174,9 +174,15 @@ func (mw *MetaWrapper) updateVolStatInfo() (err error) {
|
||||
atomic.StoreUint64(&mw.totalSize, info.TotalSize)
|
||||
atomic.StoreUint64(&mw.usedSize, info.UsedSize)
|
||||
atomic.StoreUint64(&mw.inodeCount, info.InodeCount)
|
||||
// 0 means disable trash
|
||||
atomic.StoreInt64(&mw.TrashInterval, info.TrashInterval)
|
||||
atomic.StoreUint32(&mw.DefaultStorageClass, info.DefaultStorageClass)
|
||||
log.LogInfof("[updateVolStatInfo]: info(%+v), defaultStorageClass(%v)",
|
||||
info, proto.StorageClassString(info.DefaultStorageClass))
|
||||
// 0 means disable trash
|
||||
if mw.disableTrashByClient {
|
||||
log.LogDebugf("updateVolStatInfo: trash for %v is disabled by client", mw.volname)
|
||||
return
|
||||
}
|
||||
atomic.StoreInt64(&mw.TrashInterval, info.TrashInterval)
|
||||
if info.TrashInterval == 0 {
|
||||
mw.disableTrash = true
|
||||
} else {
|
||||
@ -185,8 +191,7 @@ func (mw *MetaWrapper) updateVolStatInfo() (err error) {
|
||||
mw.trashPolicy.UpdateDeleteInterval(info.TrashInterval)
|
||||
}
|
||||
}
|
||||
log.LogInfof("[updateVolStatInfo]: info(%+v), disableTrash(%v) defaultStorageClass(%v)",
|
||||
info, mw.disableTrash, proto.StorageClassString(info.DefaultStorageClass))
|
||||
log.LogInfof("[updateVolStatInfo]: info(%+v), disableTrash(%v) ", info, mw.disableTrash)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user