From eb1d2607fd6c2a83803e8b9533f4ba15dca5e708 Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Wed, 23 Aug 2023 00:04:05 +0800 Subject: [PATCH 01/10] feat: gc for bucket migration & gc for ZombiePiece & meta --- base/gfspapp/app.go | 30 +- base/gfspapp/app_options.go | 1 + base/gfspapp/manage_server.go | 13 +- base/gfspapp/task_options.go | 30 +- base/gfspapp/task_options_test.go | 4 +- base/gfspclient/interface.go | 3 +- base/gfspclient/manager.go | 8 +- base/gfspclient/metadata.go | 24 +- base/gfspconfig/config.go | 34 +- base/types/gfspserver/manage.pb.go | 412 +++++++-- base/types/gfsptask/gc.go | 68 +- base/types/gfsptask/gc_test.go | 10 - base/types/gfsptask/migrate_gvg.go | 142 +++ base/types/gfsptask/task.pb.go | 808 ++++++++++++++---- base/types/gfsptask/task_key.go | 5 + core/module/modular.go | 4 +- core/module/null_modular.go | 5 +- core/spdb/entity.go | 8 + core/spdb/spdb.go | 11 + core/spdb/spdb_mock.go | 144 ++++ core/task/const.go | 3 + core/task/null_task.go | 92 +- core/task/null_task_test.go | 2 - core/task/task.go | 48 +- modular/executor/execute_task.go | 384 ++++++++- modular/executor/executor.go | 14 +- modular/executor/executor_task_test.go | 19 +- modular/executor/migrate_task.go | 1 + modular/gater/migrate_handler.go | 2 +- modular/manager/bucket_migrate_scheduler.go | 22 + modular/manager/manage_task.go | 120 ++- modular/manager/manager.go | 117 ++- modular/manager/manager_options.go | 15 + modular/manager/migrate_service.go | 38 +- modular/metadata/metadata_object_service.go | 2 +- .../metadata/metadata_object_service_test.go | 8 +- proto/base/types/gfspserver/manage.proto | 3 + proto/base/types/gfsptask/task.proto | 25 +- proto/modular/metadata/types/metadata.proto | 4 +- store/bsdb/const.go | 2 + store/bsdb/event_migration_bucket.go | 19 +- store/bsdb/object.go | 81 +- store/config/db_config.go | 2 + store/sqldb/object_integrity.go | 114 +++ store/sqldb/object_integrity_schema.go | 1 + store/sqldb/store.go | 7 +- store/sqldb/traffic.go | 18 + store/sqldb/upload_event.go | 3 + 48 files changed, 2529 insertions(+), 401 deletions(-) diff --git a/base/gfspapp/app.go b/base/gfspapp/app.go index 7cb6332c2..206a7d41a 100644 --- a/base/gfspapp/app.go +++ b/base/gfspapp/app.go @@ -64,20 +64,22 @@ type GfSpBaseApp struct { replicateSpeed int64 receiveSpeed int64 - sealObjectTimeout int64 - gcObjectTimeout int64 - gcZombieTimeout int64 - gcMetaTimeout int64 - migrateGVGTimeout int64 - - sealObjectRetry int64 - replicateRetry int64 - receiveConfirmRetry int64 - gcObjectRetry int64 - gcZombieRetry int64 - gcMetaRetry int64 - recoveryRetry int64 - migrateGVGRetry int64 + sealObjectTimeout int64 + gcObjectTimeout int64 + gcZombieTimeout int64 + gcMetaTimeout int64 + migrateGVGTimeout int64 + gcBucketMigrationTimeout int64 + + sealObjectRetry int64 + replicateRetry int64 + receiveConfirmRetry int64 + gcObjectRetry int64 + gcZombieRetry int64 + gcMetaRetry int64 + recoveryRetry int64 + migrateGVGRetry int64 + gcBucketMigrationRetry int64 } // AppID returns the GfSpBaseApp ID, the default value is prefix(gfsp) add diff --git a/base/gfspapp/app_options.go b/base/gfspapp/app_options.go index 38d746ce8..975fe3ce3 100644 --- a/base/gfspapp/app_options.go +++ b/base/gfspapp/app_options.go @@ -310,6 +310,7 @@ func defaultGfSpDB(cfg *config.SQLDBConfig) { if cfg.MaxOpenConns == 0 { cfg.MaxOpenConns = sqldb.DefaultMaxOpenConns } + cfg.EnableTracePutEvent = sqldb.DefaultEnableTracePutEvent if cfg.User == "" { cfg.User = "root" } diff --git a/base/gfspapp/manage_server.go b/base/gfspapp/manage_server.go index 877df442e..8703cef66 100644 --- a/base/gfspapp/manage_server.go +++ b/base/gfspapp/manage_server.go @@ -168,6 +168,10 @@ func (g *GfSpBaseApp) GfSpAskTask(ctx context.Context, req *gfspserver.GfSpAskTa resp.Response = &gfspserver.GfSpAskTaskResponse_MigrateGvgTask{ MigrateGvgTask: t, } + case *gfsptask.GfSpGCBucketMigrationTask: + resp.Response = &gfspserver.GfSpAskTaskResponse_GcBucketMigrationTask{ + GcBucketMigrationTask: t, + } default: log.CtxErrorw(ctx, "[BUG] Unsupported task type to dispatch") return &gfspserver.GfSpAskTaskResponse{Err: ErrUnsupportedTaskType}, nil @@ -300,6 +304,12 @@ func (g *GfSpBaseApp) GfSpReportTask(ctx context.Context, req *gfspserver.GfSpRe task.SetAddress(util.GetRPCRemoteAddress(ctx)) log.CtxInfow(ctx, "begin to handle reported migrate gvg task", "task_info", task.Info()) err = g.manager.HandleMigrateGVGTask(ctx, t.MigrateGvgTask) + case *gfspserver.GfSpReportTaskRequest_GcBucketMigrationTask: + task := t.GcBucketMigrationTask + ctx = log.WithValue(ctx, log.CtxKeyTask, task.Key().String()) + task.SetAddress(util.GetRPCRemoteAddress(ctx)) + log.CtxInfow(ctx, "begin to handle reported gc bucket migration task", "task_info", task.Info()) + err = g.manager.HandleGCBucketMigrationTask(ctx, t.GcBucketMigrationTask) default: log.CtxError(ctx, "receive unsupported task type") return &gfspserver.GfSpReportTaskResponse{Err: ErrUnsupportedTaskType}, nil @@ -358,9 +368,10 @@ func (g *GfSpBaseApp) GfSpNotifyPreMigrate(ctx context.Context, req *gfspserver. return &gfspserver.GfSpNotifyPreMigrateBucketResponse{}, nil } + func (g *GfSpBaseApp) GfSpNotifyPostMigrate(ctx context.Context, req *gfspserver.GfSpNotifyPostMigrateBucketRequest) ( *gfspserver.GfSpNotifyPostMigrateBucketResponse, error) { - if err := g.manager.NotifyPostMigrateBucket(ctx, req.GetBucketId()); err != nil { + if err := g.manager.NotifyPostMigrateBucket(ctx, req.GetBucketMigrationInfo()); err != nil { return nil, err } diff --git a/base/gfspapp/task_options.go b/base/gfspapp/task_options.go index 6082a7d0f..10244c8b6 100644 --- a/base/gfspapp/task_options.go +++ b/base/gfspapp/task_options.go @@ -51,6 +51,10 @@ const ( MinMigrateGVGTime int64 = 1800 // 0.5 hour // MaxMigrateGVGTime defines the max timeout to migrate gvg. MaxMigrateGVGTime int64 = 3600 // 1 hour + // MinGCBucketMigrationTime defines the min timeout to gc bucket migration. + MinGCBucketMigrationTime int64 = 300 // 0.5 hour + // MaxGCBucketMigrationTime defines the max timeout to gc bucket migration. + MaxGCBucketMigrationTime int64 = 600 // 1 hour // NotUseRetry defines the default task max retry. NotUseRetry int64 = 0 @@ -78,6 +82,10 @@ const ( MinMigrateGVGRetry = 2 // MaxMigrateGVGRetry defines the max retry number to migrate gvg. MaxMigrateGVGRetry = 3 + // MinGCBucketMigrationRetry defines the min retry number to gc bucket migration. + MinGCBucketMigrationRetry = 3 + // MaxBucketMigrationRetry defines the max retry number to gc bucket migration. + MaxBucketMigrationRetry = 5 ) // TaskTimeout returns the task timeout by task type and some task need payload size @@ -184,6 +192,14 @@ func (g *GfSpBaseApp) TaskTimeout(task coretask.Task, size uint64) int64 { return MaxMigrateGVGTime } return g.migrateGVGTimeout + case coretask.TypeTaskGCBucketMigration: + if g.gcBucketMigrationTimeout < MinGCBucketMigrationTime { + return MinGCBucketMigrationTime + } + if g.gcBucketMigrationTimeout > MaxGCBucketMigrationTime { + return MaxGCBucketMigrationTime + } + return g.gcBucketMigrationTimeout } return NotUseTimeout } @@ -267,6 +283,14 @@ func (g *GfSpBaseApp) TaskMaxRetry(task coretask.Task) int64 { return MaxMigrateGVGRetry } return g.migrateGVGRetry + case coretask.TypeTaskGCBucketMigration: + if g.gcBucketMigrationRetry < MinGCBucketMigrationRetry { + return MinMigrateGVGRetry + } + if g.gcBucketMigrationRetry > MaxBucketMigrationRetry { + return MaxMigrateGVGRetry + } + return g.gcBucketMigrationRetry default: return NotUseRetry } @@ -299,13 +323,15 @@ func (g *GfSpBaseApp) TaskPriority(task coretask.Task) coretask.TPriority { case coretask.TypeTaskGCObject: return coretask.UnSchedulingPriority case coretask.TypeTaskGCZombiePiece: - return coretask.UnSchedulingPriority + return coretask.DefaultSmallerPriority / 4 case coretask.TypeTaskGCMeta: - return coretask.UnSchedulingPriority + return coretask.DefaultSmallerPriority / 4 case coretask.TypeTaskRecoverPiece: return coretask.DefaultSmallerPriority / 4 case coretask.TypeTaskMigrateGVG: return coretask.DefaultSmallerPriority + case coretask.TypeTaskGCBucketMigration: + return coretask.DefaultSmallerPriority default: return coretask.UnKnownTaskPriority } diff --git a/base/gfspapp/task_options_test.go b/base/gfspapp/task_options_test.go index 50b4a80a4..d5ff45f66 100644 --- a/base/gfspapp/task_options_test.go +++ b/base/gfspapp/task_options_test.go @@ -801,12 +801,12 @@ func TestGfSpBaseApp_TaskPriority(t *testing.T) { { name: "gc zombie piece task", task: &gfsptask.GfSpGCZombiePieceTask{}, - wantedResult: coretask.UnSchedulingPriority, + wantedResult: coretask.DefaultSmallerPriority / 4, }, { name: "gc meta task", task: &gfsptask.GfSpGCMetaTask{}, - wantedResult: coretask.UnSchedulingPriority, + wantedResult: coretask.DefaultSmallerPriority / 4, }, { name: "recover piece task", diff --git a/base/gfspclient/interface.go b/base/gfspclient/interface.go index 59a6a652d..73d5114a5 100644 --- a/base/gfspclient/interface.go +++ b/base/gfspclient/interface.go @@ -89,13 +89,14 @@ type ManagerAPI interface { NotifyMigrateSwapOut(ctx context.Context, swapOut *virtualgrouptypes.MsgSwapOut) error GetTasksStats(ctx context.Context) (*gfspserver.TasksStats, error) NotifyPreMigrateBucket(ctx context.Context, bucketID uint64) error - NotifyPostMigrateBucket(ctx context.Context, bucketID uint64) error + NotifyPostMigrateBucket(ctx context.Context, bmInfo *gfsptask.GfSpBucketMigrationInfo) error } // MetadataAPI for mock sue type MetadataAPI interface { GetUserBucketsCount(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) (int64, error) ListDeletedObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber uint64, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) + ListObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber uint64, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) GetUserBuckets(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.VGFInfoBucket, error) ListObjectsByBucketName(ctx context.Context, bucketName string, accountID string, maxKeys uint64, startAfter string, continuationToken string, delimiter string, prefix string, includeRemoved bool, opts ...grpc.DialOption) (objects []*types.Object, keyCount, maxKeysRe uint64, isTruncated bool, nextContinuationToken, name, prefixRe, delimiterRe string, commonPrefixes []string, continuationTokenRe string, err error) diff --git a/base/gfspclient/manager.go b/base/gfspclient/manager.go index 412ffe844..c03c9f3fa 100644 --- a/base/gfspclient/manager.go +++ b/base/gfspclient/manager.go @@ -90,6 +90,8 @@ func (s *GfSpClient) AskTask(ctx context.Context, limit corercmgr.Limit) (coreta return t.RecoverPieceTask, nil case *gfspserver.GfSpAskTaskResponse_MigrateGvgTask: return t.MigrateGvgTask, nil + case *gfspserver.GfSpAskTaskResponse_GcBucketMigrationTask: + return t.GcBucketMigrationTask, nil default: return nil, ErrTypeMismatch } @@ -127,6 +129,8 @@ func (s *GfSpClient) ReportTask(ctx context.Context, report coretask.Task) error req.Request = &gfspserver.GfSpReportTaskRequest_RecoverPieceTask{RecoverPieceTask: t} case *gfsptask.GfSpMigrateGVGTask: req.Request = &gfspserver.GfSpReportTaskRequest_MigrateGvgTask{MigrateGvgTask: t} + case *gfsptask.GfSpGCBucketMigrationTask: + req.Request = &gfspserver.GfSpReportTaskRequest_GcBucketMigrationTask{GcBucketMigrationTask: t} default: log.CtxErrorw(ctx, "unsupported task type to report") return ErrTypeMismatch @@ -218,14 +222,14 @@ func (s *GfSpClient) NotifyPreMigrateBucket(ctx context.Context, bucketID uint64 return nil } -func (s *GfSpClient) NotifyPostMigrateBucket(ctx context.Context, bucketID uint64) error { +func (s *GfSpClient) NotifyPostMigrateBucket(ctx context.Context, bmInfo *gfsptask.GfSpBucketMigrationInfo) error { conn, connErr := s.ManagerConn(ctx) if connErr != nil { log.CtxErrorw(ctx, "client failed to connect manager", "error", connErr) return ErrRPCUnknownWithDetail("client failed to connect manager, error: " + connErr.Error()) } req := &gfspserver.GfSpNotifyPostMigrateBucketRequest{ - BucketId: bucketID, + BucketMigrationInfo: bmInfo, } resp, err := gfspserver.NewGfSpManageServiceClient(conn).GfSpNotifyPostMigrate(ctx, req) if err != nil { diff --git a/base/gfspclient/metadata.go b/base/gfspclient/metadata.go index d8012affb..67e24bcfb 100644 --- a/base/gfspclient/metadata.go +++ b/base/gfspclient/metadata.go @@ -54,6 +54,26 @@ func (s *GfSpClient) ListDeletedObjectsByBlockNumberRange(ctx context.Context, s return resp.GetObjects(), uint64(resp.GetEndBlockNumber()), nil } +func (s *GfSpClient) ListObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber uint64, + endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) { + conn, err := s.Connection(ctx, s.metadataEndpoint, opts...) + if err != nil { + return nil, uint64(0), ErrRPCUnknownWithDetail("client failed to connect metadata, error: " + err.Error()) + } + defer conn.Close() + req := &types.GfSpListDeletedObjectsByBlockNumberRangeRequest{ + StartBlockNumber: int64(startBlockNumber), + EndBlockNumber: int64(endBlockNumber), + IncludePrivate: includePrivate, + } + resp, err := types.NewGfSpMetadataServiceClient(conn).GfSpListDeletedObjectsByBlockNumberRange(ctx, req) + if err != nil { + log.CtxErrorw(ctx, "failed to list deleted objects by block number range", "error", err) + return nil, uint64(0), ErrRPCUnknownWithDetail("failed to list deleted objects by block number range, error: " + err.Error()) + } + return resp.GetObjects(), uint64(resp.GetEndBlockNumber()), nil +} + func (s *GfSpClient) GetUserBuckets(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.VGFInfoBucket, error) { conn, err := s.Connection(ctx, s.metadataEndpoint, opts...) if err != nil { @@ -568,7 +588,7 @@ func (s *GfSpClient) ListObjectsInGVG(ctx context.Context, gvgID uint32, startAf return resp.Objects, nil } -func (s *GfSpClient) ListObjectsByGVGAndBucketForGC(ctx context.Context, gvgID uint32, bucketID uint64, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.ObjectDetails, error) { +func (s *GfSpClient) ListObjectsByGVGAndBucketForGC(ctx context.Context, dstGvgID uint32, bucketID uint64, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.ObjectDetails, error) { conn, connErr := s.Connection(ctx, s.metadataEndpoint, opts...) if connErr != nil { log.CtxErrorw(ctx, "client failed to connect metadata", "error", connErr) @@ -576,7 +596,7 @@ func (s *GfSpClient) ListObjectsByGVGAndBucketForGC(ctx context.Context, gvgID u } defer conn.Close() req := &types.GfSpListObjectsByGVGAndBucketForGCRequest{ - GvgId: gvgID, + DstGvgId: dstGvgID, BucketId: bucketID, StartAfter: startAfter, Limit: limit, diff --git a/base/gfspconfig/config.go b/base/gfspconfig/config.go index 9605ad1af..dabd86435 100644 --- a/base/gfspconfig/config.go +++ b/base/gfspconfig/config.go @@ -165,22 +165,24 @@ type ParallelConfig struct { // upload + replicate + seal GlobalMaxUploadingParallel int `comment:"optional"` // only upload - GlobalUploadObjectParallel int `comment:"optional"` - GlobalReplicatePieceParallel int `comment:"optional"` - GlobalSealObjectParallel int `comment:"optional"` - GlobalReceiveObjectParallel int `comment:"optional"` - GlobalGCObjectParallel int `comment:"optional"` - GlobalGCZombieParallel int `comment:"optional"` - GlobalGCMetaParallel int `comment:"optional"` - GlobalRecoveryPieceParallel int `comment:"optional"` - GlobalMigrateGVGParallel int `comment:"optional"` - GlobalBackupTaskParallel int `comment:"optional"` - GlobalDownloadObjectTaskCacheSize int `comment:"optional"` - GlobalChallengePieceTaskCacheSize int `comment:"optional"` - GlobalBatchGcObjectTimeInterval int `comment:"optional"` - GlobalGcObjectBlockInterval uint64 `comment:"optional"` - GlobalGcObjectSafeBlockDistance uint64 `comment:"optional"` - GlobalSyncConsensusInfoInterval uint64 `comment:"optional"` + GlobalUploadObjectParallel int `comment:"optional"` + GlobalReplicatePieceParallel int `comment:"optional"` + GlobalSealObjectParallel int `comment:"optional"` + GlobalReceiveObjectParallel int `comment:"optional"` + GlobalGCObjectParallel int `comment:"optional"` + GlobalGCZombieParallel int `comment:"optional"` + GlobalGCMetaParallel int `comment:"optional"` + GlobalGCBucketMigrationParallel int `comment:"optional"` + GlobalRecoveryPieceParallel int `comment:"optional"` + GlobalMigrateGVGParallel int `comment:"optional"` + GlobalBackupTaskParallel int `comment:"optional"` + GlobalDownloadObjectTaskCacheSize int `comment:"optional"` + GlobalChallengePieceTaskCacheSize int `comment:"optional"` + GlobalBatchGcObjectTimeInterval int `comment:"optional"` + GlobalBatchGcZombiePieceTimeInterval int `comment:"optional"` + GlobalGcObjectBlockInterval uint64 `comment:"optional"` + GlobalGcObjectSafeBlockDistance uint64 `comment:"optional"` + GlobalSyncConsensusInfoInterval uint64 `comment:"optional"` UploadObjectParallelPerNode int `comment:"optional"` ReceivePieceParallelPerNode int `comment:"optional"` diff --git a/base/types/gfspserver/manage.pb.go b/base/types/gfspserver/manage.pb.go index adc77beec..94951b62d 100644 --- a/base/types/gfspserver/manage.pb.go +++ b/base/types/gfspserver/manage.pb.go @@ -215,6 +215,7 @@ type GfSpAskTaskResponse struct { // *GfSpAskTaskResponse_GcMetaTask // *GfSpAskTaskResponse_RecoverPieceTask // *GfSpAskTaskResponse_MigrateGvgTask + // *GfSpAskTaskResponse_GcBucketMigrationTask Response isGfSpAskTaskResponse_Response `protobuf_oneof:"response"` } @@ -281,15 +282,19 @@ type GfSpAskTaskResponse_RecoverPieceTask struct { type GfSpAskTaskResponse_MigrateGvgTask struct { MigrateGvgTask *gfsptask.GfSpMigrateGVGTask `protobuf:"bytes,9,opt,name=migrate_gvg_task,json=migrateGvgTask,proto3,oneof" json:"migrate_gvg_task,omitempty"` } +type GfSpAskTaskResponse_GcBucketMigrationTask struct { + GcBucketMigrationTask *gfsptask.GfSpGCBucketMigrationTask `protobuf:"bytes,10,opt,name=gc_bucket_migration_task,json=gcBucketMigrationTask,proto3,oneof" json:"gc_bucket_migration_task,omitempty"` +} -func (*GfSpAskTaskResponse_ReplicatePieceTask) isGfSpAskTaskResponse_Response() {} -func (*GfSpAskTaskResponse_SealObjectTask) isGfSpAskTaskResponse_Response() {} -func (*GfSpAskTaskResponse_ReceivePieceTask) isGfSpAskTaskResponse_Response() {} -func (*GfSpAskTaskResponse_GcObjectTask) isGfSpAskTaskResponse_Response() {} -func (*GfSpAskTaskResponse_GcZombiePieceTask) isGfSpAskTaskResponse_Response() {} -func (*GfSpAskTaskResponse_GcMetaTask) isGfSpAskTaskResponse_Response() {} -func (*GfSpAskTaskResponse_RecoverPieceTask) isGfSpAskTaskResponse_Response() {} -func (*GfSpAskTaskResponse_MigrateGvgTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_ReplicatePieceTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_SealObjectTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_ReceivePieceTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_GcObjectTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_GcZombiePieceTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_GcMetaTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_RecoverPieceTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_MigrateGvgTask) isGfSpAskTaskResponse_Response() {} +func (*GfSpAskTaskResponse_GcBucketMigrationTask) isGfSpAskTaskResponse_Response() {} func (m *GfSpAskTaskResponse) GetResponse() isGfSpAskTaskResponse_Response { if m != nil { @@ -361,6 +366,13 @@ func (m *GfSpAskTaskResponse) GetMigrateGvgTask() *gfsptask.GfSpMigrateGVGTask { return nil } +func (m *GfSpAskTaskResponse) GetGcBucketMigrationTask() *gfsptask.GfSpGCBucketMigrationTask { + if x, ok := m.GetResponse().(*GfSpAskTaskResponse_GcBucketMigrationTask); ok { + return x.GcBucketMigrationTask + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*GfSpAskTaskResponse) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -372,6 +384,7 @@ func (*GfSpAskTaskResponse) XXX_OneofWrappers() []interface{} { (*GfSpAskTaskResponse_GcMetaTask)(nil), (*GfSpAskTaskResponse_RecoverPieceTask)(nil), (*GfSpAskTaskResponse_MigrateGvgTask)(nil), + (*GfSpAskTaskResponse_GcBucketMigrationTask)(nil), } } @@ -389,6 +402,7 @@ type GfSpReportTaskRequest struct { // *GfSpReportTaskRequest_ResumableUploadObjectTask // *GfSpReportTaskRequest_RecoverPieceTask // *GfSpReportTaskRequest_MigrateGvgTask + // *GfSpReportTaskRequest_GcBucketMigrationTask Request isGfSpReportTaskRequest_Request `protobuf_oneof:"request"` } @@ -467,6 +481,9 @@ type GfSpReportTaskRequest_RecoverPieceTask struct { type GfSpReportTaskRequest_MigrateGvgTask struct { MigrateGvgTask *gfsptask.GfSpMigrateGVGTask `protobuf:"bytes,12,opt,name=migrate_gvg_task,json=migrateGvgTask,proto3,oneof" json:"migrate_gvg_task,omitempty"` } +type GfSpReportTaskRequest_GcBucketMigrationTask struct { + GcBucketMigrationTask *gfsptask.GfSpGCBucketMigrationTask `protobuf:"bytes,13,opt,name=gc_bucket_migration_task,json=gcBucketMigrationTask,proto3,oneof" json:"gc_bucket_migration_task,omitempty"` +} func (*GfSpReportTaskRequest_UploadObjectTask) isGfSpReportTaskRequest_Request() {} func (*GfSpReportTaskRequest_ReplicatePieceTask) isGfSpReportTaskRequest_Request() {} @@ -480,6 +497,7 @@ func (*GfSpReportTaskRequest_ReceivePieceTask) isGfSpReportTaskRequest_Request() func (*GfSpReportTaskRequest_ResumableUploadObjectTask) isGfSpReportTaskRequest_Request() {} func (*GfSpReportTaskRequest_RecoverPieceTask) isGfSpReportTaskRequest_Request() {} func (*GfSpReportTaskRequest_MigrateGvgTask) isGfSpReportTaskRequest_Request() {} +func (*GfSpReportTaskRequest_GcBucketMigrationTask) isGfSpReportTaskRequest_Request() {} func (m *GfSpReportTaskRequest) GetRequest() isGfSpReportTaskRequest_Request { if m != nil { @@ -572,6 +590,13 @@ func (m *GfSpReportTaskRequest) GetMigrateGvgTask() *gfsptask.GfSpMigrateGVGTask return nil } +func (m *GfSpReportTaskRequest) GetGcBucketMigrationTask() *gfsptask.GfSpGCBucketMigrationTask { + if x, ok := m.GetRequest().(*GfSpReportTaskRequest_GcBucketMigrationTask); ok { + return x.GcBucketMigrationTask + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*GfSpReportTaskRequest) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -587,6 +612,7 @@ func (*GfSpReportTaskRequest) XXX_OneofWrappers() []interface{} { (*GfSpReportTaskRequest_ResumableUploadObjectTask)(nil), (*GfSpReportTaskRequest_RecoverPieceTask)(nil), (*GfSpReportTaskRequest_MigrateGvgTask)(nil), + (*GfSpReportTaskRequest_GcBucketMigrationTask)(nil), } } @@ -909,7 +935,8 @@ func (m *GfSpNotifyPreMigrateBucketResponse) GetErr() *gfsperrors.GfSpError { type GfSpNotifyPostMigrateBucketRequest struct { // bucket_id is the id of the bucket - BucketId uint64 `protobuf:"varint,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` + BucketId uint64 `protobuf:"varint,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` + BucketMigrationInfo *gfsptask.GfSpBucketMigrationInfo `protobuf:"bytes,2,opt,name=bucket_migration_info,json=bucketMigrationInfo,proto3" json:"bucket_migration_info,omitempty"` } func (m *GfSpNotifyPostMigrateBucketRequest) Reset() { *m = GfSpNotifyPostMigrateBucketRequest{} } @@ -952,6 +979,13 @@ func (m *GfSpNotifyPostMigrateBucketRequest) GetBucketId() uint64 { return 0 } +func (m *GfSpNotifyPostMigrateBucketRequest) GetBucketMigrationInfo() *gfsptask.GfSpBucketMigrationInfo { + if m != nil { + return m.BucketMigrationInfo + } + return nil +} + type GfSpNotifyPostMigrateBucketResponse struct { Err *gfsperrors.GfSpError `protobuf:"bytes,1,opt,name=err,proto3" json:"err,omitempty"` } @@ -1283,90 +1317,94 @@ func init() { } var fileDescriptor_7801aa704e62bc53 = []byte{ - // 1329 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xdf, 0x72, 0xdb, 0xc4, - 0x17, 0xb6, 0x9a, 0xc4, 0xb1, 0x4f, 0xfe, 0xb4, 0xdd, 0x9f, 0xdb, 0xc9, 0xcf, 0x2d, 0x6e, 0xa2, - 0xc0, 0xf4, 0x1f, 0xb1, 0x69, 0x60, 0x28, 0x70, 0xc1, 0xd0, 0x14, 0x6a, 0x3a, 0x34, 0x34, 0xc8, - 0x6d, 0xa0, 0x9d, 0x61, 0xc4, 0x5a, 0x5e, 0xab, 0x22, 0xb2, 0x25, 0x76, 0x25, 0x37, 0xe6, 0x82, - 0x37, 0xe8, 0x4c, 0x67, 0x18, 0x78, 0x1a, 0x1e, 0x80, 0xcb, 0x5e, 0x72, 0xc9, 0x24, 0x33, 0x5c, - 0x72, 0xc3, 0x0b, 0x30, 0xbb, 0x2b, 0xd9, 0x92, 0x6c, 0xc9, 0x49, 0x4c, 0x98, 0xe1, 0x26, 0x55, - 0xcf, 0x9e, 0xef, 0x3b, 0x9f, 0xf6, 0x1c, 0x9d, 0xb3, 0x6b, 0x50, 0x9b, 0x98, 0x91, 0x9a, 0xd7, - 0x77, 0x09, 0xab, 0x99, 0x6d, 0xe6, 0x32, 0x42, 0x7b, 0x84, 0xd6, 0x3a, 0xb8, 0x8b, 0x4d, 0x52, - 0x75, 0xa9, 0xe3, 0x39, 0xe8, 0x02, 0xf7, 0xa9, 0x0a, 0x9f, 0xea, 0xd0, 0xa7, 0xbc, 0x96, 0x80, - 0x12, 0x4a, 0x1d, 0xca, 0x6a, 0xe2, 0x1f, 0x89, 0x2c, 0xaf, 0x26, 0x5c, 0x6c, 0xab, 0x63, 0x79, - 0x35, 0xf1, 0x37, 0xf0, 0xa8, 0x24, 0x3c, 0x3c, 0xcc, 0xf6, 0x6a, 0xfc, 0x4f, 0xc8, 0x60, 0x52, - 0x42, 0xba, 0x6d, 0x8b, 0xd8, 0xad, 0x5a, 0xcf, 0xa2, 0x9e, 0x8f, 0x6d, 0x93, 0x3a, 0xbe, 0x5b, - 0xf3, 0xf6, 0xa5, 0x87, 0xfa, 0x97, 0x02, 0xa5, 0x7a, 0xbb, 0xe1, 0x6e, 0x11, 0xd3, 0xea, 0x3e, - 0xc2, 0x6c, 0x4f, 0x23, 0xdf, 0xf9, 0x84, 0x79, 0xe8, 0x09, 0x20, 0xdf, 0xb5, 0x1d, 0xdc, 0xd2, - 0x9d, 0xe6, 0xb7, 0xc4, 0xf0, 0x74, 0x4e, 0xbb, 0xa2, 0xac, 0x2a, 0xd7, 0x16, 0x36, 0xaf, 0x57, - 0x13, 0xef, 0x24, 0x42, 0x72, 0x9a, 0xc7, 0x02, 0xf2, 0x50, 0x20, 0x38, 0xdb, 0xa7, 0x39, 0xed, - 0x9c, 0x9f, 0xb0, 0x21, 0x1f, 0x2e, 0x53, 0xc2, 0xfc, 0x0e, 0x6e, 0xda, 0x44, 0x1f, 0x13, 0xe4, - 0x8c, 0x08, 0xb2, 0x99, 0x1a, 0x44, 0x0b, 0xc1, 0x63, 0xa2, 0xfd, 0x9f, 0xa6, 0x2d, 0x6e, 0x15, - 0x61, 0x9e, 0xca, 0x97, 0x53, 0x3f, 0x83, 0x0b, 0x89, 0x97, 0x66, 0xae, 0xd3, 0x65, 0x04, 0x6d, - 0xc2, 0x0c, 0xa1, 0x34, 0x78, 0xcd, 0xd5, 0xa4, 0x02, 0x99, 0x23, 0xa1, 0xe1, 0x13, 0xfe, 0xa8, - 0x71, 0x67, 0xf5, 0x11, 0x20, 0x6e, 0xb9, 0xc3, 0xf6, 0xa2, 0xfb, 0xf7, 0x21, 0x40, 0xd7, 0x69, - 0x11, 0x5d, 0xa4, 0x2b, 0x20, 0xbc, 0x92, 0x24, 0x94, 0xb9, 0xe4, 0xe8, 0x07, 0xfc, 0x49, 0x2b, - 0x72, 0x88, 0x78, 0x54, 0x5f, 0xe4, 0xe1, 0x7f, 0x31, 0xda, 0x93, 0x2b, 0x44, 0x3a, 0x94, 0x28, - 0x71, 0x6d, 0xcb, 0xc0, 0x1e, 0xd1, 0x5d, 0x8b, 0x18, 0x24, 0xba, 0xd1, 0x37, 0x33, 0x36, 0x3a, - 0x00, 0xed, 0x70, 0x4c, 0xb0, 0xc3, 0x88, 0x8e, 0x58, 0x51, 0x03, 0xce, 0x31, 0x82, 0xed, 0x58, - 0x16, 0x67, 0x04, 0xf9, 0xd5, 0x54, 0xf2, 0x06, 0xc1, 0x76, 0x2c, 0x75, 0xcb, 0x2c, 0x66, 0xe1, - 0x15, 0x48, 0x89, 0x41, 0xac, 0x5e, 0x4c, 0xf3, 0xec, 0x84, 0x0a, 0xd4, 0x24, 0x24, 0xaa, 0xf8, - 0x1c, 0x4d, 0xd8, 0xd0, 0x36, 0x2c, 0x9b, 0x46, 0x4c, 0xed, 0x9c, 0xa0, 0x7d, 0x23, 0x95, 0xb6, - 0x7e, 0x37, 0xa6, 0x75, 0xd1, 0x34, 0x22, 0x4a, 0xbf, 0x86, 0x92, 0x69, 0xe8, 0xdf, 0x3b, 0x9d, - 0xa6, 0x15, 0xd3, 0x9a, 0x17, 0xa4, 0x37, 0x32, 0x48, 0x9f, 0x0a, 0x4c, 0x54, 0xec, 0x79, 0xd3, - 0x48, 0x18, 0x51, 0x1d, 0x16, 0x4d, 0x43, 0xef, 0x10, 0x0f, 0x4b, 0xda, 0x79, 0x41, 0xbb, 0x9e, - 0x41, 0xbb, 0x4d, 0x3c, 0x1c, 0xf0, 0x81, 0x69, 0x84, 0xff, 0x0b, 0x76, 0xd4, 0xe9, 0x11, 0x1a, - 0x55, 0x59, 0x98, 0xbc, 0xa3, 0x1c, 0x92, 0xdc, 0xd1, 0x98, 0x8d, 0x57, 0x40, 0xc7, 0x32, 0x29, - 0x2f, 0x30, 0xb3, 0x67, 0x4a, 0xe2, 0xe2, 0x84, 0x0a, 0xd8, 0x96, 0x80, 0xfa, 0x6e, 0x3d, 0xac, - 0x80, 0x80, 0xa2, 0xde, 0x33, 0xc5, 0x17, 0x0b, 0x50, 0xa0, 0x41, 0xdd, 0xab, 0x7f, 0x16, 0xe4, - 0x37, 0xab, 0x11, 0xd7, 0xa1, 0xde, 0xbf, 0xd4, 0xa9, 0xfe, 0x9b, 0x1f, 0xce, 0x68, 0x75, 0xcf, - 0x9e, 0x46, 0x75, 0xcf, 0x9d, 0x4e, 0x75, 0xe7, 0x4f, 0x5a, 0xdd, 0x3a, 0x94, 0x5a, 0xce, 0xf3, - 0xee, 0x48, 0x25, 0xcc, 0x4f, 0x48, 0xd6, 0xc7, 0x01, 0x28, 0xb6, 0x05, 0xa8, 0x35, 0x62, 0xe5, - 0x01, 0x8c, 0x67, 0xd8, 0xb6, 0x49, 0xd7, 0x24, 0xa3, 0x1f, 0x50, 0x7a, 0x80, 0xbb, 0x21, 0x28, - 0x56, 0x0d, 0xc6, 0x88, 0x35, 0xa5, 0xe3, 0x15, 0xff, 0x89, 0x8e, 0x37, 0x69, 0xe6, 0xc2, 0xa9, - 0xcc, 0xdc, 0x94, 0x8e, 0xb3, 0x70, 0x5a, 0x1d, 0x67, 0x71, 0xda, 0x8e, 0x13, 0x39, 0x23, 0x3c, - 0x80, 0x8b, 0xc9, 0x7e, 0x33, 0xc5, 0x21, 0xe1, 0x27, 0x05, 0xd6, 0xb8, 0x69, 0xc7, 0x32, 0xf6, - 0x76, 0xe5, 0x49, 0xac, 0xce, 0x4f, 0x62, 0xf7, 0x70, 0xc7, 0xb2, 0xfb, 0x61, 0x2b, 0x73, 0xe1, - 0x92, 0x41, 0x09, 0x7f, 0xa5, 0xa6, 0x6f, 0xec, 0x11, 0x4f, 0xc7, 0xae, 0x4b, 0x9d, 0x1e, 0xb6, - 0xa3, 0x3d, 0xed, 0x56, 0x7a, 0xa1, 0x09, 0xec, 0x96, 0x80, 0xde, 0x09, 0x90, 0x42, 0xf9, 0x8a, - 0x91, 0xb2, 0xa2, 0x3a, 0xa0, 0x66, 0xc9, 0x9a, 0xe2, 0xd0, 0x71, 0x01, 0xf2, 0x3d, 0xb3, 0xad, - 0x5b, 0x2d, 0xd1, 0x2d, 0x97, 0xb4, 0xb9, 0x9e, 0xd9, 0xbe, 0xdf, 0x52, 0x31, 0x5c, 0xe1, 0x8e, - 0x9f, 0x3b, 0x9e, 0xd5, 0xee, 0x07, 0xf9, 0x68, 0x3c, 0xc7, 0xee, 0x43, 0xdf, 0x1b, 0x1e, 0x9d, - 0x0a, 0xec, 0x39, 0x76, 0x75, 0xc7, 0x0f, 0x0f, 0x4e, 0xeb, 0xd5, 0xe1, 0x41, 0xb6, 0x1a, 0x3d, - 0xc8, 0x56, 0xb7, 0x99, 0x19, 0xa2, 0xe7, 0x99, 0x7c, 0x50, 0x77, 0x61, 0x35, 0x3d, 0xc4, 0x14, - 0x39, 0xfc, 0x48, 0xa6, 0x50, 0xf2, 0xee, 0x50, 0x12, 0x50, 0xcb, 0x5d, 0x0d, 0xc5, 0x5f, 0x82, - 0x62, 0x90, 0x3b, 0xab, 0x25, 0xe8, 0x67, 0xb5, 0x82, 0x34, 0xdc, 0x6f, 0xa9, 0x5f, 0xc9, 0xdd, - 0x4e, 0x63, 0x98, 0x42, 0xdb, 0x9d, 0x18, 0xb3, 0xc3, 0xbc, 0xe3, 0x8b, 0x7b, 0x02, 0xeb, 0x99, - 0x14, 0x53, 0xa8, 0xbb, 0x0c, 0x65, 0x6e, 0xf9, 0xc2, 0x27, 0xb4, 0xcf, 0xcb, 0x8e, 0x35, 0x3c, - 0xec, 0xb1, 0x40, 0x95, 0xba, 0x0b, 0x97, 0xc6, 0xae, 0x06, 0x01, 0x6f, 0xc3, 0x1c, 0xe3, 0x86, - 0x20, 0xe4, 0x5a, 0x75, 0xec, 0x85, 0xaa, 0x1a, 0x41, 0x4a, 0x7f, 0xf5, 0x8f, 0x33, 0x00, 0x43, - 0x2b, 0x5a, 0x83, 0xc5, 0xa0, 0xf1, 0x19, 0x8e, 0xdf, 0x95, 0xa5, 0xb5, 0xa4, 0x2d, 0x48, 0xdb, - 0x5d, 0x6e, 0x42, 0x57, 0xe1, 0xec, 0x70, 0xde, 0x4b, 0x2f, 0x59, 0xbc, 0xcb, 0x03, 0xb3, 0x74, - 0x7c, 0x0d, 0x40, 0xcc, 0x6d, 0xe9, 0x33, 0x23, 0x7c, 0x8a, 0xdc, 0x22, 0x97, 0xdf, 0x81, 0x8b, - 0x23, 0xdd, 0x56, 0xba, 0xce, 0x0a, 0xd7, 0x52, 0xa2, 0x63, 0x4a, 0xd4, 0x3a, 0x2c, 0x75, 0xf0, - 0x7e, 0xe0, 0x6f, 0x75, 0x4d, 0x31, 0x61, 0x97, 0xb4, 0xc5, 0x0e, 0xde, 0x7f, 0x1c, 0xda, 0xd0, - 0x0d, 0x38, 0x1f, 0x6d, 0x7b, 0x92, 0x35, 0x2f, 0x1c, 0xcf, 0x0e, 0x9b, 0x59, 0x44, 0x86, 0x68, - 0x9b, 0x7d, 0xdd, 0xa5, 0x8e, 0x41, 0x18, 0x0b, 0x00, 0xf3, 0xa1, 0x0c, 0xb9, 0xba, 0x23, 0x17, - 0x25, 0xea, 0x2d, 0x18, 0xd8, 0xf5, 0x36, 0xb6, 0x6c, 0xd2, 0xd2, 0x6d, 0x8b, 0x79, 0x2b, 0x85, - 0xd5, 0x99, 0x6b, 0x45, 0x2d, 0xec, 0xe7, 0xfd, 0x7b, 0x62, 0xe9, 0x81, 0xc5, 0x3c, 0xf5, 0x75, - 0x59, 0x7c, 0x1a, 0x61, 0xbc, 0x4e, 0x92, 0xcb, 0x61, 0x9a, 0xbf, 0x94, 0xf5, 0x95, 0xea, 0x15, - 0xa4, 0x3b, 0x2d, 0xbc, 0x92, 0x16, 0x7e, 0xf3, 0x97, 0x22, 0x9c, 0x17, 0xdd, 0x5d, 0x5c, 0xbb, - 0x1b, 0x84, 0xf6, 0x2c, 0x83, 0x20, 0x1b, 0x96, 0x62, 0x77, 0x3c, 0x74, 0x33, 0xa5, 0x70, 0xc6, - 0x5d, 0x7f, 0xcb, 0x6f, 0x1e, 0xcd, 0x39, 0x38, 0x9c, 0xe6, 0x50, 0x1b, 0x16, 0x22, 0xb7, 0x35, - 0x74, 0x3d, 0x03, 0x1e, 0xbf, 0x28, 0x96, 0x6f, 0x1c, 0xc5, 0x75, 0x10, 0xc7, 0x81, 0xe5, 0xf8, - 0x54, 0x42, 0x59, 0x4a, 0x47, 0x0e, 0xcb, 0xe5, 0x8d, 0x23, 0x7a, 0x0f, 0x02, 0xfe, 0xa8, 0xc8, - 0x6f, 0x77, 0xfc, 0x84, 0x40, 0xef, 0x65, 0xf0, 0x65, 0xce, 0xba, 0xf2, 0xfb, 0x27, 0x40, 0x0e, - 0x54, 0xbd, 0x50, 0x60, 0x25, 0xad, 0xc7, 0xa3, 0x77, 0x33, 0x98, 0x33, 0xe6, 0x4e, 0xf9, 0xf6, - 0xb1, 0x71, 0x03, 0x3d, 0x3f, 0xc8, 0xcb, 0x7a, 0xa2, 0x85, 0xa1, 0x5b, 0x19, 0x8c, 0xe3, 0x9b, - 0x61, 0x79, 0xf3, 0x38, 0x90, 0xe8, 0x7e, 0x94, 0xc6, 0x4d, 0x96, 0xcc, 0xfc, 0x64, 0x0e, 0xb2, - 0xcc, 0xfc, 0x64, 0x0f, 0x30, 0x35, 0x87, 0x5e, 0x2a, 0xf2, 0xb6, 0x36, 0x32, 0x4c, 0xd0, 0x11, - 0x68, 0x53, 0xa6, 0x57, 0xf9, 0x83, 0x93, 0x40, 0x07, 0x92, 0x7e, 0x56, 0xe4, 0x98, 0x49, 0xe9, - 0x3f, 0x99, 0xc2, 0xb2, 0x3b, 0x5b, 0xa6, 0xb0, 0x09, 0xed, 0x4e, 0xcd, 0x6d, 0x7d, 0xf3, 0xeb, - 0x41, 0x45, 0x79, 0x75, 0x50, 0x51, 0x7e, 0x3f, 0xa8, 0x28, 0x2f, 0x0f, 0x2b, 0xb9, 0x57, 0x87, - 0x95, 0xdc, 0x6f, 0x87, 0x95, 0xdc, 0xd3, 0x7b, 0xa6, 0xe5, 0x3d, 0xf3, 0x9b, 0x55, 0xc3, 0xe9, - 0xd4, 0x9a, 0xdd, 0xe6, 0x86, 0xf1, 0x0c, 0x5b, 0xdd, 0xda, 0xf0, 0x28, 0xb4, 0xc1, 0x3c, 0x87, - 0x62, 0x93, 0x6c, 0xf0, 0x03, 0x9d, 0xd5, 0x22, 0xb4, 0x36, 0xf6, 0xf7, 0xc8, 0x66, 0x5e, 0xfc, - 0xd6, 0xf7, 0xf6, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x93, 0xd0, 0x48, 0x64, 0xaf, 0x14, 0x00, + // 1393 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0x5f, 0x6f, 0xdc, 0x44, + 0x10, 0x3f, 0x37, 0x7f, 0x6f, 0xf2, 0xa7, 0xed, 0x36, 0xa9, 0xc2, 0xb5, 0x5c, 0x13, 0x07, 0xd4, + 0xbf, 0xb9, 0xa3, 0x01, 0x51, 0xe0, 0x01, 0xd1, 0x14, 0x7a, 0x54, 0x34, 0x34, 0x38, 0x6d, 0xa0, + 0x95, 0x90, 0xbb, 0xe7, 0xdb, 0x73, 0x97, 0xf8, 0x6c, 0xb3, 0x6b, 0x5f, 0x1b, 0x1e, 0xf8, 0x06, + 0x48, 0x95, 0x10, 0x7c, 0x01, 0xbe, 0x06, 0x1f, 0x80, 0xc7, 0x3e, 0xc2, 0x1b, 0x6a, 0x25, 0xbe, + 0x00, 0x2f, 0x3c, 0xa2, 0xdd, 0xb5, 0xef, 0x6c, 0xdf, 0xd9, 0x97, 0x26, 0x0d, 0x12, 0x2f, 0x17, + 0x67, 0x76, 0x7e, 0xbf, 0x99, 0xdd, 0x99, 0x9d, 0x19, 0x1b, 0xf4, 0x26, 0xe6, 0xa4, 0x1e, 0xec, + 0xf9, 0x84, 0xd7, 0xed, 0x36, 0xf7, 0x39, 0x61, 0x5d, 0xc2, 0xea, 0x1d, 0xec, 0x62, 0x9b, 0xd4, + 0x7c, 0xe6, 0x05, 0x1e, 0x5a, 0x14, 0x3a, 0x35, 0xa9, 0x53, 0xeb, 0xeb, 0x54, 0x56, 0x32, 0x50, + 0xc2, 0x98, 0xc7, 0x78, 0x5d, 0xfe, 0x51, 0xc8, 0xca, 0x72, 0x46, 0xc5, 0xa1, 0x1d, 0x1a, 0xd4, + 0xe5, 0x6f, 0xa4, 0x51, 0xcd, 0x68, 0x04, 0x98, 0xef, 0xd6, 0xc5, 0x4f, 0xcc, 0x60, 0x33, 0x42, + 0xdc, 0x36, 0x25, 0x4e, 0xab, 0xde, 0xa5, 0x2c, 0x08, 0xb1, 0x63, 0x33, 0x2f, 0xf4, 0xeb, 0xc1, + 0x13, 0xa5, 0xa1, 0xff, 0xad, 0xc1, 0x42, 0xa3, 0xbd, 0xed, 0x6f, 0x10, 0x9b, 0xba, 0x77, 0x31, + 0xdf, 0x35, 0xc8, 0xb7, 0x21, 0xe1, 0x01, 0xba, 0x0f, 0x28, 0xf4, 0x1d, 0x0f, 0xb7, 0x4c, 0xaf, + 0xf9, 0x0d, 0xb1, 0x02, 0x53, 0xd0, 0x2e, 0x69, 0xcb, 0xda, 0x85, 0x99, 0xf5, 0x8b, 0xb5, 0xcc, + 0x9e, 0xa4, 0x49, 0x41, 0x73, 0x4f, 0x42, 0xee, 0x48, 0x84, 0x60, 0xfb, 0xb4, 0x64, 0x9c, 0x08, + 0x33, 0x32, 0x14, 0xc2, 0x59, 0x46, 0x78, 0xd8, 0xc1, 0x4d, 0x87, 0x98, 0x43, 0x8c, 0x1c, 0x93, + 0x46, 0xd6, 0x73, 0x8d, 0x18, 0x31, 0x78, 0x88, 0xb5, 0xd7, 0x58, 0xde, 0xe2, 0x46, 0x19, 0xa6, + 0x98, 0xda, 0x9c, 0xfe, 0x19, 0x2c, 0x66, 0x36, 0xcd, 0x7d, 0xcf, 0xe5, 0x04, 0xad, 0xc3, 0x18, + 0x61, 0x2c, 0xda, 0xe6, 0x72, 0xd6, 0x03, 0x15, 0x23, 0xe9, 0xc3, 0x27, 0xe2, 0xd1, 0x10, 0xca, + 0xfa, 0x5d, 0x40, 0x42, 0x72, 0x9d, 0xef, 0x26, 0xcf, 0xef, 0x43, 0x00, 0xd7, 0x6b, 0x11, 0x53, + 0x86, 0x2b, 0x22, 0x3c, 0x97, 0x25, 0x54, 0xb1, 0x14, 0xe8, 0xdb, 0xe2, 0xc9, 0x28, 0x0b, 0x88, + 0x7c, 0xd4, 0xff, 0x99, 0x84, 0x53, 0x29, 0xda, 0x83, 0x7b, 0x88, 0x4c, 0x58, 0x60, 0xc4, 0x77, + 0xa8, 0x85, 0x03, 0x62, 0xfa, 0x94, 0x58, 0x24, 0x79, 0xd0, 0x97, 0x0b, 0x0e, 0x3a, 0x02, 0x6d, + 0x09, 0x4c, 0x74, 0xc2, 0x88, 0x0d, 0x48, 0xd1, 0x36, 0x9c, 0xe0, 0x04, 0x3b, 0xa9, 0x28, 0x8e, + 0x49, 0xf2, 0xf3, 0xb9, 0xe4, 0xdb, 0x04, 0x3b, 0xa9, 0xd0, 0xcd, 0xf3, 0x94, 0x44, 0x64, 0x20, + 0x23, 0x16, 0xa1, 0xdd, 0x94, 0xcf, 0xe3, 0x23, 0x32, 0xd0, 0x50, 0x90, 0xa4, 0xc7, 0x27, 0x58, + 0x46, 0x86, 0x36, 0x61, 0xde, 0xb6, 0x52, 0xde, 0x4e, 0x48, 0xda, 0x37, 0x73, 0x69, 0x1b, 0x37, + 0x52, 0xbe, 0xce, 0xda, 0x56, 0xc2, 0xd3, 0xaf, 0x61, 0xc1, 0xb6, 0xcc, 0xef, 0xbc, 0x4e, 0x93, + 0xa6, 0x7c, 0x9d, 0x94, 0xa4, 0x97, 0x0a, 0x48, 0x1f, 0x48, 0x4c, 0xd2, 0xd9, 0x93, 0xb6, 0x95, + 0x11, 0xa2, 0x06, 0xcc, 0xda, 0x96, 0xd9, 0x21, 0x01, 0x56, 0xb4, 0x53, 0x92, 0x76, 0xb5, 0x80, + 0x76, 0x93, 0x04, 0x38, 0xe2, 0x03, 0xdb, 0x8a, 0xff, 0x8b, 0x4e, 0xd4, 0xeb, 0x12, 0x96, 0xf4, + 0x72, 0x7a, 0xf4, 0x89, 0x0a, 0x48, 0xf6, 0x44, 0x53, 0x32, 0x91, 0x01, 0x1d, 0x6a, 0x33, 0x91, + 0x60, 0x76, 0xd7, 0x56, 0xc4, 0xe5, 0x11, 0x19, 0xb0, 0xa9, 0x00, 0x8d, 0x9d, 0x46, 0x9c, 0x01, + 0x11, 0x45, 0xa3, 0x6b, 0x4b, 0x52, 0x0a, 0x4b, 0xb6, 0x65, 0x36, 0x43, 0x6b, 0x97, 0x04, 0xa6, + 0x5a, 0xa3, 0x9e, 0xab, 0xc8, 0x41, 0x92, 0xd7, 0x0a, 0x0e, 0x61, 0x43, 0xe2, 0x36, 0x63, 0x58, + 0x64, 0x63, 0xd1, 0xb6, 0x86, 0x2c, 0x6c, 0x00, 0x4c, 0xb3, 0xe8, 0x8a, 0xe9, 0x7f, 0x94, 0x55, + 0x79, 0x30, 0x88, 0xef, 0xb1, 0xe0, 0x3f, 0x2a, 0x8a, 0xff, 0xcf, 0x3b, 0x3a, 0x78, 0x91, 0xc6, + 0x8f, 0xe2, 0x22, 0x4d, 0x1c, 0xcd, 0x45, 0x9a, 0x3c, 0xe8, 0x45, 0x32, 0x61, 0xa1, 0xe5, 0x3d, + 0x76, 0x07, 0x32, 0x61, 0x6a, 0x44, 0xb0, 0x3e, 0x8e, 0x40, 0xa9, 0x23, 0x40, 0xad, 0x01, 0xa9, + 0x30, 0x60, 0x3d, 0xc2, 0x8e, 0x43, 0x5c, 0x9b, 0x0c, 0xde, 0xd5, 0x7c, 0x03, 0x37, 0x62, 0x50, + 0x2a, 0x1b, 0xac, 0x01, 0x69, 0x4e, 0x71, 0x2d, 0xbf, 0x8a, 0xe2, 0x3a, 0xaa, 0xbd, 0xc3, 0x91, + 0xb4, 0xf7, 0x9c, 0xe2, 0x36, 0x73, 0x54, 0xc5, 0x6d, 0xf6, 0x28, 0x8b, 0xdb, 0xdc, 0xab, 0x2d, + 0x6e, 0x89, 0xc9, 0xe7, 0x36, 0x9c, 0xce, 0x96, 0xb6, 0x43, 0x8c, 0x3e, 0x3f, 0x69, 0xb0, 0x22, + 0x44, 0x5b, 0xd4, 0xda, 0xdd, 0x51, 0xf3, 0x65, 0x43, 0xcc, 0x97, 0x37, 0x71, 0x87, 0x3a, 0x7b, + 0x71, 0xd5, 0xf4, 0xe1, 0x8c, 0xc5, 0x88, 0x38, 0xbd, 0x68, 0xb7, 0xd8, 0xf7, 0x99, 0xd7, 0xc5, + 0x4e, 0xb2, 0x7c, 0x5e, 0xcd, 0xcf, 0x69, 0x89, 0x55, 0xfb, 0xba, 0x1e, 0x21, 0xa5, 0xe7, 0x4b, + 0x56, 0xce, 0x8a, 0xee, 0x81, 0x5e, 0xe4, 0xd6, 0x21, 0x46, 0xa9, 0x45, 0x98, 0xec, 0xda, 0x6d, + 0x93, 0xb6, 0x64, 0x61, 0x9e, 0x33, 0x26, 0xba, 0x76, 0xfb, 0x56, 0x4b, 0xc7, 0x70, 0x4e, 0x28, + 0x7e, 0xee, 0x05, 0xb4, 0xbd, 0x17, 0x85, 0x7e, 0xfb, 0x31, 0xf6, 0xef, 0x84, 0x41, 0x7f, 0x20, + 0x9c, 0xe6, 0x8f, 0xb1, 0x6f, 0x7a, 0x61, 0x3c, 0x0e, 0xae, 0xd6, 0xfa, 0xe3, 0x79, 0x2d, 0x39, + 0x9e, 0xd7, 0x36, 0xb9, 0x1d, 0xa3, 0xa7, 0xb8, 0x7a, 0xd0, 0x77, 0x60, 0x39, 0xdf, 0xc4, 0x21, + 0x62, 0xf8, 0x91, 0x0a, 0xa1, 0xe2, 0xdd, 0x62, 0x24, 0xa2, 0x56, 0xa7, 0x1a, 0x3b, 0x7f, 0x06, + 0xca, 0x51, 0xec, 0x68, 0x4b, 0xd2, 0x8f, 0x1b, 0xd3, 0x4a, 0x70, 0xab, 0xa5, 0x7f, 0xa5, 0x4e, + 0x3b, 0x8f, 0xe1, 0x10, 0xbe, 0xfd, 0xa2, 0xa5, 0xa8, 0x3d, 0x1e, 0xbc, 0xb4, 0x77, 0xe8, 0x21, + 0x2c, 0x0e, 0x5c, 0x32, 0xea, 0xb6, 0xbd, 0xa8, 0xb3, 0x5e, 0xc9, 0xcd, 0xbb, 0xcc, 0x4d, 0xba, + 0xe5, 0xb6, 0x3d, 0xe3, 0x54, 0x73, 0x50, 0xa8, 0xdf, 0x87, 0xd5, 0x42, 0x27, 0x0f, 0x71, 0x00, + 0x67, 0xa1, 0x22, 0x24, 0x5f, 0x84, 0x84, 0xed, 0x89, 0xcc, 0xe6, 0xdb, 0x01, 0x0e, 0x78, 0xb4, + 0x6f, 0x7d, 0x07, 0xce, 0x0c, 0x5d, 0x8d, 0x0c, 0x5e, 0x83, 0x09, 0x2e, 0x04, 0x91, 0xc9, 0x95, + 0xda, 0xd0, 0x37, 0xd1, 0x5a, 0x02, 0xa9, 0xf4, 0xf5, 0xbf, 0x8e, 0x01, 0xf4, 0xa5, 0x68, 0x05, + 0x66, 0xa3, 0x32, 0x6e, 0x79, 0xa1, 0xab, 0xb2, 0x77, 0xce, 0x98, 0x51, 0xb2, 0x1b, 0x42, 0x84, + 0xce, 0xc3, 0xf1, 0xfe, 0xf4, 0xa2, 0xb4, 0xd4, 0xfd, 0x98, 0xef, 0x89, 0x95, 0xe2, 0xeb, 0x00, + 0x72, 0x0a, 0x51, 0x3a, 0x63, 0x52, 0xa7, 0x2c, 0x24, 0x6a, 0xf9, 0x1d, 0x38, 0x3d, 0xd0, 0x3b, + 0x94, 0xea, 0xb8, 0x54, 0x5d, 0xc8, 0xd4, 0x7f, 0x85, 0x5a, 0x85, 0xb9, 0x0e, 0x7e, 0x12, 0xe9, + 0x53, 0xd7, 0x96, 0xf3, 0xc2, 0x9c, 0x31, 0xdb, 0xc1, 0x4f, 0xee, 0xc5, 0x32, 0x74, 0x09, 0x4e, + 0x26, 0x8b, 0xb8, 0x62, 0x9d, 0x94, 0x8a, 0xc7, 0xfb, 0xa5, 0x39, 0xe1, 0x86, 0x6c, 0x02, 0x7b, + 0xa6, 0xcf, 0x3c, 0x8b, 0x70, 0x1e, 0x01, 0xa6, 0x62, 0x37, 0xd4, 0xea, 0x96, 0x5a, 0x54, 0xa8, + 0xb7, 0xa0, 0x27, 0x37, 0xdb, 0x98, 0x3a, 0xa4, 0x65, 0x3a, 0x94, 0x07, 0x4b, 0xd3, 0xcb, 0x63, + 0x17, 0xca, 0x46, 0xdc, 0x9d, 0xf6, 0x6e, 0xca, 0xa5, 0xdb, 0x94, 0x07, 0xfa, 0x1b, 0x2a, 0xbd, + 0x0d, 0xc2, 0x45, 0x9e, 0x64, 0x97, 0xe3, 0x30, 0x7f, 0xa9, 0xf2, 0x2b, 0x57, 0x2b, 0x0a, 0x77, + 0x9e, 0x79, 0x2d, 0xcf, 0xfc, 0xfa, 0xaf, 0x65, 0x38, 0x29, 0x7b, 0x95, 0xfc, 0x5e, 0xb1, 0x4d, + 0x58, 0x97, 0x5a, 0x04, 0x39, 0x30, 0x97, 0x7a, 0x39, 0x46, 0x97, 0x73, 0x12, 0x67, 0xd8, 0x77, + 0x83, 0xca, 0x95, 0xfd, 0x29, 0x47, 0xa3, 0x76, 0x09, 0xb5, 0x61, 0x26, 0xf1, 0x9a, 0x8b, 0x2e, + 0x16, 0xc0, 0xd3, 0x6f, 0xd8, 0x95, 0x4b, 0xfb, 0x51, 0xed, 0xd9, 0xf1, 0x60, 0x3e, 0xdd, 0xf8, + 0x50, 0x91, 0xa7, 0x03, 0xa3, 0x7f, 0x65, 0x6d, 0x9f, 0xda, 0x3d, 0x83, 0x3f, 0x6a, 0xea, 0xee, + 0x0e, 0x6f, 0x42, 0xe8, 0xbd, 0x02, 0xbe, 0xc2, 0x76, 0x5a, 0x79, 0xff, 0x00, 0xc8, 0x9e, 0x57, + 0x3f, 0x68, 0xb0, 0x94, 0xd7, 0x46, 0xd0, 0xbb, 0x05, 0xcc, 0x05, 0xad, 0xad, 0x72, 0xed, 0xa5, + 0x71, 0x3d, 0x7f, 0xbe, 0x57, 0x5f, 0x39, 0x32, 0x25, 0x0c, 0x5d, 0x2d, 0x60, 0x1c, 0x5e, 0x0c, + 0x2b, 0xeb, 0x2f, 0x03, 0x49, 0x9e, 0xc7, 0xc2, 0xb0, 0xe6, 0x55, 0x18, 0x9f, 0xc2, 0x5e, 0x59, + 0x18, 0x9f, 0xe2, 0x1e, 0xa9, 0x97, 0xd0, 0x53, 0x4d, 0xbd, 0x7b, 0x0e, 0x34, 0x13, 0xb4, 0x0f, + 0xda, 0x9c, 0xfe, 0x58, 0xf9, 0xe0, 0x20, 0xd0, 0x9e, 0x4b, 0x3f, 0x6b, 0xaa, 0xcd, 0xe4, 0xd4, + 0x9f, 0x42, 0xc7, 0x8a, 0x2b, 0x5b, 0xa1, 0x63, 0x23, 0xca, 0x9d, 0x5e, 0xda, 0x78, 0xf8, 0xdb, + 0xf3, 0xaa, 0xf6, 0xec, 0x79, 0x55, 0xfb, 0xf3, 0x79, 0x55, 0x7b, 0xfa, 0xa2, 0x5a, 0x7a, 0xf6, + 0xa2, 0x5a, 0xfa, 0xfd, 0x45, 0xb5, 0xf4, 0xe0, 0xa6, 0x4d, 0x83, 0x47, 0x61, 0xb3, 0x66, 0x79, + 0x9d, 0x7a, 0xd3, 0x6d, 0xae, 0x59, 0x8f, 0x30, 0x75, 0xeb, 0xfd, 0x69, 0x6b, 0x8d, 0x07, 0x1e, + 0xc3, 0x36, 0x59, 0x13, 0x33, 0x23, 0x6d, 0x11, 0x56, 0x1f, 0xfa, 0x21, 0xb7, 0x39, 0x29, 0x3f, + 0x92, 0xbe, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x48, 0x96, 0xe3, 0x23, 0xe8, 0x15, 0x00, 0x00, } @@ -2094,6 +2132,27 @@ func (m *GfSpAskTaskResponse_MigrateGvgTask) MarshalToSizedBuffer(dAtA []byte) ( } return len(dAtA) - i, nil } +func (m *GfSpAskTaskResponse_GcBucketMigrationTask) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GfSpAskTaskResponse_GcBucketMigrationTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.GcBucketMigrationTask != nil { + { + size, err := m.GcBucketMigrationTask.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintManage(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + return len(dAtA) - i, nil +} func (m *GfSpReportTaskRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2378,6 +2437,27 @@ func (m *GfSpReportTaskRequest_MigrateGvgTask) MarshalToSizedBuffer(dAtA []byte) } return len(dAtA) - i, nil } +func (m *GfSpReportTaskRequest_GcBucketMigrationTask) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GfSpReportTaskRequest_GcBucketMigrationTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.GcBucketMigrationTask != nil { + { + size, err := m.GcBucketMigrationTask.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintManage(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + } + return len(dAtA) - i, nil +} func (m *GfSpReportTaskResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2641,6 +2721,18 @@ func (m *GfSpNotifyPostMigrateBucketRequest) MarshalToSizedBuffer(dAtA []byte) ( _ = i var l int _ = l + if m.BucketMigrationInfo != nil { + { + size, err := m.BucketMigrationInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintManage(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } if m.BucketId != 0 { i = encodeVarintManage(dAtA, i, uint64(m.BucketId)) i-- @@ -3049,6 +3141,18 @@ func (m *GfSpAskTaskResponse_MigrateGvgTask) Size() (n int) { } return n } +func (m *GfSpAskTaskResponse_GcBucketMigrationTask) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.GcBucketMigrationTask != nil { + l = m.GcBucketMigrationTask.Size() + n += 1 + l + sovManage(uint64(l)) + } + return n +} func (m *GfSpReportTaskRequest) Size() (n int) { if m == nil { return 0 @@ -3205,6 +3309,18 @@ func (m *GfSpReportTaskRequest_MigrateGvgTask) Size() (n int) { } return n } +func (m *GfSpReportTaskRequest_GcBucketMigrationTask) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.GcBucketMigrationTask != nil { + l = m.GcBucketMigrationTask.Size() + n += 1 + l + sovManage(uint64(l)) + } + return n +} func (m *GfSpReportTaskResponse) Size() (n int) { if m == nil { return 0 @@ -3307,6 +3423,10 @@ func (m *GfSpNotifyPostMigrateBucketRequest) Size() (n int) { if m.BucketId != 0 { n += 1 + sovManage(uint64(m.BucketId)) } + if m.BucketMigrationInfo != nil { + l = m.BucketMigrationInfo.Size() + n += 1 + l + sovManage(uint64(l)) + } return n } @@ -4048,6 +4168,41 @@ func (m *GfSpAskTaskResponse) Unmarshal(dAtA []byte) error { } m.Response = &GfSpAskTaskResponse_MigrateGvgTask{v} iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GcBucketMigrationTask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowManage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthManage + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthManage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &gfsptask.GfSpGCBucketMigrationTask{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Response = &GfSpAskTaskResponse_GcBucketMigrationTask{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipManage(dAtA[iNdEx:]) @@ -4518,6 +4673,41 @@ func (m *GfSpReportTaskRequest) Unmarshal(dAtA []byte) error { } m.Request = &GfSpReportTaskRequest_MigrateGvgTask{v} iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GcBucketMigrationTask", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowManage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthManage + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthManage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &gfsptask.GfSpGCBucketMigrationTask{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Request = &GfSpReportTaskRequest_GcBucketMigrationTask{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipManage(dAtA[iNdEx:]) @@ -5191,6 +5381,42 @@ func (m *GfSpNotifyPostMigrateBucketRequest) Unmarshal(dAtA []byte) error { break } } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BucketMigrationInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowManage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthManage + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthManage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BucketMigrationInfo == nil { + m.BucketMigrationInfo = &gfsptask.GfSpBucketMigrationInfo{} + } + if err := m.BucketMigrationInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipManage(dAtA[iNdEx:]) diff --git a/base/types/gfsptask/gc.go b/base/types/gfsptask/gc.go index 16da28b64..e614d7ed6 100644 --- a/base/types/gfsptask/gc.go +++ b/base/types/gfsptask/gc.go @@ -171,6 +171,17 @@ func (m *GfSpGCObjectTask) SetLastDeletedObjectId(object uint64) { m.LastDeletedObjectId = object } +func (m *GfSpGCZombiePieceTask) InitGCZombiePieceTask(priority coretask.TPriority, start, end uint64, timeout int64) { + m.Reset() + m.Task = &GfSpTask{} + m.SetStartObjectID(start) + m.SetEndObjectID(end) + m.SetPriority(priority) + m.SetCreateTime(time.Now().Unix()) + m.SetUpdateTime(time.Now().Unix()) + m.SetTimeout(timeout) +} + func (m *GfSpGCZombiePieceTask) Key() coretask.TKey { return GfSpGCZombiePieceTaskKey(m.GetCreateTime()) } @@ -289,13 +300,48 @@ func (m *GfSpGCZombiePieceTask) SetError(err error) { m.GetTask().SetError(err) } -func (m *GfSpGCZombiePieceTask) GetGCZombiePieceStatus() (uint64, uint64) { - return m.GetObjectId(), m.GetDeleteCount() +func (m *GfSpGCZombiePieceTask) SetStartBlockNumber(block uint64) { + m.StartBlockNumber = block } -func (m *GfSpGCZombiePieceTask) SetGCZombiePieceStatus(object uint64, delete uint64) { - m.ObjectId = object - m.DeleteCount = delete +func (m *GfSpGCZombiePieceTask) SetEndBlockNumber(block uint64) { + m.EndBlockNumber = block +} + +func (m *GfSpGCZombiePieceTask) GetGCObjectProgress() (uint64, uint64) { + return m.GetCurrentBlockNumber(), m.GetLastDeletedObjectId() +} + +func (m *GfSpGCZombiePieceTask) SetGCObjectProgress(block uint64, object uint64) { + m.CurrentBlockNumber = block + m.LastDeletedObjectId = object +} + +func (m *GfSpGCZombiePieceTask) SetCurrentBlockNumber(block uint64) { + m.CurrentBlockNumber = block +} + +func (m *GfSpGCZombiePieceTask) SetLastDeletedObjectId(object uint64) { + m.LastDeletedObjectId = object +} + +func (m *GfSpGCZombiePieceTask) SetStartObjectID(block uint64) { + m.StartObjectId = block +} + +func (m *GfSpGCZombiePieceTask) SetEndObjectID(block uint64) { + m.EndObjectId = block +} + +func (m *GfSpGCMetaTask) InitGCMetaTask(priority coretask.TPriority, timeout int64) { + m.Reset() + m.Task = &GfSpTask{} + m.SetPriority(priority) + m.SetCreateTime(time.Now().Unix()) + m.SetUpdateTime(time.Now().Unix()) + m.SetTimeout(timeout) + //m.SetGCMetaTaskType(metaTaskType) + //m.SetDeletionTime(tx) } func (m *GfSpGCMetaTask) Key() coretask.TKey { @@ -424,3 +470,15 @@ func (m *GfSpGCMetaTask) SetGCMetaStatus(current uint64, delete uint64) { m.CurrentIdx = current m.DeleteCount = delete } + +func (m *GfSpGCMetaTask) SetGCMetaTaskType(metaTaskType GfSpGCMetaTaskType) { + m.MetaTaskType = metaTaskType +} + +func (m *GfSpGCMetaTask) GetGCMetaTaskType() GfSpGCMetaTaskType { + return m.GetMetaTaskType() +} + +func (m *GfSpGCMetaTask) SetDeletionTime(tx uint64) { + m.DeletionTime = int64(tx) +} diff --git a/base/types/gfsptask/gc_test.go b/base/types/gfsptask/gc_test.go index 0c1de06ad..32c93b297 100644 --- a/base/types/gfsptask/gc_test.go +++ b/base/types/gfsptask/gc_test.go @@ -335,16 +335,6 @@ func TestGfSpGCZombiePieceTask_SetError(t *testing.T) { m.SetError(nil) } -func TestGfSpGCZombiePieceTask_GetGCZombiePieceStatus(t *testing.T) { - m := &GfSpGCZombiePieceTask{Task: &GfSpTask{}} - m.GetGCZombiePieceStatus() -} - -func TestGfSpGCZombiePieceTask_setGCZombiePieceStatus(t *testing.T) { - m := &GfSpGCZombiePieceTask{Task: &GfSpTask{}} - m.SetGCZombiePieceStatus(1, 1) -} - // === func TestGfSpGCMetaTask_Key(t *testing.T) { diff --git a/base/types/gfsptask/migrate_gvg.go b/base/types/gfsptask/migrate_gvg.go index ca96bbefb..e72def2d9 100644 --- a/base/types/gfsptask/migrate_gvg.go +++ b/base/types/gfsptask/migrate_gvg.go @@ -2,6 +2,7 @@ package gfsptask import ( "fmt" + "time" sdk "github.com/cosmos/cosmos-sdk/types" @@ -12,6 +13,7 @@ import ( ) var _ coretask.MigrateGVGTask = &GfSpMigrateGVGTask{} +var _ coretask.GCBucketMigrationTask = &GfSpGCBucketMigrationTask{} func (m *GfSpMigrateGVGTask) InitMigrateGVGTask(priority coretask.TPriority, bucketID uint64, srcGvg *virtualgrouptypes.GlobalVirtualGroup, redundancyIndex int32, srcSP *sptypes.StorageProvider, timeout, retry int64) { @@ -231,3 +233,143 @@ func (m *GfSpBucketMigrationInfo) Info() string { "key[%s], bucket_id[%d], migrated_bytes_size[%d], finished[%t].", m.Key(), m.GetBucketId(), m.GetMigratedBytesSize(), m.GetFinished()) } + +// ======================= GCBucketMigrationTask ===================================== + +func (m *GfSpGCBucketMigrationTask) InitGCBucketMigrationTask(priority coretask.TPriority, bucketID uint64, timeout, retry int64) { + m.Reset() + m.Task = &GfSpTask{} + m.SetPriority(priority) + m.BucketId = bucketID + m.SetTimeout(timeout) + m.SetMaxRetry(retry) + m.SetRetry(0) + m.SetUpdateTime(time.Now().Unix()) +} + +func (g *GfSpGCBucketMigrationTask) Key() coretask.TKey { + return GfSpGCBucketMigrationTaskKey(1) +} + +func (m *GfSpGCBucketMigrationTask) Type() coretask.TType { + return coretask.TypeTaskGCBucketMigration +} + +func (m *GfSpGCBucketMigrationTask) Info() string { + return fmt.Sprintf( + "key[%s], type[%s], priority[%d], limit[%s], bucket_id[%d]", + m.Key(), coretask.TaskTypeName(m.Type()), m.GetPriority(), m.EstimateLimit().String(), + m.GetBucketId()) +} + +func (m *GfSpGCBucketMigrationTask) GetAddress() string { + return m.GetTask().GetAddress() +} + +func (m *GfSpGCBucketMigrationTask) SetAddress(address string) { + m.GetTask().SetAddress(address) +} + +func (m *GfSpGCBucketMigrationTask) GetCreateTime() int64 { + return m.GetTask().GetCreateTime() +} + +func (m *GfSpGCBucketMigrationTask) SetCreateTime(time int64) { + m.GetTask().SetCreateTime(time) +} + +func (m *GfSpGCBucketMigrationTask) GetUpdateTime() int64 { + return m.GetTask().GetUpdateTime() +} + +func (m *GfSpGCBucketMigrationTask) SetUpdateTime(time int64) { + m.GetTask().SetUpdateTime(time) +} + +func (m *GfSpGCBucketMigrationTask) GetTimeout() int64 { + return m.GetTask().GetTimeout() +} + +func (m *GfSpGCBucketMigrationTask) SetTimeout(time int64) { + m.GetTask().SetTimeout(time) +} + +func (m *GfSpGCBucketMigrationTask) ExceedTimeout() bool { + return m.GetTask().ExceedTimeout() +} + +func (m *GfSpGCBucketMigrationTask) GetRetry() int64 { + return m.GetTask().GetRetry() +} + +func (m *GfSpGCBucketMigrationTask) IncRetry() { + m.GetTask().IncRetry() +} + +func (m *GfSpGCBucketMigrationTask) SetRetry(retry int) { + m.GetTask().SetRetry(retry) +} + +func (m *GfSpGCBucketMigrationTask) GetMaxRetry() int64 { + return m.GetTask().GetMaxRetry() +} + +func (m *GfSpGCBucketMigrationTask) SetMaxRetry(limit int64) { + m.GetTask().SetMaxRetry(limit) +} + +func (m *GfSpGCBucketMigrationTask) ExceedRetry() bool { + return m.GetTask().ExceedRetry() +} + +func (m *GfSpGCBucketMigrationTask) Expired() bool { + return m.GetTask().Expired() +} + +func (m *GfSpGCBucketMigrationTask) GetPriority() coretask.TPriority { + return m.GetTask().GetPriority() +} + +func (m *GfSpGCBucketMigrationTask) SetPriority(priority coretask.TPriority) { + m.GetTask().SetPriority(priority) +} + +func (m *GfSpGCBucketMigrationTask) EstimateLimit() corercmgr.Limit { + return LimitEstimateByPriority(m.GetPriority()) +} + +func (m *GfSpGCBucketMigrationTask) SetLogs(logs string) { + m.GetTask().SetLogs(logs) +} + +func (m *GfSpGCBucketMigrationTask) GetLogs() string { + return m.GetTask().GetLogs() +} + +func (m *GfSpGCBucketMigrationTask) AppendLog(log string) { + m.GetTask().AppendLog(log) +} + +func (m *GfSpGCBucketMigrationTask) GetUserAddress() string { + return m.GetTask().GetUserAddress() +} + +func (m *GfSpGCBucketMigrationTask) SetUserAddress(s string) { + m.GetTask().SetUserAddress(s) +} + +func (m *GfSpGCBucketMigrationTask) Error() error { + return m.GetTask().Error() +} + +func (m *GfSpGCBucketMigrationTask) SetError(err error) { + m.GetTask().SetError(err) +} + +func (m *GfSpGCBucketMigrationTask) GetBucketID() uint64 { + return m.GetBucketId() +} + +func (m *GfSpGCBucketMigrationTask) SetBucketID(bucketID uint64) { + m.BucketId = bucketID +} diff --git a/base/types/gfsptask/task.pb.go b/base/types/gfsptask/task.pb.go index b6e03e26f..69d211b79 100644 --- a/base/types/gfsptask/task.pb.go +++ b/base/types/gfsptask/task.pb.go @@ -26,6 +26,34 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type GfSpGCMetaTaskType int32 + +const ( + GfSpGCMetaTaskType_GF_SP_GC_META_TASK_TYPE_UNSPECIFIED GfSpGCMetaTaskType = 0 + GfSpGCMetaTaskType_GF_SP_GC_META_TASK_TYPE_BUCKET_TRAFFIC GfSpGCMetaTaskType = 1 + GfSpGCMetaTaskType_GF_SP_GC_META_TASK_TYPE_TRAFFIC_READ_RECORD GfSpGCMetaTaskType = 2 +) + +var GfSpGCMetaTaskType_name = map[int32]string{ + 0: "GF_SP_GC_META_TASK_TYPE_UNSPECIFIED", + 1: "GF_SP_GC_META_TASK_TYPE_BUCKET_TRAFFIC", + 2: "GF_SP_GC_META_TASK_TYPE_TRAFFIC_READ_RECORD", +} + +var GfSpGCMetaTaskType_value = map[string]int32{ + "GF_SP_GC_META_TASK_TYPE_UNSPECIFIED": 0, + "GF_SP_GC_META_TASK_TYPE_BUCKET_TRAFFIC": 1, + "GF_SP_GC_META_TASK_TYPE_TRAFFIC_READ_RECORD": 2, +} + +func (x GfSpGCMetaTaskType) String() string { + return proto.EnumName(GfSpGCMetaTaskType_name, int32(x)) +} + +func (GfSpGCMetaTaskType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_0d22df708e229306, []int{0} +} + type GfSpTask struct { Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` CreateTime int64 `protobuf:"varint,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` @@ -1407,10 +1435,15 @@ func (m *GfSpGCObjectTask) GetRunning() bool { } type GfSpGCZombiePieceTask struct { - Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` - ObjectId uint64 `protobuf:"varint,2,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"` - DeleteCount uint64 `protobuf:"varint,3,opt,name=delete_count,json=deleteCount,proto3" json:"delete_count,omitempty"` - Running bool `protobuf:"varint,4,opt,name=running,proto3" json:"running,omitempty"` + Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` + StartBlockNumber uint64 `protobuf:"varint,2,opt,name=start_block_number,json=startBlockNumber,proto3" json:"start_block_number,omitempty"` + EndBlockNumber uint64 `protobuf:"varint,3,opt,name=end_block_number,json=endBlockNumber,proto3" json:"end_block_number,omitempty"` + CurrentBlockNumber uint64 `protobuf:"varint,4,opt,name=current_block_number,json=currentBlockNumber,proto3" json:"current_block_number,omitempty"` + LastDeletedObjectId uint64 `protobuf:"varint,5,opt,name=last_deleted_object_id,json=lastDeletedObjectId,proto3" json:"last_deleted_object_id,omitempty"` + Running bool `protobuf:"varint,6,opt,name=running,proto3" json:"running,omitempty"` + StartObjectId uint64 `protobuf:"varint,7,opt,name=start_object_id,json=startObjectId,proto3" json:"start_object_id,omitempty"` + EndObjectId uint64 `protobuf:"varint,8,opt,name=end_object_id,json=endObjectId,proto3" json:"end_object_id,omitempty"` + Finished bool `protobuf:"varint,9,opt,name=finished,proto3" json:"finished,omitempty"` } func (m *GfSpGCZombiePieceTask) Reset() { *m = GfSpGCZombiePieceTask{} } @@ -1453,16 +1486,30 @@ func (m *GfSpGCZombiePieceTask) GetTask() *GfSpTask { return nil } -func (m *GfSpGCZombiePieceTask) GetObjectId() uint64 { +func (m *GfSpGCZombiePieceTask) GetStartBlockNumber() uint64 { if m != nil { - return m.ObjectId + return m.StartBlockNumber } return 0 } -func (m *GfSpGCZombiePieceTask) GetDeleteCount() uint64 { +func (m *GfSpGCZombiePieceTask) GetEndBlockNumber() uint64 { if m != nil { - return m.DeleteCount + return m.EndBlockNumber + } + return 0 +} + +func (m *GfSpGCZombiePieceTask) GetCurrentBlockNumber() uint64 { + if m != nil { + return m.CurrentBlockNumber + } + return 0 +} + +func (m *GfSpGCZombiePieceTask) GetLastDeletedObjectId() uint64 { + if m != nil { + return m.LastDeletedObjectId } return 0 } @@ -1474,11 +1521,35 @@ func (m *GfSpGCZombiePieceTask) GetRunning() bool { return false } +func (m *GfSpGCZombiePieceTask) GetStartObjectId() uint64 { + if m != nil { + return m.StartObjectId + } + return 0 +} + +func (m *GfSpGCZombiePieceTask) GetEndObjectId() uint64 { + if m != nil { + return m.EndObjectId + } + return 0 +} + +func (m *GfSpGCZombiePieceTask) GetFinished() bool { + if m != nil { + return m.Finished + } + return false +} + type GfSpGCMetaTask struct { Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` CurrentIdx uint64 `protobuf:"varint,2,opt,name=current_idx,json=currentIdx,proto3" json:"current_idx,omitempty"` DeleteCount uint64 `protobuf:"varint,3,opt,name=delete_count,json=deleteCount,proto3" json:"delete_count,omitempty"` Running bool `protobuf:"varint,4,opt,name=running,proto3" json:"running,omitempty"` + // delete meta record before deletion time + DeletionTime int64 `protobuf:"varint,5,opt,name=deletion_time,json=deletionTime,proto3" json:"deletion_time,omitempty"` + MetaTaskType GfSpGCMetaTaskType `protobuf:"varint,6,opt,name=meta_task_type,json=metaTaskType,proto3,enum=base.types.gfsptask.GfSpGCMetaTaskType" json:"meta_task_type,omitempty"` } func (m *GfSpGCMetaTask) Reset() { *m = GfSpGCMetaTask{} } @@ -1542,6 +1613,20 @@ func (m *GfSpGCMetaTask) GetRunning() bool { return false } +func (m *GfSpGCMetaTask) GetDeletionTime() int64 { + if m != nil { + return m.DeletionTime + } + return 0 +} + +func (m *GfSpGCMetaTask) GetMetaTaskType() GfSpGCMetaTaskType { + if m != nil { + return m.MetaTaskType + } + return GfSpGCMetaTaskType_GF_SP_GC_META_TASK_TYPE_UNSPECIFIED +} + type GfSpMigrateGVGTask struct { Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` BucketId uint64 `protobuf:"varint,2,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` @@ -1758,6 +1843,58 @@ func (m *GfSpMigratePieceTask) GetIsBucketMigrate() bool { return false } +type GfSpGCBucketMigrationTask struct { + Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` + BucketId uint64 `protobuf:"varint,2,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` +} + +func (m *GfSpGCBucketMigrationTask) Reset() { *m = GfSpGCBucketMigrationTask{} } +func (m *GfSpGCBucketMigrationTask) String() string { return proto.CompactTextString(m) } +func (*GfSpGCBucketMigrationTask) ProtoMessage() {} +func (*GfSpGCBucketMigrationTask) Descriptor() ([]byte, []int) { + return fileDescriptor_0d22df708e229306, []int{19} +} +func (m *GfSpGCBucketMigrationTask) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GfSpGCBucketMigrationTask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GfSpGCBucketMigrationTask.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GfSpGCBucketMigrationTask) XXX_Merge(src proto.Message) { + xxx_messageInfo_GfSpGCBucketMigrationTask.Merge(m, src) +} +func (m *GfSpGCBucketMigrationTask) XXX_Size() int { + return m.Size() +} +func (m *GfSpGCBucketMigrationTask) XXX_DiscardUnknown() { + xxx_messageInfo_GfSpGCBucketMigrationTask.DiscardUnknown(m) +} + +var xxx_messageInfo_GfSpGCBucketMigrationTask proto.InternalMessageInfo + +func (m *GfSpGCBucketMigrationTask) GetTask() *GfSpTask { + if m != nil { + return m.Task + } + return nil +} + +func (m *GfSpGCBucketMigrationTask) GetBucketId() uint64 { + if m != nil { + return m.BucketId + } + return 0 +} + type GfSpBucketMigrationInfo struct { BucketId uint64 `protobuf:"varint,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` // whether the migrate bucket succeed @@ -1774,7 +1911,7 @@ func (m *GfSpBucketMigrationInfo) Reset() { *m = GfSpBucketMigrationInfo func (m *GfSpBucketMigrationInfo) String() string { return proto.CompactTextString(m) } func (*GfSpBucketMigrationInfo) ProtoMessage() {} func (*GfSpBucketMigrationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_0d22df708e229306, []int{19} + return fileDescriptor_0d22df708e229306, []int{20} } func (m *GfSpBucketMigrationInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1872,7 +2009,7 @@ func (m *GfSpBucketQuotaInfo) Reset() { *m = GfSpBucketQuotaInfo{} } func (m *GfSpBucketQuotaInfo) String() string { return proto.CompactTextString(m) } func (*GfSpBucketQuotaInfo) ProtoMessage() {} func (*GfSpBucketQuotaInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_0d22df708e229306, []int{20} + return fileDescriptor_0d22df708e229306, []int{21} } func (m *GfSpBucketQuotaInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1958,6 +2095,7 @@ func (m *GfSpBucketQuotaInfo) GetAllowMigrate() bool { } func init() { + proto.RegisterEnum("base.types.gfsptask.GfSpGCMetaTaskType", GfSpGCMetaTaskType_name, GfSpGCMetaTaskType_value) proto.RegisterType((*GfSpTask)(nil), "base.types.gfsptask.GfSpTask") proto.RegisterType((*GfSpCreateBucketApprovalTask)(nil), "base.types.gfsptask.GfSpCreateBucketApprovalTask") proto.RegisterType((*GfSpMigrateBucketApprovalTask)(nil), "base.types.gfsptask.GfSpMigrateBucketApprovalTask") @@ -1977,6 +2115,7 @@ func init() { proto.RegisterType((*GfSpGCMetaTask)(nil), "base.types.gfsptask.GfSpGCMetaTask") proto.RegisterType((*GfSpMigrateGVGTask)(nil), "base.types.gfsptask.GfSpMigrateGVGTask") proto.RegisterType((*GfSpMigratePieceTask)(nil), "base.types.gfsptask.GfSpMigratePieceTask") + proto.RegisterType((*GfSpGCBucketMigrationTask)(nil), "base.types.gfsptask.GfSpGCBucketMigrationTask") proto.RegisterType((*GfSpBucketMigrationInfo)(nil), "base.types.gfsptask.GfSpBucketMigrationInfo") proto.RegisterType((*GfSpBucketQuotaInfo)(nil), "base.types.gfsptask.GfSpBucketQuotaInfo") } @@ -1984,133 +2123,144 @@ func init() { func init() { proto.RegisterFile("base/types/gfsptask/task.proto", fileDescriptor_0d22df708e229306) } var fileDescriptor_0d22df708e229306 = []byte{ - // 2013 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcb, 0x6f, 0x1b, 0xc9, - 0xd1, 0x37, 0xc5, 0x77, 0x91, 0x94, 0xe4, 0x11, 0x6d, 0x73, 0xfd, 0xa0, 0x64, 0xea, 0xb3, 0xa1, - 0x2f, 0x59, 0x93, 0xbb, 0x5a, 0x18, 0x39, 0x1a, 0x7a, 0xec, 0x6a, 0x85, 0xc4, 0x6b, 0xef, 0xc8, - 0xd9, 0xc3, 0x1e, 0x32, 0x68, 0xce, 0x34, 0x87, 0x13, 0xcd, 0x4c, 0x4f, 0x7a, 0x9a, 0xb2, 0xe4, - 0x73, 0xee, 0x09, 0x72, 0xc9, 0x2d, 0x40, 0x80, 0x1c, 0x72, 0x0d, 0x10, 0xe4, 0x96, 0x53, 0x80, - 0x45, 0x80, 0x5c, 0xf6, 0x18, 0x20, 0x97, 0x85, 0x9d, 0x4b, 0xfe, 0x8b, 0xa0, 0xab, 0x7b, 0x1e, - 0xa4, 0x29, 0x45, 0x5e, 0x09, 0x89, 0x1d, 0xe4, 0x62, 0xab, 0xeb, 0x57, 0xdd, 0x53, 0xfd, 0xab, - 0x57, 0x77, 0x13, 0xba, 0x43, 0x12, 0xd3, 0x81, 0x38, 0x89, 0x68, 0x3c, 0x70, 0x47, 0x71, 0x24, - 0x48, 0x7c, 0x38, 0x90, 0xff, 0xf4, 0x23, 0xce, 0x04, 0x33, 0x56, 0x24, 0xde, 0x47, 0xbc, 0x9f, - 0xe0, 0x37, 0xef, 0xce, 0x4c, 0xa2, 0x9c, 0x33, 0x1e, 0x0f, 0xf0, 0x3f, 0x35, 0xef, 0xe6, 0x7b, - 0x2e, 0xa7, 0x34, 0x1c, 0x79, 0xd4, 0x77, 0x06, 0x71, 0xa4, 0x74, 0x35, 0xb4, 0x9a, 0x87, 0x04, - 0xe3, 0xc4, 0xa5, 0x83, 0x88, 0x70, 0x12, 0x24, 0x0a, 0xb7, 0xe6, 0x28, 0x88, 0x63, 0x0d, 0x76, - 0xe7, 0x81, 0xb9, 0xd5, 0xd7, 0x73, 0xf8, 0x91, 0xc7, 0xc5, 0x84, 0xf8, 0x2e, 0x67, 0x93, 0x29, - 0x13, 0x7a, 0x7f, 0x5a, 0x80, 0xda, 0xde, 0xe8, 0x20, 0x7a, 0x46, 0xe2, 0x43, 0xa3, 0x03, 0x55, - 0xe2, 0x38, 0x9c, 0xc6, 0x71, 0xa7, 0xb0, 0x56, 0xd8, 0xa8, 0x9b, 0xc9, 0xd0, 0x58, 0x85, 0x86, - 0xcd, 0x29, 0x11, 0xd4, 0x12, 0x5e, 0x40, 0x3b, 0x0b, 0x6b, 0x85, 0x8d, 0xa2, 0x09, 0x4a, 0xf4, - 0xcc, 0x0b, 0xa8, 0x54, 0x98, 0x44, 0x4e, 0xaa, 0x50, 0x54, 0x0a, 0x4a, 0x84, 0x0a, 0x1d, 0xa8, - 0x4a, 0x84, 0x4d, 0x44, 0xa7, 0x84, 0x60, 0x32, 0x34, 0xd6, 0xa1, 0x25, 0xb9, 0xb4, 0x22, 0xee, - 0x31, 0xee, 0x89, 0x93, 0x4e, 0x79, 0xad, 0xb0, 0x51, 0x36, 0x9b, 0x52, 0xf8, 0x54, 0xcb, 0x8c, - 0x36, 0x94, 0x39, 0x15, 0xfc, 0xa4, 0x53, 0xc1, 0xc9, 0x6a, 0x60, 0xdc, 0x82, 0x7a, 0x40, 0x8e, - 0x2d, 0x85, 0x54, 0x11, 0xa9, 0x05, 0xe4, 0xd8, 0x44, 0xf0, 0x2e, 0x34, 0x27, 0x31, 0xe5, 0x56, - 0xb2, 0xa5, 0x1a, 0x6e, 0xa9, 0x21, 0x65, 0x5b, 0x7a, 0x5b, 0x06, 0x94, 0x7c, 0xe6, 0xc6, 0x9d, - 0x3a, 0x42, 0xf8, 0xb7, 0xb1, 0x09, 0x45, 0xca, 0x79, 0x07, 0xd6, 0x0a, 0x1b, 0x8d, 0xcd, 0xb5, - 0xfe, 0x8c, 0xd7, 0x95, 0x83, 0xfb, 0x92, 0xb2, 0x8f, 0xe5, 0x9f, 0xa6, 0x54, 0xee, 0x7d, 0x55, - 0x80, 0xdb, 0x52, 0xb4, 0x83, 0x84, 0x6c, 0x4f, 0xec, 0x43, 0x2a, 0xb6, 0xa2, 0x88, 0xb3, 0x23, - 0xe2, 0x23, 0xb3, 0x1f, 0x42, 0x49, 0x6e, 0x07, 0x69, 0x6d, 0x6c, 0xde, 0xe9, 0xcf, 0x89, 0xa5, - 0x7e, 0xe2, 0x06, 0x13, 0x55, 0x8d, 0xcf, 0xc1, 0xd0, 0x94, 0x0f, 0x71, 0x3d, 0xcb, 0x0b, 0x47, - 0x0c, 0x99, 0x6f, 0x6c, 0xae, 0xf7, 0x33, 0xdf, 0xf6, 0xb5, 0xef, 0xfb, 0x8f, 0x63, 0x37, 0xff, - 0x7d, 0x73, 0xd9, 0xce, 0x8d, 0xf6, 0xc3, 0x11, 0x33, 0xd6, 0xa0, 0x31, 0xf2, 0x42, 0x97, 0xf2, - 0x88, 0x7b, 0xa1, 0x40, 0x27, 0x35, 0xcd, 0xbc, 0xa8, 0xf7, 0xdb, 0x02, 0xdc, 0x91, 0x76, 0x3c, - 0xf6, 0x5c, 0x7e, 0x69, 0x3b, 0x79, 0x06, 0x2b, 0x81, 0x5a, 0x6f, 0xce, 0x56, 0xfe, 0xef, 0x94, - 0xad, 0x4c, 0x59, 0x60, 0x5e, 0x0d, 0xf2, 0x43, 0xb9, 0x99, 0x19, 0xce, 0x9f, 0x0c, 0x7f, 0x4c, - 0xed, 0x4b, 0xe4, 0x9c, 0xe1, 0x7a, 0xe7, 0xe7, 0x5c, 0x7d, 0x3f, 0xe1, 0x5c, 0x8d, 0xce, 0xc9, - 0xf9, 0x1f, 0x4b, 0xd0, 0x95, 0x76, 0x98, 0x34, 0xf2, 0x3d, 0x9b, 0x08, 0xfa, 0xd4, 0xa3, 0x36, - 0xbd, 0xe8, 0x56, 0x1e, 0x41, 0xe3, 0xf5, 0x3d, 0x74, 0xe7, 0xed, 0x21, 0x33, 0xd6, 0x04, 0x96, - 0x19, 0xbe, 0x05, 0x8b, 0x5a, 0xc3, 0x52, 0x35, 0x09, 0x6d, 0x6f, 0x6c, 0xde, 0x9c, 0xb7, 0xc6, - 0x53, 0xd4, 0x30, 0x5b, 0x7a, 0xac, 0x86, 0xc6, 0x43, 0xb8, 0x21, 0x13, 0x3b, 0x8e, 0x2c, 0x16, - 0x51, 0x4e, 0x04, 0xcb, 0x92, 0xb1, 0x84, 0x19, 0xd7, 0x26, 0xf1, 0xe1, 0x41, 0xf4, 0x44, 0x83, - 0x49, 0x56, 0xae, 0x43, 0x0b, 0xa7, 0x79, 0x6e, 0x48, 0xc4, 0x84, 0x53, 0x2c, 0x08, 0x4d, 0xb3, - 0x29, 0x95, 0x13, 0x99, 0xf1, 0x01, 0xb4, 0x09, 0x52, 0x44, 0x1d, 0xf9, 0x01, 0x1a, 0x3a, 0x11, - 0x93, 0x04, 0x57, 0x70, 0x61, 0x23, 0xc1, 0x0e, 0xa2, 0x8f, 0x35, 0x62, 0x3c, 0x82, 0xdb, 0xf9, - 0x19, 0xaf, 0x99, 0x54, 0xc5, 0x99, 0xef, 0x65, 0x33, 0x67, 0xed, 0x7a, 0x00, 0x46, 0xb6, 0x40, - 0x6a, 0x5c, 0x0d, 0x8d, 0xbb, 0x9a, 0x4e, 0x4b, 0x2d, 0x9c, 0xf9, 0x1e, 0xd1, 0x0e, 0x4d, 0xbf, - 0x57, 0x9f, 0xfd, 0x5e, 0xe2, 0xf2, 0xe4, 0x7b, 0xf7, 0x60, 0x91, 0x1e, 0x47, 0x1e, 0xa7, 0x8e, - 0x35, 0xa6, 0x9e, 0x3b, 0x16, 0x58, 0x94, 0x4a, 0x66, 0x4b, 0x4b, 0x3f, 0x45, 0x61, 0xef, 0xa7, - 0x0b, 0xd0, 0x96, 0xce, 0xff, 0x61, 0xe4, 0x33, 0xe2, 0x28, 0x6f, 0x7e, 0xdb, 0xa8, 0x79, 0x08, - 0x37, 0x74, 0xab, 0xb0, 0xb0, 0x57, 0x58, 0x23, 0x12, 0x78, 0xfe, 0x89, 0xe5, 0x39, 0x18, 0x41, - 0x2d, 0xb3, 0xad, 0xe1, 0x3d, 0x89, 0x7e, 0x82, 0xe0, 0xbe, 0x33, 0x1b, 0x6c, 0xc5, 0x4b, 0x08, - 0xb6, 0xd2, 0x1b, 0x06, 0x5b, 0xef, 0x6f, 0x0b, 0xaa, 0x74, 0x99, 0x34, 0x9e, 0x04, 0x64, 0xe8, - 0xd3, 0xcb, 0xe0, 0xe3, 0x6d, 0xc8, 0xa2, 0xeb, 0x50, 0x61, 0xa3, 0x51, 0x4c, 0x55, 0xe3, 0x2c, - 0x99, 0x7a, 0x24, 0xe5, 0x3e, 0x0d, 0x5d, 0x31, 0xc6, 0xfc, 0x28, 0x99, 0x7a, 0x64, 0xdc, 0x86, - 0xba, 0xcd, 0x82, 0xc8, 0xa7, 0x82, 0x3a, 0x98, 0x0e, 0x35, 0x33, 0x13, 0x9c, 0xe5, 0xe1, 0xea, - 0xe9, 0x1e, 0xee, 0xfd, 0xbd, 0x08, 0xd7, 0x5f, 0x2f, 0x52, 0xef, 0x32, 0xad, 0x03, 0x58, 0x89, - 0xa9, 0xcd, 0x42, 0x87, 0xf0, 0x93, 0x24, 0x27, 0xa9, 0x8c, 0xbb, 0xa2, 0xac, 0x1f, 0x29, 0xb4, - 0x95, 0x20, 0xc6, 0x87, 0xd0, 0xce, 0x26, 0xa4, 0xf9, 0x1f, 0x77, 0xca, 0x6b, 0xc5, 0x8d, 0xa6, - 0x99, 0x2d, 0x96, 0x56, 0x00, 0x74, 0x5d, 0x4c, 0x89, 0x9f, 0xfa, 0x41, 0x8f, 0xa4, 0x13, 0x5c, - 0x9f, 0x0d, 0x89, 0x6f, 0x4d, 0xfb, 0x22, 0x73, 0x82, 0x82, 0xbf, 0xc8, 0xb9, 0x62, 0xdf, 0x99, - 0x36, 0x39, 0xa9, 0x78, 0xf2, 0x60, 0x33, 0x6d, 0x72, 0x52, 0xf1, 0xe4, 0x1e, 0xdb, 0x21, 0x13, - 0x16, 0x39, 0x22, 0x9e, 0x2f, 0x53, 0x42, 0xd6, 0x21, 0xcf, 0x39, 0xc6, 0xd2, 0x53, 0x36, 0xaf, - 0x86, 0x4c, 0x6c, 0x25, 0xd0, 0x41, 0xb4, 0xef, 0x1c, 0xf7, 0xbe, 0xd1, 0xb5, 0xc4, 0xa4, 0x36, - 0x3b, 0xa2, 0xfc, 0x9d, 0x77, 0xf2, 0x2a, 0x34, 0x62, 0xea, 0x06, 0x34, 0x14, 0xb8, 0xef, 0x12, - 0x92, 0x0b, 0x5a, 0xb4, 0xef, 0x1c, 0x1b, 0xd7, 0xa0, 0x42, 0x6d, 0xc4, 0xd4, 0xa9, 0xb3, 0x4c, - 0x6d, 0x29, 0xbe, 0x03, 0x10, 0xc9, 0xbd, 0x5b, 0xb1, 0xf7, 0x82, 0xa2, 0xf3, 0x4a, 0x66, 0x1d, - 0x25, 0x07, 0xde, 0x0b, 0x2a, 0x53, 0x2c, 0x6b, 0x00, 0x55, 0x6c, 0x00, 0x99, 0x40, 0xa2, 0x5c, - 0xf1, 0x47, 0x1d, 0x6c, 0x0f, 0x35, 0x33, 0x13, 0xf4, 0x7e, 0x56, 0x4a, 0x29, 0xa6, 0xde, 0x11, - 0xfd, 0xef, 0xa7, 0xf8, 0x1e, 0x2c, 0x72, 0xea, 0x4c, 0x42, 0x87, 0x84, 0xf6, 0x49, 0x8e, 0xea, - 0x56, 0x26, 0x9d, 0x4f, 0x79, 0x31, 0x4f, 0xf9, 0x3d, 0x58, 0x54, 0xb0, 0x3d, 0xa6, 0xf6, 0x61, - 0x3c, 0x09, 0x34, 0xef, 0x2d, 0x94, 0xee, 0x68, 0xe1, 0xb4, 0x67, 0x6a, 0xb3, 0x9e, 0xc9, 0xf2, - 0xb1, 0x3e, 0x95, 0x8f, 0x37, 0xa1, 0x36, 0xf2, 0x42, 0x2f, 0x1e, 0x53, 0x07, 0x7b, 0x6c, 0xcd, - 0x4c, 0xc7, 0x67, 0xe5, 0x6a, 0xe3, 0x8c, 0x5c, 0xfd, 0x7f, 0x58, 0xd6, 0x87, 0x5d, 0x75, 0x74, - 0xf5, 0x58, 0xd8, 0x69, 0xe2, 0xd2, 0x4b, 0x4a, 0xfe, 0x38, 0x11, 0xf7, 0x7e, 0x59, 0x04, 0x43, - 0x3a, 0xf6, 0x80, 0x12, 0xff, 0xdd, 0x6f, 0x57, 0xff, 0x8e, 0xba, 0x7a, 0x86, 0x4f, 0x2a, 0x6f, - 0x5e, 0x3f, 0xab, 0xa7, 0xd5, 0xcf, 0xde, 0x1f, 0x16, 0x54, 0xd7, 0xdb, 0x65, 0xcf, 0xc3, 0xb7, - 0xe0, 0x30, 0xf1, 0x08, 0x1a, 0xf9, 0x0b, 0xd4, 0x19, 0xc7, 0xac, 0xec, 0x9e, 0x64, 0xc2, 0x30, - 0xbb, 0x00, 0x5e, 0xfc, 0x98, 0x65, 0x2c, 0x43, 0xd1, 0x67, 0xcf, 0x31, 0x85, 0x8b, 0xa6, 0xfc, - 0x53, 0x5e, 0xa2, 0xc7, 0x9e, 0x3b, 0xd6, 0x29, 0x8b, 0x7f, 0xf7, 0x7e, 0x5f, 0x84, 0x6b, 0x79, - 0xe2, 0xfe, 0xb3, 0x55, 0xee, 0x6d, 0xe0, 0xed, 0x2e, 0x34, 0x69, 0x88, 0x3d, 0x18, 0x0b, 0x18, - 0x12, 0x58, 0x33, 0x1b, 0x4a, 0x86, 0xe5, 0x4b, 0x56, 0x40, 0xc1, 0x04, 0xf1, 0xa7, 0x9a, 0x0e, - 0x4a, 0xb0, 0x02, 0xde, 0x02, 0x55, 0x0e, 0xad, 0x43, 0x7a, 0xa2, 0x2f, 0x2b, 0x35, 0x14, 0x7c, - 0x9f, 0xe2, 0x63, 0x87, 0x02, 0xf5, 0x51, 0xb1, 0x86, 0xb3, 0x1b, 0x28, 0x7b, 0xa2, 0xce, 0x8b, - 0xa9, 0x8a, 0x3e, 0x35, 0xd6, 0x73, 0x2a, 0x3f, 0x40, 0x51, 0xef, 0x2b, 0x7d, 0xca, 0xdb, 0x19, - 0x13, 0x5f, 0x6a, 0xd1, 0xff, 0xf9, 0x6d, 0xa6, 0xbd, 0x95, 0xcf, 0xd1, 0xde, 0x2a, 0xf3, 0xda, - 0xdb, 0x3d, 0x58, 0xf4, 0x42, 0x41, 0x5d, 0xee, 0x89, 0x13, 0x6b, 0x4c, 0xe2, 0x71, 0xd2, 0xbf, - 0x52, 0xe9, 0xa7, 0x24, 0x1e, 0x67, 0x5d, 0x10, 0x55, 0x6a, 0x58, 0x02, 0x95, 0xdb, 0x11, 0xbe, - 0x0f, 0x4b, 0x0a, 0x76, 0x88, 0x20, 0x2a, 0x4e, 0xea, 0x98, 0x76, 0xaa, 0x0d, 0xee, 0x12, 0x41, - 0x64, 0xac, 0xf4, 0x7e, 0xb5, 0x00, 0xcb, 0xd2, 0x1b, 0x7b, 0x3b, 0x17, 0x2b, 0x59, 0xef, 0x83, - 0x11, 0x0b, 0xc2, 0x85, 0x35, 0xf4, 0x99, 0x7d, 0x68, 0x85, 0x93, 0x60, 0x48, 0x39, 0x7a, 0xb2, - 0x64, 0x2e, 0x23, 0xb2, 0x2d, 0x81, 0xcf, 0x50, 0x6e, 0x6c, 0xc0, 0x32, 0x0d, 0x9d, 0x69, 0xdd, - 0x22, 0xea, 0x2e, 0xd2, 0xd0, 0xc9, 0x6b, 0x7e, 0x00, 0x6d, 0x7b, 0xc2, 0xb9, 0x64, 0x75, 0x4a, - 0x5b, 0xdd, 0x70, 0x0c, 0x8d, 0xe5, 0x67, 0x7c, 0x04, 0xd7, 0x7d, 0x12, 0x0b, 0xcb, 0xa1, 0x78, - 0x8f, 0x49, 0x1f, 0x68, 0x1c, 0x7d, 0xfb, 0x59, 0x91, 0xe8, 0xae, 0x02, 0x75, 0x38, 0x39, 0x46, - 0x07, 0xaa, 0x7c, 0x12, 0x86, 0x5e, 0xe8, 0xea, 0x03, 0x78, 0x32, 0xec, 0xfd, 0xa6, 0xa0, 0x0a, - 0xd4, 0xde, 0xce, 0x97, 0x2c, 0x18, 0x7a, 0x17, 0x0b, 0xf4, 0x5b, 0x50, 0xcf, 0xcc, 0x51, 0xe4, - 0xd4, 0x58, 0x62, 0xc3, 0x5d, 0x68, 0x2a, 0x9b, 0x2d, 0x9b, 0x4d, 0xf4, 0x0b, 0x50, 0xc9, 0x6c, - 0x28, 0xd9, 0x8e, 0x14, 0xe5, 0xcd, 0x2c, 0x4d, 0x9b, 0xf9, 0xeb, 0x02, 0x2c, 0x2a, 0x33, 0x1f, - 0x53, 0x41, 0xbe, 0xad, 0x7d, 0xab, 0xd0, 0x48, 0xd8, 0x96, 0xf1, 0xa9, 0x2c, 0x04, 0x2d, 0x92, - 0xc1, 0x79, 0x21, 0x1b, 0x7f, 0x51, 0x52, 0xc7, 0x17, 0xfd, 0x62, 0xb7, 0xf7, 0xc5, 0xde, 0x05, - 0x78, 0x4c, 0xf2, 0x3d, 0xe5, 0x51, 0x67, 0xb3, 0x63, 0xec, 0x42, 0x35, 0xe6, 0xb6, 0xe5, 0x1e, - 0xb9, 0xba, 0x10, 0x7c, 0x37, 0x9f, 0xc4, 0xf9, 0x07, 0xee, 0xfe, 0xde, 0x6b, 0xcd, 0xdf, 0xac, - 0xc4, 0xdc, 0xde, 0x3b, 0x72, 0x8d, 0x4f, 0xa0, 0xe6, 0xd0, 0x58, 0xe0, 0x32, 0xa5, 0x37, 0x5f, - 0xa6, 0x2a, 0x27, 0xcb, 0x75, 0xce, 0x79, 0xa8, 0x7d, 0x08, 0xf2, 0xc3, 0x56, 0x1c, 0x61, 0xfc, - 0xcd, 0x16, 0xaf, 0xa8, 0x7f, 0xa0, 0x6b, 0x0d, 0x67, 0x47, 0x9e, 0x43, 0xb9, 0x59, 0x8e, 0xb9, - 0x7d, 0x10, 0xc9, 0xf3, 0x0d, 0x06, 0xbb, 0x7e, 0xf5, 0xcc, 0x47, 0x7b, 0x15, 0x69, 0x69, 0x4b, - 0x58, 0x13, 0x9e, 0x85, 0x7b, 0xfe, 0x18, 0x5b, 0x9b, 0x39, 0xc6, 0xae, 0x42, 0x43, 0x3d, 0x1b, - 0xa9, 0x07, 0x7a, 0x55, 0x35, 0x40, 0x89, 0xf0, 0x81, 0x7e, 0xea, 0xe4, 0x0c, 0xb3, 0x27, 0xe7, - 0x7e, 0xfa, 0x86, 0xeb, 0x58, 0xc3, 0x13, 0x41, 0x63, 0x55, 0x7c, 0x1a, 0x68, 0x4d, 0xf2, 0x3a, - 0xeb, 0x6c, 0x4b, 0x04, 0x0b, 0xd0, 0x3f, 0xf4, 0x45, 0x52, 0xdb, 0xf8, 0xce, 0xdf, 0x72, 0xee, - 0xc3, 0x92, 0x72, 0x64, 0xf6, 0xd2, 0xa8, 0x9e, 0x30, 0x5b, 0xe8, 0xb1, 0xf4, 0x91, 0xf1, 0xb2, - 0xda, 0xc5, 0x77, 0xe0, 0xaa, 0x17, 0x5b, 0x53, 0x37, 0x08, 0x75, 0xd3, 0xac, 0x99, 0x4b, 0x5e, - 0xbc, 0x9d, 0xbb, 0x41, 0xd0, 0xde, 0xef, 0x16, 0xe0, 0x86, 0xa4, 0x6c, 0x7b, 0xfa, 0x5e, 0x81, - 0x5b, 0x9f, 0x4a, 0xa9, 0xc2, 0x4c, 0x4a, 0xe5, 0xe3, 0x65, 0x61, 0x26, 0x5e, 0x4e, 0x71, 0x78, - 0xf1, 0x14, 0x87, 0x1b, 0xdf, 0x03, 0xcc, 0x0d, 0x19, 0xea, 0xa5, 0x73, 0x85, 0x7a, 0x45, 0xaa, - 0x63, 0xac, 0x27, 0x29, 0x52, 0x7e, 0x93, 0x14, 0x99, 0x89, 0xe7, 0xca, 0xd9, 0xf1, 0x3c, 0x7b, - 0x47, 0xef, 0xfd, 0x65, 0x01, 0x56, 0x32, 0xce, 0x3e, 0x9f, 0x30, 0x41, 0xfe, 0x35, 0x5f, 0x6d, - 0x28, 0x07, 0x2c, 0x14, 0x63, 0x24, 0xab, 0x6e, 0xaa, 0x81, 0xb4, 0x44, 0x4f, 0x09, 0x89, 0xfe, - 0xe9, 0xab, 0x9e, 0x9c, 0x42, 0x3e, 0x23, 0x01, 0x95, 0x4d, 0x94, 0x53, 0xe2, 0x58, 0x36, 0x0b, - 0xe3, 0x49, 0x80, 0x8f, 0xc7, 0x2f, 0xa8, 0x6e, 0x75, 0xcb, 0x12, 0xd9, 0xd1, 0x80, 0x26, 0xb2, - 0x33, 0xe2, 0x94, 0x5a, 0x3f, 0x91, 0x36, 0xcd, 0xcc, 0x51, 0xad, 0xee, 0x9a, 0xc4, 0xd1, 0xe4, - 0xa9, 0x89, 0xf7, 0x61, 0x29, 0x37, 0x31, 0x77, 0x86, 0x6c, 0xa5, 0xfa, 0xa8, 0xf7, 0x3e, 0x18, - 0xf6, 0x98, 0x70, 0x97, 0x3a, 0x79, 0x55, 0x55, 0x57, 0x96, 0x35, 0x92, 0x69, 0xaf, 0x43, 0x8b, - 0xf8, 0x3e, 0x7b, 0x9e, 0x06, 0xa1, 0x2a, 0x2c, 0x4d, 0x14, 0x26, 0x3f, 0xd2, 0xfc, 0xe8, 0xcf, - 0x2f, 0xbb, 0x85, 0xaf, 0x5f, 0x76, 0x0b, 0xdf, 0xbc, 0xec, 0x16, 0x7e, 0xfe, 0xaa, 0x7b, 0xe5, - 0xeb, 0x57, 0xdd, 0x2b, 0x7f, 0x7d, 0xd5, 0xbd, 0xf2, 0xe5, 0xae, 0xeb, 0x89, 0xf1, 0x64, 0xd8, - 0xb7, 0x59, 0x30, 0x18, 0x86, 0xc3, 0x07, 0xf6, 0x98, 0x78, 0xe1, 0x20, 0xf3, 0xf0, 0x03, 0x9d, - 0x66, 0x0f, 0x22, 0xed, 0xdf, 0xc1, 0x9c, 0x9f, 0x61, 0x87, 0x15, 0xfc, 0xb1, 0xf2, 0xa3, 0x7f, - 0x06, 0x00, 0x00, 0xff, 0xff, 0x75, 0x1c, 0x79, 0x80, 0xa4, 0x1d, 0x00, 0x00, + // 2181 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xbb, 0x6f, 0x1b, 0xc9, + 0x19, 0x37, 0x1f, 0xe2, 0xe3, 0x23, 0x29, 0xd3, 0x6b, 0xda, 0xa6, 0x5f, 0xb4, 0xbc, 0x8a, 0x7d, + 0x8a, 0xef, 0x4c, 0xde, 0xe9, 0x60, 0xa4, 0x34, 0x24, 0x4a, 0xe2, 0x09, 0x8e, 0x6c, 0xdd, 0x52, + 0x3e, 0x20, 0x57, 0x64, 0x31, 0xdc, 0x1d, 0x2e, 0x37, 0xda, 0x57, 0x66, 0x97, 0xb2, 0xe8, 0x3a, + 0x5d, 0x8a, 0x04, 0x01, 0x82, 0x00, 0x29, 0x52, 0xa7, 0x0d, 0x10, 0xa4, 0x4b, 0x15, 0xe0, 0x10, + 0x20, 0xcd, 0x95, 0x01, 0xd2, 0x1c, 0xec, 0x34, 0xf9, 0x2f, 0x82, 0xf9, 0x66, 0x96, 0xbb, 0xa4, + 0x29, 0xc5, 0xaf, 0x24, 0xf6, 0xe1, 0x1a, 0x5b, 0xf3, 0xfd, 0xbe, 0x99, 0xfd, 0xe6, 0xf7, 0xbd, + 0x66, 0x86, 0xd0, 0x1a, 0x90, 0x90, 0x76, 0xa2, 0x49, 0x40, 0xc3, 0x8e, 0x35, 0x0c, 0x83, 0x88, + 0x84, 0x87, 0x1d, 0xfe, 0x4f, 0x3b, 0x60, 0x7e, 0xe4, 0x2b, 0xe7, 0x39, 0xde, 0x46, 0xbc, 0x1d, + 0xe3, 0x57, 0x6e, 0xce, 0x4d, 0xa2, 0x8c, 0xf9, 0x2c, 0xec, 0xe0, 0x7f, 0x62, 0xde, 0x95, 0xcb, + 0x16, 0xa3, 0xd4, 0x1b, 0xda, 0xd4, 0x31, 0x3b, 0x61, 0x20, 0x74, 0x25, 0x74, 0x23, 0x0d, 0x45, + 0x3e, 0x23, 0x16, 0xed, 0x04, 0x84, 0x11, 0x37, 0x56, 0xb8, 0xba, 0x40, 0x21, 0x3a, 0x96, 0x60, + 0x6b, 0x11, 0x98, 0x5a, 0x7d, 0x35, 0x85, 0x1f, 0xd9, 0x2c, 0x1a, 0x13, 0xc7, 0x62, 0xfe, 0x78, + 0xc6, 0x04, 0xf5, 0x2f, 0x59, 0x28, 0xf5, 0x86, 0xfd, 0xe0, 0x80, 0x84, 0x87, 0x4a, 0x13, 0x8a, + 0xc4, 0x34, 0x19, 0x0d, 0xc3, 0x66, 0x66, 0x25, 0xb3, 0x56, 0xd6, 0xe2, 0xa1, 0x72, 0x03, 0x2a, + 0x06, 0xa3, 0x24, 0xa2, 0x7a, 0x64, 0xbb, 0xb4, 0x99, 0x5d, 0xc9, 0xac, 0xe5, 0x34, 0x10, 0xa2, + 0x03, 0xdb, 0xa5, 0x5c, 0x61, 0x1c, 0x98, 0x53, 0x85, 0x9c, 0x50, 0x10, 0x22, 0x54, 0x68, 0x42, + 0x91, 0x23, 0xfe, 0x38, 0x6a, 0xe6, 0x11, 0x8c, 0x87, 0xca, 0x2a, 0xd4, 0x38, 0x97, 0x7a, 0xc0, + 0x6c, 0x9f, 0xd9, 0xd1, 0xa4, 0xb9, 0xb4, 0x92, 0x59, 0x5b, 0xd2, 0xaa, 0x5c, 0xb8, 0x2f, 0x65, + 0x4a, 0x03, 0x96, 0x18, 0x8d, 0xd8, 0xa4, 0x59, 0xc0, 0xc9, 0x62, 0xa0, 0x5c, 0x85, 0xb2, 0x4b, + 0x8e, 0x75, 0x81, 0x14, 0x11, 0x29, 0xb9, 0xe4, 0x58, 0x43, 0xf0, 0x26, 0x54, 0xc7, 0x21, 0x65, + 0x7a, 0xbc, 0xa5, 0x12, 0x6e, 0xa9, 0xc2, 0x65, 0x1b, 0x72, 0x5b, 0x0a, 0xe4, 0x1d, 0xdf, 0x0a, + 0x9b, 0x65, 0x84, 0xf0, 0x6f, 0x65, 0x1d, 0x72, 0x94, 0xb1, 0x26, 0xac, 0x64, 0xd6, 0x2a, 0xeb, + 0x2b, 0xed, 0x39, 0xaf, 0x0b, 0x07, 0xb7, 0x39, 0x65, 0xdb, 0xfc, 0x4f, 0x8d, 0x2b, 0xab, 0x5f, + 0x65, 0xe0, 0x1a, 0x17, 0x75, 0x91, 0x90, 0xcd, 0xb1, 0x71, 0x48, 0xa3, 0x8d, 0x20, 0x60, 0xfe, + 0x11, 0x71, 0x90, 0xd9, 0x4f, 0x20, 0xcf, 0xb7, 0x83, 0xb4, 0x56, 0xd6, 0xaf, 0xb7, 0x17, 0xc4, + 0x52, 0x3b, 0x76, 0x83, 0x86, 0xaa, 0xca, 0xe7, 0xa0, 0x48, 0xca, 0x07, 0xb8, 0x9e, 0x6e, 0x7b, + 0x43, 0x1f, 0x99, 0xaf, 0xac, 0xaf, 0xb6, 0x13, 0xdf, 0xb6, 0xa5, 0xef, 0xdb, 0x7b, 0xa1, 0x95, + 0xfe, 0xbe, 0x56, 0x37, 0x52, 0xa3, 0x5d, 0x6f, 0xe8, 0x2b, 0x2b, 0x50, 0x19, 0xda, 0x9e, 0x45, + 0x59, 0xc0, 0x6c, 0x2f, 0x42, 0x27, 0x55, 0xb5, 0xb4, 0x48, 0xfd, 0x7d, 0x06, 0xae, 0x73, 0x3b, + 0xf6, 0x6c, 0x8b, 0xbd, 0xb5, 0x9d, 0x1c, 0xc0, 0x79, 0x57, 0xac, 0xb7, 0x60, 0x2b, 0xdf, 0x3b, + 0x61, 0x2b, 0x33, 0x16, 0x68, 0xe7, 0xdc, 0xf4, 0x90, 0x6f, 0x66, 0x8e, 0xf3, 0x47, 0x83, 0x9f, + 0x50, 0xe3, 0x2d, 0x72, 0xee, 0xe3, 0x7a, 0x2f, 0xcf, 0xb9, 0xf8, 0x7e, 0xcc, 0xb9, 0x18, 0xbd, + 0x24, 0xe7, 0x7f, 0xce, 0x43, 0x8b, 0xdb, 0xa1, 0xd1, 0xc0, 0xb1, 0x0d, 0x12, 0xd1, 0x7d, 0x9b, + 0x1a, 0xf4, 0x4d, 0xb7, 0x72, 0x1f, 0x2a, 0x2f, 0xee, 0xa1, 0xb5, 0x68, 0x0f, 0x89, 0xb1, 0x1a, + 0xf8, 0x89, 0xe1, 0x1b, 0xb0, 0x2c, 0x35, 0x74, 0x51, 0x93, 0xd0, 0xf6, 0xca, 0xfa, 0x95, 0x45, + 0x6b, 0xec, 0xa3, 0x86, 0x56, 0x93, 0x63, 0x31, 0x54, 0xee, 0xc1, 0x25, 0x9e, 0xd8, 0x61, 0xa0, + 0xfb, 0x01, 0x65, 0x24, 0xf2, 0x93, 0x64, 0xcc, 0x63, 0xc6, 0x35, 0x48, 0x78, 0xd8, 0x0f, 0x1e, + 0x49, 0x30, 0xce, 0xca, 0x55, 0xa8, 0xe1, 0x34, 0xdb, 0xf2, 0x48, 0x34, 0x66, 0x14, 0x0b, 0x42, + 0x55, 0xab, 0x72, 0xe5, 0x58, 0xa6, 0x7c, 0x0c, 0x0d, 0x82, 0x14, 0x51, 0x93, 0x7f, 0x80, 0x7a, + 0x66, 0xe0, 0x73, 0x82, 0x0b, 0xb8, 0xb0, 0x12, 0x63, 0xfd, 0x60, 0x5b, 0x22, 0xca, 0x7d, 0xb8, + 0x96, 0x9e, 0xf1, 0x82, 0x49, 0x45, 0x9c, 0x79, 0x39, 0x99, 0x39, 0x6f, 0xd7, 0x5d, 0x50, 0x92, + 0x05, 0xa6, 0xc6, 0x95, 0xd0, 0xb8, 0x73, 0xd3, 0x69, 0x53, 0x0b, 0xe7, 0xbe, 0x47, 0xa4, 0x43, + 0xa7, 0xdf, 0x2b, 0xcf, 0x7f, 0x2f, 0x76, 0x79, 0xfc, 0xbd, 0x5b, 0xb0, 0x4c, 0x8f, 0x03, 0x9b, + 0x51, 0x53, 0x1f, 0x51, 0xdb, 0x1a, 0x45, 0x58, 0x94, 0xf2, 0x5a, 0x4d, 0x4a, 0x3f, 0x43, 0xa1, + 0xfa, 0xb3, 0x2c, 0x34, 0xb8, 0xf3, 0x1f, 0x07, 0x8e, 0x4f, 0x4c, 0xe1, 0xcd, 0xd7, 0x8d, 0x9a, + 0x7b, 0x70, 0x49, 0xb6, 0x0a, 0x1d, 0x7b, 0x85, 0x3e, 0x24, 0xae, 0xed, 0x4c, 0x74, 0xdb, 0xc4, + 0x08, 0xaa, 0x69, 0x0d, 0x09, 0xf7, 0x38, 0xba, 0x83, 0xe0, 0xae, 0x39, 0x1f, 0x6c, 0xb9, 0xb7, + 0x10, 0x6c, 0xf9, 0x57, 0x0c, 0x36, 0xf5, 0x1f, 0x59, 0x51, 0xba, 0x34, 0x1a, 0x8e, 0x5d, 0x32, + 0x70, 0xe8, 0xdb, 0xe0, 0xe3, 0x5d, 0xc8, 0xa2, 0x8b, 0x50, 0xf0, 0x87, 0xc3, 0x90, 0x8a, 0xc6, + 0x99, 0xd7, 0xe4, 0x88, 0xcb, 0x1d, 0xea, 0x59, 0xd1, 0x08, 0xf3, 0x23, 0xaf, 0xc9, 0x91, 0x72, + 0x0d, 0xca, 0x86, 0xef, 0x06, 0x0e, 0x8d, 0xa8, 0x89, 0xe9, 0x50, 0xd2, 0x12, 0xc1, 0x69, 0x1e, + 0x2e, 0x9e, 0xec, 0x61, 0xf5, 0x9f, 0x39, 0xb8, 0xf8, 0x62, 0x91, 0x7a, 0x9f, 0x69, 0xed, 0xc0, + 0xf9, 0x90, 0x1a, 0xbe, 0x67, 0x12, 0x36, 0x89, 0x73, 0x92, 0xf2, 0xb8, 0xcb, 0xf1, 0xfa, 0x31, + 0x85, 0x36, 0x62, 0x44, 0xf9, 0x04, 0x1a, 0xc9, 0x84, 0x69, 0xfe, 0x87, 0xcd, 0xa5, 0x95, 0xdc, + 0x5a, 0x55, 0x4b, 0x16, 0x9b, 0x56, 0x00, 0x74, 0x5d, 0x48, 0x89, 0x33, 0xf5, 0x83, 0x1c, 0x71, + 0x27, 0x58, 0x8e, 0x3f, 0x20, 0x8e, 0x3e, 0xeb, 0x8b, 0xc4, 0x09, 0x02, 0xfe, 0x22, 0xe5, 0x8a, + 0x5d, 0x73, 0xd6, 0xe4, 0xb8, 0xe2, 0xf1, 0x83, 0xcd, 0xac, 0xc9, 0x71, 0xc5, 0xe3, 0x7b, 0x6c, + 0x78, 0x7e, 0xa4, 0x93, 0x23, 0x62, 0x3b, 0x3c, 0x25, 0x78, 0x1d, 0xb2, 0xcd, 0x63, 0x2c, 0x3d, + 0x4b, 0xda, 0x39, 0xcf, 0x8f, 0x36, 0x62, 0xa8, 0x1f, 0xec, 0x9a, 0xc7, 0xea, 0x37, 0xb2, 0x96, + 0x68, 0xd4, 0xf0, 0x8f, 0x28, 0x7b, 0xef, 0x9d, 0x7c, 0x03, 0x2a, 0x21, 0xb5, 0x5c, 0xea, 0x45, + 0xb8, 0xef, 0x3c, 0x92, 0x0b, 0x52, 0xb4, 0x6b, 0x1e, 0x2b, 0x17, 0xa0, 0x40, 0x0d, 0xc4, 0xc4, + 0xa9, 0x73, 0x89, 0x1a, 0x5c, 0x7c, 0x1d, 0x20, 0xe0, 0x7b, 0xd7, 0x43, 0xfb, 0x29, 0x45, 0xe7, + 0xe5, 0xb5, 0x32, 0x4a, 0xfa, 0xf6, 0x53, 0xca, 0x53, 0x2c, 0x69, 0x00, 0x45, 0x6c, 0x00, 0x89, + 0x80, 0xa3, 0x4c, 0xf0, 0x47, 0x4d, 0x6c, 0x0f, 0x25, 0x2d, 0x11, 0xa8, 0xbf, 0xc8, 0x4f, 0x29, + 0xa6, 0xf6, 0x11, 0xfd, 0xf6, 0x53, 0x7c, 0x0b, 0x96, 0x19, 0x35, 0xc7, 0x9e, 0x49, 0x3c, 0x63, + 0x92, 0xa2, 0xba, 0x96, 0x48, 0x17, 0x53, 0x9e, 0x4b, 0x53, 0x7e, 0x0b, 0x96, 0x05, 0x6c, 0x8c, + 0xa8, 0x71, 0x18, 0x8e, 0x5d, 0xc9, 0x7b, 0x0d, 0xa5, 0x5d, 0x29, 0x9c, 0xf5, 0x4c, 0x69, 0xde, + 0x33, 0x49, 0x3e, 0x96, 0x67, 0xf2, 0xf1, 0x0a, 0x94, 0x86, 0xb6, 0x67, 0x87, 0x23, 0x6a, 0x62, + 0x8f, 0x2d, 0x69, 0xd3, 0xf1, 0x69, 0xb9, 0x5a, 0x39, 0x25, 0x57, 0xbf, 0x0f, 0x75, 0x79, 0xd8, + 0x15, 0x47, 0x57, 0xdb, 0xf7, 0x9a, 0x55, 0x5c, 0xfa, 0xac, 0x90, 0xef, 0xc5, 0x62, 0xf5, 0x37, + 0x39, 0x50, 0xb8, 0x63, 0xfb, 0x94, 0x38, 0xef, 0x7f, 0xbb, 0xfa, 0x5f, 0xd4, 0xd5, 0x53, 0x7c, + 0x52, 0x78, 0xf5, 0xfa, 0x59, 0x3c, 0xa9, 0x7e, 0xaa, 0x7f, 0xca, 0x8a, 0xae, 0xb7, 0xe5, 0x3f, + 0xf1, 0xde, 0x81, 0xc3, 0xc4, 0x7d, 0xa8, 0xa4, 0x2f, 0x50, 0xa7, 0x1c, 0xb3, 0x92, 0x7b, 0x92, + 0x06, 0x83, 0xe4, 0x02, 0xf8, 0xe6, 0xc7, 0x2c, 0xa5, 0x0e, 0x39, 0xc7, 0x7f, 0x82, 0x29, 0x9c, + 0xd3, 0xf8, 0x9f, 0xfc, 0x12, 0x3d, 0xb2, 0xad, 0x91, 0x4c, 0x59, 0xfc, 0x5b, 0xfd, 0x63, 0x0e, + 0x2e, 0xa4, 0x89, 0xfb, 0xff, 0x56, 0xb9, 0x77, 0x81, 0xb7, 0x9b, 0x50, 0xa5, 0x1e, 0xf6, 0x60, + 0x2c, 0x60, 0x48, 0x60, 0x49, 0xab, 0x08, 0x19, 0x96, 0x2f, 0x5e, 0x01, 0x23, 0x3f, 0x22, 0xce, + 0x4c, 0xd3, 0x41, 0x09, 0x56, 0xc0, 0xab, 0x20, 0xca, 0xa1, 0x7e, 0x48, 0x27, 0xf2, 0xb2, 0x52, + 0x42, 0xc1, 0x03, 0x8a, 0x8f, 0x1d, 0x02, 0x94, 0x47, 0xc5, 0x12, 0xce, 0xae, 0xa0, 0xec, 0x91, + 0x38, 0x2f, 0x4e, 0x55, 0xe4, 0xa9, 0xb1, 0x9c, 0x52, 0xf9, 0x21, 0x8a, 0xd4, 0xaf, 0xe4, 0x29, + 0xaf, 0x3b, 0x22, 0x0e, 0xd7, 0xa2, 0xdf, 0xf9, 0x6d, 0xae, 0xbd, 0x2d, 0xbd, 0x44, 0x7b, 0x2b, + 0x2c, 0x6a, 0x6f, 0xb7, 0x60, 0xd9, 0xf6, 0x22, 0x6a, 0x31, 0x3b, 0x9a, 0xe8, 0x23, 0x12, 0x8e, + 0xe2, 0xfe, 0x35, 0x95, 0x7e, 0x46, 0xc2, 0x51, 0xd2, 0x05, 0x51, 0xa5, 0x84, 0x25, 0x50, 0xb8, + 0x1d, 0xe1, 0xdb, 0x70, 0x56, 0xc0, 0x26, 0x89, 0x88, 0x88, 0x93, 0x32, 0xa6, 0x9d, 0x68, 0x83, + 0x5b, 0x24, 0x22, 0x3c, 0x56, 0xd4, 0xdf, 0x65, 0xa1, 0xce, 0xbd, 0xd1, 0xeb, 0xbe, 0x59, 0xc9, + 0xfa, 0x08, 0x94, 0x30, 0x22, 0x2c, 0xd2, 0x07, 0x8e, 0x6f, 0x1c, 0xea, 0xde, 0xd8, 0x1d, 0x50, + 0x86, 0x9e, 0xcc, 0x6b, 0x75, 0x44, 0x36, 0x39, 0xf0, 0x10, 0xe5, 0xca, 0x1a, 0xd4, 0xa9, 0x67, + 0xce, 0xea, 0xe6, 0x50, 0x77, 0x99, 0x7a, 0x66, 0x5a, 0xf3, 0x63, 0x68, 0x18, 0x63, 0xc6, 0x38, + 0xab, 0x33, 0xda, 0xe2, 0x86, 0xa3, 0x48, 0x2c, 0x3d, 0xe3, 0x53, 0xb8, 0xe8, 0x90, 0x30, 0xd2, + 0x4d, 0x8a, 0xf7, 0x98, 0xe9, 0x03, 0x8d, 0x29, 0x6f, 0x3f, 0xe7, 0x39, 0xba, 0x25, 0x40, 0x19, + 0x4e, 0xa6, 0xd2, 0x84, 0x22, 0x1b, 0x7b, 0x9e, 0xed, 0x59, 0xf2, 0x00, 0x1e, 0x0f, 0xd5, 0x9f, + 0xcb, 0x02, 0xd5, 0xeb, 0x7e, 0xe9, 0xbb, 0x03, 0xfb, 0xcd, 0x02, 0xfd, 0xdb, 0xca, 0x12, 0x0f, + 0x37, 0xb1, 0xb1, 0x64, 0x9d, 0xa2, 0x78, 0x82, 0x40, 0xf1, 0x74, 0x05, 0x15, 0x6a, 0x7c, 0x4b, + 0x89, 0x96, 0x2c, 0x3f, 0xd4, 0x4b, 0xbe, 0x92, 0x3e, 0x63, 0x95, 0x67, 0xcf, 0x58, 0xea, 0xaf, + 0xb3, 0xb0, 0x2c, 0xbc, 0xb1, 0x47, 0x23, 0xf2, 0xba, 0x6e, 0xb8, 0x01, 0x95, 0x98, 0x2e, 0x9e, + 0x86, 0x82, 0x7f, 0x90, 0x22, 0x9e, 0x83, 0x37, 0xa1, 0x2a, 0x88, 0xd1, 0x0d, 0x7f, 0x2c, 0x1f, + 0xe3, 0xf2, 0x5a, 0x45, 0xc8, 0xba, 0x5c, 0x94, 0xe6, 0x22, 0x3f, 0xcb, 0xc5, 0x2a, 0xd4, 0x50, + 0xd1, 0xf6, 0x3d, 0xf1, 0xc6, 0x2d, 0x5a, 0x60, 0x35, 0x16, 0xe2, 0x2b, 0xf7, 0x1e, 0x2c, 0xbb, + 0x34, 0x22, 0x3a, 0x3e, 0x68, 0x73, 0x6b, 0x91, 0xd1, 0xe5, 0xf5, 0x0f, 0x4e, 0xb4, 0x3f, 0xd9, + 0xf2, 0xc1, 0x24, 0xa0, 0x5a, 0xd5, 0x4d, 0x8d, 0xd4, 0x5f, 0xe5, 0xc5, 0xc9, 0x50, 0x3e, 0x86, + 0xf6, 0xbe, 0xe8, 0xbd, 0x2e, 0x37, 0x57, 0xa1, 0x1c, 0x97, 0x52, 0x53, 0x32, 0x53, 0x92, 0x85, + 0xd2, 0x54, 0xb6, 0xa0, 0x18, 0x32, 0x43, 0xb7, 0x8e, 0x2c, 0x59, 0x63, 0x3f, 0x4c, 0xd7, 0xc7, + 0xf4, 0x6f, 0x07, 0xed, 0xde, 0x0b, 0xe7, 0x2a, 0xad, 0x10, 0x32, 0xa3, 0x77, 0x64, 0x29, 0x3b, + 0x50, 0x32, 0x69, 0x18, 0xe1, 0x32, 0xf9, 0x57, 0x5f, 0xa6, 0xc8, 0x27, 0xf3, 0x75, 0x5e, 0xf2, + 0xbe, 0x70, 0x0f, 0xf8, 0x87, 0xf5, 0x30, 0x40, 0x8a, 0xe7, 0xfb, 0x42, 0xd0, 0xee, 0xcb, 0x32, + 0xce, 0xfc, 0x23, 0xdb, 0xa4, 0x4c, 0x5b, 0x0a, 0x99, 0xd1, 0x0f, 0xf8, 0xd1, 0x11, 0x33, 0x44, + 0x3e, 0x28, 0x9b, 0x2f, 0x84, 0x76, 0x83, 0xc3, 0x92, 0xf0, 0xc5, 0xd1, 0x5b, 0x9a, 0xbb, 0x21, + 0xdc, 0x80, 0x8a, 0x78, 0x91, 0x13, 0x71, 0x21, 0x0a, 0x32, 0x08, 0x11, 0x46, 0xc5, 0xcc, 0xa5, + 0x04, 0xe6, 0x2f, 0x25, 0xed, 0xe9, 0xf3, 0xb8, 0xa9, 0x0f, 0x26, 0x11, 0x0d, 0x45, 0x5d, 0xaf, + 0xa0, 0x35, 0xf1, 0xc3, 0xb7, 0xb9, 0xc9, 0x11, 0xac, 0xed, 0xff, 0x92, 0x77, 0x74, 0x69, 0xe3, + 0x7b, 0x7f, 0x81, 0xe4, 0x45, 0x06, 0x1d, 0x99, 0x3c, 0xe2, 0x8a, 0xd7, 0xe1, 0x1a, 0x7a, 0x6c, + 0xfa, 0x7e, 0xfb, 0xb6, 0x3a, 0xf1, 0x1d, 0x38, 0x67, 0x87, 0xfa, 0xcc, 0xe5, 0x4c, 0x5c, 0xe2, + 0x4b, 0xda, 0x59, 0x3b, 0xdc, 0x4c, 0x5d, 0xce, 0xa8, 0x7a, 0x08, 0x97, 0x45, 0x92, 0x6e, 0xce, + 0xde, 0xd9, 0xfe, 0x1b, 0x69, 0xa8, 0xfe, 0x21, 0x0b, 0x97, 0xb8, 0xfe, 0xdc, 0xb7, 0x90, 0xe7, + 0x99, 0x89, 0x99, 0xb9, 0xfc, 0x4d, 0x07, 0x67, 0x76, 0x2e, 0x38, 0x4f, 0x88, 0xae, 0xdc, 0x09, + 0xd1, 0xa5, 0xfc, 0x00, 0x30, 0x11, 0x79, 0x5e, 0xe5, 0x5f, 0x2a, 0xaf, 0x0a, 0x5c, 0x1d, 0x13, + 0x2b, 0xce, 0xc7, 0xa5, 0x57, 0xc9, 0xc7, 0xb9, 0xe4, 0x29, 0x9c, 0x9e, 0x3c, 0xf3, 0x6f, 0x2d, + 0xea, 0xdf, 0xb2, 0x70, 0x3e, 0xe1, 0xec, 0xf3, 0xb1, 0x1f, 0x91, 0xff, 0xcc, 0x57, 0x03, 0x96, + 0x5c, 0xdf, 0x8b, 0x46, 0x48, 0x56, 0x59, 0x13, 0x03, 0x6e, 0x89, 0x9c, 0xe2, 0x11, 0xf9, 0x13, + 0x66, 0x39, 0x3e, 0x4d, 0x3e, 0x24, 0x2e, 0xe5, 0x6d, 0x9e, 0x51, 0x62, 0xea, 0x86, 0xef, 0x85, + 0x63, 0x17, 0x7f, 0x04, 0x78, 0x4a, 0x65, 0x33, 0xae, 0x73, 0xa4, 0x2b, 0x01, 0x49, 0x64, 0x73, + 0xc8, 0x28, 0xd5, 0x7f, 0xca, 0x6d, 0x9a, 0x9b, 0x23, 0x9a, 0xf1, 0x05, 0x8e, 0xa3, 0xc9, 0x33, + 0x13, 0x6f, 0xc3, 0xd9, 0xd4, 0xc4, 0xd4, 0x5d, 0xa0, 0x36, 0xd5, 0x47, 0xbd, 0x8f, 0x40, 0x31, + 0x46, 0x84, 0x59, 0xd4, 0x4c, 0xab, 0x8a, 0x22, 0x56, 0x97, 0x48, 0xa2, 0xbd, 0x0a, 0x35, 0xe2, + 0x38, 0xfe, 0x93, 0x69, 0xc4, 0x8b, 0x2a, 0x56, 0x45, 0xa1, 0x0c, 0xf7, 0x3b, 0xbf, 0xcd, 0x88, + 0x7e, 0x33, 0xdb, 0x94, 0x94, 0x0f, 0x60, 0xb5, 0xb7, 0xa3, 0xf7, 0xf7, 0xf5, 0x5e, 0x57, 0xdf, + 0xdb, 0x3e, 0xd8, 0xd0, 0x0f, 0x36, 0xfa, 0x0f, 0xf4, 0x83, 0x1f, 0xed, 0x6f, 0xeb, 0x8f, 0x1f, + 0xf6, 0xf7, 0xb7, 0xbb, 0xbb, 0x3b, 0xbb, 0xdb, 0x5b, 0xf5, 0x33, 0xca, 0x1d, 0xb8, 0x7d, 0x92, + 0xe2, 0xe6, 0xe3, 0xee, 0x83, 0xed, 0x03, 0xfd, 0x40, 0xdb, 0xd8, 0xd9, 0xd9, 0xed, 0xd6, 0x33, + 0x4a, 0x07, 0x3e, 0x3c, 0x49, 0x57, 0x2a, 0xe9, 0xda, 0xf6, 0xc6, 0x96, 0xae, 0x6d, 0x77, 0x1f, + 0x69, 0x5b, 0xf5, 0xec, 0xe6, 0x8f, 0xff, 0xfa, 0xac, 0x95, 0xf9, 0xfa, 0x59, 0x2b, 0xf3, 0xcd, + 0xb3, 0x56, 0xe6, 0x97, 0xcf, 0x5b, 0x67, 0xbe, 0x7e, 0xde, 0x3a, 0xf3, 0xf7, 0xe7, 0xad, 0x33, + 0x5f, 0x6e, 0x59, 0x76, 0x34, 0x1a, 0x0f, 0xda, 0x86, 0xef, 0x76, 0x06, 0xde, 0xe0, 0xae, 0x31, + 0x22, 0xb6, 0xd7, 0x49, 0xc2, 0xef, 0xae, 0x2c, 0x38, 0x77, 0x03, 0x19, 0x7c, 0x9d, 0x05, 0xbf, + 0xf5, 0x0f, 0x0a, 0xf8, 0x8b, 0xf8, 0xa7, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x9e, 0x2f, 0xb4, + 0x71, 0x09, 0x20, 0x00, 0x00, } func (m *GfSpTask) Marshal() (dAtA []byte, err error) { @@ -3390,6 +3540,26 @@ func (m *GfSpGCZombiePieceTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Finished { + i-- + if m.Finished { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x48 + } + if m.EndObjectId != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.EndObjectId)) + i-- + dAtA[i] = 0x40 + } + if m.StartObjectId != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.StartObjectId)) + i-- + dAtA[i] = 0x38 + } if m.Running { i-- if m.Running { @@ -3398,15 +3568,25 @@ func (m *GfSpGCZombiePieceTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- + dAtA[i] = 0x30 + } + if m.LastDeletedObjectId != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.LastDeletedObjectId)) + i-- + dAtA[i] = 0x28 + } + if m.CurrentBlockNumber != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.CurrentBlockNumber)) + i-- dAtA[i] = 0x20 } - if m.DeleteCount != 0 { - i = encodeVarintTask(dAtA, i, uint64(m.DeleteCount)) + if m.EndBlockNumber != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.EndBlockNumber)) i-- dAtA[i] = 0x18 } - if m.ObjectId != 0 { - i = encodeVarintTask(dAtA, i, uint64(m.ObjectId)) + if m.StartBlockNumber != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.StartBlockNumber)) i-- dAtA[i] = 0x10 } @@ -3445,6 +3625,16 @@ func (m *GfSpGCMetaTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.MetaTaskType != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.MetaTaskType)) + i-- + dAtA[i] = 0x30 + } + if m.DeletionTime != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.DeletionTime)) + i-- + dAtA[i] = 0x28 + } if m.Running { i-- if m.Running { @@ -3679,6 +3869,46 @@ func (m *GfSpMigratePieceTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *GfSpGCBucketMigrationTask) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GfSpGCBucketMigrationTask) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GfSpGCBucketMigrationTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.BucketId != 0 { + i = encodeVarintTask(dAtA, i, uint64(m.BucketId)) + i-- + dAtA[i] = 0x10 + } + if m.Task != nil { + { + size, err := m.Task.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTask(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *GfSpBucketMigrationInfo) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4379,15 +4609,30 @@ func (m *GfSpGCZombiePieceTask) Size() (n int) { l = m.Task.Size() n += 1 + l + sovTask(uint64(l)) } - if m.ObjectId != 0 { - n += 1 + sovTask(uint64(m.ObjectId)) + if m.StartBlockNumber != 0 { + n += 1 + sovTask(uint64(m.StartBlockNumber)) } - if m.DeleteCount != 0 { - n += 1 + sovTask(uint64(m.DeleteCount)) + if m.EndBlockNumber != 0 { + n += 1 + sovTask(uint64(m.EndBlockNumber)) + } + if m.CurrentBlockNumber != 0 { + n += 1 + sovTask(uint64(m.CurrentBlockNumber)) + } + if m.LastDeletedObjectId != 0 { + n += 1 + sovTask(uint64(m.LastDeletedObjectId)) } if m.Running { n += 2 } + if m.StartObjectId != 0 { + n += 1 + sovTask(uint64(m.StartObjectId)) + } + if m.EndObjectId != 0 { + n += 1 + sovTask(uint64(m.EndObjectId)) + } + if m.Finished { + n += 2 + } return n } @@ -4410,6 +4655,12 @@ func (m *GfSpGCMetaTask) Size() (n int) { if m.Running { n += 2 } + if m.DeletionTime != 0 { + n += 1 + sovTask(uint64(m.DeletionTime)) + } + if m.MetaTaskType != 0 { + n += 1 + sovTask(uint64(m.MetaTaskType)) + } return n } @@ -4494,6 +4745,22 @@ func (m *GfSpMigratePieceTask) Size() (n int) { return n } +func (m *GfSpGCBucketMigrationTask) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Task != nil { + l = m.Task.Size() + n += 1 + l + sovTask(uint64(l)) + } + if m.BucketId != 0 { + n += 1 + sovTask(uint64(m.BucketId)) + } + return n +} + func (m *GfSpBucketMigrationInfo) Size() (n int) { if m == nil { return 0 @@ -8400,9 +8667,9 @@ func (m *GfSpGCZombiePieceTask) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartBlockNumber", wireType) } - m.ObjectId = 0 + m.StartBlockNumber = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTask @@ -8412,16 +8679,16 @@ func (m *GfSpGCZombiePieceTask) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ObjectId |= uint64(b&0x7F) << shift + m.StartBlockNumber |= uint64(b&0x7F) << shift if b < 0x80 { break } } case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DeleteCount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndBlockNumber", wireType) } - m.DeleteCount = 0 + m.EndBlockNumber = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTask @@ -8431,12 +8698,50 @@ func (m *GfSpGCZombiePieceTask) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.DeleteCount |= uint64(b&0x7F) << shift + m.EndBlockNumber |= uint64(b&0x7F) << shift if b < 0x80 { break } } case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentBlockNumber", wireType) + } + m.CurrentBlockNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CurrentBlockNumber |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LastDeletedObjectId", wireType) + } + m.LastDeletedObjectId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LastDeletedObjectId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Running", wireType) } @@ -8456,6 +8761,64 @@ func (m *GfSpGCZombiePieceTask) Unmarshal(dAtA []byte) error { } } m.Running = bool(v != 0) + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartObjectId", wireType) + } + m.StartObjectId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartObjectId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EndObjectId", wireType) + } + m.EndObjectId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EndObjectId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Finished", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Finished = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTask(dAtA[iNdEx:]) @@ -8600,6 +8963,44 @@ func (m *GfSpGCMetaTask) Unmarshal(dAtA []byte) error { } } m.Running = bool(v != 0) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DeletionTime", wireType) + } + m.DeletionTime = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DeletionTime |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MetaTaskType", wireType) + } + m.MetaTaskType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MetaTaskType |= GfSpGCMetaTaskType(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipTask(dAtA[iNdEx:]) @@ -9212,6 +9613,111 @@ func (m *GfSpMigratePieceTask) Unmarshal(dAtA []byte) error { } return nil } +func (m *GfSpGCBucketMigrationTask) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GfSpGCBucketMigrationTask: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GfSpGCBucketMigrationTask: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Task", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTask + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTask + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Task == nil { + m.Task = &GfSpTask{} + } + if err := m.Task.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BucketId", wireType) + } + m.BucketId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTask + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BucketId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTask(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTask + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *GfSpBucketMigrationInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/base/types/gfsptask/task_key.go b/base/types/gfsptask/task_key.go index dba8ba693..261a3560b 100644 --- a/base/types/gfsptask/task_key.go +++ b/base/types/gfsptask/task_key.go @@ -26,6 +26,7 @@ const ( KeyPrefixGfSpGCObjectTask = "GCObject" KeyPrefixGfSpGCZombiePieceTask = "GCZombiePiece" KeyPrefixGfSpGfSpGCMetaTask = "GCMeta" + KeyPrefixGfSpGCBucketMigrationTask = "GCBucketMigration" KeyPrefixGfSpMigrateBucketTask = "MigrateBucket" KeyPrefixGfSpMigrateGVGTask = "MigrateGVG" KeyPrefixGfSpMigratePieceTask = "MigratePiece" @@ -115,6 +116,10 @@ func GfSpGfSpGCMetaTaskKey(time int64) task.TKey { return task.TKey(KeyPrefixGfSpGfSpGCMetaTask + CombineKey("time"+fmt.Sprint(time))) } +func GfSpGCBucketMigrationTaskKey(bucketID uint64) task.TKey { + return task.TKey(KeyPrefixGfSpGCBucketMigrationTask + CombineKey("bucketID"+fmt.Sprint(bucketID))) +} + func GfSpMigrateGVGTaskKey(oldGvgID uint32, bucketID uint64, redundancyIndex int32) task.TKey { return task.TKey(KeyPrefixGfSpMigrateGVGTask + CombineKey( "oldGvgID"+fmt.Sprint(oldGvgID), "bucketID"+fmt.Sprint(bucketID), "redundancyIndex"+fmt.Sprint(redundancyIndex))) diff --git a/core/module/modular.go b/core/module/modular.go index 506ef92d2..630272586 100644 --- a/core/module/modular.go +++ b/core/module/modular.go @@ -207,6 +207,8 @@ type Manager interface { HandleGCZombiePieceTask(ctx context.Context, task task.GCZombiePieceTask) error // HandleGCMetaTask handles GCMetaTask, the request comes from TaskExecutor. HandleGCMetaTask(ctx context.Context, task task.GCMetaTask) error + // HandleGCBucketMigrationTask handles GCMetaTask, the request comes from TaskExecutor. + HandleGCBucketMigrationTask(ctx context.Context, task task.GCBucketMigrationTask) error // HandleDownloadObjectTask handles DownloadObjectTask, the request comes from Downloader. HandleDownloadObjectTask(ctx context.Context, task task.DownloadObjectTask) error // HandleChallengePieceTask handles ChallengePieceTask, the request comes from Downloader. @@ -224,7 +226,7 @@ type Manager interface { // NotifyPreMigrateBucket is used to notify src sp pre migrate bucket. NotifyPreMigrateBucket(ctx context.Context, bucketID uint64) error // NotifyPostMigrateBucket is used to notify src sp post migrate bucket. - NotifyPostMigrateBucket(ctx context.Context, bucketID uint64) error + NotifyPostMigrateBucket(ctx context.Context, bmStatus *gfsptask.GfSpBucketMigrationInfo) error // ResetRecoveryFailedList reset failed list for recovery ResetRecoveryFailedList(ctx context.Context) []string } diff --git a/core/module/null_modular.go b/core/module/null_modular.go index 25f47ce2b..51283fd39 100644 --- a/core/module/null_modular.go +++ b/core/module/null_modular.go @@ -68,7 +68,7 @@ func (*NullModular) NotifyMigrateSwapOut(context.Context, *virtualgrouptypes.Msg func (*NullModular) NotifyPreMigrateBucket(context.Context, uint64) error { return ErrNilModular } -func (*NullModular) NotifyPostMigrateBucket(context.Context, uint64) error { +func (*NullModular) NotifyPostMigrateBucket(context.Context, *gfsptask.GfSpBucketMigrationInfo) error { return ErrNilModular } @@ -145,6 +145,9 @@ func (*NullModular) HandleGCObjectTask(context.Context, task.GCObjectTask) error func (*NullModular) HandleGCZombiePieceTask(context.Context, task.GCZombiePieceTask) error { return ErrNilModular } +func (*NullModular) HandleGCBucketMigrationTask(context.Context, task.GCBucketMigrationTask) error { + return ErrNilModular +} func (*NullModular) HandleGCMetaTask(context.Context, task.GCMetaTask) error { return ErrNilModular } func (*NullModular) HandleMigrateGVGTask(ctx context.Context, gvgTask task.MigrateGVGTask) error { return ErrNilModular diff --git a/core/spdb/entity.go b/core/spdb/entity.go index 7216b53de..2cd617da2 100644 --- a/core/spdb/entity.go +++ b/core/spdb/entity.go @@ -36,6 +36,14 @@ type GCObjectMeta struct { LastDeletedObjectID uint64 } +// GCPieceMeta defines the payload integrity hash and piece checksum with objectID. +type GCPieceMeta struct { + ObjectID uint64 + SegmentIndex uint32 + RedundancyIndex int32 + PieceChecksum string +} + // IntegrityMeta defines the payload integrity hash and piece checksum with objectID. type IntegrityMeta struct { ObjectID uint64 diff --git a/core/spdb/spdb.go b/core/spdb/spdb.go index 35e343ff4..636b6cc80 100644 --- a/core/spdb/spdb.go +++ b/core/spdb/spdb.go @@ -69,6 +69,8 @@ type SignatureDB interface { UpdateIntegrityChecksum(integrity *IntegrityMeta) error // UpdatePieceChecksum if the IntegrityMetaTable already exists, it will be appended to the existing PieceChecksumList. UpdatePieceChecksum(objectID uint64, redundancyIndex int32, checksum []byte) error + // ListObjectsByBlockNumberRange list object in range + ListObjectsByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) /* Piece Signature is used to help replicate object's piece data to secondary sps, which is temporary. */ @@ -78,10 +80,14 @@ type SignatureDB interface { GetAllReplicatePieceChecksum(objectID uint64, redundancyIdx int32, pieceCount uint32) ([][]byte, error) // GetAllReplicatePieceChecksumOptimized gets all piece hashes. GetAllReplicatePieceChecksumOptimized(objectID uint64, redundancyIdx int32, pieceCount uint32) ([][]byte, error) + // DeleteReplicatePieceChecksum deletes piece hashes. + DeleteReplicatePieceChecksum(objectID uint64, segmentIdx uint32, redundancyIdx int32) (err error) // DeleteAllReplicatePieceChecksum deletes all piece hashes. DeleteAllReplicatePieceChecksum(objectID uint64, redundancyIdx int32, pieceCount uint32) error // DeleteAllReplicatePieceChecksumOptimized deletes all piece hashes. DeleteAllReplicatePieceChecksumOptimized(objectID uint64, redundancyIdx int32) error + // ListReplicatePieceChecksumByBlockNumberRange list object in range + ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, objectID uint64, redundancyIdx int32, pieceCount uint32) ([]*GCPieceMeta, error) } // TrafficDB defines a series of traffic interfaces. @@ -109,6 +115,11 @@ type TrafficDB interface { GetObjectReadRecord(objectID uint64, timeRange *TrafficTimeRange) ([]*ReadRecord, error) // GetUserReadRecord return user record list by time range. GetUserReadRecord(userAddress string, timeRange *TrafficTimeRange) ([]*ReadRecord, error) + + // DeleteAllReadRecordExpired delete all read record before ts + DeleteAllReadRecordExpired(ts uint64) (err error) + // DeleteAllBucketTrafficExpired delete all bucket traffic before yearMonth + DeleteAllBucketTrafficExpired(yearMonth string) (err error) } // SPInfoDB defines a series of sp interfaces. diff --git a/core/spdb/spdb_mock.go b/core/spdb/spdb_mock.go index 3b312067a..8a35dd391 100644 --- a/core/spdb/spdb_mock.go +++ b/core/spdb/spdb_mock.go @@ -55,6 +55,34 @@ func (mr *MockSPDBMockRecorder) CheckQuotaAndAddReadRecord(record, quota any) *g return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckQuotaAndAddReadRecord", reflect.TypeOf((*MockSPDB)(nil).CheckQuotaAndAddReadRecord), record, quota) } +// DeleteAllBucketTrafficExpired mocks base method. +func (m *MockSPDB) DeleteAllBucketTrafficExpired(yearMonth string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAllBucketTrafficExpired", yearMonth) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAllBucketTrafficExpired indicates an expected call of DeleteAllBucketTrafficExpired. +func (mr *MockSPDBMockRecorder) DeleteAllBucketTrafficExpired(yearMonth interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllBucketTrafficExpired", reflect.TypeOf((*MockSPDB)(nil).DeleteAllBucketTrafficExpired), yearMonth) +} + +// DeleteAllReadRecordExpired mocks base method. +func (m *MockSPDB) DeleteAllReadRecordExpired(ts uint64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAllReadRecordExpired", ts) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAllReadRecordExpired indicates an expected call of DeleteAllReadRecordExpired. +func (mr *MockSPDBMockRecorder) DeleteAllReadRecordExpired(ts interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReadRecordExpired", reflect.TypeOf((*MockSPDB)(nil).DeleteAllReadRecordExpired), ts) +} + // DeleteAllReplicatePieceChecksum mocks base method. func (m *MockSPDB) DeleteAllReplicatePieceChecksum(objectID uint64, redundancyIdx int32, pieceCount uint32) error { m.ctrl.T.Helper() @@ -139,6 +167,20 @@ func (mr *MockSPDBMockRecorder) DeleteObjectIntegrity(objectID, redundancyIndex return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectIntegrity", reflect.TypeOf((*MockSPDB)(nil).DeleteObjectIntegrity), objectID, redundancyIndex) } +// DeleteReplicatePieceChecksum mocks base method. +func (m *MockSPDB) DeleteReplicatePieceChecksum(objectID uint64, segmentIdx uint32, redundancyIdx int32) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteReplicatePieceChecksum", objectID, segmentIdx, redundancyIdx) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteReplicatePieceChecksum indicates an expected call of DeleteReplicatePieceChecksum. +func (mr *MockSPDBMockRecorder) DeleteReplicatePieceChecksum(objectID, segmentIdx, redundancyIdx interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteReplicatePieceChecksum", reflect.TypeOf((*MockSPDB)(nil).DeleteReplicatePieceChecksum), objectID, segmentIdx, redundancyIdx) +} + // DeleteUploadProgress mocks base method. func (m *MockSPDB) DeleteUploadProgress(objectID uint64) error { m.ctrl.T.Helper() @@ -590,6 +632,36 @@ func (mr *MockSPDBMockRecorder) ListMigrateGVGUnitsByBucketID(bucketID any) *gom return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMigrateGVGUnitsByBucketID", reflect.TypeOf((*MockSPDB)(nil).ListMigrateGVGUnitsByBucketID), bucketID) } +// ListObjectsByBlockNumberRange mocks base method. +func (m *MockSPDB) ListObjectsByBlockNumberRange(startBlockNumber, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListObjectsByBlockNumberRange", startBlockNumber, endBlockNumber, includePrivate) + ret0, _ := ret[0].([]*IntegrityMeta) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListObjectsByBlockNumberRange indicates an expected call of ListObjectsByBlockNumberRange. +func (mr *MockSPDBMockRecorder) ListObjectsByBlockNumberRange(startBlockNumber, endBlockNumber, includePrivate interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBlockNumberRange", reflect.TypeOf((*MockSPDB)(nil).ListObjectsByBlockNumberRange), startBlockNumber, endBlockNumber, includePrivate) +} + +// ListReplicatePieceChecksumByBlockNumberRange mocks base method. +func (m *MockSPDB) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber, endBlockNumber int64, objectID uint64, redundancyIdx int32, pieceCount uint32) ([]*GCPieceMeta, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListReplicatePieceChecksumByBlockNumberRange", startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount) + ret0, _ := ret[0].([]*GCPieceMeta) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListReplicatePieceChecksumByBlockNumberRange indicates an expected call of ListReplicatePieceChecksumByBlockNumberRange. +func (mr *MockSPDBMockRecorder) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReplicatePieceChecksumByBlockNumberRange", reflect.TypeOf((*MockSPDB)(nil).ListReplicatePieceChecksumByBlockNumberRange), startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount) +} + // QueryBucketMigrateSubscribeProgress mocks base method. func (m *MockSPDB) QueryBucketMigrateSubscribeProgress() (uint64, error) { m.ctrl.T.Helper() @@ -1187,6 +1259,20 @@ func (mr *MockSignatureDBMockRecorder) DeleteObjectIntegrity(objectID, redundanc return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectIntegrity", reflect.TypeOf((*MockSignatureDB)(nil).DeleteObjectIntegrity), objectID, redundancyIndex) } +// DeleteReplicatePieceChecksum mocks base method. +func (m *MockSignatureDB) DeleteReplicatePieceChecksum(objectID uint64, segmentIdx uint32, redundancyIdx int32) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteReplicatePieceChecksum", objectID, segmentIdx, redundancyIdx) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteReplicatePieceChecksum indicates an expected call of DeleteReplicatePieceChecksum. +func (mr *MockSignatureDBMockRecorder) DeleteReplicatePieceChecksum(objectID, segmentIdx, redundancyIdx interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteReplicatePieceChecksum", reflect.TypeOf((*MockSignatureDB)(nil).DeleteReplicatePieceChecksum), objectID, segmentIdx, redundancyIdx) +} + // GetAllReplicatePieceChecksum mocks base method. func (m *MockSignatureDB) GetAllReplicatePieceChecksum(objectID uint64, redundancyIdx int32, pieceCount uint32) ([][]byte, error) { m.ctrl.T.Helper() @@ -1232,6 +1318,36 @@ func (mr *MockSignatureDBMockRecorder) GetObjectIntegrity(objectID, redundancyIn return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectIntegrity", reflect.TypeOf((*MockSignatureDB)(nil).GetObjectIntegrity), objectID, redundancyIndex) } +// ListObjectsByBlockNumberRange mocks base method. +func (m *MockSignatureDB) ListObjectsByBlockNumberRange(startBlockNumber, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListObjectsByBlockNumberRange", startBlockNumber, endBlockNumber, includePrivate) + ret0, _ := ret[0].([]*IntegrityMeta) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListObjectsByBlockNumberRange indicates an expected call of ListObjectsByBlockNumberRange. +func (mr *MockSignatureDBMockRecorder) ListObjectsByBlockNumberRange(startBlockNumber, endBlockNumber, includePrivate interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBlockNumberRange", reflect.TypeOf((*MockSignatureDB)(nil).ListObjectsByBlockNumberRange), startBlockNumber, endBlockNumber, includePrivate) +} + +// ListReplicatePieceChecksumByBlockNumberRange mocks base method. +func (m *MockSignatureDB) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber, endBlockNumber int64, objectID uint64, redundancyIdx int32, pieceCount uint32) ([]*GCPieceMeta, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListReplicatePieceChecksumByBlockNumberRange", startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount) + ret0, _ := ret[0].([]*GCPieceMeta) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListReplicatePieceChecksumByBlockNumberRange indicates an expected call of ListReplicatePieceChecksumByBlockNumberRange. +func (mr *MockSignatureDBMockRecorder) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReplicatePieceChecksumByBlockNumberRange", reflect.TypeOf((*MockSignatureDB)(nil).ListReplicatePieceChecksumByBlockNumberRange), startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount) +} + // SetObjectIntegrity mocks base method. func (m *MockSignatureDB) SetObjectIntegrity(integrity *IntegrityMeta) error { m.ctrl.T.Helper() @@ -1325,6 +1441,34 @@ func (mr *MockTrafficDBMockRecorder) CheckQuotaAndAddReadRecord(record, quota an return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckQuotaAndAddReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).CheckQuotaAndAddReadRecord), record, quota) } +// DeleteAllBucketTrafficExpired mocks base method. +func (m *MockTrafficDB) DeleteAllBucketTrafficExpired(yearMonth string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAllBucketTrafficExpired", yearMonth) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAllBucketTrafficExpired indicates an expected call of DeleteAllBucketTrafficExpired. +func (mr *MockTrafficDBMockRecorder) DeleteAllBucketTrafficExpired(yearMonth interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllBucketTrafficExpired", reflect.TypeOf((*MockTrafficDB)(nil).DeleteAllBucketTrafficExpired), yearMonth) +} + +// DeleteAllReadRecordExpired mocks base method. +func (m *MockTrafficDB) DeleteAllReadRecordExpired(ts uint64) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteAllReadRecordExpired", ts) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteAllReadRecordExpired indicates an expected call of DeleteAllReadRecordExpired. +func (mr *MockTrafficDBMockRecorder) DeleteAllReadRecordExpired(ts interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReadRecordExpired", reflect.TypeOf((*MockTrafficDB)(nil).DeleteAllReadRecordExpired), ts) +} + // GetBucketReadRecord mocks base method. func (m *MockTrafficDB) GetBucketReadRecord(bucketID uint64, timeRange *TrafficTimeRange) ([]*ReadRecord, error) { m.ctrl.T.Helper() diff --git a/core/task/const.go b/core/task/const.go index 383441695..4f039a13c 100644 --- a/core/task/const.go +++ b/core/task/const.go @@ -46,6 +46,8 @@ const ( TypeTaskGCZombiePiece // TypeTaskGCMeta defines the type of collecting SP metadata task. TypeTaskGCMeta + // TypeTaskGCBucketMigration defines the type of gc bucket migration task. + TypeTaskGCBucketMigration // TypeTaskRecoverPiece defines the type of the recovering piece task. TypeTaskRecoverPiece // TypeTaskMigrateGVG defines the type of migrating gvg task. @@ -67,6 +69,7 @@ var TypeTaskMap = map[TType]string{ TypeTaskGCObject: "GCObjectTask", TypeTaskGCZombiePiece: "GCZombiePieceTask", TypeTaskGCMeta: "GCMetaTask", + TypeTaskGCBucketMigration: "GCBucketMigrationTask", TypeTaskRecoverPiece: "RecoverPieceTask", TypeTaskMigrateGVG: "MigrateGVGTask", } diff --git a/core/task/null_task.go b/core/task/null_task.go index d54994f2e..d53c28c39 100644 --- a/core/task/null_task.go +++ b/core/task/null_task.go @@ -24,46 +24,45 @@ var _ GCZombiePieceTask = (*NullTask)(nil) var _ GCMetaTask = (*NullTask)(nil) var _ RecoveryPieceTask = (*NullTask)(nil) var _ MigrateGVGTask = (*NullTask)(nil) +var _ GCBucketMigrationTask = (*NullTask)(nil) type NullTask struct{} -func (*NullTask) Key() TKey { return "" } -func (*NullTask) Type() TType { return 0 } -func (*NullTask) Info() string { return "" } -func (*NullTask) GetAddress() string { return "" } -func (*NullTask) SetAddress(string) {} -func (*NullTask) GetCreateTime() int64 { return 0 } -func (*NullTask) SetCreateTime(int64) {} -func (*NullTask) GetUpdateTime() int64 { return 0 } -func (*NullTask) SetUpdateTime(int64) {} -func (*NullTask) GetTimeout() int64 { return 0 } -func (*NullTask) SetTimeout(int64) {} -func (*NullTask) Expired() bool { return false } -func (*NullTask) ExceedTimeout() bool { return false } -func (*NullTask) GetPriority() TPriority { return 0 } -func (*NullTask) SetPriority(TPriority) {} -func (*NullTask) SetRetry(int) {} -func (*NullTask) IncRetry() {} -func (*NullTask) ExceedRetry() bool { return false } -func (*NullTask) GetRetry() int64 { return 0 } -func (*NullTask) GetMaxRetry() int64 { return 0 } -func (*NullTask) SetMaxRetry(int64) {} -func (*NullTask) EstimateLimit() rcmgr.Limit { return nil } -func (*NullTask) Error() error { return nil } -func (NullTask) SetLogs(logs string) {} -func (NullTask) GetLogs() string { return "" } -func (NullTask) AppendLog(log string) {} -func (*NullTask) SetError(error) {} -func (*NullTask) GetExpiredHeight() uint64 { return 0 } -func (*NullTask) SetExpiredHeight(uint64) {} -func (*NullTask) GetObjectInfo() *storagetypes.ObjectInfo { return nil } -func (*NullTask) SetObjectInfo(*storagetypes.ObjectInfo) {} -func (*NullTask) GetStorageParams() *storagetypes.Params { return nil } -func (*NullTask) SetStorageParams(*storagetypes.Params) {} -func (*NullTask) GetGCZombiePieceStatus() (uint64, uint64) { return 0, 0 } -func (*NullTask) SetGCZombiePieceStatus(uint64, uint64) {} -func (*NullTask) GetGCMetaStatus() (uint64, uint64) { return 0, 0 } -func (*NullTask) SetGCMetaStatus(uint64, uint64) {} +func (*NullTask) Key() TKey { return "" } +func (*NullTask) Type() TType { return 0 } +func (*NullTask) Info() string { return "" } +func (*NullTask) GetAddress() string { return "" } +func (*NullTask) SetAddress(string) {} +func (*NullTask) GetCreateTime() int64 { return 0 } +func (*NullTask) SetCreateTime(int64) {} +func (*NullTask) GetUpdateTime() int64 { return 0 } +func (*NullTask) SetUpdateTime(int64) {} +func (*NullTask) GetTimeout() int64 { return 0 } +func (*NullTask) SetTimeout(int64) {} +func (*NullTask) Expired() bool { return false } +func (*NullTask) ExceedTimeout() bool { return false } +func (*NullTask) GetPriority() TPriority { return 0 } +func (*NullTask) SetPriority(TPriority) {} +func (*NullTask) SetRetry(int) {} +func (*NullTask) IncRetry() {} +func (*NullTask) ExceedRetry() bool { return false } +func (*NullTask) GetRetry() int64 { return 0 } +func (*NullTask) GetMaxRetry() int64 { return 0 } +func (*NullTask) SetMaxRetry(int64) {} +func (*NullTask) EstimateLimit() rcmgr.Limit { return nil } +func (*NullTask) Error() error { return nil } +func (NullTask) SetLogs(logs string) {} +func (NullTask) GetLogs() string { return "" } +func (NullTask) AppendLog(log string) {} +func (*NullTask) SetError(error) {} +func (*NullTask) GetExpiredHeight() uint64 { return 0 } +func (*NullTask) SetExpiredHeight(uint64) {} +func (*NullTask) GetObjectInfo() *storagetypes.ObjectInfo { return nil } +func (*NullTask) SetObjectInfo(*storagetypes.ObjectInfo) {} +func (*NullTask) GetStorageParams() *storagetypes.Params { return nil } +func (*NullTask) SetStorageParams(*storagetypes.Params) {} +func (*NullTask) GetGCMetaStatus() (uint64, uint64) { return 0, 0 } +func (*NullTask) SetGCMetaStatus(uint64, uint64) {} func (*NullTask) InitApprovalCreateBucketTask(string, *storagetypes.MsgCreateBucket, []byte, TPriority) { } func (*NullTask) GetCreateBucketInfo() *storagetypes.MsgCreateBucket { return nil } @@ -164,3 +163,22 @@ func (*NullTask) GetFinished() bool { return fal func (*NullTask) SetFinished(bool) {} func (*NullTask) GetNotAvailableSpIdx() int32 { return 0 } func (*NullTask) SetNotAvailableSpIdx(i int32) {} + +func (t *NullTask) InitGCBucketMigrationTask(priority TPriority, bucketID uint64, timeout, retry int64) { +} + +func (*NullTask) GetCurrentBlockNumber() uint64 { return 0 } +func (*NullTask) SetStartBlockNumber(uint64) {} +func (*NullTask) GetStartBlockNumber() uint64 { return 0 } +func (*NullTask) SetEndBlockNumber(uint64) {} +func (*NullTask) GetEndBlockNumber() uint64 { return 0 } +func (*NullTask) SetCurrentBlockNumber(uint64) {} +func (*NullTask) GetLastDeletedObjectId() uint64 { return 0 } +func (*NullTask) SetLastDeletedObjectId(uint64) {} +func (*NullTask) GetGCObjectProgress() (uint64, uint64) { return 0, 0 } +func (*NullTask) SetGCObjectProgress(uint64, uint64) {} +func (*NullTask) InitGCZombiePieceTask(priority TPriority, start, end uint64, timeout int64) {} +func (*NullTask) SetStartObjectID(uint64) {} +func (*NullTask) GetStartObjectId() uint64 { return 0 } +func (*NullTask) SetEndObjectID(uint64) {} +func (*NullTask) GetEndObjectId() uint64 { return 0 } diff --git a/core/task/null_task_test.go b/core/task/null_task_test.go index e8613aac8..98534b0e1 100644 --- a/core/task/null_task_test.go +++ b/core/task/null_task_test.go @@ -37,8 +37,6 @@ func TestNullTask(t *testing.T) { n.SetObjectInfo(nil) n.GetStorageParams() n.SetStorageParams(nil) - n.GetGCZombiePieceStatus() - n.SetGCZombiePieceStatus(0, 0) n.GetGCMetaStatus() n.SetGCMetaStatus(0, 0) n.InitApprovalCreateBucketTask("", nil, nil, 0) diff --git a/core/task/task.go b/core/task/task.go index a2d9a18c2..b32ef4425 100644 --- a/core/task/task.go +++ b/core/task/task.go @@ -496,10 +496,43 @@ type GCZombiePieceTask interface { GCTask // GetGCZombiePieceStatus returns the status of collecting zombie pieces, returns // the last deleted object id and the number that has been deleted. - GetGCZombiePieceStatus() (uint64, uint64) + //GetGCZombiePieceStatus() (uint64, uint64) // SetGCZombiePieceStatus sets the status of collecting zombie pieces, param // stands the last deleted object id and the has been deleted pieces number. - SetGCZombiePieceStatus(uint64, uint64) + //SetGCZombiePieceStatus(uint64, uint64) + + // InitGCZombiePieceTask inits InitGCObjectTask. + InitGCZombiePieceTask(priority TPriority, start, end uint64, timeout int64) + // SetStartBlockNumber sets start block number for collecting object. + SetStartBlockNumber(uint64) + // GetStartBlockNumber returns start block number for collecting object. + GetStartBlockNumber() uint64 + // SetEndBlockNumber sets end block number for collecting object. + SetEndBlockNumber(uint64) + // GetEndBlockNumber returns end block number for collecting object. + GetEndBlockNumber() uint64 + // SetCurrentBlockNumber sets the collecting block number. + SetCurrentBlockNumber(uint64) + // GetCurrentBlockNumber returns the collecting block number. + GetCurrentBlockNumber() uint64 + // GetLastDeletedObjectId returns the last deleted ObjectID. + GetLastDeletedObjectId() uint64 + // SetLastDeletedObjectId sets the last deleted ObjectID. + SetLastDeletedObjectId(uint64) + // GetGCObjectProgress returns the progress of collecting object, returns the + // deleting block number and the last deleted object id. + GetGCObjectProgress() (uint64, uint64) + // SetGCObjectProgress sets the progress of collecting object, params stand + // the deleting block number and the last deleted object id. + SetGCObjectProgress(uint64, uint64) + // SetStartObjectID sets start block number for collecting object. + SetStartObjectID(uint64) + // GetStartObjectId returns start block number for collecting object. + GetStartObjectId() uint64 + // SetEndObjectID sets start block number for collecting object. + SetEndObjectID(uint64) + // GetEndObjectId returns start block number for collecting object. + GetEndObjectId() uint64 } // GCMetaTask is an abstract interface to record the information for collecting the SP @@ -581,3 +614,14 @@ type MigrateGVGTask interface { // SetSignature sets the task signature. SetSignature([]byte) } + +// GCBucketMigrationTask is an abstract interface to gc useless object piece data and integrity meta +type GCBucketMigrationTask interface { + Task + // InitGCBucketMigrationTask inits migrate gvg task by bucket id, gvg. + InitGCBucketMigrationTask(priority TPriority, bucketID uint64, timeout, retry int64) + // GetBucketID returns the bucketID + GetBucketID() uint64 + // SetBucketID sets the bucketID + SetBucketID(uint64) +} diff --git a/modular/executor/execute_task.go b/modular/executor/execute_task.go index 5d395778a..1b5fe16e8 100644 --- a/modular/executor/execute_task.go +++ b/modular/executor/execute_task.go @@ -8,23 +8,27 @@ import ( "fmt" "io" "net/http" + "strconv" "sync/atomic" "time" - "github.com/prysmaticlabs/prysm/crypto/bls" - + "cosmossdk.io/math" "github.com/bnb-chain/greenfield-common/go/hash" "github.com/bnb-chain/greenfield-common/go/redundancy" "github.com/bnb-chain/greenfield-storage-provider/base/types/gfsperrors" "github.com/bnb-chain/greenfield-storage-provider/core/module" "github.com/bnb-chain/greenfield-storage-provider/core/spdb" + corespdb "github.com/bnb-chain/greenfield-storage-provider/core/spdb" coretask "github.com/bnb-chain/greenfield-storage-provider/core/task" "github.com/bnb-chain/greenfield-storage-provider/modular/manager" metadatatypes "github.com/bnb-chain/greenfield-storage-provider/modular/metadata/types" "github.com/bnb-chain/greenfield-storage-provider/pkg/log" "github.com/bnb-chain/greenfield-storage-provider/pkg/metrics" + "github.com/bnb-chain/greenfield-storage-provider/store/bsdb" "github.com/bnb-chain/greenfield-storage-provider/util" storagetypes "github.com/bnb-chain/greenfield/x/storage/types" + "github.com/forbole/juno/v4/common" + "github.com/prysmaticlabs/prysm/crypto/bls" ) var ( @@ -348,11 +352,161 @@ func (e *ExecuteModular) HandleGCObjectTask(ctx context.Context, task coretask.G } func (e *ExecuteModular) HandleGCZombiePieceTask(ctx context.Context, task coretask.GCZombiePieceTask) { - log.CtxWarn(ctx, "gc zombie piece future support") + var ( + err error + waitingVerifyGCIntegrityObjects []*corespdb.IntegrityMeta + responseEndBlockID uint64 + gcObjectNumber int + tryAgainLater bool + taskIsCanceled bool + hasNoObject bool + isSucceed bool + ) + + reportProgress := func() bool { + reportErr := e.ReportTask(ctx, task) + log.CtxDebugw(ctx, "gc zombie piece task report progress", "task_info", task.Info(), "error", reportErr) + return errors.Is(reportErr, manager.ErrCanceledTask) + } + + defer func() { + if err == nil && (isSucceed || hasNoObject) { // succeed + reportProgress() + } else { // failed + task.SetError(err) + reportProgress() + } + log.CtxDebugw(ctx, "gc zombie piece task", "task_info", task.Info(), "is_succeed", isSucceed, + "response_end_block_id", responseEndBlockID, "waiting_gc_object_number", len(waitingVerifyGCIntegrityObjects), + "has_gc_object_number", gcObjectNumber, "try_again_later", tryAgainLater, + "task_is_canceled", taskIsCanceled, "has_no_object", hasNoObject, "error", err) + }() + + // verify zombie piece from IntegrityMetaTable + if e.gcZombiePieceFromIntegrityMeta(ctx, task) != nil { + return + } + + // verify and delete zombie piece via piece hash + if e.gcZombiePieceFromPieceHash(ctx, task) != nil { + return + } + isSucceed = true } func (e *ExecuteModular) HandleGCMetaTask(ctx context.Context, task coretask.GCMetaTask) { - log.CtxWarn(ctx, "gc meta future support") + var ( + err error + ) + reportProgress := func() bool { + reportErr := e.ReportTask(ctx, task) + log.CtxDebugw(ctx, "gc zombie piece task report progress", "task_info", task.Info(), "error", reportErr) + return errors.Is(reportErr, manager.ErrCanceledTask) + } + + defer func() { + if err == nil { // succeed + reportProgress() + } else { // failed + task.SetError(err) + reportProgress() + } + log.CtxDebugw(ctx, "gc meta task", "task_info", task.Info(), "error", err) + }() + + go e.gcMetaBucketTraffic(ctx, task) + go e.gcMetaReadRecord(ctx, task) + log.CtxInfow(ctx, "succeed to run gc meta", "task", task) +} + +func (e *ExecuteModular) gcMetaBucketTraffic(ctx context.Context, task coretask.GCMetaTask) error { + // TODO list buckets when large dataset + now := time.Now() + daysAgo := now.Add(-time.Duration(e.bucketTrafficKeepLatestDays*24) * time.Hour) + + err := e.baseApp.GfSpDB().DeleteAllBucketTrafficExpired(daysAgo.String()) + if err != nil { + return err + } + + return nil +} + +func (e *ExecuteModular) gcMetaReadRecord(ctx context.Context, task coretask.GCMetaTask) error { + now := time.Now() + daysAgo := now.Add(-time.Duration(e.readRecordKeepLatestDays*24) * time.Hour) + + err := e.baseApp.GfSpDB().DeleteAllReadRecordExpired(uint64(daysAgo.Unix())) + if err != nil { + return err + } + return nil +} + +func (e *ExecuteModular) HandleGCBucketMigrationBucket(ctx context.Context, task coretask.GCBucketMigrationTask) { + // TODO gc progress persist in db + var ( + groups []*bsdb.GlobalVirtualGroup + err error + startAfter uint64 = 0 + limit uint32 + objects []*metadatatypes.ObjectDetails + ) + bucketID := task.GetBucketID() + + reportProgress := func() bool { + reportErr := e.ReportTask(ctx, task) + log.CtxDebugw(ctx, "gc object task report progress", "task_info", task.Info(), "error", reportErr) + return errors.Is(reportErr, manager.ErrCanceledTask) + } + defer func() { + if err == nil { // succeed + reportProgress() + } else { // failed + task.SetError(err) + reportProgress() + } + log.CtxDebugw(ctx, "succeed to report gc bucket migration task", "task_info", task.Info(), "bucket_id", bucketID, "error", err) + }() + + // list gvg + groups, err = e.baseApp.GfBsDB().ListGvgByBucketID(common.BigToHash(math.NewUint(bucketID).BigInt())) + if err != nil { + log.CtxErrorw(ctx, "failed to list global virtual group by bucket id", "error", err) + return + } + + // current chain's gvg info compare metadata info + bucketInfo, err := e.baseApp.Consensus().QueryBucketInfoById(ctx, bucketID) + if err != nil || bucketInfo == nil { + log.Errorw("failed to get bucket by bucket name", "error", err) + return + } + vgfID := bucketInfo.GetGlobalVirtualGroupFamilyId() + log.CtxInfow(ctx, "begin to gc bucket migration by bucket id", "bucket_id", bucketID, "gvgs", groups, "vgfID", vgfID, "error", err) + + for _, gvg := range groups { + if gvg.FamilyId != vgfID { + log.CtxErrorw(ctx, "failed to check gvg's status with chain's status, the gvg may be old data", "error", err) + err = errors.New("gvg family id mismatch") + return + } + objects, err = e.baseApp.GfSpClient().ListObjectsByGVGAndBucketForGC(ctx, gvg.GlobalVirtualGroupId, bucketID, startAfter, limit) + if err != nil { + log.CtxErrorw(ctx, "failed to list objects by gvg and bucket for gc", "error", err) + return + } + // can delete, verify + for _, obj := range objects { + objectInfo := obj.GetObject().GetObjectInfo() + if e.verifyObjectLocationInfo(ctx, objectInfo) == ErrInvalidIntegrity { + e.deleteObjectPieces(ctx, objectInfo) + log.CtxInfow(ctx, "succeed to delete objects by gvg and bucket for gc", "object", objectInfo, "error", err) + } + } + + } + } // HandleRecoverPieceTask handle the recovery piece task, it will send request to other SPs to get piece data to recovery, @@ -728,3 +882,225 @@ func (e *ExecuteModular) getBucketPrimarySPEndpoint(ctx context.Context, bucketN } return "", ErrPrimaryNotFound } + +func (e *ExecuteModular) gcZombiePieceFromIntegrityMeta(ctx context.Context, task coretask.GCZombiePieceTask) error { + var ( + err error + waitingVerifyGCIntegrityObjects []*corespdb.IntegrityMeta + ) + + if waitingVerifyGCIntegrityObjects, err = e.baseApp.GfSpDB().ListObjectsByBlockNumberRange(int64(task.GetStartObjectId()), int64(task.GetEndObjectId()), true); err != nil { + log.CtxErrorw(ctx, "failed to query deleted object list", "task_info", task.Info(), "error", err) + return errors.New("xx") + } + + if len(waitingVerifyGCIntegrityObjects) == 0 { + log.Error("no waiting gc objects") + return nil + } + + for _, integrityObject := range waitingVerifyGCIntegrityObjects { + // error + objID := integrityObject.ObjectID + // object info + gcObjectInfo, err := e.baseApp.GfSpClient().GetObjectByID(ctx, objID) + if err != nil { + log.Errorf("failed to get object meta", "error", err) + // could delete, has integrity hash, do not have object info + // chain check verify check chain + objectInfo, err := e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)) + if err != nil { + // gvg primary sp should has integrity meta + // TODO: refine + if e.verifyObjectLocationInfo(ctx, objectInfo) == ErrInvalidIntegrity { + e.deleteObjectPiecesAndIntegrityMeta(ctx, objectInfo) + } + continue + } + + // delete + e.deleteObjectPiecesAndIntegrityMeta(ctx, objectInfo) + return errors.New("xx") + } else { + // check integrity meta & chain info + if e.verifyObjectLocationInfo(ctx, gcObjectInfo) == ErrInvalidIntegrity { + e.deleteObjectPiecesAndIntegrityMeta(ctx, gcObjectInfo) + } + } + } + return nil +} + +func (e *ExecuteModular) gcZombiePieceFromPieceHash(ctx context.Context, task coretask.GCZombiePieceTask) error { + var ( + err error + waitingVerifyGCPieces []*spdb.GCPieceMeta + ) + + if waitingVerifyGCPieces, err = e.baseApp.GfSpDB().ListReplicatePieceChecksumByBlockNumberRange(int64(task.GetStartObjectId()), int64(task.GetEndObjectId()), 0, 0, 0); err != nil { + log.CtxErrorw(ctx, "failed to query replicate piece checksum", "task_info", task.Info(), "error", err) + return errors.New("failed to query replicate piece checksum") + } + + if len(waitingVerifyGCPieces) == 0 { + log.Error("no waiting gc pieces") + return nil + } + + for _, piece := range waitingVerifyGCPieces { + // error + // migrating + // sealed ? timeout ? + objID := piece.ObjectID + // object info + objectInfo, err := e.baseApp.GfSpClient().GetObjectByID(ctx, objID) + if err != nil { + // delete ? + log.Infof("failed to get object meta, the zombie piece should be deleted", "error", err) + e.deletePieceAndPieceHash(ctx, objectInfo, piece.SegmentIndex, piece.RedundancyIndex) + continue + } + + if e.verifyPieceLocationInfo(ctx, objectInfo, piece) == ErrSecondaryMismatch { + // delete piece + // delete piece hash checksum + //task.SetError(ErrSecondaryMismatch) + err = e.baseApp.GfSpDB().DeleteObjectIntegrity(objID, piece.RedundancyIndex) + if err != nil { + log.CtxError(ctx, "failed to delete integrity") + } + e.deletePieceAndPieceHash(ctx, objectInfo, piece.SegmentIndex, piece.RedundancyIndex) + } + } + return nil +} + +func (e *ExecuteModular) deletePiece(ctx context.Context, objectInfo *storagetypes.ObjectInfo, segmentIdx uint32, redundancyIdx int32) { + var pieceKey string + objID := objectInfo.Id.Uint64() + if objectInfo.GetRedundancyType() == storagetypes.REDUNDANCY_EC_TYPE { + pieceKey = e.baseApp.PieceOp().ECPieceKey(objID, segmentIdx, uint32(redundancyIdx)) + } else { + pieceKey = e.baseApp.PieceOp().SegmentPieceKey(objID, segmentIdx) + } + // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. + deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "delete the primary sp pieces", "object_info", objectInfo, + "piece_key", pieceKey, "error", deleteErr) +} + +func (e *ExecuteModular) deletePieceAndPieceHash(ctx context.Context, objectInfo *storagetypes.ObjectInfo, segmentIdx uint32, redundancyIdx int32) error { + log.CtxInfow(ctx, "delete piece and piece hash", "object_info", objectInfo, "segmentIdx", segmentIdx, "redundancyIdx", redundancyIdx) + e.deletePiece(ctx, objectInfo, segmentIdx, redundancyIdx) + + err := e.baseApp.GfSpDB().DeleteReplicatePieceChecksum(objectInfo.Id.Uint64(), segmentIdx, redundancyIdx) + if err != nil { + log.Debugf("failed to delete replicate piece checksum", "object", objectInfo) + return err + } + return nil +} + +func (e *ExecuteModular) deleteObjectPiecesAndIntegrityMeta(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { + var ( + storageParams *storagetypes.Params + err error + ) + if storageParams, err = e.baseApp.Consensus().QueryStorageParamsByTimestamp( + context.Background(), objectInfo.GetCreateAt()); err != nil { + log.Errorw("failed to query storage params", "error", err) + return errors.New("failed to query storage params") + } + segmentCount := e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), + storageParams.VersionedParams.GetMaxSegmentSize()) + for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { + pieceKey := e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) + // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. + deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "delete the primary sp pieces", "object_info", objectInfo, + "piece_key", pieceKey, "error", deleteErr) + } + return nil +} + +func (e *ExecuteModular) deleteObjectPieces(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { + var ( + storageParams *storagetypes.Params + err error + ) + if storageParams, err = e.baseApp.Consensus().QueryStorageParamsByTimestamp( + context.Background(), objectInfo.GetCreateAt()); err != nil { + log.Errorw("failed to query storage params", "error", err) + return errors.New("failed to query storage params") + } + segmentCount := e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), + storageParams.VersionedParams.GetMaxSegmentSize()) + for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { + pieceKey := e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) + // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. + deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "delete the primary sp pieces", "object_info", objectInfo, + "piece_key", pieceKey, "error", deleteErr) + } + return nil +} + +func (e *ExecuteModular) verifyObjectLocationInfo(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { + // gvg primary sp should has integrity meta + bucketInfo, err := e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) + if err != nil || bucketInfo == nil { + log.Errorw("failed to get bucket by bucket name", "error", err) + return errors.New("xx") + } + gvg, err := e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) + if err != nil { + log.Errorw("failed to get global virtual group", "error", err) + return errors.New("xx") + } + spID, err := e.getSPID() + if err != nil { + log.Errorw("failed to get sp id", "error", err) + return errors.New("xx") + } + if gvg.GetPrimarySpId() != spID { + // delete + return ErrInvalidIntegrity + } + + return nil +} + +func (e *ExecuteModular) verifyPieceLocationInfo(ctx context.Context, objectInfo *storagetypes.ObjectInfo, piece *spdb.GCPieceMeta) error { + // bucket migrating + bucketInfo, err := e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) + if err != nil || bucketInfo == nil { + log.Errorw("failed to get bucket by bucket name", "error", err) + return errors.New("xx") + } + if bucketInfo.GetBucketInfo().GetBucketStatus() == storagetypes.BUCKET_STATUS_MIGRATING { + log.Errorw("bucket is migrating, do not need to delete piece", "error", err) + return nil + } + // piece + gvg, err := e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) + if err != nil { + log.Errorw("failed to get global virtual group", "error", err) + return errors.New("xx") + } + + // gvg + gvg.GetSecondarySpIds() + spID, err := e.getSPID() + if err != nil { + log.Errorw("failed to get sp id", "error", err) + return errors.New("xx") + } + + if gvg.GetSecondarySpIds()[piece.SegmentIndex] != spID { + // delete TODO error code + log.CtxErrorw(ctx, "failed to confirm receive task, secondary sp mismatch", "expect", + gvg.GetSecondarySpIds()[int(piece.RedundancyIndex)], "current", e.baseApp.OperatorAddress()) + return ErrSecondaryMismatch + } + return nil +} diff --git a/modular/executor/executor.go b/modular/executor/executor.go index 6d780924b..7cc2446cc 100644 --- a/modular/executor/executor.go +++ b/modular/executor/executor.go @@ -49,6 +49,11 @@ type ExecuteModular struct { doingGCGCMetaTaskCnt int64 doingRecoveryPieceTaskCnt int64 doingMigrationGVGTaskCnt int64 + doingGCBucketMigrationCnt int64 + + // gc meta + bucketTrafficKeepLatestDays int64 + readRecordKeepLatestDays int64 enableSkipFailedToMigrateObject bool // only for debugging, and online config can only be false @@ -257,6 +262,10 @@ func (e *ExecuteModular) AskTask(ctx context.Context) error { atomic.AddInt64(&e.doingMigrationGVGTaskCnt, 1) defer atomic.AddInt64(&e.doingMigrationGVGTaskCnt, -1) e.HandleMigrateGVGTask(ctx, t) + case *gfsptask.GfSpGCBucketMigrationTask: + atomic.AddInt64(&e.doingGCBucketMigrationCnt, 1) + defer atomic.AddInt64(&e.doingGCBucketMigrationCnt, -1) + e.HandleGCBucketMigrationBucket(ctx, t) default: log.CtxError(ctx, "unsupported task type") } @@ -304,7 +313,7 @@ func (e *ExecuteModular) ReleaseResource(ctx context.Context, span corercmgr.Res func (e *ExecuteModular) Statistics() string { return fmt.Sprintf( - "maxAsk[%d], asking[%d], replicate[%d], seal[%d], receive[%d], gcObject[%d], gcZombie[%d], gcMeta[%d], migrateGVG[%d]", + "maxAsk[%d], asking[%d], replicate[%d], seal[%d], receive[%d], gcObject[%d], gcZombie[%d], gcMeta[%d], migrateGVG[%d], gcBucketMigration[%d]", atomic.LoadInt64(&e.maxExecuteNum), atomic.LoadInt64(&e.executingNum), atomic.LoadInt64(&e.doingReplicatePieceTaskCnt), atomic.LoadInt64(&e.doingSpSealObjectTaskCnt), @@ -312,7 +321,8 @@ func (e *ExecuteModular) Statistics() string { atomic.LoadInt64(&e.doingGCObjectTaskCnt), atomic.LoadInt64(&e.doingGCZombiePieceTaskCnt), atomic.LoadInt64(&e.doingGCGCMetaTaskCnt), - atomic.LoadInt64(&e.doingMigrationGVGTaskCnt)) + atomic.LoadInt64(&e.doingMigrationGVGTaskCnt), + atomic.LoadInt64(&e.doingGCBucketMigrationCnt)) } func (e *ExecuteModular) getSPID() (uint32, error) { diff --git a/modular/executor/executor_task_test.go b/modular/executor/executor_task_test.go index 7c79c6f48..92814cfdb 100644 --- a/modular/executor/executor_task_test.go +++ b/modular/executor/executor_task_test.go @@ -710,15 +710,16 @@ func TestExecuteModular_HandleGCObjectTask(t *testing.T) { } } -func TestExecuteModular_HandleGCZombiePieceTask(t *testing.T) { - e := setup(t) - e.HandleGCZombiePieceTask(context.TODO(), nil) -} - -func TestExecuteModular_HandleGCMetaTask(t *testing.T) { - e := setup(t) - e.HandleGCMetaTask(context.TODO(), nil) -} +// TODO add unit test +//func TestExecuteModular_HandleGCZombiePieceTask(t *testing.T) { +// e := setup(t) +// e.HandleGCZombiePieceTask(context.TODO(), nil) +//} +// +//func TestExecuteModular_HandleGCMetaTask(t *testing.T) { +// e := setup(t) +// e.HandleGCMetaTask(context.TODO(), nil) +//} func TestExecuteModular_HandleRecoverPieceTaskFailure1(t *testing.T) { t.Log("Failure case description: ErrDanglingPointer") diff --git a/modular/executor/migrate_task.go b/modular/executor/migrate_task.go index cf61356bc..d49ae6c9e 100644 --- a/modular/executor/migrate_task.go +++ b/modular/executor/migrate_task.go @@ -76,6 +76,7 @@ func (e *ExecuteModular) HandleMigrateGVGTask(ctx context.Context, gvgTask coret } for index, object := range objectList { + time.Sleep(1 * time.Second) if err = e.checkAndTryRenewSig(gvgTask.(*gfsptask.GfSpMigrateGVGTask)); err != nil { log.CtxErrorw(ctx, "failed to check and renew gvg task signature", "gvg_task", gvgTask, "error", err) return diff --git a/modular/gater/migrate_handler.go b/modular/gater/migrate_handler.go index 40f2d93a4..0235e5f04 100644 --- a/modular/gater/migrate_handler.go +++ b/modular/gater/migrate_handler.go @@ -531,7 +531,7 @@ func (g *GateModular) postMigrateBucketHandler(w http.ResponseWriter, r *http.Re } bucketID = bucketMigrationInfo.GetBucketId() - err = g.baseApp.GfSpClient().NotifyPostMigrateBucket(reqCtx.Context(), bucketID) + err = g.baseApp.GfSpClient().NotifyPostMigrateBucket(reqCtx.Context(), bucketMigrationInfo) if err != nil { log.CtxErrorw(reqCtx.Context(), "post migrate bucket error, the bucket may already notified", "bucket_id", bucketID, "error", err) diff --git a/modular/manager/bucket_migrate_scheduler.go b/modular/manager/bucket_migrate_scheduler.go index 3fa5b53c3..f17cd634a 100644 --- a/modular/manager/bucket_migrate_scheduler.go +++ b/modular/manager/bucket_migrate_scheduler.go @@ -316,6 +316,7 @@ func (plan *BucketMigrateExecutePlan) updateMigrateGVGStatus(migrateKey string, log.Errorw("failed to done migrate bucket", "error", err, "bucket_id", migrateExecuteUnit.BucketID) return err } + // notify src sp to gc postMsg := &gfsptask.GfSpBucketMigrationInfo{BucketId: task.GetBucketID(), Finished: task.GetFinished(), MigratedBytesSize: task.GetMigratedBytesSize()} err = plan.manager.bucketMigrateScheduler.PostMigrateBucket(postMsg, plan.srcSP) if err != nil { @@ -666,6 +667,9 @@ func (s *BucketMigrateScheduler) PostMigrateBucket(postMsg *gfsptask.GfSpBucketM err error ) + bucketID := postMsg.GetBucketId() + ctx := context.Background() + if srcSPInfo == nil { srcSPInfo = s.getSPInfoByBucketID(postMsg.GetBucketId()) } @@ -685,6 +689,24 @@ func (s *BucketMigrateScheduler) PostMigrateBucket(postMsg *gfsptask.GfSpBucketM return err } log.Debugw("succeed to post migrate bucket quota", "src_sp", srcSPInfo, "postMsg", postMsg, "error", err) + // TODO gc for dest sp + if !postMsg.GetFinished() { + // list objects and delete generate a task ? + go func() { + // src sp should wait meta data + <-time.After(10 * time.Second) + + // success generate gc task, gc for bucket migration src sp + gcBucketMigrationTask := &gfsptask.GfSpGCBucketMigrationTask{} + gcBucketMigrationTask.InitGCBucketMigrationTask(s.manager.baseApp.TaskPriority(gcBucketMigrationTask), bucketID, + s.manager.baseApp.TaskTimeout(gcBucketMigrationTask, postMsg.GetMigratedBytesSize()), s.manager.baseApp.TaskMaxRetry(gcBucketMigrationTask)) + err = s.manager.HandleCreateGCBucketMigrationTask(ctx, gcBucketMigrationTask) + if err != nil { + log.CtxErrorw(ctx, "failed to begin gc bucket migration task", "info", gcBucketMigrationTask.Info(), "error", err) + } + log.Infow("succeed to generate gc bucket migration task", "task", gcBucketMigrationTask) + }() + } return nil } diff --git a/modular/manager/manage_task.go b/modular/manager/manage_task.go index 6bd843d40..56f8ed8a3 100644 --- a/modular/manager/manage_task.go +++ b/modular/manager/manage_task.go @@ -469,7 +469,8 @@ func (m *ManageModular) HandleSealObjectTask(ctx context.Context, task task.Seal log.Errorw("failed to update object task state", "task_info", task.Info(), "error", err) return } - // TODO: delete this upload db record? + // delete this upload db record + _ = m.baseApp.GfSpDB().DeleteUploadProgress(task.GetObjectInfo().Id.Uint64()) log.Debugw("succeed to seal object on chain", "task_info", task.Info()) }() return nil @@ -605,12 +606,119 @@ func (m *ManageModular) HandleGCObjectTask(ctx context.Context, gcTask task.GCOb return nil } -func (m *ManageModular) HandleGCZombiePieceTask(ctx context.Context, task task.GCZombiePieceTask) error { - return ErrFutureSupport +func (m *ManageModular) HandleGCZombiePieceTask(ctx context.Context, gcZombiePieceTask task.GCZombiePieceTask) error { + if gcZombiePieceTask == nil { + log.CtxErrorw(ctx, "failed to handle gc object due to task pointer dangling") + return ErrDanglingTask + } + if !m.gcObjectQueue.Has(gcZombiePieceTask.Key()) { + log.CtxErrorw(ctx, "task is not in the gc queue", "task_info", gcZombiePieceTask.Info()) + return ErrCanceledTask + } + if gcZombiePieceTask.Error() == nil { + log.CtxInfow(ctx, "succeed to finish the gc object task", "task_info", gcZombiePieceTask.Info()) + m.gcObjectQueue.PopByKey(gcZombiePieceTask.Key()) + m.baseApp.GfSpDB().DeleteGCObjectProgress(gcZombiePieceTask.Key().String()) + return nil + } + gcZombiePieceTask.SetUpdateTime(time.Now().Unix()) + oldTask := m.gcObjectQueue.PopByKey(gcZombiePieceTask.Key()) + if oldTask != nil { + if oldTask.(task.GCObjectTask).GetCurrentBlockNumber() > gcZombiePieceTask.GetCurrentBlockNumber() || + (oldTask.(task.GCObjectTask).GetCurrentBlockNumber() == gcZombiePieceTask.GetCurrentBlockNumber() && + oldTask.(task.GCObjectTask).GetLastDeletedObjectId() > gcZombiePieceTask.GetLastDeletedObjectId()) { + log.CtxErrorw(ctx, "the reported gc object task is expired", "report_info", gcZombiePieceTask.Info(), + "current_info", oldTask.Info()) + return ErrCanceledTask + } + } else { + log.CtxErrorw(ctx, "the reported gc object task is canceled", "report_info", gcZombiePieceTask.Info()) + return ErrCanceledTask + } + err := m.gcObjectQueue.Push(gcZombiePieceTask) + log.CtxInfow(ctx, "push gc object task to queue again", "from", oldTask, "to", gcZombiePieceTask, "error", err) + // TODO GC Zombie piece progress + return nil } -func (m *ManageModular) HandleGCMetaTask(ctx context.Context, task task.GCMetaTask) error { - return ErrFutureSupport +func (m *ManageModular) HandleGCMetaTask(ctx context.Context, gcMetaTask task.GCMetaTask) error { + if gcMetaTask == nil { + log.CtxError(ctx, "failed to handle gc bucket migration due to gcMetaTask pointer dangling") + return ErrDanglingTask + } + if !m.gcMetaQueue.Has(gcMetaTask.Key()) { + log.CtxErrorw(ctx, "gcMetaTask is not in the gc bucket migration queue", "task_info", gcMetaTask.Info()) + return ErrCanceledTask + } + if gcMetaTask.Error() == nil { + log.CtxInfow(ctx, "succeed to finish the gc object gcMetaTask", "task_info", gcMetaTask.Info()) + m.gcMetaQueue.PopByKey(gcMetaTask.Key()) + return nil + } + gcMetaTask.SetUpdateTime(time.Now().Unix()) + gcMetaTask.SetError(nil) + oldTask := m.gcMetaQueue.PopByKey(gcMetaTask.Key()) + if oldTask != nil { + if oldTask.ExceedRetry() { + log.CtxErrorw(ctx, "the reported gc object gcMetaTask is expired", "report_info", gcMetaTask.Info(), + "current_info", oldTask.Info()) + return ErrCanceledTask + } + } else { + log.CtxErrorw(ctx, "the reported gc object gcMetaTask is canceled", "report_info", gcMetaTask.Info()) + return ErrCanceledTask + } + err := m.gcMetaQueue.Push(gcMetaTask) + log.CtxInfow(ctx, "push gcMetaTask to queue again", "from", oldTask, "to", gcMetaTask, "error", err) + return nil +} + +func (m *ManageModular) HandleGCBucketMigrationTask(ctx context.Context, gcBucketMigrationTask task.GCBucketMigrationTask) error { + if gcBucketMigrationTask == nil { + log.CtxError(ctx, "failed to handle gc bucket migration due to gcBucketMigrationTask pointer dangling") + return ErrDanglingTask + } + if !m.gcBucketMigrationQueue.Has(gcBucketMigrationTask.Key()) { + log.CtxErrorw(ctx, "gcBucketMigrationTask is not in the gc bucket migration queue", "task_info", gcBucketMigrationTask.Info()) + return ErrCanceledTask + } + if gcBucketMigrationTask.Error() == nil { + log.CtxInfow(ctx, "succeed to finish the gc object gcBucketMigrationTask", "task_info", gcBucketMigrationTask.Info()) + m.gcBucketMigrationQueue.PopByKey(gcBucketMigrationTask.Key()) + return nil + } + gcBucketMigrationTask.SetUpdateTime(time.Now().Unix()) + gcBucketMigrationTask.SetError(nil) + oldTask := m.gcBucketMigrationQueue.PopByKey(gcBucketMigrationTask.Key()) + if oldTask != nil { + if oldTask.ExceedRetry() { + log.CtxErrorw(ctx, "the reported gc object gcBucketMigrationTask is expired", "report_info", gcBucketMigrationTask.Info(), + "current_info", oldTask.Info()) + return ErrCanceledTask + } + } else { + log.CtxErrorw(ctx, "the reported gc object gcBucketMigrationTask is canceled", "report_info", gcBucketMigrationTask.Info()) + return ErrCanceledTask + } + err := m.gcBucketMigrationQueue.Push(gcBucketMigrationTask) + log.CtxInfow(ctx, "push gcBucketMigrationTask to queue again", "from", oldTask, "to", gcBucketMigrationTask, "error", err) + return nil +} + +func (m *ManageModular) HandleCreateGCBucketMigrationTask(ctx context.Context, task task.GCBucketMigrationTask) error { + if task == nil { + log.CtxErrorw(ctx, "failed to handle begin gc bucket migration due to task pointer dangling") + return ErrDanglingTask + } + if m.gcBucketMigrationQueue.Has(task.Key()) { + log.CtxErrorw(ctx, "uploading object repeated", "task_info", task.Info()) + return ErrRepeatedTask + } + if err := m.gcBucketMigrationQueue.Push(task); err != nil { + log.CtxErrorw(ctx, "failed to push upload object task to queue", "task_info", task.Info(), "error", err) + return err + } + return nil } func (m *ManageModular) HandleDownloadObjectTask(ctx context.Context, task task.DownloadObjectTask) error { @@ -733,6 +841,7 @@ func (m *ManageModular) QueryTasks(ctx context.Context, subKey task.TKey) ([]tas challengeTasks, _ := taskqueue.ScanTQueueBySubKey(m.challengeQueue, subKey) recoveryTasks, _ := taskqueue.ScanTQueueWithLimitBySubKey(m.recoveryQueue, subKey) migrateGVGTasks, _ := taskqueue.ScanTQueueWithLimitBySubKey(m.migrateGVGQueue, subKey) + gcBucketMigrationTasks, _ := taskqueue.ScanTQueueWithLimitBySubKey(m.gcBucketMigrationQueue, subKey) var tasks []task.Task tasks = append(tasks, uploadTasks...) @@ -746,6 +855,7 @@ func (m *ManageModular) QueryTasks(ctx context.Context, subKey task.TKey) ([]tas tasks = append(tasks, challengeTasks...) tasks = append(tasks, recoveryTasks...) tasks = append(tasks, migrateGVGTasks...) + tasks = append(tasks, gcBucketMigrationTasks...) return tasks, nil } diff --git a/modular/manager/manager.go b/modular/manager/manager.go index 089dde9d7..d3e04af34 100644 --- a/modular/manager/manager.go +++ b/modular/manager/manager.go @@ -60,19 +60,20 @@ type ManageModular struct { loadTaskLimitToSeal int loadTaskLimitToGC int - uploadQueue taskqueue.TQueueOnStrategy - resumableUploadQueue taskqueue.TQueueOnStrategy - replicateQueue taskqueue.TQueueOnStrategyWithLimit - sealQueue taskqueue.TQueueOnStrategyWithLimit - receiveQueue taskqueue.TQueueOnStrategyWithLimit - gcObjectQueue taskqueue.TQueueOnStrategyWithLimit - gcZombieQueue taskqueue.TQueueOnStrategyWithLimit - gcMetaQueue taskqueue.TQueueOnStrategyWithLimit - downloadQueue taskqueue.TQueueOnStrategy - challengeQueue taskqueue.TQueueOnStrategy - recoveryQueue taskqueue.TQueueOnStrategyWithLimit - migrateGVGQueue taskqueue.TQueueOnStrategyWithLimit - migrateGVGQueueMux sync.Mutex + uploadQueue taskqueue.TQueueOnStrategy + resumableUploadQueue taskqueue.TQueueOnStrategy + replicateQueue taskqueue.TQueueOnStrategyWithLimit + sealQueue taskqueue.TQueueOnStrategyWithLimit + receiveQueue taskqueue.TQueueOnStrategyWithLimit + gcObjectQueue taskqueue.TQueueOnStrategyWithLimit + gcZombieQueue taskqueue.TQueueOnStrategyWithLimit + gcMetaQueue taskqueue.TQueueOnStrategyWithLimit + downloadQueue taskqueue.TQueueOnStrategy + challengeQueue taskqueue.TQueueOnStrategy + recoveryQueue taskqueue.TQueueOnStrategyWithLimit + migrateGVGQueue taskqueue.TQueueOnStrategyWithLimit + gcBucketMigrationQueue taskqueue.TQueueOnStrategyWithLimit + migrateGVGQueueMux sync.Mutex // src sp used TODO: these should be persisted migratingBuckets map[uint64]struct{} @@ -84,6 +85,11 @@ type ManageModular struct { gcObjectBlockInterval uint64 gcSafeBlockDistance uint64 + gcZombiePieceTimeInterval int + gcZombiePieceObjectID uint64 + gcZombiePieceObjectIDInterval uint64 + gcZombiePieceSafeBlockDistance uint64 + syncConsensusInfoInterval uint64 statisticsOutputInterval int @@ -133,6 +139,8 @@ func (m *ManageModular) Start(ctx context.Context) error { m.recoveryQueue.SetFilterTaskStrategy(m.FilterUploadingTask) m.migrateGVGQueue.SetRetireTaskStrategy(m.GCMigrateGVGQueue) m.migrateGVGQueue.SetFilterTaskStrategy(m.FilterGVGTask) + m.gcBucketMigrationQueue.SetRetireTaskStrategy(m.ResetGCBucketMigrationQueue) + m.gcBucketMigrationQueue.SetFilterTaskStrategy(m.FilterGCTask) m.migratingBuckets = make(map[uint64]struct{}) @@ -141,7 +149,6 @@ func (m *ManageModular) Start(ctx context.Context) error { return err } m.scope = scope - if err = m.LoadTaskFromDB(); err != nil { return err } @@ -191,6 +198,8 @@ func (m *ManageModular) delayStartMigrateScheduler() { func (m *ManageModular) eventLoop(ctx context.Context) { m.syncConsensusInfo(ctx) gcObjectTicker := time.NewTicker(time.Duration(m.gcObjectTimeInterval) * time.Second) + gcZombiePieceTicker := time.NewTicker(time.Duration(m.gcZombiePieceTimeInterval) * time.Second) + gcMetaTicker := time.NewTicker(time.Duration(m.gcZombiePieceTimeInterval) * time.Second) syncConsensusInfoTicker := time.NewTicker(time.Duration(m.syncConsensusInfoInterval) * time.Second) statisticsTicker := time.NewTicker(time.Duration(m.statisticsOutputInterval) * time.Second) discontinueBucketTicker := time.NewTicker(time.Duration(m.discontinueBucketTimeInterval) * time.Second) @@ -238,6 +247,42 @@ func (m *ManageModular) eventLoop(ctx context.Context) { } } log.CtxErrorw(ctx, "generate a gc object task", "task_info", task.Info(), "error", err) + case <-gcZombiePieceTicker.C: + start := m.gcZombiePieceObjectID + end := m.gcZombiePieceObjectID + m.gcZombiePieceObjectIDInterval + currentBlockHeight, err := m.baseApp.Consensus().CurrentHeight(ctx) + if err != nil { + log.CtxErrorw(ctx, "failed to get current block height for gc object and try again later", "error", err) + continue + } + // TODO max objectID ? + if end+m.gcZombiePieceSafeBlockDistance > currentBlockHeight { + log.CtxErrorw(ctx, "current block number less safe distance and try again later", + "start_gc_block_height", start, + "end_gc_block_height", end, + "safe_distance", m.gcSafeBlockDistance, + "current_block_height", currentBlockHeight) + // from 0 again later + m.gcZombiePieceObjectID = 0 + continue + } + task := &gfsptask.GfSpGCZombiePieceTask{} + task.InitGCZombiePieceTask(m.baseApp.TaskPriority(task), start, end, m.baseApp.TaskTimeout(task, 0)) + err = m.gcZombieQueue.Push(task) + if err != nil { + log.CtxErrorw(ctx, "failed to push gc zombie piece task", "error", err) + continue + } + case <-gcMetaTicker.C: + var err error + task := &gfsptask.GfSpGCMetaTask{} + task.InitGCMetaTask(m.baseApp.TaskPriority(task), m.baseApp.TaskTimeout(task, 0)) + err = m.gcMetaQueue.Push(task) + if err != nil { + log.CtxErrorw(ctx, "failed to push gc zombie piece task", "error", err) + continue + } + case <-discontinueBucketTicker.C: if !m.discontinueBucketEnabled { continue @@ -248,6 +293,27 @@ func (m *ManageModular) eventLoop(ctx context.Context) { } } +// TODO record deletion bucket id ? +//func (m *ManageModular) generateGCMetaTask(ctx context.Context) { +// var err error +// // bucket_traffic +// now := time.Now().Unix() +// task := &gfsptask.GfSpGCMetaTask{} +// task.InitGCMetaTask(m.baseApp.TaskPriority(task), m.baseApp.TaskTimeout(task, 0), uint64(now), gfsptask.GfSpGCMetaTaskType_META_TASK_BUCKET_TRAFFIC) +// err = m.gcMetaQueue.Push(task) +// if err != nil { +// log.CtxErrorw(ctx, "failed to push gc zombie piece task", "error", err) +// } +// // read_record +// // TODO config ? +// task = &gfsptask.GfSpGCMetaTask{} +// task.InitGCMetaTask(m.baseApp.TaskPriority(task), m.baseApp.TaskTimeout(task, 0), uint64(now), gfsptask.GfSpGCMetaTaskType_META_TASK_BUCKET_TRAFFIC_READ_RECORD) +// err = m.gcMetaQueue.Push(task) +// if err != nil { +// log.CtxErrorw(ctx, "failed to push gc zombie piece task", "error", err) +// } +//} + func (m *ManageModular) discontinueBuckets(ctx context.Context) { createAt := time.Now().AddDate(0, 0, -m.discontinueBucketKeepAliveDays) spID, err := m.getSPID() @@ -550,6 +616,16 @@ func (m *ManageModular) GCCacheQueue(qTask task.Task) bool { return true } +func (m *ManageModular) ResetGCBucketMigrationQueue(qTask task.Task) bool { + task := qTask.(task.GCBucketMigrationTask) + if task.Expired() { + log.Errorw("reset gc bucket migration task", "old_task_key", task.Key().String()) + task.SetRetry(0) + log.Errorw("reset gc bucket migration task", "new_task_key", task.Key().String()) + } + return false +} + func (m *ManageModular) FilterGCTask(qTask task.Task) bool { return qTask.GetRetry() == 0 } @@ -736,6 +812,12 @@ func (m *ManageModular) backUpTask() { log.CtxDebugw(ctx, "add confirm migrate gvg to backup set", "task_key", targetTask.Key().String()) backupTasks = append(backupTasks, targetTask) } + targetTask = m.gcBucketMigrationQueue.PopByLimit(limit) + if targetTask != nil { + log.CtxDebugw(ctx, "add gc bucket migration task to backup set", "task_key", targetTask.Key().String(), + "task_limit", targetTask.EstimateLimit().String()) + backupTasks = append(backupTasks, targetTask) + } endPopTime := time.Now().String() startPickUpTime := time.Now().String() @@ -781,6 +863,9 @@ func (m *ManageModular) repushTask(reserved task.Task) { case *gfsptask.GfSpMigrateGVGTask: err := m.migrateGVGQueuePush(t) log.Infow("retry push migration gvg task to queue after dispatching", "error", err) + case *gfsptask.GfSpGCBucketMigrationTask: + err := m.gcBucketMigrationQueue.Push(t) + log.Infow("retry push gc bucket migration task to queue after dispatching", "error", err) } } @@ -788,9 +873,7 @@ func (m *ManageModular) migrateGVGQueuePush(task task.Task) error { m.migrateGVGQueueMux.Lock() defer m.migrateGVGQueueMux.Unlock() - err := m.migrateGVGQueue.Push(task) - - return err + return m.migrateGVGQueue.Push(task) } func (m *ManageModular) migrateGVGQueuePopByLimit(limit rcmgr.Limit) task.Task { diff --git a/modular/manager/manager_options.go b/modular/manager/manager_options.go index 60cc23db2..75d0e4a5b 100644 --- a/modular/manager/manager_options.go +++ b/modular/manager/manager_options.go @@ -36,6 +36,9 @@ const ( // DefaultGlobalGCMetaParallel defines the default max parallel gc meta db in SP // system. DefaultGlobalGCMetaParallel int = 1 + // DefaultGlobalGCBucketMigrationParallel defines the default max parallel gc meta db in SP + // system. + DefaultGlobalGCBucketMigrationParallel int = 1 // DefaultGlobalRecoveryPieceParallel defines the default max parallel recovery objects in SP // system. DefaultGlobalRecoveryPieceParallel int = 7 @@ -50,6 +53,9 @@ const ( // DefaultGlobalBatchGcObjectTimeInterval defines the default interval for generating // gc object task. DefaultGlobalBatchGcObjectTimeInterval int = 1 * 60 + // DefaultGlobalBatchGcZombiePieceTimeInterval defines the default interval for generating + // gc object task. + DefaultGlobalBatchGcZombiePieceTimeInterval int = 1 * 60 // DefaultGlobalGcObjectBlockInterval defines the default blocks number for getting // deleted objects. DefaultGlobalGcObjectBlockInterval uint64 = 1000 @@ -135,6 +141,9 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( if cfg.Parallel.GlobalGCMetaParallel == 0 { cfg.Parallel.GlobalGCMetaParallel = DefaultGlobalGCMetaParallel } + if cfg.Parallel.GlobalGCBucketMigrationParallel == 0 { + cfg.Parallel.GlobalGCBucketMigrationParallel = DefaultGlobalGCBucketMigrationParallel + } if cfg.Parallel.GlobalRecoveryPieceParallel == 0 { cfg.Parallel.GlobalRecoveryPieceParallel = DefaultGlobalRecoveryPieceParallel } @@ -155,6 +164,9 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( if cfg.Parallel.GlobalBatchGcObjectTimeInterval == 0 { cfg.Parallel.GlobalBatchGcObjectTimeInterval = DefaultGlobalBatchGcObjectTimeInterval } + if cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval == 0 { + cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval = DefaultGlobalBatchGcZombiePieceTimeInterval + } if cfg.Parallel.GlobalGcObjectBlockInterval == 0 { cfg.Parallel.GlobalGcObjectBlockInterval = DefaultGlobalGcObjectBlockInterval } @@ -189,6 +201,7 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( manager.statisticsOutputInterval = DefaultStatisticsOutputInterval manager.maxUploadObjectNumber = cfg.Parallel.GlobalMaxUploadingParallel manager.gcObjectTimeInterval = cfg.Parallel.GlobalBatchGcObjectTimeInterval + manager.gcZombiePieceTimeInterval = cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval manager.gcObjectBlockInterval = cfg.Parallel.GlobalGcObjectBlockInterval manager.gcSafeBlockDistance = cfg.Parallel.GlobalGcObjectSafeBlockDistance manager.syncConsensusInfoInterval = cfg.Parallel.GlobalSyncConsensusInfoInterval @@ -222,6 +235,8 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( manager.Name()+"-cache-download-object", cfg.Parallel.GlobalDownloadObjectTaskCacheSize) manager.challengeQueue = cfg.Customize.NewStrategyTQueueFunc( manager.Name()+"-cache-challenge-piece", cfg.Parallel.GlobalChallengePieceTaskCacheSize) + manager.gcBucketMigrationQueue = cfg.Customize.NewStrategyTQueueWithLimitFunc( + manager.Name()+"-gc-bucket-migration", cfg.Parallel.GlobalGCBucketMigrationParallel) if manager.virtualGroupManager, err = cfg.Customize.NewVirtualGroupManagerFunc(manager.baseApp.OperatorAddress(), manager.baseApp.Consensus(), manager.enableHealthyChecker); err != nil { return err diff --git a/modular/manager/migrate_service.go b/modular/manager/migrate_service.go index 32d788186..54342f058 100644 --- a/modular/manager/migrate_service.go +++ b/modular/manager/migrate_service.go @@ -3,8 +3,11 @@ package manager import ( "context" "fmt" + "time" + "github.com/bnb-chain/greenfield-storage-provider/base/types/gfsptask" "github.com/bnb-chain/greenfield-storage-provider/pkg/log" + "github.com/bnb-chain/greenfield-storage-provider/util" virtualgrouptypes "github.com/bnb-chain/greenfield/x/virtualgroup/types" ) @@ -55,12 +58,45 @@ func (m *ManageModular) NotifyPreMigrateBucket(ctx context.Context, bucketID uin } // NotifyPostMigrateBucket is used to notify src sp confirm that only one Post migrate bucket is allowed. -func (m *ManageModular) NotifyPostMigrateBucket(ctx context.Context, bucketID uint64) error { +func (m *ManageModular) NotifyPostMigrateBucket(ctx context.Context, bmInfo *gfsptask.GfSpBucketMigrationInfo) error { + bucketID := bmInfo.GetBucketId() + _, exists := m.migratingBuckets[bucketID] if exists { delete(m.migratingBuckets, bucketID) } else { return fmt.Errorf("bucket doesn't exit in migratingBuckets") } + + var err error + bucketSizeStr, err := m.baseApp.GfSpClient().GetBucketSize(ctx, bucketID) + if err != nil { + log.Errorf("failed to get bucket total object size", "error", err) + return err + } + bucketSize, err := util.StringToUint64(bucketSizeStr) + if err != nil { + log.CtxErrorw(ctx, "failed to convert bucket size to uint64", "bucket_id", + bucketID, "bucket_size", bucketSize, "error", err) + return err + } + + if bmInfo.GetFinished() { + go func() { + // src sp should wait meta data + <-time.After(10 * time.Second) + + // success generate gc task, gc for bucket migration src sp + gcBucketMigrationTask := &gfsptask.GfSpGCBucketMigrationTask{} + gcBucketMigrationTask.InitGCBucketMigrationTask(m.baseApp.TaskPriority(gcBucketMigrationTask), bucketID, + m.baseApp.TaskTimeout(gcBucketMigrationTask, bucketSize), m.baseApp.TaskMaxRetry(gcBucketMigrationTask)) + err = m.HandleCreateGCBucketMigrationTask(ctx, gcBucketMigrationTask) + if err != nil { + log.CtxErrorw(ctx, "failed to begin gc bucket migration task", "info", gcBucketMigrationTask.Info(), "error", err) + } + log.CtxInfow(ctx, "succeed to push bucket migration gc task to queue", "bucket_migration_info", bmInfo, "gcBucketMigrationTask", gcBucketMigrationTask) + }() + } + return nil } diff --git a/modular/metadata/metadata_object_service.go b/modular/metadata/metadata_object_service.go index 439c25f8a..a820d54a4 100644 --- a/modular/metadata/metadata_object_service.go +++ b/modular/metadata/metadata_object_service.go @@ -411,7 +411,7 @@ func (r *MetadataModular) GfSpListObjectsByGVGAndBucketForGC(ctx context.Context if req.Limit > model.ListObjectsLimitSize { limit = model.ListObjectsLimitSize } - objects, bucket, err = r.baseApp.GfBsDB().ListObjectsByGVGAndBucketForGC(common.BigToHash(math.NewUint(req.BucketId).BigInt()), req.GvgId, common.BigToHash(math.NewUint(req.StartAfter).BigInt()), limit) + objects, bucket, err = r.baseApp.GfBsDB().ListObjectsByGVGAndBucketForGC(common.BigToHash(math.NewUint(req.BucketId).BigInt()), req.DstGvgId, common.BigToHash(math.NewUint(req.StartAfter).BigInt()), limit) if err != nil { log.CtxErrorw(ctx, "failed to list objects by gvg and bucket for gc", "error", err) return nil, err diff --git a/modular/metadata/metadata_object_service_test.go b/modular/metadata/metadata_object_service_test.go index c958e7054..3d20472c7 100644 --- a/modular/metadata/metadata_object_service_test.go +++ b/modular/metadata/metadata_object_service_test.go @@ -964,7 +964,7 @@ func TestMetadataModular_GfSpListObjectsByGVGAndBucketForGC_Success(t *testing.T }, ).Times(1) objects, err := a.GfSpListObjectsByGVGAndBucketForGC(context.Background(), &types.GfSpListObjectsByGVGAndBucketForGCRequest{ - GvgId: 1, + DstGvgId: 1, BucketId: 1, StartAfter: 0, Limit: 0, @@ -1058,7 +1058,7 @@ func TestMetadataModular_GfSpListObjectsByGVGAndBucketForGC_Success2(t *testing. }, ).Times(1) objects, err := a.GfSpListObjectsByGVGAndBucketForGC(context.Background(), &types.GfSpListObjectsByGVGAndBucketForGCRequest{ - GvgId: 1, + DstGvgId: 1, BucketId: 1, StartAfter: 0, Limit: 11111, @@ -1136,7 +1136,7 @@ func TestMetadataModular_GfSpListObjectsByGVGAndBucketForGC_Failed(t *testing.T) }, ).Times(1) _, err := a.GfSpListObjectsByGVGAndBucketForGC(context.Background(), &types.GfSpListObjectsByGVGAndBucketForGCRequest{ - GvgId: 1, + DstGvgId: 1, BucketId: 1, StartAfter: 0, Limit: 11111, @@ -1155,7 +1155,7 @@ func TestMetadataModular_GfSpListObjectsByGVGAndBucketForGC_Failed2(t *testing.T }, ).Times(1) _, err := a.GfSpListObjectsByGVGAndBucketForGC(context.Background(), &types.GfSpListObjectsByGVGAndBucketForGCRequest{ - GvgId: 1, + DstGvgId: 1, BucketId: 1, StartAfter: 0, Limit: 11111, diff --git a/proto/base/types/gfspserver/manage.proto b/proto/base/types/gfspserver/manage.proto index cc396f58d..ea6924f71 100644 --- a/proto/base/types/gfspserver/manage.proto +++ b/proto/base/types/gfspserver/manage.proto @@ -34,6 +34,7 @@ message GfSpAskTaskResponse { base.types.gfsptask.GfSpGCMetaTask gc_meta_task = 7; base.types.gfsptask.GfSpRecoverPieceTask recover_piece_task = 8; base.types.gfsptask.GfSpMigrateGVGTask migrate_gvg_task = 9; + base.types.gfsptask.GfSpGCBucketMigrationTask gc_bucket_migration_task = 10; } } @@ -51,6 +52,7 @@ message GfSpReportTaskRequest { base.types.gfsptask.GfSpResumableUploadObjectTask resumable_upload_object_task = 10; base.types.gfsptask.GfSpRecoverPieceTask recover_piece_task = 11; base.types.gfsptask.GfSpMigrateGVGTask migrate_gvg_task = 12; + base.types.gfsptask.GfSpGCBucketMigrationTask gc_bucket_migration_task = 13; } } @@ -87,6 +89,7 @@ message GfSpNotifyPreMigrateBucketResponse { message GfSpNotifyPostMigrateBucketRequest { // bucket_id is the id of the bucket uint64 bucket_id = 1; + base.types.gfsptask.GfSpBucketMigrationInfo bucket_migration_info = 2; } message GfSpNotifyPostMigrateBucketResponse { diff --git a/proto/base/types/gfsptask/task.proto b/proto/base/types/gfsptask/task.proto index ca0dd7b77..ea65a8871 100644 --- a/proto/base/types/gfsptask/task.proto +++ b/proto/base/types/gfsptask/task.proto @@ -162,9 +162,20 @@ message GfSpGCObjectTask { message GfSpGCZombiePieceTask { GfSpTask task = 1; - uint64 object_id = 2; - uint64 delete_count = 3; - bool running = 4; + uint64 start_block_number = 2; + uint64 end_block_number = 3; + uint64 current_block_number = 4; + uint64 last_deleted_object_id = 5; + bool running = 6; + uint64 start_object_id = 7; + uint64 end_object_id = 8; + bool finished = 9; +} + +enum GfSpGCMetaTaskType { + GF_SP_GC_META_TASK_TYPE_UNSPECIFIED = 0; + GF_SP_GC_META_TASK_TYPE_BUCKET_TRAFFIC = 1; + GF_SP_GC_META_TASK_TYPE_TRAFFIC_READ_RECORD = 2; } message GfSpGCMetaTask { @@ -172,6 +183,9 @@ message GfSpGCMetaTask { uint64 current_idx = 2; uint64 delete_count = 3; bool running = 4; + // delete meta record before deletion time + int64 deletion_time = 5; + GfSpGCMetaTaskType meta_task_type = 6; } message GfSpMigrateGVGTask { @@ -198,6 +212,11 @@ message GfSpMigratePieceTask { bool is_bucket_migrate = 7; } +message GfSpGCBucketMigrationTask { + GfSpTask task = 1; + uint64 bucket_id = 2; +} + message GfSpBucketMigrationInfo { uint64 bucket_id = 1; // whether the migrate bucket succeed diff --git a/proto/modular/metadata/types/metadata.proto b/proto/modular/metadata/types/metadata.proto index 17820b414..ce1b73b98 100644 --- a/proto/modular/metadata/types/metadata.proto +++ b/proto/modular/metadata/types/metadata.proto @@ -623,8 +623,8 @@ message GfSpListObjectsInGVGAndBucketResponse { // GfSpListObjectByGVGAndBucketForGCRequest is request type for the GfSpListObjectByGVGAndBucketForGC RPC method message GfSpListObjectsByGVGAndBucketForGCRequest { - // gvg_id is the unique identification for gvg - uint32 gvg_id = 1; + // dst_gvg_id defines the destination of gvg id + uint32 dst_gvg_id = 1; // bucket_id is the unique identification for bucket uint64 bucket_id = 2; // start_after is where you want to start listing from diff --git a/store/bsdb/const.go b/store/bsdb/const.go index 1f65eeb83..028666926 100644 --- a/store/bsdb/const.go +++ b/store/bsdb/const.go @@ -4,6 +4,8 @@ package bsdb const ( // DeletedObjectsDefaultSize defines the default size of ListDeletedObjectsByBlockNumberRange response DeletedObjectsDefaultSize = 1000 + // ListObjectsDefaultSize defines the default size of ListObjectsByBlockNumberRange response + ListObjectsDefaultSize = 1000 // ExpiredBucketsDefaultSize defines the default size of ListExpiredBucketsBySp response ExpiredBucketsDefaultSize = 1000 // ListObjectsDefaultMaxKeys defines the default size of ListObjectsByBucketName response diff --git a/store/bsdb/event_migration_bucket.go b/store/bsdb/event_migration_bucket.go index 343865250..02acf8a54 100644 --- a/store/bsdb/event_migration_bucket.go +++ b/store/bsdb/event_migration_bucket.go @@ -75,13 +75,26 @@ func (b *BsDBImpl) GetMigrateBucketEventByBucketID(bucketID common.Hash) (*Event Where("bucket_id = ?", bucketID). Order("create_time desc"). Take(&completeEvents).Error - if errors.Is(err, gorm.ErrRecordNotFound) { - return nil, nil - } return completeEvents, err } +// GetMigrateBucketCancelEventByBucketID get migrate bucket event by bucket id +func (b *BsDBImpl) GetMigrateBucketCancelEventByBucketID(bucketID common.Hash) (*EventCancelMigrationBucket, error) { + var ( + cancelEvents *EventCancelMigrationBucket + err error + ) + + err = b.db.Table((&EventCancelMigrationBucket{}).TableName()). + Select("*"). + Where("bucket_id = ?", bucketID). + Order("create_time desc"). + Take(&cancelEvents).Error + + return cancelEvents, err +} + // GetEventMigrationBucketByBucketID get migration bucket event by bucket id func (b *BsDBImpl) GetEventMigrationBucketByBucketID(bucketID common.Hash) (*EventMigrationBucket, error) { var ( diff --git a/store/bsdb/object.go b/store/bsdb/object.go index 6662682f1..bf9f5f73a 100644 --- a/store/bsdb/object.go +++ b/store/bsdb/object.go @@ -152,6 +152,62 @@ func (b *BsDBImpl) ListDeletedObjectsByBlockNumberRange(startBlockNumber int64, return totalObjects, err } +// ListObjectsByBlockNumberRange list objects info by a block number range +func (b *BsDBImpl) ListObjectsByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, includePrivate bool) ([]*Object, error) { + var ( + totalObjects []*Object + objects []*Object + err error + ) + startTime := time.Now() + methodName := currentFunction() + defer func() { + if err != nil { + MetadataDatabaseFailureMetrics(err, startTime, methodName) + } else { + MetadataDatabaseSuccessMetrics(startTime, methodName) + } + }() + + if includePrivate { + for i := 0; i < ObjectsNumberOfShards; i++ { + err = b.db.Table(GetObjectsTableNameByShardNumber(i)). + Select("*"). + Where("update_at >= ? and update_at <= ?", startBlockNumber, endBlockNumber). + Limit(DeletedObjectsDefaultSize). + Order("update_at,object_id asc"). + Find(&objects).Error + totalObjects = append(totalObjects, objects...) + } + } else { + for i := 0; i < ObjectsNumberOfShards; i++ { + objectTableName := GetObjectsTableNameByShardNumber(i) + joins := fmt.Sprintf("right join buckets on buckets.bucket_id = %s.bucket_id", objectTableName) + order := fmt.Sprintf("%s.update_at, %s.object_id asc", objectTableName, objectTableName) + where := fmt.Sprintf("%s.update_at >= ? and %s.update_at <= ? and "+ + "((%s.visibility='VISIBILITY_TYPE_PUBLIC_READ') or "+ + "(%s.visibility='VISIBILITY_TYPE_INHERIT' and buckets.visibility='VISIBILITY_TYPE_PUBLIC_READ'))", + objectTableName, objectTableName, objectTableName, objectTableName) + + err = b.db.Table(objectTableName). + Select(objectTableName+".*"). + Joins(joins). + Where(where, startBlockNumber, endBlockNumber). + Limit(ListObjectsDefaultSize). + Order(order). + Find(&objects).Error + totalObjects = append(totalObjects, objects...) + } + } + + sort.Sort(ByUpdateAtAndObjectID(totalObjects)) + + if len(totalObjects) > ListObjectsDefaultSize { + totalObjects = totalObjects[0:ListObjectsDefaultSize] + } + return totalObjects, err +} + // GetObjectByName get object info by an object name func (b *BsDBImpl) GetObjectByName(objectName string, bucketName string, includePrivate bool) (*Object, error) { var ( @@ -322,9 +378,11 @@ func (b *BsDBImpl) ListObjectsByGVGAndBucketForGC(bucketID common.Hash, gvgID ui gvgIDs []uint32 lvgIDs []uint32 completeEvent *EventCompleteMigrationBucket + cancelEvent *EventCancelMigrationBucket bucket *Bucket filters []func(*gorm.DB) *gorm.DB err error + createAt int64 ) startTime := time.Now() methodName := currentFunction() @@ -339,22 +397,35 @@ func (b *BsDBImpl) ListObjectsByGVGAndBucketForGC(bucketID common.Hash, gvgID ui gvgIDs = append(gvgIDs, gvgID) localGroups, err = b.ListLvgByGvgAndBucketID(bucketID, gvgIDs) - if err != nil || len(localGroups) == 0 { + if err != nil { return nil, nil, err } + log.Debugw("ListObjectsByGVGAndBucketForGC", "localGroups", localGroups, "error", err) + if len(localGroups) == 0 { + return nil, nil, gorm.ErrRecordNotFound + } + lvgIDs = make([]uint32, len(localGroups)) for i, group := range localGroups { lvgIDs[i] = group.LocalVirtualGroupId } completeEvent, err = b.GetMigrateBucketEventByBucketID(bucketID) - if err != nil { - return nil, nil, err + if err == nil { + createAt = completeEvent.CreateAt } - if completeEvent != nil { - filters = append(filters, CreateAtFilter(completeEvent.CreateAt)) + cancelEvent, err = b.GetMigrateBucketCancelEventByBucketID(bucketID) + if err == nil { + createAt = cancelEvent.CreateAt } + log.Debugw("ListObjectsByGVGAndBucketForGC", "createAt", createAt, "error", err) + + if createAt == 0 { + return nil, nil, err + } + + filters = append(filters, CreateAtFilter(createAt)) objects, bucket, err = b.ListObjectsByLVGID(lvgIDs, bucketID, startAfter, limit, filters...) return objects, bucket, err diff --git a/store/config/db_config.go b/store/config/db_config.go index 332cdb960..f6dabda3b 100644 --- a/store/config/db_config.go +++ b/store/config/db_config.go @@ -10,4 +10,6 @@ type SQLDBConfig struct { ConnMaxIdleTime int `comment:"optional"` MaxIdleConns int `comment:"optional"` MaxOpenConns int `comment:"optional"` + // whether enable trace PutEvent, use by spdb + EnableTracePutEvent bool `comment:"optional"` } diff --git a/store/sqldb/object_integrity.go b/store/sqldb/object_integrity.go index ce89567a6..7c3e86d96 100644 --- a/store/sqldb/object_integrity.go +++ b/store/sqldb/object_integrity.go @@ -4,6 +4,7 @@ import ( "encoding/hex" "errors" "fmt" + "sort" "time" "github.com/go-sql-driver/mysql" @@ -199,6 +200,78 @@ func (s *SpDBImpl) DeleteObjectIntegrity(objectID uint64, redundancyIndex int32) return err } +type ByRedundancyIndexAndObjectID []*corespdb.IntegrityMeta + +func (a ByRedundancyIndexAndObjectID) Len() int { return len(a) } + +// Less we want to sort as ascending here +func (a ByRedundancyIndexAndObjectID) Less(i, j int) bool { + if a[i].ObjectID == a[j].ObjectID { + return a[i].RedundancyIndex < a[j].RedundancyIndex + } + return a[i].ObjectID < a[j].ObjectID +} +func (a ByRedundancyIndexAndObjectID) Swap(i, j int) { a[i], a[j] = a[j], a[i] } + +// ListObjectsByBlockNumberRange list objects info by a block number range +func (s *SpDBImpl) ListObjectsByBlockNumberRange(startObjectID int64, endObjectID int64, includePrivate bool) ([]*corespdb.IntegrityMeta, error) { + var ( + totalObjects []*corespdb.IntegrityMeta + objects []*corespdb.IntegrityMeta + err error + ) + startTime := time.Now() + defer func() { + if err != nil { + metrics.SPDBCounter.WithLabelValues(SPDBFailureGetObjectIntegrity).Inc() + metrics.SPDBTime.WithLabelValues(SPDBFailureGetObjectIntegrity).Observe( + time.Since(startTime).Seconds()) + } else { + metrics.SPDBCounter.WithLabelValues(SPDBSuccessGetObjectIntegrity).Inc() + metrics.SPDBTime.WithLabelValues(SPDBSuccessGetObjectIntegrity).Observe( + time.Since(startTime).Seconds()) + } + }() + + if includePrivate { + for i := 0; i < IntegrityMetasNumberOfShards; i++ { + err = s.db.Table(GetIntegrityMetasTableNameByShardNumber(i)). + Select("*"). + Where("object_id >= ? and object_id <= ?", startObjectID, endObjectID). + Limit(ListObjectsDefaultSize). + Order("update_at,object_id asc"). + Find(&objects).Error + totalObjects = append(totalObjects, objects...) + } + } else { + for i := 0; i < IntegrityMetasNumberOfShards; i++ { + objectTableName := GetIntegrityMetasTableNameByShardNumber(i) + joins := fmt.Sprintf("right join buckets on buckets.bucket_id = %s.bucket_id", objectTableName) + order := fmt.Sprintf("%s.update_at, %s.object_id asc", objectTableName, objectTableName) + where := fmt.Sprintf("%s.update_at >= ? and %s.update_at <= ? and "+ + "((%s.visibility='VISIBILITY_TYPE_PUBLIC_READ') or "+ + "(%s.visibility='VISIBILITY_TYPE_INHERIT' and buckets.visibility='VISIBILITY_TYPE_PUBLIC_READ'))", + objectTableName, objectTableName, objectTableName, objectTableName) + + err = s.db.Table(objectTableName). + Select(objectTableName+".*"). + Joins(joins). + Where(where, startObjectID, endObjectID). + Limit(ListObjectsDefaultSize). + Order(order). + Find(&objects).Error + totalObjects = append(totalObjects, objects...) + } + } + + sort.Sort(ByRedundancyIndexAndObjectID(totalObjects)) + + if len(totalObjects) > ListObjectsDefaultSize { + totalObjects = totalObjects[0:ListObjectsDefaultSize] + } + return totalObjects, err +} + // UpdatePieceChecksum 1) If the IntegrityMetaTable does not exist, it will be created. // 2) If the IntegrityMetaTable already exists, it will be appended to the existing PieceChecksumList. func (s *SpDBImpl) UpdatePieceChecksum(objectID uint64, redundancyIndex int32, checksum []byte) (err error) { @@ -457,3 +530,44 @@ func (s *SpDBImpl) DeleteAllReplicatePieceChecksumOptimized(objectID uint64, red }).Error return err } + +// ListReplicatePieceChecksumByBlockNumberRange gets all replicate piece checksums for a given objectID and redundancyIdx. +func (s *SpDBImpl) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, objectID uint64, redundancyIdx int32, pieceCount uint32) ([]*corespdb.GCPieceMeta, error) { + var ( + err error + queryReturns []PieceHashTable + ) + startTime := time.Now() + defer func() { + if err != nil { + metrics.SPDBCounter.WithLabelValues(SPDBFailureGetAllReplicatePieceChecksum).Inc() + metrics.SPDBTime.WithLabelValues(SPDBFailureGetAllReplicatePieceChecksum).Observe( + time.Since(startTime).Seconds()) + return + } + metrics.SPDBCounter.WithLabelValues(SPDBSuccessGetAllReplicatePieceChecksum).Inc() + metrics.SPDBTime.WithLabelValues(SPDBSuccessGetAllReplicatePieceChecksum).Observe( + time.Since(startTime).Seconds()) + }() + + if err = s.db.Model(&PieceHashTable{}). + Where("object_id >= ? and object_id <= ?", startBlockNumber, endBlockNumber). + Limit(int(pieceCount)). + Find(&queryReturns).Error; err != nil { + return nil, err + } + + var pieceMetas []*corespdb.GCPieceMeta + + for _, queryReturn := range queryReturns { + pieceMeta := &corespdb.GCPieceMeta{ + ObjectID: queryReturn.ObjectID, + SegmentIndex: queryReturn.SegmentIndex, + RedundancyIndex: queryReturn.RedundancyIndex, + PieceChecksum: queryReturn.PieceChecksum, + } + pieceMetas = append(pieceMetas, pieceMeta) + } + + return pieceMetas, nil +} diff --git a/store/sqldb/object_integrity_schema.go b/store/sqldb/object_integrity_schema.go index ec2c87b87..1e07e123e 100644 --- a/store/sqldb/object_integrity_schema.go +++ b/store/sqldb/object_integrity_schema.go @@ -7,6 +7,7 @@ import ( const ( IntegrityMetasNumberOfShards = 64 ReasonableTableSize = 5_000_000 + ListObjectsDefaultSize = 1000 ) // PieceHashTable table schema diff --git a/store/sqldb/store.go b/store/sqldb/store.go index 313aba8ff..4d040fbd4 100644 --- a/store/sqldb/store.go +++ b/store/sqldb/store.go @@ -33,13 +33,16 @@ const ( DefaultMaxIdleConns = 2048 // DefaultMaxOpenConns defines the default max number of open connections. DefaultMaxOpenConns = 2048 + // DefaultEnableTracePutEvent defines the default max number of open connections. + DefaultEnableTracePutEvent = true ) var _ corespdb.SPDB = &SpDBImpl{} // SpDBImpl storage provider database, implements SPDB interface type SpDBImpl struct { - db *gorm.DB + db *gorm.DB + enableTracePutEvent bool } // NewSpDB return a database instance @@ -50,7 +53,7 @@ func NewSpDB(config *config.SQLDBConfig) (*SpDBImpl, error) { if err != nil { return nil, err } - return &SpDBImpl{db: db}, err + return &SpDBImpl{db: db, enableTracePutEvent: config.EnableTracePutEvent}, err } // RegisterStdDBStats registers std lib sql DB diff --git a/store/sqldb/traffic.go b/store/sqldb/traffic.go index d2fe67666..d70f40aef 100644 --- a/store/sqldb/traffic.go +++ b/store/sqldb/traffic.go @@ -451,6 +451,15 @@ func (s *SpDBImpl) UpdateBucketTraffic(bucketID uint64, update *corespdb.BucketT return nil } +// DeleteAllBucketTrafficExpired update the bucket traffic in traffic db with the new traffic +func (s *SpDBImpl) DeleteAllBucketTrafficExpired(yearMonth string) (err error) { + result := s.db.Where("YearMonth < ?", yearMonth).Delete(&BucketTrafficTable{}) + if result.Error != nil { + return fmt.Errorf("failed to delete bucket traffic record in subscribe progress table: %s, yearMonth:%s", result.Error, yearMonth) + } + return nil +} + // GetReadRecord return record list by time range func (s *SpDBImpl) GetReadRecord(timeRange *corespdb.TrafficTimeRange) (records []*corespdb.ReadRecord, err error) { var ( @@ -630,3 +639,12 @@ func (s *SpDBImpl) GetUserReadRecord(userAddress string, timeRange *corespdb.Tra } return records, nil } + +// DeleteAllReadRecordExpired update the bucket traffic in traffic db with the new traffic +func (s *SpDBImpl) DeleteAllReadRecordExpired(ts uint64) (err error) { + result := s.db.Where("read_timestamp_us < ?", ts).Delete(&corespdb.ReadRecord{}) + if result.Error != nil { + return fmt.Errorf("failed to delete read record in subscribe progress table: %s, yearMonth:%d", result.Error, ts) + } + return nil +} diff --git a/store/sqldb/upload_event.go b/store/sqldb/upload_event.go index 06a7118c9..7566670ca 100644 --- a/store/sqldb/upload_event.go +++ b/store/sqldb/upload_event.go @@ -8,6 +8,9 @@ import ( ) func (s *SpDBImpl) InsertPutEvent(task coretask.Task) error { + if !s.enableTracePutEvent { + return nil + } go func() { switch t := task.(type) { case *gfsptask.GfSpUploadObjectTask: From 2bf4a7bb53699a2a6991af5dc5a9e10b215fb78e Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Wed, 1 Nov 2023 10:28:11 +0800 Subject: [PATCH 02/10] feat: refactor gc zombie & gc meta & gc bucket migration --- base/gfspapp/app_options.go | 2 +- base/gfspapp/app_options_test.go | 17 +- base/gfspclient/interface_mock.go | 1104 ++++++++-------- base/gfspconfig/config.go | 43 +- base/types/gfsptask/gc.go | 41 +- base/types/gfsptask/migrate_gvg.go | 4 +- base/types/gfsptask/task.pb.go | 438 +++---- base/types/gfsptask/task_key.go | 5 +- core/module/modular_mock.go | 296 ++--- core/spdb/spdb.go | 8 +- core/spdb/spdb_mock.go | 296 +++-- core/task/task.go | 29 - core/task/task_mock.go | 1285 ++++++++++++++----- deployment/localup/localup.sh | 3 + modular/approver/approve_task.go | 26 +- modular/blocksyncer/blocksyncer_options.go | 2 +- modular/executor/execute_task.go | 440 ++++--- modular/executor/executor.go | 12 +- modular/executor/executor_options.go | 13 + modular/executor/migrate_task.go | 1 - modular/gater/migrate_handler.go | 14 +- modular/manager/bucket_migrate_scheduler.go | 18 +- modular/manager/manage_task.go | 98 +- modular/manager/manager.go | 59 +- modular/manager/manager_options.go | 38 +- modular/manager/migrate_service.go | 14 +- modular/metadata/types/metadata.pb.go | 695 +++++----- proto/base/types/gfsptask/task.proto | 12 +- store/sqldb/object_integrity.go | 41 +- store/sqldb/traffic.go | 10 +- 30 files changed, 2795 insertions(+), 2269 deletions(-) diff --git a/base/gfspapp/app_options.go b/base/gfspapp/app_options.go index 975fe3ce3..2b4a324d0 100644 --- a/base/gfspapp/app_options.go +++ b/base/gfspapp/app_options.go @@ -310,7 +310,6 @@ func defaultGfSpDB(cfg *config.SQLDBConfig) { if cfg.MaxOpenConns == 0 { cfg.MaxOpenConns = sqldb.DefaultMaxOpenConns } - cfg.EnableTracePutEvent = sqldb.DefaultEnableTracePutEvent if cfg.User == "" { cfg.User = "root" } @@ -323,6 +322,7 @@ func defaultGfSpDB(cfg *config.SQLDBConfig) { if cfg.Database == "" { cfg.Database = "storage_provider_db" } + cfg.EnableTracePutEvent = sqldb.DefaultEnableTracePutEvent } var bsdbOnce = sync.Once{} diff --git a/base/gfspapp/app_options_test.go b/base/gfspapp/app_options_test.go index cb3183f1c..62e71a9d1 100644 --- a/base/gfspapp/app_options_test.go +++ b/base/gfspapp/app_options_test.go @@ -67,14 +67,15 @@ func TestDefaultGfSpDBOptionFailure1(t *testing.T) { func Test_defaultGfSpDB(t *testing.T) { cfg := &config.SQLDBConfig{ - User: "", - Passwd: "", - Address: "", - Database: "", - ConnMaxLifetime: 0, - ConnMaxIdleTime: 0, - MaxIdleConns: 0, - MaxOpenConns: 0, + User: "", + Passwd: "", + Address: "", + Database: "", + ConnMaxLifetime: 0, + ConnMaxIdleTime: 0, + MaxIdleConns: 0, + MaxOpenConns: 0, + EnableTracePutEvent: true, } defaultGfSpDB(cfg) assert.Equal(t, "storage_provider_db", cfg.Database) diff --git a/base/gfspclient/interface_mock.go b/base/gfspclient/interface_mock.go index de2040931..60abd80cc 100644 --- a/base/gfspclient/interface_mock.go +++ b/base/gfspclient/interface_mock.go @@ -1,10 +1,6 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: ./interface.go -// -// Generated by this command: -// -// mockgen -source=./interface.go -destination=./interface_mock.go -package=gfspclient -// +// Source: base/gfspclient/interface.go + // Package gfspclient is a generated GoMock package. package gfspclient @@ -57,7 +53,7 @@ func (m *MockGfSpClientAPI) EXPECT() *MockGfSpClientAPIMockRecorder { // ApproverConn mocks base method. func (m *MockGfSpClientAPI) ApproverConn(ctx context.Context, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -68,9 +64,9 @@ func (m *MockGfSpClientAPI) ApproverConn(ctx context.Context, opts ...grpc.DialO } // ApproverConn indicates an expected call of ApproverConn. -func (mr *MockGfSpClientAPIMockRecorder) ApproverConn(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ApproverConn(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ApproverConn", reflect.TypeOf((*MockGfSpClientAPI)(nil).ApproverConn), varargs...) } @@ -85,7 +81,7 @@ func (m *MockGfSpClientAPI) AskCreateBucketApproval(ctx context.Context, t task. } // AskCreateBucketApproval indicates an expected call of AskCreateBucketApproval. -func (mr *MockGfSpClientAPIMockRecorder) AskCreateBucketApproval(ctx, t any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) AskCreateBucketApproval(ctx, t interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskCreateBucketApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).AskCreateBucketApproval), ctx, t) } @@ -101,7 +97,7 @@ func (m *MockGfSpClientAPI) AskCreateObjectApproval(ctx context.Context, t task. } // AskCreateObjectApproval indicates an expected call of AskCreateObjectApproval. -func (mr *MockGfSpClientAPIMockRecorder) AskCreateObjectApproval(ctx, t any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) AskCreateObjectApproval(ctx, t interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskCreateObjectApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).AskCreateObjectApproval), ctx, t) } @@ -117,7 +113,7 @@ func (m *MockGfSpClientAPI) AskMigrateBucketApproval(ctx context.Context, t task } // AskMigrateBucketApproval indicates an expected call of AskMigrateBucketApproval. -func (mr *MockGfSpClientAPIMockRecorder) AskMigrateBucketApproval(ctx, t any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) AskMigrateBucketApproval(ctx, t interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskMigrateBucketApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).AskMigrateBucketApproval), ctx, t) } @@ -132,7 +128,7 @@ func (m *MockGfSpClientAPI) AskSecondaryReplicatePieceApproval(ctx context.Conte } // AskSecondaryReplicatePieceApproval indicates an expected call of AskSecondaryReplicatePieceApproval. -func (mr *MockGfSpClientAPIMockRecorder) AskSecondaryReplicatePieceApproval(ctx, task, low, high, timeout any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) AskSecondaryReplicatePieceApproval(ctx, task, low, high, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskSecondaryReplicatePieceApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).AskSecondaryReplicatePieceApproval), ctx, task, low, high, timeout) } @@ -147,7 +143,7 @@ func (m *MockGfSpClientAPI) AskTask(ctx context.Context, limit rcmgr.Limit) (tas } // AskTask indicates an expected call of AskTask. -func (mr *MockGfSpClientAPIMockRecorder) AskTask(ctx, limit any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) AskTask(ctx, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskTask", reflect.TypeOf((*MockGfSpClientAPI)(nil).AskTask), ctx, limit) } @@ -176,7 +172,7 @@ func (m *MockGfSpClientAPI) CompleteMigrateBucket(ctx context.Context, migrateBu } // CompleteMigrateBucket indicates an expected call of CompleteMigrateBucket. -func (mr *MockGfSpClientAPIMockRecorder) CompleteMigrateBucket(ctx, migrateBucket any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) CompleteMigrateBucket(ctx, migrateBucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteMigrateBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).CompleteMigrateBucket), ctx, migrateBucket) } @@ -191,7 +187,7 @@ func (m *MockGfSpClientAPI) CompleteSPExit(ctx context.Context, completeSPExit * } // CompleteSPExit indicates an expected call of CompleteSPExit. -func (mr *MockGfSpClientAPIMockRecorder) CompleteSPExit(ctx, completeSPExit any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) CompleteSPExit(ctx, completeSPExit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteSPExit", reflect.TypeOf((*MockGfSpClientAPI)(nil).CompleteSPExit), ctx, completeSPExit) } @@ -206,7 +202,7 @@ func (m *MockGfSpClientAPI) CompleteSwapOut(ctx context.Context, completeSwapOut } // CompleteSwapOut indicates an expected call of CompleteSwapOut. -func (mr *MockGfSpClientAPIMockRecorder) CompleteSwapOut(ctx, completeSwapOut any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) CompleteSwapOut(ctx, completeSwapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteSwapOut", reflect.TypeOf((*MockGfSpClientAPI)(nil).CompleteSwapOut), ctx, completeSwapOut) } @@ -214,7 +210,7 @@ func (mr *MockGfSpClientAPIMockRecorder) CompleteSwapOut(ctx, completeSwapOut an // Connection mocks base method. func (m *MockGfSpClientAPI) Connection(ctx context.Context, address string, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx, address} + varargs := []interface{}{ctx, address} for _, a := range opts { varargs = append(varargs, a) } @@ -225,9 +221,9 @@ func (m *MockGfSpClientAPI) Connection(ctx context.Context, address string, opts } // Connection indicates an expected call of Connection. -func (mr *MockGfSpClientAPIMockRecorder) Connection(ctx, address any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) Connection(ctx, address interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, address}, opts...) + varargs := append([]interface{}{ctx, address}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Connection", reflect.TypeOf((*MockGfSpClientAPI)(nil).Connection), varargs...) } @@ -240,7 +236,7 @@ func (m *MockGfSpClientAPI) CreateGlobalVirtualGroup(ctx context.Context, group } // CreateGlobalVirtualGroup indicates an expected call of CreateGlobalVirtualGroup. -func (mr *MockGfSpClientAPIMockRecorder) CreateGlobalVirtualGroup(ctx, group any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) CreateGlobalVirtualGroup(ctx, group interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateGlobalVirtualGroup", reflect.TypeOf((*MockGfSpClientAPI)(nil).CreateGlobalVirtualGroup), ctx, group) } @@ -254,7 +250,7 @@ func (m *MockGfSpClientAPI) CreateResumableUploadObject(ctx context.Context, tas } // CreateResumableUploadObject indicates an expected call of CreateResumableUploadObject. -func (mr *MockGfSpClientAPIMockRecorder) CreateResumableUploadObject(ctx, task any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) CreateResumableUploadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateResumableUploadObject", reflect.TypeOf((*MockGfSpClientAPI)(nil).CreateResumableUploadObject), ctx, task) } @@ -268,7 +264,7 @@ func (m *MockGfSpClientAPI) CreateUploadObject(ctx context.Context, task task.Up } // CreateUploadObject indicates an expected call of CreateUploadObject. -func (mr *MockGfSpClientAPIMockRecorder) CreateUploadObject(ctx, task any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) CreateUploadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUploadObject", reflect.TypeOf((*MockGfSpClientAPI)(nil).CreateUploadObject), ctx, task) } @@ -276,7 +272,7 @@ func (mr *MockGfSpClientAPIMockRecorder) CreateUploadObject(ctx, task any) *gomo // DeductQuotaForBucketMigrate mocks base method. func (m *MockGfSpClientAPI) DeductQuotaForBucketMigrate(ctx context.Context, bucketID, deductQuota uint64, yearMonth string, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, deductQuota, yearMonth} + varargs := []interface{}{ctx, bucketID, deductQuota, yearMonth} for _, a := range opts { varargs = append(varargs, a) } @@ -286,9 +282,9 @@ func (m *MockGfSpClientAPI) DeductQuotaForBucketMigrate(ctx context.Context, buc } // DeductQuotaForBucketMigrate indicates an expected call of DeductQuotaForBucketMigrate. -func (mr *MockGfSpClientAPIMockRecorder) DeductQuotaForBucketMigrate(ctx, bucketID, deductQuota, yearMonth any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) DeductQuotaForBucketMigrate(ctx, bucketID, deductQuota, yearMonth interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, deductQuota, yearMonth}, opts...) + varargs := append([]interface{}{ctx, bucketID, deductQuota, yearMonth}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeductQuotaForBucketMigrate", reflect.TypeOf((*MockGfSpClientAPI)(nil).DeductQuotaForBucketMigrate), varargs...) } @@ -302,7 +298,7 @@ func (m *MockGfSpClientAPI) DiscontinueBucket(ctx context.Context, bucket *types } // DiscontinueBucket indicates an expected call of DiscontinueBucket. -func (mr *MockGfSpClientAPIMockRecorder) DiscontinueBucket(ctx, bucket any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) DiscontinueBucket(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DiscontinueBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).DiscontinueBucket), ctx, bucket) } @@ -310,7 +306,7 @@ func (mr *MockGfSpClientAPIMockRecorder) DiscontinueBucket(ctx, bucket any) *gom // DoneReplicatePiece mocks base method. func (m *MockGfSpClientAPI) DoneReplicatePiece(ctx context.Context, task task.ReceivePieceTask, opts ...grpc.DialOption) ([]byte, []byte, error) { m.ctrl.T.Helper() - varargs := []any{ctx, task} + varargs := []interface{}{ctx, task} for _, a := range opts { varargs = append(varargs, a) } @@ -322,9 +318,9 @@ func (m *MockGfSpClientAPI) DoneReplicatePiece(ctx context.Context, task task.Re } // DoneReplicatePiece indicates an expected call of DoneReplicatePiece. -func (mr *MockGfSpClientAPIMockRecorder) DoneReplicatePiece(ctx, task any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) DoneReplicatePiece(ctx, task interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, task}, opts...) + varargs := append([]interface{}{ctx, task}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DoneReplicatePiece", reflect.TypeOf((*MockGfSpClientAPI)(nil).DoneReplicatePiece), varargs...) } @@ -338,7 +334,7 @@ func (m *MockGfSpClientAPI) DoneReplicatePieceToSecondary(ctx context.Context, e } // DoneReplicatePieceToSecondary indicates an expected call of DoneReplicatePieceToSecondary. -func (mr *MockGfSpClientAPIMockRecorder) DoneReplicatePieceToSecondary(ctx, endpoint, receive any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) DoneReplicatePieceToSecondary(ctx, endpoint, receive interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DoneReplicatePieceToSecondary", reflect.TypeOf((*MockGfSpClientAPI)(nil).DoneReplicatePieceToSecondary), ctx, endpoint, receive) } @@ -346,7 +342,7 @@ func (mr *MockGfSpClientAPIMockRecorder) DoneReplicatePieceToSecondary(ctx, endp // GetAuthNonce mocks base method. func (m *MockGfSpClientAPI) GetAuthNonce(ctx context.Context, account, domain string, opts ...grpc.DialOption) (int32, int32, string, int64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, domain} + varargs := []interface{}{ctx, account, domain} for _, a := range opts { varargs = append(varargs, a) } @@ -360,16 +356,16 @@ func (m *MockGfSpClientAPI) GetAuthNonce(ctx context.Context, account, domain st } // GetAuthNonce indicates an expected call of GetAuthNonce. -func (mr *MockGfSpClientAPIMockRecorder) GetAuthNonce(ctx, account, domain any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetAuthNonce(ctx, account, domain interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, domain}, opts...) + varargs := append([]interface{}{ctx, account, domain}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthNonce", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetAuthNonce), varargs...) } // GetBucketByBucketID mocks base method. func (m *MockGfSpClientAPI) GetBucketByBucketID(ctx context.Context, bucketID int64, includePrivate bool, opts ...grpc.DialOption) (*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, includePrivate} + varargs := []interface{}{ctx, bucketID, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -380,16 +376,16 @@ func (m *MockGfSpClientAPI) GetBucketByBucketID(ctx context.Context, bucketID in } // GetBucketByBucketID indicates an expected call of GetBucketByBucketID. -func (mr *MockGfSpClientAPIMockRecorder) GetBucketByBucketID(ctx, bucketID, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetBucketByBucketID(ctx, bucketID, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketID, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByBucketID", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetBucketByBucketID), varargs...) } // GetBucketByBucketName mocks base method. func (m *MockGfSpClientAPI) GetBucketByBucketName(ctx context.Context, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketName, includePrivate} + varargs := []interface{}{ctx, bucketName, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -400,16 +396,16 @@ func (m *MockGfSpClientAPI) GetBucketByBucketName(ctx context.Context, bucketNam } // GetBucketByBucketName indicates an expected call of GetBucketByBucketName. -func (mr *MockGfSpClientAPIMockRecorder) GetBucketByBucketName(ctx, bucketName, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetBucketByBucketName(ctx, bucketName, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketName, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketName, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByBucketName", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetBucketByBucketName), varargs...) } // GetBucketMeta mocks base method. func (m *MockGfSpClientAPI) GetBucketMeta(ctx context.Context, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types.VGFInfoBucket, *types0.StreamRecord, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketName, includePrivate} + varargs := []interface{}{ctx, bucketName, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -421,16 +417,16 @@ func (m *MockGfSpClientAPI) GetBucketMeta(ctx context.Context, bucketName string } // GetBucketMeta indicates an expected call of GetBucketMeta. -func (mr *MockGfSpClientAPIMockRecorder) GetBucketMeta(ctx, bucketName, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetBucketMeta(ctx, bucketName, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketName, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketName, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketMeta", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetBucketMeta), varargs...) } // GetBucketReadQuota mocks base method. func (m *MockGfSpClientAPI) GetBucketReadQuota(ctx context.Context, bucket *types3.BucketInfo, yearMonth string, opts ...grpc.DialOption) (uint64, uint64, uint64, uint64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucket, yearMonth} + varargs := []interface{}{ctx, bucket, yearMonth} for _, a := range opts { varargs = append(varargs, a) } @@ -444,16 +440,16 @@ func (m *MockGfSpClientAPI) GetBucketReadQuota(ctx context.Context, bucket *type } // GetBucketReadQuota indicates an expected call of GetBucketReadQuota. -func (mr *MockGfSpClientAPIMockRecorder) GetBucketReadQuota(ctx, bucket, yearMonth any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetBucketReadQuota(ctx, bucket, yearMonth interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucket, yearMonth}, opts...) + varargs := append([]interface{}{ctx, bucket, yearMonth}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketReadQuota", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetBucketReadQuota), varargs...) } // GetBucketSize mocks base method. func (m *MockGfSpClientAPI) GetBucketSize(ctx context.Context, bucketID uint64, opts ...grpc.DialOption) (string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID} + varargs := []interface{}{ctx, bucketID} for _, a := range opts { varargs = append(varargs, a) } @@ -464,16 +460,16 @@ func (m *MockGfSpClientAPI) GetBucketSize(ctx context.Context, bucketID uint64, } // GetBucketSize indicates an expected call of GetBucketSize. -func (mr *MockGfSpClientAPIMockRecorder) GetBucketSize(ctx, bucketID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetBucketSize(ctx, bucketID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID}, opts...) + varargs := append([]interface{}{ctx, bucketID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketSize", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetBucketSize), varargs...) } // GetChallengeInfo mocks base method. func (m *MockGfSpClientAPI) GetChallengeInfo(ctx context.Context, challengePieceTask task.ChallengePieceTask, opts ...grpc.DialOption) ([]byte, [][]byte, []byte, error) { m.ctrl.T.Helper() - varargs := []any{ctx, challengePieceTask} + varargs := []interface{}{ctx, challengePieceTask} for _, a := range opts { varargs = append(varargs, a) } @@ -486,16 +482,16 @@ func (m *MockGfSpClientAPI) GetChallengeInfo(ctx context.Context, challengePiece } // GetChallengeInfo indicates an expected call of GetChallengeInfo. -func (mr *MockGfSpClientAPIMockRecorder) GetChallengeInfo(ctx, challengePieceTask any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetChallengeInfo(ctx, challengePieceTask interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, challengePieceTask}, opts...) + varargs := append([]interface{}{ctx, challengePieceTask}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetChallengeInfo", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetChallengeInfo), varargs...) } // GetEndpointBySpID mocks base method. func (m *MockGfSpClientAPI) GetEndpointBySpID(ctx context.Context, spID uint32, opts ...grpc.DialOption) (string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -506,16 +502,16 @@ func (m *MockGfSpClientAPI) GetEndpointBySpID(ctx context.Context, spID uint32, } // GetEndpointBySpID indicates an expected call of GetEndpointBySpID. -func (mr *MockGfSpClientAPIMockRecorder) GetEndpointBySpID(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetEndpointBySpID(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEndpointBySpID", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetEndpointBySpID), varargs...) } // GetGlobalVirtualGroup mocks base method. func (m *MockGfSpClientAPI) GetGlobalVirtualGroup(ctx context.Context, bucketID uint64, lvgID uint32, opts ...grpc.DialOption) (*types4.GlobalVirtualGroup, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, lvgID} + varargs := []interface{}{ctx, bucketID, lvgID} for _, a := range opts { varargs = append(varargs, a) } @@ -526,16 +522,16 @@ func (m *MockGfSpClientAPI) GetGlobalVirtualGroup(ctx context.Context, bucketID } // GetGlobalVirtualGroup indicates an expected call of GetGlobalVirtualGroup. -func (mr *MockGfSpClientAPIMockRecorder) GetGlobalVirtualGroup(ctx, bucketID, lvgID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetGlobalVirtualGroup(ctx, bucketID, lvgID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, lvgID}, opts...) + varargs := append([]interface{}{ctx, bucketID, lvgID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalVirtualGroup", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetGlobalVirtualGroup), varargs...) } // GetGlobalVirtualGroupByGvgID mocks base method. func (m *MockGfSpClientAPI) GetGlobalVirtualGroupByGvgID(ctx context.Context, gvgID uint32, opts ...grpc.DialOption) (*types4.GlobalVirtualGroup, error) { m.ctrl.T.Helper() - varargs := []any{ctx, gvgID} + varargs := []interface{}{ctx, gvgID} for _, a := range opts { varargs = append(varargs, a) } @@ -546,16 +542,16 @@ func (m *MockGfSpClientAPI) GetGlobalVirtualGroupByGvgID(ctx context.Context, gv } // GetGlobalVirtualGroupByGvgID indicates an expected call of GetGlobalVirtualGroupByGvgID. -func (mr *MockGfSpClientAPIMockRecorder) GetGlobalVirtualGroupByGvgID(ctx, gvgID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetGlobalVirtualGroupByGvgID(ctx, gvgID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, gvgID}, opts...) + varargs := append([]interface{}{ctx, gvgID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalVirtualGroupByGvgID", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetGlobalVirtualGroupByGvgID), varargs...) } // GetGroupList mocks base method. func (m *MockGfSpClientAPI) GetGroupList(ctx context.Context, name, prefix, sourceType string, limit, offset int64, includeRemoved bool, opts ...grpc.DialOption) ([]*types.Group, int64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, name, prefix, sourceType, limit, offset, includeRemoved} + varargs := []interface{}{ctx, name, prefix, sourceType, limit, offset, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -567,16 +563,16 @@ func (m *MockGfSpClientAPI) GetGroupList(ctx context.Context, name, prefix, sour } // GetGroupList indicates an expected call of GetGroupList. -func (mr *MockGfSpClientAPIMockRecorder) GetGroupList(ctx, name, prefix, sourceType, limit, offset, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetGroupList(ctx, name, prefix, sourceType, limit, offset, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, name, prefix, sourceType, limit, offset, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, name, prefix, sourceType, limit, offset, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupList", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetGroupList), varargs...) } // GetGroupMembers mocks base method. func (m *MockGfSpClientAPI) GetGroupMembers(ctx context.Context, groupID uint64, startAfter string, limit uint32, opts ...grpc.DialOption) ([]*types.GroupMember, error) { m.ctrl.T.Helper() - varargs := []any{ctx, groupID, startAfter, limit} + varargs := []interface{}{ctx, groupID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -587,16 +583,16 @@ func (m *MockGfSpClientAPI) GetGroupMembers(ctx context.Context, groupID uint64, } // GetGroupMembers indicates an expected call of GetGroupMembers. -func (mr *MockGfSpClientAPIMockRecorder) GetGroupMembers(ctx, groupID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetGroupMembers(ctx, groupID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, groupID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, groupID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembers", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetGroupMembers), varargs...) } // GetLatestBucketReadQuota mocks base method. func (m *MockGfSpClientAPI) GetLatestBucketReadQuota(ctx context.Context, bucketID uint64, opts ...grpc.DialOption) (gfsptask.GfSpBucketQuotaInfo, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID} + varargs := []interface{}{ctx, bucketID} for _, a := range opts { varargs = append(varargs, a) } @@ -607,16 +603,16 @@ func (m *MockGfSpClientAPI) GetLatestBucketReadQuota(ctx context.Context, bucket } // GetLatestBucketReadQuota indicates an expected call of GetLatestBucketReadQuota. -func (mr *MockGfSpClientAPIMockRecorder) GetLatestBucketReadQuota(ctx, bucketID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetLatestBucketReadQuota(ctx, bucketID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID}, opts...) + varargs := append([]interface{}{ctx, bucketID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestBucketReadQuota", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetLatestBucketReadQuota), varargs...) } // GetObject mocks base method. func (m *MockGfSpClientAPI) GetObject(ctx context.Context, downloadObjectTask task.DownloadObjectTask, opts ...grpc.DialOption) ([]byte, error) { m.ctrl.T.Helper() - varargs := []any{ctx, downloadObjectTask} + varargs := []interface{}{ctx, downloadObjectTask} for _, a := range opts { varargs = append(varargs, a) } @@ -627,16 +623,16 @@ func (m *MockGfSpClientAPI) GetObject(ctx context.Context, downloadObjectTask ta } // GetObject indicates an expected call of GetObject. -func (mr *MockGfSpClientAPIMockRecorder) GetObject(ctx, downloadObjectTask any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetObject(ctx, downloadObjectTask interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, downloadObjectTask}, opts...) + varargs := append([]interface{}{ctx, downloadObjectTask}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObject", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetObject), varargs...) } // GetObjectByID mocks base method. func (m *MockGfSpClientAPI) GetObjectByID(ctx context.Context, objectID uint64, opts ...grpc.DialOption) (*types3.ObjectInfo, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectID} + varargs := []interface{}{ctx, objectID} for _, a := range opts { varargs = append(varargs, a) } @@ -647,16 +643,16 @@ func (m *MockGfSpClientAPI) GetObjectByID(ctx context.Context, objectID uint64, } // GetObjectByID indicates an expected call of GetObjectByID. -func (mr *MockGfSpClientAPIMockRecorder) GetObjectByID(ctx, objectID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetObjectByID(ctx, objectID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectID}, opts...) + varargs := append([]interface{}{ctx, objectID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectByID", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetObjectByID), varargs...) } // GetObjectMeta mocks base method. func (m *MockGfSpClientAPI) GetObjectMeta(ctx context.Context, objectName, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types.Object, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectName, bucketName, includePrivate} + varargs := []interface{}{ctx, objectName, bucketName, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -667,16 +663,16 @@ func (m *MockGfSpClientAPI) GetObjectMeta(ctx context.Context, objectName, bucke } // GetObjectMeta indicates an expected call of GetObjectMeta. -func (mr *MockGfSpClientAPIMockRecorder) GetObjectMeta(ctx, objectName, bucketName, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetObjectMeta(ctx, objectName, bucketName, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectName, bucketName, includePrivate}, opts...) + varargs := append([]interface{}{ctx, objectName, bucketName, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectMeta", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetObjectMeta), varargs...) } // GetPaymentByBucketID mocks base method. func (m *MockGfSpClientAPI) GetPaymentByBucketID(ctx context.Context, bucketID int64, includePrivate bool, opts ...grpc.DialOption) (*types0.StreamRecord, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, includePrivate} + varargs := []interface{}{ctx, bucketID, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -687,16 +683,16 @@ func (m *MockGfSpClientAPI) GetPaymentByBucketID(ctx context.Context, bucketID i } // GetPaymentByBucketID indicates an expected call of GetPaymentByBucketID. -func (mr *MockGfSpClientAPIMockRecorder) GetPaymentByBucketID(ctx, bucketID, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetPaymentByBucketID(ctx, bucketID, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketID, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByBucketID", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetPaymentByBucketID), varargs...) } // GetPaymentByBucketName mocks base method. func (m *MockGfSpClientAPI) GetPaymentByBucketName(ctx context.Context, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types0.StreamRecord, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketName, includePrivate} + varargs := []interface{}{ctx, bucketName, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -707,16 +703,16 @@ func (m *MockGfSpClientAPI) GetPaymentByBucketName(ctx context.Context, bucketNa } // GetPaymentByBucketName indicates an expected call of GetPaymentByBucketName. -func (mr *MockGfSpClientAPIMockRecorder) GetPaymentByBucketName(ctx, bucketName, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetPaymentByBucketName(ctx, bucketName, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketName, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketName, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByBucketName", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetPaymentByBucketName), varargs...) } // GetPiece mocks base method. func (m *MockGfSpClientAPI) GetPiece(ctx context.Context, downloadPieceTask task.DownloadPieceTask, opts ...grpc.DialOption) ([]byte, error) { m.ctrl.T.Helper() - varargs := []any{ctx, downloadPieceTask} + varargs := []interface{}{ctx, downloadPieceTask} for _, a := range opts { varargs = append(varargs, a) } @@ -727,9 +723,9 @@ func (m *MockGfSpClientAPI) GetPiece(ctx context.Context, downloadPieceTask task } // GetPiece indicates an expected call of GetPiece. -func (mr *MockGfSpClientAPIMockRecorder) GetPiece(ctx, downloadPieceTask any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetPiece(ctx, downloadPieceTask interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, downloadPieceTask}, opts...) + varargs := append([]interface{}{ctx, downloadPieceTask}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPiece", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetPiece), varargs...) } @@ -743,7 +739,7 @@ func (m *MockGfSpClientAPI) GetPieceFromECChunks(ctx context.Context, endpoint s } // GetPieceFromECChunks indicates an expected call of GetPieceFromECChunks. -func (mr *MockGfSpClientAPIMockRecorder) GetPieceFromECChunks(ctx, endpoint, task any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetPieceFromECChunks(ctx, endpoint, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPieceFromECChunks", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetPieceFromECChunks), ctx, endpoint, task) } @@ -751,7 +747,7 @@ func (mr *MockGfSpClientAPIMockRecorder) GetPieceFromECChunks(ctx, endpoint, tas // GetSPInfo mocks base method. func (m *MockGfSpClientAPI) GetSPInfo(ctx context.Context, operatorAddress string, opts ...grpc.DialOption) (*types2.StorageProvider, error) { m.ctrl.T.Helper() - varargs := []any{ctx, operatorAddress} + varargs := []interface{}{ctx, operatorAddress} for _, a := range opts { varargs = append(varargs, a) } @@ -762,16 +758,16 @@ func (m *MockGfSpClientAPI) GetSPInfo(ctx context.Context, operatorAddress strin } // GetSPInfo indicates an expected call of GetSPInfo. -func (mr *MockGfSpClientAPIMockRecorder) GetSPInfo(ctx, operatorAddress any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetSPInfo(ctx, operatorAddress interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, operatorAddress}, opts...) + varargs := append([]interface{}{ctx, operatorAddress}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSPInfo", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetSPInfo), varargs...) } // GetSPMigratingBucketNumber mocks base method. func (m *MockGfSpClientAPI) GetSPMigratingBucketNumber(ctx context.Context, spID uint32, opts ...grpc.DialOption) (uint64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -782,9 +778,9 @@ func (m *MockGfSpClientAPI) GetSPMigratingBucketNumber(ctx context.Context, spID } // GetSPMigratingBucketNumber indicates an expected call of GetSPMigratingBucketNumber. -func (mr *MockGfSpClientAPIMockRecorder) GetSPMigratingBucketNumber(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetSPMigratingBucketNumber(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSPMigratingBucketNumber", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetSPMigratingBucketNumber), varargs...) } @@ -798,7 +794,7 @@ func (m *MockGfSpClientAPI) GetSecondarySPMigrationBucketApproval(ctx context.Co } // GetSecondarySPMigrationBucketApproval indicates an expected call of GetSecondarySPMigrationBucketApproval. -func (mr *MockGfSpClientAPIMockRecorder) GetSecondarySPMigrationBucketApproval(ctx, secondarySPEndpoint, signDoc any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetSecondarySPMigrationBucketApproval(ctx, secondarySPEndpoint, signDoc interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecondarySPMigrationBucketApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetSecondarySPMigrationBucketApproval), ctx, secondarySPEndpoint, signDoc) } @@ -806,7 +802,7 @@ func (mr *MockGfSpClientAPIMockRecorder) GetSecondarySPMigrationBucketApproval(c // GetStatus mocks base method. func (m *MockGfSpClientAPI) GetStatus(ctx context.Context, opts ...grpc.DialOption) (*types.Status, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -817,9 +813,9 @@ func (m *MockGfSpClientAPI) GetStatus(ctx context.Context, opts ...grpc.DialOpti } // GetStatus indicates an expected call of GetStatus. -func (mr *MockGfSpClientAPIMockRecorder) GetStatus(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetStatus(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStatus", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetStatus), varargs...) } @@ -833,7 +829,7 @@ func (m *MockGfSpClientAPI) GetSwapOutApproval(ctx context.Context, destSPEndpoi } // GetSwapOutApproval indicates an expected call of GetSwapOutApproval. -func (mr *MockGfSpClientAPIMockRecorder) GetSwapOutApproval(ctx, destSPEndpoint, swapOutApproval any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetSwapOutApproval(ctx, destSPEndpoint, swapOutApproval interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSwapOutApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetSwapOutApproval), ctx, destSPEndpoint, swapOutApproval) } @@ -848,7 +844,7 @@ func (m *MockGfSpClientAPI) GetTasksStats(ctx context.Context) (*gfspserver.Task } // GetTasksStats indicates an expected call of GetTasksStats. -func (mr *MockGfSpClientAPIMockRecorder) GetTasksStats(ctx any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetTasksStats(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTasksStats", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetTasksStats), ctx) } @@ -856,7 +852,7 @@ func (mr *MockGfSpClientAPIMockRecorder) GetTasksStats(ctx any) *gomock.Call { // GetUploadObjectSegment mocks base method. func (m *MockGfSpClientAPI) GetUploadObjectSegment(ctx context.Context, objectID uint64, opts ...grpc.DialOption) (uint32, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectID} + varargs := []interface{}{ctx, objectID} for _, a := range opts { varargs = append(varargs, a) } @@ -867,16 +863,16 @@ func (m *MockGfSpClientAPI) GetUploadObjectSegment(ctx context.Context, objectID } // GetUploadObjectSegment indicates an expected call of GetUploadObjectSegment. -func (mr *MockGfSpClientAPIMockRecorder) GetUploadObjectSegment(ctx, objectID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetUploadObjectSegment(ctx, objectID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectID}, opts...) + varargs := append([]interface{}{ctx, objectID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadObjectSegment", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetUploadObjectSegment), varargs...) } // GetUploadObjectState mocks base method. func (m *MockGfSpClientAPI) GetUploadObjectState(ctx context.Context, objectID uint64, opts ...grpc.DialOption) (int32, string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectID} + varargs := []interface{}{ctx, objectID} for _, a := range opts { varargs = append(varargs, a) } @@ -888,16 +884,16 @@ func (m *MockGfSpClientAPI) GetUploadObjectState(ctx context.Context, objectID u } // GetUploadObjectState indicates an expected call of GetUploadObjectState. -func (mr *MockGfSpClientAPIMockRecorder) GetUploadObjectState(ctx, objectID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetUploadObjectState(ctx, objectID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectID}, opts...) + varargs := append([]interface{}{ctx, objectID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadObjectState", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetUploadObjectState), varargs...) } // GetUserBuckets mocks base method. func (m *MockGfSpClientAPI) GetUserBuckets(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.VGFInfoBucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, includeRemoved} + varargs := []interface{}{ctx, account, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -908,16 +904,16 @@ func (m *MockGfSpClientAPI) GetUserBuckets(ctx context.Context, account string, } // GetUserBuckets indicates an expected call of GetUserBuckets. -func (mr *MockGfSpClientAPIMockRecorder) GetUserBuckets(ctx, account, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetUserBuckets(ctx, account, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, account, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserBuckets", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetUserBuckets), varargs...) } // GetUserBucketsCount mocks base method. func (m *MockGfSpClientAPI) GetUserBucketsCount(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) (int64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, includeRemoved} + varargs := []interface{}{ctx, account, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -928,16 +924,16 @@ func (m *MockGfSpClientAPI) GetUserBucketsCount(ctx context.Context, account str } // GetUserBucketsCount indicates an expected call of GetUserBucketsCount. -func (mr *MockGfSpClientAPIMockRecorder) GetUserBucketsCount(ctx, account, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetUserBucketsCount(ctx, account, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, account, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserBucketsCount", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetUserBucketsCount), varargs...) } // GetUserGroups mocks base method. func (m *MockGfSpClientAPI) GetUserGroups(ctx context.Context, accountID string, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.GroupMember, error) { m.ctrl.T.Helper() - varargs := []any{ctx, accountID, startAfter, limit} + varargs := []interface{}{ctx, accountID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -948,16 +944,16 @@ func (m *MockGfSpClientAPI) GetUserGroups(ctx context.Context, accountID string, } // GetUserGroups indicates an expected call of GetUserGroups. -func (mr *MockGfSpClientAPIMockRecorder) GetUserGroups(ctx, accountID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetUserGroups(ctx, accountID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, accountID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, accountID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserGroups", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetUserGroups), varargs...) } // GetUserOwnedGroups mocks base method. func (m *MockGfSpClientAPI) GetUserOwnedGroups(ctx context.Context, accountID string, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.GroupMember, error) { m.ctrl.T.Helper() - varargs := []any{ctx, accountID, startAfter, limit} + varargs := []interface{}{ctx, accountID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -968,16 +964,16 @@ func (m *MockGfSpClientAPI) GetUserOwnedGroups(ctx context.Context, accountID st } // GetUserOwnedGroups indicates an expected call of GetUserOwnedGroups. -func (mr *MockGfSpClientAPIMockRecorder) GetUserOwnedGroups(ctx, accountID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetUserOwnedGroups(ctx, accountID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, accountID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, accountID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserOwnedGroups", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetUserOwnedGroups), varargs...) } // GetVirtualGroupFamily mocks base method. func (m *MockGfSpClientAPI) GetVirtualGroupFamily(ctx context.Context, vgfID uint32, opts ...grpc.DialOption) (*types4.GlobalVirtualGroupFamily, error) { m.ctrl.T.Helper() - varargs := []any{ctx, vgfID} + varargs := []interface{}{ctx, vgfID} for _, a := range opts { varargs = append(varargs, a) } @@ -988,9 +984,9 @@ func (m *MockGfSpClientAPI) GetVirtualGroupFamily(ctx context.Context, vgfID uin } // GetVirtualGroupFamily indicates an expected call of GetVirtualGroupFamily. -func (mr *MockGfSpClientAPIMockRecorder) GetVirtualGroupFamily(ctx, vgfID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) GetVirtualGroupFamily(ctx, vgfID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, vgfID}, opts...) + varargs := append([]interface{}{ctx, vgfID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualGroupFamily", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetVirtualGroupFamily), varargs...) } @@ -1003,7 +999,7 @@ func (m *MockGfSpClientAPI) HTTPClient(ctx context.Context) *http.Client { } // HTTPClient indicates an expected call of HTTPClient. -func (mr *MockGfSpClientAPIMockRecorder) HTTPClient(ctx any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) HTTPClient(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HTTPClient", reflect.TypeOf((*MockGfSpClientAPI)(nil).HTTPClient), ctx) } @@ -1011,7 +1007,7 @@ func (mr *MockGfSpClientAPIMockRecorder) HTTPClient(ctx any) *gomock.Call { // ListBucketReadRecord mocks base method. func (m *MockGfSpClientAPI) ListBucketReadRecord(ctx context.Context, bucket *types3.BucketInfo, startTimestampUs, endTimestampUs, maxRecordNum int64, opts ...grpc.DialOption) ([]*types.ReadRecord, int64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum} + varargs := []interface{}{ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum} for _, a := range opts { varargs = append(varargs, a) } @@ -1023,16 +1019,16 @@ func (m *MockGfSpClientAPI) ListBucketReadRecord(ctx context.Context, bucket *ty } // ListBucketReadRecord indicates an expected call of ListBucketReadRecord. -func (mr *MockGfSpClientAPIMockRecorder) ListBucketReadRecord(ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListBucketReadRecord(ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum}, opts...) + varargs := append([]interface{}{ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketReadRecord", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListBucketReadRecord), varargs...) } // ListBucketsByIDs mocks base method. func (m *MockGfSpClientAPI) ListBucketsByIDs(ctx context.Context, bucketIDs []uint64, includeRemoved bool, opts ...grpc.DialOption) (map[uint64]*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketIDs, includeRemoved} + varargs := []interface{}{ctx, bucketIDs, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -1043,16 +1039,16 @@ func (m *MockGfSpClientAPI) ListBucketsByIDs(ctx context.Context, bucketIDs []ui } // ListBucketsByIDs indicates an expected call of ListBucketsByIDs. -func (mr *MockGfSpClientAPIMockRecorder) ListBucketsByIDs(ctx, bucketIDs, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListBucketsByIDs(ctx, bucketIDs, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketIDs, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, bucketIDs, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketsByIDs", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListBucketsByIDs), varargs...) } // ListDeletedObjectsByBlockNumberRange mocks base method. func (m *MockGfSpClientAPI) ListDeletedObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate} + varargs := []interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -1064,16 +1060,16 @@ func (m *MockGfSpClientAPI) ListDeletedObjectsByBlockNumberRange(ctx context.Con } // ListDeletedObjectsByBlockNumberRange indicates an expected call of ListDeletedObjectsByBlockNumberRange. -func (mr *MockGfSpClientAPIMockRecorder) ListDeletedObjectsByBlockNumberRange(ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListDeletedObjectsByBlockNumberRange(ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate}, opts...) + varargs := append([]interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDeletedObjectsByBlockNumberRange", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListDeletedObjectsByBlockNumberRange), varargs...) } // ListExpiredBucketsBySp mocks base method. func (m *MockGfSpClientAPI) ListExpiredBucketsBySp(ctx context.Context, createAt int64, primarySpID uint32, limit int64, opts ...grpc.DialOption) ([]*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, createAt, primarySpID, limit} + varargs := []interface{}{ctx, createAt, primarySpID, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -1084,16 +1080,16 @@ func (m *MockGfSpClientAPI) ListExpiredBucketsBySp(ctx context.Context, createAt } // ListExpiredBucketsBySp indicates an expected call of ListExpiredBucketsBySp. -func (mr *MockGfSpClientAPIMockRecorder) ListExpiredBucketsBySp(ctx, createAt, primarySpID, limit any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListExpiredBucketsBySp(ctx, createAt, primarySpID, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, createAt, primarySpID, limit}, opts...) + varargs := append([]interface{}{ctx, createAt, primarySpID, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListExpiredBucketsBySp", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListExpiredBucketsBySp), varargs...) } // ListGlobalVirtualGroupsByBucket mocks base method. func (m *MockGfSpClientAPI) ListGlobalVirtualGroupsByBucket(ctx context.Context, bucketID uint64, opts ...grpc.DialOption) ([]*types4.GlobalVirtualGroup, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID} + varargs := []interface{}{ctx, bucketID} for _, a := range opts { varargs = append(varargs, a) } @@ -1104,16 +1100,16 @@ func (m *MockGfSpClientAPI) ListGlobalVirtualGroupsByBucket(ctx context.Context, } // ListGlobalVirtualGroupsByBucket indicates an expected call of ListGlobalVirtualGroupsByBucket. -func (mr *MockGfSpClientAPIMockRecorder) ListGlobalVirtualGroupsByBucket(ctx, bucketID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListGlobalVirtualGroupsByBucket(ctx, bucketID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID}, opts...) + varargs := append([]interface{}{ctx, bucketID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGlobalVirtualGroupsByBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListGlobalVirtualGroupsByBucket), varargs...) } // ListGlobalVirtualGroupsBySecondarySP mocks base method. func (m *MockGfSpClientAPI) ListGlobalVirtualGroupsBySecondarySP(ctx context.Context, spID uint32, opts ...grpc.DialOption) ([]*types4.GlobalVirtualGroup, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -1124,16 +1120,16 @@ func (m *MockGfSpClientAPI) ListGlobalVirtualGroupsBySecondarySP(ctx context.Con } // ListGlobalVirtualGroupsBySecondarySP indicates an expected call of ListGlobalVirtualGroupsBySecondarySP. -func (mr *MockGfSpClientAPIMockRecorder) ListGlobalVirtualGroupsBySecondarySP(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListGlobalVirtualGroupsBySecondarySP(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGlobalVirtualGroupsBySecondarySP", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListGlobalVirtualGroupsBySecondarySP), varargs...) } // ListGroupsByIDs mocks base method. func (m *MockGfSpClientAPI) ListGroupsByIDs(ctx context.Context, groupIDs []uint64, opts ...grpc.DialOption) (map[uint64]*types.Group, error) { m.ctrl.T.Helper() - varargs := []any{ctx, groupIDs} + varargs := []interface{}{ctx, groupIDs} for _, a := range opts { varargs = append(varargs, a) } @@ -1144,16 +1140,16 @@ func (m *MockGfSpClientAPI) ListGroupsByIDs(ctx context.Context, groupIDs []uint } // ListGroupsByIDs indicates an expected call of ListGroupsByIDs. -func (mr *MockGfSpClientAPIMockRecorder) ListGroupsByIDs(ctx, groupIDs any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListGroupsByIDs(ctx, groupIDs interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, groupIDs}, opts...) + varargs := append([]interface{}{ctx, groupIDs}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGroupsByIDs", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListGroupsByIDs), varargs...) } // ListMigrateBucketEvents mocks base method. func (m *MockGfSpClientAPI) ListMigrateBucketEvents(ctx context.Context, blockID uint64, spID uint32, opts ...grpc.DialOption) ([]*types.ListMigrateBucketEvents, error) { m.ctrl.T.Helper() - varargs := []any{ctx, blockID, spID} + varargs := []interface{}{ctx, blockID, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -1164,16 +1160,16 @@ func (m *MockGfSpClientAPI) ListMigrateBucketEvents(ctx context.Context, blockID } // ListMigrateBucketEvents indicates an expected call of ListMigrateBucketEvents. -func (mr *MockGfSpClientAPIMockRecorder) ListMigrateBucketEvents(ctx, blockID, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListMigrateBucketEvents(ctx, blockID, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, blockID, spID}, opts...) + varargs := append([]interface{}{ctx, blockID, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMigrateBucketEvents", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListMigrateBucketEvents), varargs...) } // ListObjectPolicies mocks base method. func (m *MockGfSpClientAPI) ListObjectPolicies(ctx context.Context, objectName, bucketName string, startAfter uint64, actionType int32, limit uint32, opts ...grpc.DialOption) ([]*types.Policy, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectName, bucketName, startAfter, actionType, limit} + varargs := []interface{}{ctx, objectName, bucketName, startAfter, actionType, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -1184,16 +1180,37 @@ func (m *MockGfSpClientAPI) ListObjectPolicies(ctx context.Context, objectName, } // ListObjectPolicies indicates an expected call of ListObjectPolicies. -func (mr *MockGfSpClientAPIMockRecorder) ListObjectPolicies(ctx, objectName, bucketName, startAfter, actionType, limit any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListObjectPolicies(ctx, objectName, bucketName, startAfter, actionType, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectName, bucketName, startAfter, actionType, limit}, opts...) + varargs := append([]interface{}{ctx, objectName, bucketName, startAfter, actionType, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectPolicies", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectPolicies), varargs...) } +// ListObjectsByBlockNumberRange mocks base method. +func (m *MockGfSpClientAPI) ListObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListObjectsByBlockNumberRange", varargs...) + ret0, _ := ret[0].([]*types.Object) + ret1, _ := ret[1].(uint64) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// ListObjectsByBlockNumberRange indicates an expected call of ListObjectsByBlockNumberRange. +func (mr *MockGfSpClientAPIMockRecorder) ListObjectsByBlockNumberRange(ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate interface{}, opts ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBlockNumberRange", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectsByBlockNumberRange), varargs...) +} + // ListObjectsByBucketName mocks base method. func (m *MockGfSpClientAPI) ListObjectsByBucketName(ctx context.Context, bucketName, accountID string, maxKeys uint64, startAfter, continuationToken, delimiter, prefix string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.Object, uint64, uint64, bool, string, string, string, string, []string, string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved} + varargs := []interface{}{ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -1213,16 +1230,16 @@ func (m *MockGfSpClientAPI) ListObjectsByBucketName(ctx context.Context, bucketN } // ListObjectsByBucketName indicates an expected call of ListObjectsByBucketName. -func (mr *MockGfSpClientAPIMockRecorder) ListObjectsByBucketName(ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListObjectsByBucketName(ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBucketName", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectsByBucketName), varargs...) } // ListObjectsByGVGAndBucketForGC mocks base method. func (m *MockGfSpClientAPI) ListObjectsByGVGAndBucketForGC(ctx context.Context, gvgID uint32, bucketID, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.ObjectDetails, error) { m.ctrl.T.Helper() - varargs := []any{ctx, gvgID, bucketID, startAfter, limit} + varargs := []interface{}{ctx, gvgID, bucketID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -1233,16 +1250,16 @@ func (m *MockGfSpClientAPI) ListObjectsByGVGAndBucketForGC(ctx context.Context, } // ListObjectsByGVGAndBucketForGC indicates an expected call of ListObjectsByGVGAndBucketForGC. -func (mr *MockGfSpClientAPIMockRecorder) ListObjectsByGVGAndBucketForGC(ctx, gvgID, bucketID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListObjectsByGVGAndBucketForGC(ctx, gvgID, bucketID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, gvgID, bucketID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, gvgID, bucketID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByGVGAndBucketForGC", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectsByGVGAndBucketForGC), varargs...) } // ListObjectsByIDs mocks base method. func (m *MockGfSpClientAPI) ListObjectsByIDs(ctx context.Context, objectIDs []uint64, includeRemoved bool, opts ...grpc.DialOption) (map[uint64]*types.Object, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectIDs, includeRemoved} + varargs := []interface{}{ctx, objectIDs, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -1253,16 +1270,16 @@ func (m *MockGfSpClientAPI) ListObjectsByIDs(ctx context.Context, objectIDs []ui } // ListObjectsByIDs indicates an expected call of ListObjectsByIDs. -func (mr *MockGfSpClientAPIMockRecorder) ListObjectsByIDs(ctx, objectIDs, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListObjectsByIDs(ctx, objectIDs, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectIDs, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, objectIDs, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByIDs", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectsByIDs), varargs...) } // ListObjectsInGVG mocks base method. func (m *MockGfSpClientAPI) ListObjectsInGVG(ctx context.Context, gvgID uint32, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.ObjectDetails, error) { m.ctrl.T.Helper() - varargs := []any{ctx, gvgID, startAfter, limit} + varargs := []interface{}{ctx, gvgID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -1273,16 +1290,16 @@ func (m *MockGfSpClientAPI) ListObjectsInGVG(ctx context.Context, gvgID uint32, } // ListObjectsInGVG indicates an expected call of ListObjectsInGVG. -func (mr *MockGfSpClientAPIMockRecorder) ListObjectsInGVG(ctx, gvgID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListObjectsInGVG(ctx, gvgID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, gvgID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, gvgID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsInGVG", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectsInGVG), varargs...) } // ListObjectsInGVGAndBucket mocks base method. func (m *MockGfSpClientAPI) ListObjectsInGVGAndBucket(ctx context.Context, gvgID uint32, bucketID, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.ObjectDetails, error) { m.ctrl.T.Helper() - varargs := []any{ctx, gvgID, bucketID, startAfter, limit} + varargs := []interface{}{ctx, gvgID, bucketID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -1293,16 +1310,16 @@ func (m *MockGfSpClientAPI) ListObjectsInGVGAndBucket(ctx context.Context, gvgID } // ListObjectsInGVGAndBucket indicates an expected call of ListObjectsInGVGAndBucket. -func (mr *MockGfSpClientAPIMockRecorder) ListObjectsInGVGAndBucket(ctx, gvgID, bucketID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListObjectsInGVGAndBucket(ctx, gvgID, bucketID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, gvgID, bucketID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, gvgID, bucketID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsInGVGAndBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectsInGVGAndBucket), varargs...) } // ListPaymentAccountStreams mocks base method. func (m *MockGfSpClientAPI) ListPaymentAccountStreams(ctx context.Context, paymentAccount string, opts ...grpc.DialOption) ([]*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, paymentAccount} + varargs := []interface{}{ctx, paymentAccount} for _, a := range opts { varargs = append(varargs, a) } @@ -1313,16 +1330,16 @@ func (m *MockGfSpClientAPI) ListPaymentAccountStreams(ctx context.Context, payme } // ListPaymentAccountStreams indicates an expected call of ListPaymentAccountStreams. -func (mr *MockGfSpClientAPIMockRecorder) ListPaymentAccountStreams(ctx, paymentAccount any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListPaymentAccountStreams(ctx, paymentAccount interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, paymentAccount}, opts...) + varargs := append([]interface{}{ctx, paymentAccount}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPaymentAccountStreams", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListPaymentAccountStreams), varargs...) } // ListSpExitEvents mocks base method. func (m *MockGfSpClientAPI) ListSpExitEvents(ctx context.Context, blockID uint64, spID uint32, opts ...grpc.DialOption) (*types.ListSpExitEvents, error) { m.ctrl.T.Helper() - varargs := []any{ctx, blockID, spID} + varargs := []interface{}{ctx, blockID, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -1333,16 +1350,16 @@ func (m *MockGfSpClientAPI) ListSpExitEvents(ctx context.Context, blockID uint64 } // ListSpExitEvents indicates an expected call of ListSpExitEvents. -func (mr *MockGfSpClientAPIMockRecorder) ListSpExitEvents(ctx, blockID, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListSpExitEvents(ctx, blockID, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, blockID, spID}, opts...) + varargs := append([]interface{}{ctx, blockID, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSpExitEvents", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListSpExitEvents), varargs...) } // ListSwapOutEvents mocks base method. func (m *MockGfSpClientAPI) ListSwapOutEvents(ctx context.Context, blockID uint64, spID uint32, opts ...grpc.DialOption) ([]*types.ListSwapOutEvents, error) { m.ctrl.T.Helper() - varargs := []any{ctx, blockID, spID} + varargs := []interface{}{ctx, blockID, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -1353,16 +1370,16 @@ func (m *MockGfSpClientAPI) ListSwapOutEvents(ctx context.Context, blockID uint6 } // ListSwapOutEvents indicates an expected call of ListSwapOutEvents. -func (mr *MockGfSpClientAPIMockRecorder) ListSwapOutEvents(ctx, blockID, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListSwapOutEvents(ctx, blockID, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, blockID, spID}, opts...) + varargs := append([]interface{}{ctx, blockID, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSwapOutEvents", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListSwapOutEvents), varargs...) } // ListUserPaymentAccounts mocks base method. func (m *MockGfSpClientAPI) ListUserPaymentAccounts(ctx context.Context, accountID string, opts ...grpc.DialOption) ([]*types.PaymentAccountMeta, error) { m.ctrl.T.Helper() - varargs := []any{ctx, accountID} + varargs := []interface{}{ctx, accountID} for _, a := range opts { varargs = append(varargs, a) } @@ -1373,16 +1390,16 @@ func (m *MockGfSpClientAPI) ListUserPaymentAccounts(ctx context.Context, account } // ListUserPaymentAccounts indicates an expected call of ListUserPaymentAccounts. -func (mr *MockGfSpClientAPIMockRecorder) ListUserPaymentAccounts(ctx, accountID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListUserPaymentAccounts(ctx, accountID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, accountID}, opts...) + varargs := append([]interface{}{ctx, accountID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserPaymentAccounts", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListUserPaymentAccounts), varargs...) } // ListVirtualGroupFamiliesSpID mocks base method. func (m *MockGfSpClientAPI) ListVirtualGroupFamiliesSpID(ctx context.Context, spID uint32, opts ...grpc.DialOption) ([]*types4.GlobalVirtualGroupFamily, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -1393,16 +1410,16 @@ func (m *MockGfSpClientAPI) ListVirtualGroupFamiliesSpID(ctx context.Context, sp } // ListVirtualGroupFamiliesSpID indicates an expected call of ListVirtualGroupFamiliesSpID. -func (mr *MockGfSpClientAPIMockRecorder) ListVirtualGroupFamiliesSpID(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ListVirtualGroupFamiliesSpID(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualGroupFamiliesSpID", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListVirtualGroupFamiliesSpID), varargs...) } // ManagerConn mocks base method. func (m *MockGfSpClientAPI) ManagerConn(ctx context.Context, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -1413,9 +1430,9 @@ func (m *MockGfSpClientAPI) ManagerConn(ctx context.Context, opts ...grpc.DialOp } // ManagerConn indicates an expected call of ManagerConn. -func (mr *MockGfSpClientAPIMockRecorder) ManagerConn(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ManagerConn(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManagerConn", reflect.TypeOf((*MockGfSpClientAPI)(nil).ManagerConn), varargs...) } @@ -1429,7 +1446,7 @@ func (m *MockGfSpClientAPI) MigratePiece(ctx context.Context, gvgTask *gfsptask. } // MigratePiece indicates an expected call of MigratePiece. -func (mr *MockGfSpClientAPIMockRecorder) MigratePiece(ctx, gvgTask, pieceTask any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) MigratePiece(ctx, gvgTask, pieceTask interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigratePiece", reflect.TypeOf((*MockGfSpClientAPI)(nil).MigratePiece), ctx, gvgTask, pieceTask) } @@ -1443,7 +1460,7 @@ func (m *MockGfSpClientAPI) NotifyDestSPMigrateSwapOut(ctx context.Context, dest } // NotifyDestSPMigrateSwapOut indicates an expected call of NotifyDestSPMigrateSwapOut. -func (mr *MockGfSpClientAPIMockRecorder) NotifyDestSPMigrateSwapOut(ctx, destEndpoint, swapOut any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) NotifyDestSPMigrateSwapOut(ctx, destEndpoint, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyDestSPMigrateSwapOut", reflect.TypeOf((*MockGfSpClientAPI)(nil).NotifyDestSPMigrateSwapOut), ctx, destEndpoint, swapOut) } @@ -1457,23 +1474,23 @@ func (m *MockGfSpClientAPI) NotifyMigrateSwapOut(ctx context.Context, swapOut *t } // NotifyMigrateSwapOut indicates an expected call of NotifyMigrateSwapOut. -func (mr *MockGfSpClientAPIMockRecorder) NotifyMigrateSwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) NotifyMigrateSwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyMigrateSwapOut", reflect.TypeOf((*MockGfSpClientAPI)(nil).NotifyMigrateSwapOut), ctx, swapOut) } // NotifyPostMigrateBucket mocks base method. -func (m *MockGfSpClientAPI) NotifyPostMigrateBucket(ctx context.Context, bucketID uint64) error { +func (m *MockGfSpClientAPI) NotifyPostMigrateBucket(ctx context.Context, bmInfo *gfsptask.GfSpBucketMigrationInfo) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NotifyPostMigrateBucket", ctx, bucketID) + ret := m.ctrl.Call(m, "NotifyPostMigrateBucket", ctx, bmInfo) ret0, _ := ret[0].(error) return ret0 } // NotifyPostMigrateBucket indicates an expected call of NotifyPostMigrateBucket. -func (mr *MockGfSpClientAPIMockRecorder) NotifyPostMigrateBucket(ctx, bucketID any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) NotifyPostMigrateBucket(ctx, bmInfo interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPostMigrateBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).NotifyPostMigrateBucket), ctx, bucketID) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPostMigrateBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).NotifyPostMigrateBucket), ctx, bmInfo) } // NotifyPreMigrateBucket mocks base method. @@ -1485,7 +1502,7 @@ func (m *MockGfSpClientAPI) NotifyPreMigrateBucket(ctx context.Context, bucketID } // NotifyPreMigrateBucket indicates an expected call of NotifyPreMigrateBucket. -func (mr *MockGfSpClientAPIMockRecorder) NotifyPreMigrateBucket(ctx, bucketID any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) NotifyPreMigrateBucket(ctx, bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPreMigrateBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).NotifyPreMigrateBucket), ctx, bucketID) } @@ -1493,7 +1510,7 @@ func (mr *MockGfSpClientAPIMockRecorder) NotifyPreMigrateBucket(ctx, bucketID an // P2PConn mocks base method. func (m *MockGfSpClientAPI) P2PConn(ctx context.Context, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -1504,9 +1521,9 @@ func (m *MockGfSpClientAPI) P2PConn(ctx context.Context, opts ...grpc.DialOption } // P2PConn indicates an expected call of P2PConn. -func (mr *MockGfSpClientAPIMockRecorder) P2PConn(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) P2PConn(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "P2PConn", reflect.TypeOf((*MockGfSpClientAPI)(nil).P2PConn), varargs...) } @@ -1520,7 +1537,7 @@ func (m *MockGfSpClientAPI) PickVirtualGroupFamilyID(ctx context.Context, task t } // PickVirtualGroupFamilyID indicates an expected call of PickVirtualGroupFamilyID. -func (mr *MockGfSpClientAPIMockRecorder) PickVirtualGroupFamilyID(ctx, task any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) PickVirtualGroupFamilyID(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PickVirtualGroupFamilyID", reflect.TypeOf((*MockGfSpClientAPI)(nil).PickVirtualGroupFamilyID), ctx, task) } @@ -1535,7 +1552,7 @@ func (m *MockGfSpClientAPI) PostMigrateBucket(ctx context.Context, srcSPEndpoint } // PostMigrateBucket indicates an expected call of PostMigrateBucket. -func (mr *MockGfSpClientAPIMockRecorder) PostMigrateBucket(ctx, srcSPEndpoint, postMsg any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) PostMigrateBucket(ctx, srcSPEndpoint, postMsg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostMigrateBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).PostMigrateBucket), ctx, srcSPEndpoint, postMsg) } @@ -1550,7 +1567,7 @@ func (m *MockGfSpClientAPI) PreMigrateBucket(ctx context.Context, srcSPEndpoint } // PreMigrateBucket indicates an expected call of PreMigrateBucket. -func (mr *MockGfSpClientAPIMockRecorder) PreMigrateBucket(ctx, srcSPEndpoint, preMsg any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) PreMigrateBucket(ctx, srcSPEndpoint, preMsg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreMigrateBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).PreMigrateBucket), ctx, srcSPEndpoint, preMsg) } @@ -1558,7 +1575,7 @@ func (mr *MockGfSpClientAPIMockRecorder) PreMigrateBucket(ctx, srcSPEndpoint, pr // PrimarySpIncomeDetails mocks base method. func (m *MockGfSpClientAPI) PrimarySpIncomeDetails(ctx context.Context, spID uint32, opts ...grpc.DialOption) (int64, []*types.PrimarySpIncomeDetail, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -1570,16 +1587,16 @@ func (m *MockGfSpClientAPI) PrimarySpIncomeDetails(ctx context.Context, spID uin } // PrimarySpIncomeDetails indicates an expected call of PrimarySpIncomeDetails. -func (mr *MockGfSpClientAPIMockRecorder) PrimarySpIncomeDetails(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) PrimarySpIncomeDetails(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PrimarySpIncomeDetails", reflect.TypeOf((*MockGfSpClientAPI)(nil).PrimarySpIncomeDetails), varargs...) } // QueryBucketMigrate mocks base method. func (m *MockGfSpClientAPI) QueryBucketMigrate(ctx context.Context, endpoint string, opts ...grpc.DialOption) (string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, endpoint} + varargs := []interface{}{ctx, endpoint} for _, a := range opts { varargs = append(varargs, a) } @@ -1590,9 +1607,9 @@ func (m *MockGfSpClientAPI) QueryBucketMigrate(ctx context.Context, endpoint str } // QueryBucketMigrate indicates an expected call of QueryBucketMigrate. -func (mr *MockGfSpClientAPIMockRecorder) QueryBucketMigrate(ctx, endpoint any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) QueryBucketMigrate(ctx, endpoint interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, endpoint}, opts...) + varargs := append([]interface{}{ctx, endpoint}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryBucketMigrate", reflect.TypeOf((*MockGfSpClientAPI)(nil).QueryBucketMigrate), varargs...) } @@ -1606,7 +1623,7 @@ func (m *MockGfSpClientAPI) QueryLatestBucketQuota(ctx context.Context, endpoint } // QueryLatestBucketQuota indicates an expected call of QueryLatestBucketQuota. -func (mr *MockGfSpClientAPIMockRecorder) QueryLatestBucketQuota(ctx, endpoint, queryMsg any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) QueryLatestBucketQuota(ctx, endpoint, queryMsg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryLatestBucketQuota", reflect.TypeOf((*MockGfSpClientAPI)(nil).QueryLatestBucketQuota), ctx, endpoint, queryMsg) } @@ -1621,7 +1638,7 @@ func (m *MockGfSpClientAPI) QueryP2PBootstrap(ctx context.Context) ([]string, er } // QueryP2PBootstrap indicates an expected call of QueryP2PBootstrap. -func (mr *MockGfSpClientAPIMockRecorder) QueryP2PBootstrap(ctx any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) QueryP2PBootstrap(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryP2PBootstrap", reflect.TypeOf((*MockGfSpClientAPI)(nil).QueryP2PBootstrap), ctx) } @@ -1629,7 +1646,7 @@ func (mr *MockGfSpClientAPIMockRecorder) QueryP2PBootstrap(ctx any) *gomock.Call // QuerySPExit mocks base method. func (m *MockGfSpClientAPI) QuerySPExit(ctx context.Context, endpoint string, opts ...grpc.DialOption) (string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, endpoint} + varargs := []interface{}{ctx, endpoint} for _, a := range opts { varargs = append(varargs, a) } @@ -1640,9 +1657,9 @@ func (m *MockGfSpClientAPI) QuerySPExit(ctx context.Context, endpoint string, op } // QuerySPExit indicates an expected call of QuerySPExit. -func (mr *MockGfSpClientAPIMockRecorder) QuerySPExit(ctx, endpoint any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) QuerySPExit(ctx, endpoint interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, endpoint}, opts...) + varargs := append([]interface{}{ctx, endpoint}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QuerySPExit", reflect.TypeOf((*MockGfSpClientAPI)(nil).QuerySPExit), varargs...) } @@ -1655,7 +1672,7 @@ func (m *MockGfSpClientAPI) QuerySPHasEnoughQuotaForMigrateBucket(ctx context.Co } // QuerySPHasEnoughQuotaForMigrateBucket indicates an expected call of QuerySPHasEnoughQuotaForMigrateBucket. -func (mr *MockGfSpClientAPIMockRecorder) QuerySPHasEnoughQuotaForMigrateBucket(ctx, srcSPEndpoint, queryMsg any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) QuerySPHasEnoughQuotaForMigrateBucket(ctx, srcSPEndpoint, queryMsg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QuerySPHasEnoughQuotaForMigrateBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).QuerySPHasEnoughQuotaForMigrateBucket), ctx, srcSPEndpoint, queryMsg) } @@ -1663,7 +1680,7 @@ func (mr *MockGfSpClientAPIMockRecorder) QuerySPHasEnoughQuotaForMigrateBucket(c // QueryTasks mocks base method. func (m *MockGfSpClientAPI) QueryTasks(ctx context.Context, endpoint, subKey string, opts ...grpc.DialOption) ([]string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, endpoint, subKey} + varargs := []interface{}{ctx, endpoint, subKey} for _, a := range opts { varargs = append(varargs, a) } @@ -1674,16 +1691,16 @@ func (m *MockGfSpClientAPI) QueryTasks(ctx context.Context, endpoint, subKey str } // QueryTasks indicates an expected call of QueryTasks. -func (mr *MockGfSpClientAPIMockRecorder) QueryTasks(ctx, endpoint, subKey any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) QueryTasks(ctx, endpoint, subKey interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, endpoint, subKey}, opts...) + varargs := append([]interface{}{ctx, endpoint, subKey}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasks", reflect.TypeOf((*MockGfSpClientAPI)(nil).QueryTasks), varargs...) } // RecoupQuota mocks base method. func (m *MockGfSpClientAPI) RecoupQuota(ctx context.Context, bucketID, extraQuota uint64, yearMonth string, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, extraQuota, yearMonth} + varargs := []interface{}{ctx, bucketID, extraQuota, yearMonth} for _, a := range opts { varargs = append(varargs, a) } @@ -1693,9 +1710,9 @@ func (m *MockGfSpClientAPI) RecoupQuota(ctx context.Context, bucketID, extraQuot } // RecoupQuota indicates an expected call of RecoupQuota. -func (mr *MockGfSpClientAPIMockRecorder) RecoupQuota(ctx, bucketID, extraQuota, yearMonth any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) RecoupQuota(ctx, bucketID, extraQuota, yearMonth interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, extraQuota, yearMonth}, opts...) + varargs := append([]interface{}{ctx, bucketID, extraQuota, yearMonth}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecoupQuota", reflect.TypeOf((*MockGfSpClientAPI)(nil).RecoupQuota), varargs...) } @@ -1709,7 +1726,7 @@ func (m *MockGfSpClientAPI) RejectMigrateBucket(ctx context.Context, rejectMigra } // RejectMigrateBucket indicates an expected call of RejectMigrateBucket. -func (mr *MockGfSpClientAPIMockRecorder) RejectMigrateBucket(ctx, rejectMigrateBucket any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) RejectMigrateBucket(ctx, rejectMigrateBucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RejectMigrateBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).RejectMigrateBucket), ctx, rejectMigrateBucket) } @@ -1724,7 +1741,7 @@ func (m *MockGfSpClientAPI) RejectUnSealObject(ctx context.Context, object *type } // RejectUnSealObject indicates an expected call of RejectUnSealObject. -func (mr *MockGfSpClientAPIMockRecorder) RejectUnSealObject(ctx, object any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) RejectUnSealObject(ctx, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RejectUnSealObject", reflect.TypeOf((*MockGfSpClientAPI)(nil).RejectUnSealObject), ctx, object) } @@ -1732,7 +1749,7 @@ func (mr *MockGfSpClientAPIMockRecorder) RejectUnSealObject(ctx, object any) *go // ReplicatePiece mocks base method. func (m *MockGfSpClientAPI) ReplicatePiece(ctx context.Context, task task.ReceivePieceTask, data []byte, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, task, data} + varargs := []interface{}{ctx, task, data} for _, a := range opts { varargs = append(varargs, a) } @@ -1742,9 +1759,9 @@ func (m *MockGfSpClientAPI) ReplicatePiece(ctx context.Context, task task.Receiv } // ReplicatePiece indicates an expected call of ReplicatePiece. -func (mr *MockGfSpClientAPIMockRecorder) ReplicatePiece(ctx, task, data any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ReplicatePiece(ctx, task, data interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, task, data}, opts...) + varargs := append([]interface{}{ctx, task, data}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplicatePiece", reflect.TypeOf((*MockGfSpClientAPI)(nil).ReplicatePiece), varargs...) } @@ -1757,7 +1774,7 @@ func (m *MockGfSpClientAPI) ReplicatePieceToSecondary(ctx context.Context, endpo } // ReplicatePieceToSecondary indicates an expected call of ReplicatePieceToSecondary. -func (mr *MockGfSpClientAPIMockRecorder) ReplicatePieceToSecondary(ctx, endpoint, receive, data any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ReplicatePieceToSecondary(ctx, endpoint, receive, data interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplicatePieceToSecondary", reflect.TypeOf((*MockGfSpClientAPI)(nil).ReplicatePieceToSecondary), ctx, endpoint, receive, data) } @@ -1771,7 +1788,7 @@ func (m *MockGfSpClientAPI) ReportTask(ctx context.Context, report task.Task) er } // ReportTask indicates an expected call of ReportTask. -func (mr *MockGfSpClientAPIMockRecorder) ReportTask(ctx, report any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ReportTask(ctx, report interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReportTask", reflect.TypeOf((*MockGfSpClientAPI)(nil).ReportTask), ctx, report) } @@ -1779,7 +1796,7 @@ func (mr *MockGfSpClientAPIMockRecorder) ReportTask(ctx, report any) *gomock.Cal // ResumableUploadObject mocks base method. func (m *MockGfSpClientAPI) ResumableUploadObject(ctx context.Context, task task.ResumableUploadObjectTask, stream io.Reader, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, task, stream} + varargs := []interface{}{ctx, task, stream} for _, a := range opts { varargs = append(varargs, a) } @@ -1789,9 +1806,9 @@ func (m *MockGfSpClientAPI) ResumableUploadObject(ctx context.Context, task task } // ResumableUploadObject indicates an expected call of ResumableUploadObject. -func (mr *MockGfSpClientAPIMockRecorder) ResumableUploadObject(ctx, task, stream any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) ResumableUploadObject(ctx, task, stream interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, task, stream}, opts...) + varargs := append([]interface{}{ctx, task, stream}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResumableUploadObject", reflect.TypeOf((*MockGfSpClientAPI)(nil).ResumableUploadObject), varargs...) } @@ -1805,7 +1822,7 @@ func (m *MockGfSpClientAPI) SPExit(ctx context.Context, spExit *types4.MsgStorag } // SPExit indicates an expected call of SPExit. -func (mr *MockGfSpClientAPIMockRecorder) SPExit(ctx, spExit any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SPExit(ctx, spExit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SPExit", reflect.TypeOf((*MockGfSpClientAPI)(nil).SPExit), ctx, spExit) } @@ -1820,7 +1837,7 @@ func (m *MockGfSpClientAPI) SealObject(ctx context.Context, object *types3.MsgSe } // SealObject indicates an expected call of SealObject. -func (mr *MockGfSpClientAPIMockRecorder) SealObject(ctx, object any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SealObject(ctx, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SealObject", reflect.TypeOf((*MockGfSpClientAPI)(nil).SealObject), ctx, object) } @@ -1828,7 +1845,7 @@ func (mr *MockGfSpClientAPIMockRecorder) SealObject(ctx, object any) *gomock.Cal // SecondarySpIncomeDetails mocks base method. func (m *MockGfSpClientAPI) SecondarySpIncomeDetails(ctx context.Context, spID uint32, opts ...grpc.DialOption) (int64, []*types.SecondarySpIncomeDetail, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -1840,9 +1857,9 @@ func (m *MockGfSpClientAPI) SecondarySpIncomeDetails(ctx context.Context, spID u } // SecondarySpIncomeDetails indicates an expected call of SecondarySpIncomeDetails. -func (mr *MockGfSpClientAPIMockRecorder) SecondarySpIncomeDetails(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SecondarySpIncomeDetails(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SecondarySpIncomeDetails", reflect.TypeOf((*MockGfSpClientAPI)(nil).SecondarySpIncomeDetails), varargs...) } @@ -1856,7 +1873,7 @@ func (m *MockGfSpClientAPI) SignBucketMigrationInfo(ctx context.Context, task *g } // SignBucketMigrationInfo indicates an expected call of SignBucketMigrationInfo. -func (mr *MockGfSpClientAPIMockRecorder) SignBucketMigrationInfo(ctx, task any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignBucketMigrationInfo(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignBucketMigrationInfo", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignBucketMigrationInfo), ctx, task) } @@ -1871,7 +1888,7 @@ func (m *MockGfSpClientAPI) SignCreateBucketApproval(ctx context.Context, bucket } // SignCreateBucketApproval indicates an expected call of SignCreateBucketApproval. -func (mr *MockGfSpClientAPIMockRecorder) SignCreateBucketApproval(ctx, bucket any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignCreateBucketApproval(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignCreateBucketApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignCreateBucketApproval), ctx, bucket) } @@ -1886,7 +1903,7 @@ func (m *MockGfSpClientAPI) SignCreateObjectApproval(ctx context.Context, object } // SignCreateObjectApproval indicates an expected call of SignCreateObjectApproval. -func (mr *MockGfSpClientAPIMockRecorder) SignCreateObjectApproval(ctx, object any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignCreateObjectApproval(ctx, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignCreateObjectApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignCreateObjectApproval), ctx, object) } @@ -1901,7 +1918,7 @@ func (m *MockGfSpClientAPI) SignMigrateBucketApproval(ctx context.Context, bucke } // SignMigrateBucketApproval indicates an expected call of SignMigrateBucketApproval. -func (mr *MockGfSpClientAPIMockRecorder) SignMigrateBucketApproval(ctx, bucket any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignMigrateBucketApproval(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignMigrateBucketApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignMigrateBucketApproval), ctx, bucket) } @@ -1916,7 +1933,7 @@ func (m *MockGfSpClientAPI) SignMigrateGVG(ctx context.Context, task *gfsptask.G } // SignMigrateGVG indicates an expected call of SignMigrateGVG. -func (mr *MockGfSpClientAPIMockRecorder) SignMigrateGVG(ctx, task any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignMigrateGVG(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignMigrateGVG", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignMigrateGVG), ctx, task) } @@ -1931,7 +1948,7 @@ func (m *MockGfSpClientAPI) SignP2PPingMsg(ctx context.Context, ping *gfspp2p.Gf } // SignP2PPingMsg indicates an expected call of SignP2PPingMsg. -func (mr *MockGfSpClientAPIMockRecorder) SignP2PPingMsg(ctx, ping any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignP2PPingMsg(ctx, ping interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignP2PPingMsg", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignP2PPingMsg), ctx, ping) } @@ -1946,7 +1963,7 @@ func (m *MockGfSpClientAPI) SignP2PPongMsg(ctx context.Context, pong *gfspp2p.Gf } // SignP2PPongMsg indicates an expected call of SignP2PPongMsg. -func (mr *MockGfSpClientAPIMockRecorder) SignP2PPongMsg(ctx, pong any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignP2PPongMsg(ctx, pong interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignP2PPongMsg", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignP2PPongMsg), ctx, pong) } @@ -1961,7 +1978,7 @@ func (m *MockGfSpClientAPI) SignReceiveTask(ctx context.Context, receiveTask tas } // SignReceiveTask indicates an expected call of SignReceiveTask. -func (mr *MockGfSpClientAPIMockRecorder) SignReceiveTask(ctx, receiveTask any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignReceiveTask(ctx, receiveTask interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignReceiveTask", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignReceiveTask), ctx, receiveTask) } @@ -1976,7 +1993,7 @@ func (m *MockGfSpClientAPI) SignRecoveryTask(ctx context.Context, recoveryTask t } // SignRecoveryTask indicates an expected call of SignRecoveryTask. -func (mr *MockGfSpClientAPIMockRecorder) SignRecoveryTask(ctx, recoveryTask any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignRecoveryTask(ctx, recoveryTask interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignRecoveryTask", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignRecoveryTask), ctx, recoveryTask) } @@ -1991,7 +2008,7 @@ func (m *MockGfSpClientAPI) SignReplicatePieceApproval(ctx context.Context, task } // SignReplicatePieceApproval indicates an expected call of SignReplicatePieceApproval. -func (mr *MockGfSpClientAPIMockRecorder) SignReplicatePieceApproval(ctx, task any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignReplicatePieceApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignReplicatePieceApproval", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignReplicatePieceApproval), ctx, task) } @@ -2006,7 +2023,7 @@ func (m *MockGfSpClientAPI) SignSecondarySPMigrationBucket(ctx context.Context, } // SignSecondarySPMigrationBucket indicates an expected call of SignSecondarySPMigrationBucket. -func (mr *MockGfSpClientAPIMockRecorder) SignSecondarySPMigrationBucket(ctx, signDoc any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignSecondarySPMigrationBucket(ctx, signDoc interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSecondarySPMigrationBucket", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignSecondarySPMigrationBucket), ctx, signDoc) } @@ -2021,7 +2038,7 @@ func (m *MockGfSpClientAPI) SignSecondarySealBls(ctx context.Context, objectID u } // SignSecondarySealBls indicates an expected call of SignSecondarySealBls. -func (mr *MockGfSpClientAPIMockRecorder) SignSecondarySealBls(ctx, objectID, gvgId, checksums any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignSecondarySealBls(ctx, objectID, gvgId, checksums interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSecondarySealBls", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignSecondarySealBls), ctx, objectID, gvgId, checksums) } @@ -2036,7 +2053,7 @@ func (m *MockGfSpClientAPI) SignSwapOut(ctx context.Context, swapOut *types4.Msg } // SignSwapOut indicates an expected call of SignSwapOut. -func (mr *MockGfSpClientAPIMockRecorder) SignSwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignSwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSwapOut", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignSwapOut), ctx, swapOut) } @@ -2044,7 +2061,7 @@ func (mr *MockGfSpClientAPIMockRecorder) SignSwapOut(ctx, swapOut any) *gomock.C // SignerConn mocks base method. func (m *MockGfSpClientAPI) SignerConn(ctx context.Context, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -2055,9 +2072,9 @@ func (m *MockGfSpClientAPI) SignerConn(ctx context.Context, opts ...grpc.DialOpt } // SignerConn indicates an expected call of SignerConn. -func (mr *MockGfSpClientAPIMockRecorder) SignerConn(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SignerConn(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignerConn", reflect.TypeOf((*MockGfSpClientAPI)(nil).SignerConn), varargs...) } @@ -2071,7 +2088,7 @@ func (m *MockGfSpClientAPI) SwapOut(ctx context.Context, swapOut *types4.MsgSwap } // SwapOut indicates an expected call of SwapOut. -func (mr *MockGfSpClientAPIMockRecorder) SwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) SwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SwapOut", reflect.TypeOf((*MockGfSpClientAPI)(nil).SwapOut), ctx, swapOut) } @@ -2086,7 +2103,7 @@ func (m *MockGfSpClientAPI) UpdateSPPrice(ctx context.Context, price *types2.Msg } // UpdateSPPrice indicates an expected call of UpdateSPPrice. -func (mr *MockGfSpClientAPIMockRecorder) UpdateSPPrice(ctx, price any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) UpdateSPPrice(ctx, price interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSPPrice", reflect.TypeOf((*MockGfSpClientAPI)(nil).UpdateSPPrice), ctx, price) } @@ -2094,7 +2111,7 @@ func (mr *MockGfSpClientAPIMockRecorder) UpdateSPPrice(ctx, price any) *gomock.C // UpdateUserPublicKey mocks base method. func (m *MockGfSpClientAPI) UpdateUserPublicKey(ctx context.Context, account, domain string, currentNonce, nonce int32, userPublicKey string, expiryDate int64, opts ...grpc.DialOption) (bool, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate} + varargs := []interface{}{ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate} for _, a := range opts { varargs = append(varargs, a) } @@ -2105,16 +2122,16 @@ func (m *MockGfSpClientAPI) UpdateUserPublicKey(ctx context.Context, account, do } // UpdateUserPublicKey indicates an expected call of UpdateUserPublicKey. -func (mr *MockGfSpClientAPIMockRecorder) UpdateUserPublicKey(ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) UpdateUserPublicKey(ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate}, opts...) + varargs := append([]interface{}{ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserPublicKey", reflect.TypeOf((*MockGfSpClientAPI)(nil).UpdateUserPublicKey), varargs...) } // UploadObject mocks base method. func (m *MockGfSpClientAPI) UploadObject(ctx context.Context, task task.UploadObjectTask, stream io.Reader, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, task, stream} + varargs := []interface{}{ctx, task, stream} for _, a := range opts { varargs = append(varargs, a) } @@ -2124,16 +2141,16 @@ func (m *MockGfSpClientAPI) UploadObject(ctx context.Context, task task.UploadOb } // UploadObject indicates an expected call of UploadObject. -func (mr *MockGfSpClientAPIMockRecorder) UploadObject(ctx, task, stream any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) UploadObject(ctx, task, stream interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, task, stream}, opts...) + varargs := append([]interface{}{ctx, task, stream}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadObject", reflect.TypeOf((*MockGfSpClientAPI)(nil).UploadObject), varargs...) } // VerifyAuthentication mocks base method. func (m *MockGfSpClientAPI) VerifyAuthentication(ctx context.Context, auth module.AuthOpType, account, bucket, object string, opts ...grpc.DialOption) (bool, error) { m.ctrl.T.Helper() - varargs := []any{ctx, auth, account, bucket, object} + varargs := []interface{}{ctx, auth, account, bucket, object} for _, a := range opts { varargs = append(varargs, a) } @@ -2144,16 +2161,16 @@ func (m *MockGfSpClientAPI) VerifyAuthentication(ctx context.Context, auth modul } // VerifyAuthentication indicates an expected call of VerifyAuthentication. -func (mr *MockGfSpClientAPIMockRecorder) VerifyAuthentication(ctx, auth, account, bucket, object any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) VerifyAuthentication(ctx, auth, account, bucket, object interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, auth, account, bucket, object}, opts...) + varargs := append([]interface{}{ctx, auth, account, bucket, object}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyAuthentication", reflect.TypeOf((*MockGfSpClientAPI)(nil).VerifyAuthentication), varargs...) } // VerifyGNFD1EddsaSignature mocks base method. func (m *MockGfSpClientAPI) VerifyGNFD1EddsaSignature(ctx context.Context, account, domain, offChainSig string, realMsgToSign []byte, opts ...grpc.DialOption) (bool, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, domain, offChainSig, realMsgToSign} + varargs := []interface{}{ctx, account, domain, offChainSig, realMsgToSign} for _, a := range opts { varargs = append(varargs, a) } @@ -2164,16 +2181,16 @@ func (m *MockGfSpClientAPI) VerifyGNFD1EddsaSignature(ctx context.Context, accou } // VerifyGNFD1EddsaSignature indicates an expected call of VerifyGNFD1EddsaSignature. -func (mr *MockGfSpClientAPIMockRecorder) VerifyGNFD1EddsaSignature(ctx, account, domain, offChainSig, realMsgToSign any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) VerifyGNFD1EddsaSignature(ctx, account, domain, offChainSig, realMsgToSign interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, domain, offChainSig, realMsgToSign}, opts...) + varargs := append([]interface{}{ctx, account, domain, offChainSig, realMsgToSign}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyGNFD1EddsaSignature", reflect.TypeOf((*MockGfSpClientAPI)(nil).VerifyGNFD1EddsaSignature), varargs...) } // VerifyMigrateGVGPermission mocks base method. func (m *MockGfSpClientAPI) VerifyMigrateGVGPermission(ctx context.Context, bucketID uint64, gvgID, dstSpID uint32, opts ...grpc.DialOption) (*types1.Effect, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, gvgID, dstSpID} + varargs := []interface{}{ctx, bucketID, gvgID, dstSpID} for _, a := range opts { varargs = append(varargs, a) } @@ -2184,16 +2201,16 @@ func (m *MockGfSpClientAPI) VerifyMigrateGVGPermission(ctx context.Context, buck } // VerifyMigrateGVGPermission indicates an expected call of VerifyMigrateGVGPermission. -func (mr *MockGfSpClientAPIMockRecorder) VerifyMigrateGVGPermission(ctx, bucketID, gvgID, dstSpID any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) VerifyMigrateGVGPermission(ctx, bucketID, gvgID, dstSpID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, gvgID, dstSpID}, opts...) + varargs := append([]interface{}{ctx, bucketID, gvgID, dstSpID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyMigrateGVGPermission", reflect.TypeOf((*MockGfSpClientAPI)(nil).VerifyMigrateGVGPermission), varargs...) } // VerifyPermission mocks base method. func (m *MockGfSpClientAPI) VerifyPermission(ctx context.Context, Operator, bucketName, objectName string, actionType types1.ActionType, opts ...grpc.DialOption) (*types1.Effect, error) { m.ctrl.T.Helper() - varargs := []any{ctx, Operator, bucketName, objectName, actionType} + varargs := []interface{}{ctx, Operator, bucketName, objectName, actionType} for _, a := range opts { varargs = append(varargs, a) } @@ -2204,16 +2221,16 @@ func (m *MockGfSpClientAPI) VerifyPermission(ctx context.Context, Operator, buck } // VerifyPermission indicates an expected call of VerifyPermission. -func (mr *MockGfSpClientAPIMockRecorder) VerifyPermission(ctx, Operator, bucketName, objectName, actionType any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) VerifyPermission(ctx, Operator, bucketName, objectName, actionType interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, Operator, bucketName, objectName, actionType}, opts...) + varargs := append([]interface{}{ctx, Operator, bucketName, objectName, actionType}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyPermission", reflect.TypeOf((*MockGfSpClientAPI)(nil).VerifyPermission), varargs...) } // VerifyPermissionByID mocks base method. func (m *MockGfSpClientAPI) VerifyPermissionByID(ctx context.Context, Operator string, resourceType resource.ResourceType, resourceID uint64, actionType types1.ActionType, opts ...grpc.DialOption) (*types1.Effect, error) { m.ctrl.T.Helper() - varargs := []any{ctx, Operator, resourceType, resourceID, actionType} + varargs := []interface{}{ctx, Operator, resourceType, resourceID, actionType} for _, a := range opts { varargs = append(varargs, a) } @@ -2224,9 +2241,9 @@ func (m *MockGfSpClientAPI) VerifyPermissionByID(ctx context.Context, Operator s } // VerifyPermissionByID indicates an expected call of VerifyPermissionByID. -func (mr *MockGfSpClientAPIMockRecorder) VerifyPermissionByID(ctx, Operator, resourceType, resourceID, actionType any, opts ...any) *gomock.Call { +func (mr *MockGfSpClientAPIMockRecorder) VerifyPermissionByID(ctx, Operator, resourceType, resourceID, actionType interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, Operator, resourceType, resourceID, actionType}, opts...) + varargs := append([]interface{}{ctx, Operator, resourceType, resourceID, actionType}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyPermissionByID", reflect.TypeOf((*MockGfSpClientAPI)(nil).VerifyPermissionByID), varargs...) } @@ -2264,7 +2281,7 @@ func (m *MockApproverAPI) AskCreateBucketApproval(ctx context.Context, t task.Ap } // AskCreateBucketApproval indicates an expected call of AskCreateBucketApproval. -func (mr *MockApproverAPIMockRecorder) AskCreateBucketApproval(ctx, t any) *gomock.Call { +func (mr *MockApproverAPIMockRecorder) AskCreateBucketApproval(ctx, t interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskCreateBucketApproval", reflect.TypeOf((*MockApproverAPI)(nil).AskCreateBucketApproval), ctx, t) } @@ -2280,7 +2297,7 @@ func (m *MockApproverAPI) AskCreateObjectApproval(ctx context.Context, t task.Ap } // AskCreateObjectApproval indicates an expected call of AskCreateObjectApproval. -func (mr *MockApproverAPIMockRecorder) AskCreateObjectApproval(ctx, t any) *gomock.Call { +func (mr *MockApproverAPIMockRecorder) AskCreateObjectApproval(ctx, t interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskCreateObjectApproval", reflect.TypeOf((*MockApproverAPI)(nil).AskCreateObjectApproval), ctx, t) } @@ -2296,7 +2313,7 @@ func (m *MockApproverAPI) AskMigrateBucketApproval(ctx context.Context, t task.A } // AskMigrateBucketApproval indicates an expected call of AskMigrateBucketApproval. -func (mr *MockApproverAPIMockRecorder) AskMigrateBucketApproval(ctx, t any) *gomock.Call { +func (mr *MockApproverAPIMockRecorder) AskMigrateBucketApproval(ctx, t interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskMigrateBucketApproval", reflect.TypeOf((*MockApproverAPI)(nil).AskMigrateBucketApproval), ctx, t) } @@ -2327,7 +2344,7 @@ func (m *MockAuthenticatorAPI) EXPECT() *MockAuthenticatorAPIMockRecorder { // GetAuthNonce mocks base method. func (m *MockAuthenticatorAPI) GetAuthNonce(ctx context.Context, account, domain string, opts ...grpc.DialOption) (int32, int32, string, int64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, domain} + varargs := []interface{}{ctx, account, domain} for _, a := range opts { varargs = append(varargs, a) } @@ -2341,16 +2358,16 @@ func (m *MockAuthenticatorAPI) GetAuthNonce(ctx context.Context, account, domain } // GetAuthNonce indicates an expected call of GetAuthNonce. -func (mr *MockAuthenticatorAPIMockRecorder) GetAuthNonce(ctx, account, domain any, opts ...any) *gomock.Call { +func (mr *MockAuthenticatorAPIMockRecorder) GetAuthNonce(ctx, account, domain interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, domain}, opts...) + varargs := append([]interface{}{ctx, account, domain}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthNonce", reflect.TypeOf((*MockAuthenticatorAPI)(nil).GetAuthNonce), varargs...) } // UpdateUserPublicKey mocks base method. func (m *MockAuthenticatorAPI) UpdateUserPublicKey(ctx context.Context, account, domain string, currentNonce, nonce int32, userPublicKey string, expiryDate int64, opts ...grpc.DialOption) (bool, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate} + varargs := []interface{}{ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate} for _, a := range opts { varargs = append(varargs, a) } @@ -2361,16 +2378,16 @@ func (m *MockAuthenticatorAPI) UpdateUserPublicKey(ctx context.Context, account, } // UpdateUserPublicKey indicates an expected call of UpdateUserPublicKey. -func (mr *MockAuthenticatorAPIMockRecorder) UpdateUserPublicKey(ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate any, opts ...any) *gomock.Call { +func (mr *MockAuthenticatorAPIMockRecorder) UpdateUserPublicKey(ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate}, opts...) + varargs := append([]interface{}{ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserPublicKey", reflect.TypeOf((*MockAuthenticatorAPI)(nil).UpdateUserPublicKey), varargs...) } // VerifyAuthentication mocks base method. func (m *MockAuthenticatorAPI) VerifyAuthentication(ctx context.Context, auth module.AuthOpType, account, bucket, object string, opts ...grpc.DialOption) (bool, error) { m.ctrl.T.Helper() - varargs := []any{ctx, auth, account, bucket, object} + varargs := []interface{}{ctx, auth, account, bucket, object} for _, a := range opts { varargs = append(varargs, a) } @@ -2381,16 +2398,16 @@ func (m *MockAuthenticatorAPI) VerifyAuthentication(ctx context.Context, auth mo } // VerifyAuthentication indicates an expected call of VerifyAuthentication. -func (mr *MockAuthenticatorAPIMockRecorder) VerifyAuthentication(ctx, auth, account, bucket, object any, opts ...any) *gomock.Call { +func (mr *MockAuthenticatorAPIMockRecorder) VerifyAuthentication(ctx, auth, account, bucket, object interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, auth, account, bucket, object}, opts...) + varargs := append([]interface{}{ctx, auth, account, bucket, object}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyAuthentication", reflect.TypeOf((*MockAuthenticatorAPI)(nil).VerifyAuthentication), varargs...) } // VerifyGNFD1EddsaSignature mocks base method. func (m *MockAuthenticatorAPI) VerifyGNFD1EddsaSignature(ctx context.Context, account, domain, offChainSig string, realMsgToSign []byte, opts ...grpc.DialOption) (bool, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, domain, offChainSig, realMsgToSign} + varargs := []interface{}{ctx, account, domain, offChainSig, realMsgToSign} for _, a := range opts { varargs = append(varargs, a) } @@ -2401,9 +2418,9 @@ func (m *MockAuthenticatorAPI) VerifyGNFD1EddsaSignature(ctx context.Context, ac } // VerifyGNFD1EddsaSignature indicates an expected call of VerifyGNFD1EddsaSignature. -func (mr *MockAuthenticatorAPIMockRecorder) VerifyGNFD1EddsaSignature(ctx, account, domain, offChainSig, realMsgToSign any, opts ...any) *gomock.Call { +func (mr *MockAuthenticatorAPIMockRecorder) VerifyGNFD1EddsaSignature(ctx, account, domain, offChainSig, realMsgToSign interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, domain, offChainSig, realMsgToSign}, opts...) + varargs := append([]interface{}{ctx, account, domain, offChainSig, realMsgToSign}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyGNFD1EddsaSignature", reflect.TypeOf((*MockAuthenticatorAPI)(nil).VerifyGNFD1EddsaSignature), varargs...) } @@ -2433,7 +2450,7 @@ func (m *MockDownloaderAPI) EXPECT() *MockDownloaderAPIMockRecorder { // DeductQuotaForBucketMigrate mocks base method. func (m *MockDownloaderAPI) DeductQuotaForBucketMigrate(ctx context.Context, bucketID, deductQuota uint64, yearMonth string, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, deductQuota, yearMonth} + varargs := []interface{}{ctx, bucketID, deductQuota, yearMonth} for _, a := range opts { varargs = append(varargs, a) } @@ -2443,16 +2460,16 @@ func (m *MockDownloaderAPI) DeductQuotaForBucketMigrate(ctx context.Context, buc } // DeductQuotaForBucketMigrate indicates an expected call of DeductQuotaForBucketMigrate. -func (mr *MockDownloaderAPIMockRecorder) DeductQuotaForBucketMigrate(ctx, bucketID, deductQuota, yearMonth any, opts ...any) *gomock.Call { +func (mr *MockDownloaderAPIMockRecorder) DeductQuotaForBucketMigrate(ctx, bucketID, deductQuota, yearMonth interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, deductQuota, yearMonth}, opts...) + varargs := append([]interface{}{ctx, bucketID, deductQuota, yearMonth}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeductQuotaForBucketMigrate", reflect.TypeOf((*MockDownloaderAPI)(nil).DeductQuotaForBucketMigrate), varargs...) } // GetChallengeInfo mocks base method. func (m *MockDownloaderAPI) GetChallengeInfo(ctx context.Context, challengePieceTask task.ChallengePieceTask, opts ...grpc.DialOption) ([]byte, [][]byte, []byte, error) { m.ctrl.T.Helper() - varargs := []any{ctx, challengePieceTask} + varargs := []interface{}{ctx, challengePieceTask} for _, a := range opts { varargs = append(varargs, a) } @@ -2465,16 +2482,16 @@ func (m *MockDownloaderAPI) GetChallengeInfo(ctx context.Context, challengePiece } // GetChallengeInfo indicates an expected call of GetChallengeInfo. -func (mr *MockDownloaderAPIMockRecorder) GetChallengeInfo(ctx, challengePieceTask any, opts ...any) *gomock.Call { +func (mr *MockDownloaderAPIMockRecorder) GetChallengeInfo(ctx, challengePieceTask interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, challengePieceTask}, opts...) + varargs := append([]interface{}{ctx, challengePieceTask}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetChallengeInfo", reflect.TypeOf((*MockDownloaderAPI)(nil).GetChallengeInfo), varargs...) } // GetObject mocks base method. func (m *MockDownloaderAPI) GetObject(ctx context.Context, downloadObjectTask task.DownloadObjectTask, opts ...grpc.DialOption) ([]byte, error) { m.ctrl.T.Helper() - varargs := []any{ctx, downloadObjectTask} + varargs := []interface{}{ctx, downloadObjectTask} for _, a := range opts { varargs = append(varargs, a) } @@ -2485,16 +2502,16 @@ func (m *MockDownloaderAPI) GetObject(ctx context.Context, downloadObjectTask ta } // GetObject indicates an expected call of GetObject. -func (mr *MockDownloaderAPIMockRecorder) GetObject(ctx, downloadObjectTask any, opts ...any) *gomock.Call { +func (mr *MockDownloaderAPIMockRecorder) GetObject(ctx, downloadObjectTask interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, downloadObjectTask}, opts...) + varargs := append([]interface{}{ctx, downloadObjectTask}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObject", reflect.TypeOf((*MockDownloaderAPI)(nil).GetObject), varargs...) } // GetPiece mocks base method. func (m *MockDownloaderAPI) GetPiece(ctx context.Context, downloadPieceTask task.DownloadPieceTask, opts ...grpc.DialOption) ([]byte, error) { m.ctrl.T.Helper() - varargs := []any{ctx, downloadPieceTask} + varargs := []interface{}{ctx, downloadPieceTask} for _, a := range opts { varargs = append(varargs, a) } @@ -2505,16 +2522,16 @@ func (m *MockDownloaderAPI) GetPiece(ctx context.Context, downloadPieceTask task } // GetPiece indicates an expected call of GetPiece. -func (mr *MockDownloaderAPIMockRecorder) GetPiece(ctx, downloadPieceTask any, opts ...any) *gomock.Call { +func (mr *MockDownloaderAPIMockRecorder) GetPiece(ctx, downloadPieceTask interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, downloadPieceTask}, opts...) + varargs := append([]interface{}{ctx, downloadPieceTask}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPiece", reflect.TypeOf((*MockDownloaderAPI)(nil).GetPiece), varargs...) } // RecoupQuota mocks base method. func (m *MockDownloaderAPI) RecoupQuota(ctx context.Context, bucketID, extraQuota uint64, yearMonth string, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, extraQuota, yearMonth} + varargs := []interface{}{ctx, bucketID, extraQuota, yearMonth} for _, a := range opts { varargs = append(varargs, a) } @@ -2524,9 +2541,9 @@ func (m *MockDownloaderAPI) RecoupQuota(ctx context.Context, bucketID, extraQuot } // RecoupQuota indicates an expected call of RecoupQuota. -func (mr *MockDownloaderAPIMockRecorder) RecoupQuota(ctx, bucketID, extraQuota, yearMonth any, opts ...any) *gomock.Call { +func (mr *MockDownloaderAPIMockRecorder) RecoupQuota(ctx, bucketID, extraQuota, yearMonth interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, extraQuota, yearMonth}, opts...) + varargs := append([]interface{}{ctx, bucketID, extraQuota, yearMonth}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecoupQuota", reflect.TypeOf((*MockDownloaderAPI)(nil).RecoupQuota), varargs...) } @@ -2563,7 +2580,7 @@ func (m *MockGaterAPI) DoneReplicatePieceToSecondary(ctx context.Context, endpoi } // DoneReplicatePieceToSecondary indicates an expected call of DoneReplicatePieceToSecondary. -func (mr *MockGaterAPIMockRecorder) DoneReplicatePieceToSecondary(ctx, endpoint, receive any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) DoneReplicatePieceToSecondary(ctx, endpoint, receive interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DoneReplicatePieceToSecondary", reflect.TypeOf((*MockGaterAPI)(nil).DoneReplicatePieceToSecondary), ctx, endpoint, receive) } @@ -2578,7 +2595,7 @@ func (m *MockGaterAPI) GetPieceFromECChunks(ctx context.Context, endpoint string } // GetPieceFromECChunks indicates an expected call of GetPieceFromECChunks. -func (mr *MockGaterAPIMockRecorder) GetPieceFromECChunks(ctx, endpoint, task any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) GetPieceFromECChunks(ctx, endpoint, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPieceFromECChunks", reflect.TypeOf((*MockGaterAPI)(nil).GetPieceFromECChunks), ctx, endpoint, task) } @@ -2593,7 +2610,7 @@ func (m *MockGaterAPI) GetSecondarySPMigrationBucketApproval(ctx context.Context } // GetSecondarySPMigrationBucketApproval indicates an expected call of GetSecondarySPMigrationBucketApproval. -func (mr *MockGaterAPIMockRecorder) GetSecondarySPMigrationBucketApproval(ctx, secondarySPEndpoint, signDoc any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) GetSecondarySPMigrationBucketApproval(ctx, secondarySPEndpoint, signDoc interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecondarySPMigrationBucketApproval", reflect.TypeOf((*MockGaterAPI)(nil).GetSecondarySPMigrationBucketApproval), ctx, secondarySPEndpoint, signDoc) } @@ -2608,7 +2625,7 @@ func (m *MockGaterAPI) GetSwapOutApproval(ctx context.Context, destSPEndpoint st } // GetSwapOutApproval indicates an expected call of GetSwapOutApproval. -func (mr *MockGaterAPIMockRecorder) GetSwapOutApproval(ctx, destSPEndpoint, swapOutApproval any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) GetSwapOutApproval(ctx, destSPEndpoint, swapOutApproval interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSwapOutApproval", reflect.TypeOf((*MockGaterAPI)(nil).GetSwapOutApproval), ctx, destSPEndpoint, swapOutApproval) } @@ -2623,7 +2640,7 @@ func (m *MockGaterAPI) MigratePiece(ctx context.Context, gvgTask *gfsptask.GfSpM } // MigratePiece indicates an expected call of MigratePiece. -func (mr *MockGaterAPIMockRecorder) MigratePiece(ctx, gvgTask, pieceTask any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) MigratePiece(ctx, gvgTask, pieceTask interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MigratePiece", reflect.TypeOf((*MockGaterAPI)(nil).MigratePiece), ctx, gvgTask, pieceTask) } @@ -2637,7 +2654,7 @@ func (m *MockGaterAPI) NotifyDestSPMigrateSwapOut(ctx context.Context, destEndpo } // NotifyDestSPMigrateSwapOut indicates an expected call of NotifyDestSPMigrateSwapOut. -func (mr *MockGaterAPIMockRecorder) NotifyDestSPMigrateSwapOut(ctx, destEndpoint, swapOut any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) NotifyDestSPMigrateSwapOut(ctx, destEndpoint, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyDestSPMigrateSwapOut", reflect.TypeOf((*MockGaterAPI)(nil).NotifyDestSPMigrateSwapOut), ctx, destEndpoint, swapOut) } @@ -2652,7 +2669,7 @@ func (m *MockGaterAPI) PostMigrateBucket(ctx context.Context, srcSPEndpoint stri } // PostMigrateBucket indicates an expected call of PostMigrateBucket. -func (mr *MockGaterAPIMockRecorder) PostMigrateBucket(ctx, srcSPEndpoint, postMsg any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) PostMigrateBucket(ctx, srcSPEndpoint, postMsg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostMigrateBucket", reflect.TypeOf((*MockGaterAPI)(nil).PostMigrateBucket), ctx, srcSPEndpoint, postMsg) } @@ -2667,7 +2684,7 @@ func (m *MockGaterAPI) PreMigrateBucket(ctx context.Context, srcSPEndpoint strin } // PreMigrateBucket indicates an expected call of PreMigrateBucket. -func (mr *MockGaterAPIMockRecorder) PreMigrateBucket(ctx, srcSPEndpoint, preMsg any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) PreMigrateBucket(ctx, srcSPEndpoint, preMsg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreMigrateBucket", reflect.TypeOf((*MockGaterAPI)(nil).PreMigrateBucket), ctx, srcSPEndpoint, preMsg) } @@ -2682,7 +2699,7 @@ func (m *MockGaterAPI) QueryLatestBucketQuota(ctx context.Context, endpoint stri } // QueryLatestBucketQuota indicates an expected call of QueryLatestBucketQuota. -func (mr *MockGaterAPIMockRecorder) QueryLatestBucketQuota(ctx, endpoint, queryMsg any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) QueryLatestBucketQuota(ctx, endpoint, queryMsg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryLatestBucketQuota", reflect.TypeOf((*MockGaterAPI)(nil).QueryLatestBucketQuota), ctx, endpoint, queryMsg) } @@ -2696,7 +2713,7 @@ func (m *MockGaterAPI) QuerySPHasEnoughQuotaForMigrateBucket(ctx context.Context } // QuerySPHasEnoughQuotaForMigrateBucket indicates an expected call of QuerySPHasEnoughQuotaForMigrateBucket. -func (mr *MockGaterAPIMockRecorder) QuerySPHasEnoughQuotaForMigrateBucket(ctx, srcSPEndpoint, queryMsg any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) QuerySPHasEnoughQuotaForMigrateBucket(ctx, srcSPEndpoint, queryMsg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QuerySPHasEnoughQuotaForMigrateBucket", reflect.TypeOf((*MockGaterAPI)(nil).QuerySPHasEnoughQuotaForMigrateBucket), ctx, srcSPEndpoint, queryMsg) } @@ -2710,7 +2727,7 @@ func (m *MockGaterAPI) ReplicatePieceToSecondary(ctx context.Context, endpoint s } // ReplicatePieceToSecondary indicates an expected call of ReplicatePieceToSecondary. -func (mr *MockGaterAPIMockRecorder) ReplicatePieceToSecondary(ctx, endpoint, receive, data any) *gomock.Call { +func (mr *MockGaterAPIMockRecorder) ReplicatePieceToSecondary(ctx, endpoint, receive, data interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplicatePieceToSecondary", reflect.TypeOf((*MockGaterAPI)(nil).ReplicatePieceToSecondary), ctx, endpoint, receive, data) } @@ -2748,7 +2765,7 @@ func (m *MockManagerAPI) AskTask(ctx context.Context, limit rcmgr.Limit) (task.T } // AskTask indicates an expected call of AskTask. -func (mr *MockManagerAPIMockRecorder) AskTask(ctx, limit any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) AskTask(ctx, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskTask", reflect.TypeOf((*MockManagerAPI)(nil).AskTask), ctx, limit) } @@ -2762,7 +2779,7 @@ func (m *MockManagerAPI) CreateResumableUploadObject(ctx context.Context, task t } // CreateResumableUploadObject indicates an expected call of CreateResumableUploadObject. -func (mr *MockManagerAPIMockRecorder) CreateResumableUploadObject(ctx, task any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) CreateResumableUploadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateResumableUploadObject", reflect.TypeOf((*MockManagerAPI)(nil).CreateResumableUploadObject), ctx, task) } @@ -2776,7 +2793,7 @@ func (m *MockManagerAPI) CreateUploadObject(ctx context.Context, task task.Uploa } // CreateUploadObject indicates an expected call of CreateUploadObject. -func (mr *MockManagerAPIMockRecorder) CreateUploadObject(ctx, task any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) CreateUploadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUploadObject", reflect.TypeOf((*MockManagerAPI)(nil).CreateUploadObject), ctx, task) } @@ -2791,7 +2808,7 @@ func (m *MockManagerAPI) GetTasksStats(ctx context.Context) (*gfspserver.TasksSt } // GetTasksStats indicates an expected call of GetTasksStats. -func (mr *MockManagerAPIMockRecorder) GetTasksStats(ctx any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) GetTasksStats(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTasksStats", reflect.TypeOf((*MockManagerAPI)(nil).GetTasksStats), ctx) } @@ -2805,23 +2822,23 @@ func (m *MockManagerAPI) NotifyMigrateSwapOut(ctx context.Context, swapOut *type } // NotifyMigrateSwapOut indicates an expected call of NotifyMigrateSwapOut. -func (mr *MockManagerAPIMockRecorder) NotifyMigrateSwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) NotifyMigrateSwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyMigrateSwapOut", reflect.TypeOf((*MockManagerAPI)(nil).NotifyMigrateSwapOut), ctx, swapOut) } // NotifyPostMigrateBucket mocks base method. -func (m *MockManagerAPI) NotifyPostMigrateBucket(ctx context.Context, bucketID uint64) error { +func (m *MockManagerAPI) NotifyPostMigrateBucket(ctx context.Context, bmInfo *gfsptask.GfSpBucketMigrationInfo) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NotifyPostMigrateBucket", ctx, bucketID) + ret := m.ctrl.Call(m, "NotifyPostMigrateBucket", ctx, bmInfo) ret0, _ := ret[0].(error) return ret0 } // NotifyPostMigrateBucket indicates an expected call of NotifyPostMigrateBucket. -func (mr *MockManagerAPIMockRecorder) NotifyPostMigrateBucket(ctx, bucketID any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) NotifyPostMigrateBucket(ctx, bmInfo interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPostMigrateBucket", reflect.TypeOf((*MockManagerAPI)(nil).NotifyPostMigrateBucket), ctx, bucketID) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPostMigrateBucket", reflect.TypeOf((*MockManagerAPI)(nil).NotifyPostMigrateBucket), ctx, bmInfo) } // NotifyPreMigrateBucket mocks base method. @@ -2833,7 +2850,7 @@ func (m *MockManagerAPI) NotifyPreMigrateBucket(ctx context.Context, bucketID ui } // NotifyPreMigrateBucket indicates an expected call of NotifyPreMigrateBucket. -func (mr *MockManagerAPIMockRecorder) NotifyPreMigrateBucket(ctx, bucketID any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) NotifyPreMigrateBucket(ctx, bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPreMigrateBucket", reflect.TypeOf((*MockManagerAPI)(nil).NotifyPreMigrateBucket), ctx, bucketID) } @@ -2848,7 +2865,7 @@ func (m *MockManagerAPI) PickVirtualGroupFamilyID(ctx context.Context, task task } // PickVirtualGroupFamilyID indicates an expected call of PickVirtualGroupFamilyID. -func (mr *MockManagerAPIMockRecorder) PickVirtualGroupFamilyID(ctx, task any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) PickVirtualGroupFamilyID(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PickVirtualGroupFamilyID", reflect.TypeOf((*MockManagerAPI)(nil).PickVirtualGroupFamilyID), ctx, task) } @@ -2862,7 +2879,7 @@ func (m *MockManagerAPI) ReportTask(ctx context.Context, report task.Task) error } // ReportTask indicates an expected call of ReportTask. -func (mr *MockManagerAPIMockRecorder) ReportTask(ctx, report any) *gomock.Call { +func (mr *MockManagerAPIMockRecorder) ReportTask(ctx, report interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReportTask", reflect.TypeOf((*MockManagerAPI)(nil).ReportTask), ctx, report) } @@ -2893,7 +2910,7 @@ func (m *MockMetadataAPI) EXPECT() *MockMetadataAPIMockRecorder { // GetBucketByBucketID mocks base method. func (m *MockMetadataAPI) GetBucketByBucketID(ctx context.Context, bucketID int64, includePrivate bool, opts ...grpc.DialOption) (*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, includePrivate} + varargs := []interface{}{ctx, bucketID, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -2904,16 +2921,16 @@ func (m *MockMetadataAPI) GetBucketByBucketID(ctx context.Context, bucketID int6 } // GetBucketByBucketID indicates an expected call of GetBucketByBucketID. -func (mr *MockMetadataAPIMockRecorder) GetBucketByBucketID(ctx, bucketID, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetBucketByBucketID(ctx, bucketID, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketID, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByBucketID", reflect.TypeOf((*MockMetadataAPI)(nil).GetBucketByBucketID), varargs...) } // GetBucketByBucketName mocks base method. func (m *MockMetadataAPI) GetBucketByBucketName(ctx context.Context, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketName, includePrivate} + varargs := []interface{}{ctx, bucketName, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -2924,16 +2941,16 @@ func (m *MockMetadataAPI) GetBucketByBucketName(ctx context.Context, bucketName } // GetBucketByBucketName indicates an expected call of GetBucketByBucketName. -func (mr *MockMetadataAPIMockRecorder) GetBucketByBucketName(ctx, bucketName, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetBucketByBucketName(ctx, bucketName, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketName, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketName, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByBucketName", reflect.TypeOf((*MockMetadataAPI)(nil).GetBucketByBucketName), varargs...) } // GetBucketMeta mocks base method. func (m *MockMetadataAPI) GetBucketMeta(ctx context.Context, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types.VGFInfoBucket, *types0.StreamRecord, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketName, includePrivate} + varargs := []interface{}{ctx, bucketName, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -2945,16 +2962,16 @@ func (m *MockMetadataAPI) GetBucketMeta(ctx context.Context, bucketName string, } // GetBucketMeta indicates an expected call of GetBucketMeta. -func (mr *MockMetadataAPIMockRecorder) GetBucketMeta(ctx, bucketName, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetBucketMeta(ctx, bucketName, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketName, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketName, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketMeta", reflect.TypeOf((*MockMetadataAPI)(nil).GetBucketMeta), varargs...) } // GetBucketReadQuota mocks base method. func (m *MockMetadataAPI) GetBucketReadQuota(ctx context.Context, bucket *types3.BucketInfo, yearMonth string, opts ...grpc.DialOption) (uint64, uint64, uint64, uint64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucket, yearMonth} + varargs := []interface{}{ctx, bucket, yearMonth} for _, a := range opts { varargs = append(varargs, a) } @@ -2968,16 +2985,16 @@ func (m *MockMetadataAPI) GetBucketReadQuota(ctx context.Context, bucket *types3 } // GetBucketReadQuota indicates an expected call of GetBucketReadQuota. -func (mr *MockMetadataAPIMockRecorder) GetBucketReadQuota(ctx, bucket, yearMonth any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetBucketReadQuota(ctx, bucket, yearMonth interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucket, yearMonth}, opts...) + varargs := append([]interface{}{ctx, bucket, yearMonth}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketReadQuota", reflect.TypeOf((*MockMetadataAPI)(nil).GetBucketReadQuota), varargs...) } // GetBucketSize mocks base method. func (m *MockMetadataAPI) GetBucketSize(ctx context.Context, bucketID uint64, opts ...grpc.DialOption) (string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID} + varargs := []interface{}{ctx, bucketID} for _, a := range opts { varargs = append(varargs, a) } @@ -2988,16 +3005,16 @@ func (m *MockMetadataAPI) GetBucketSize(ctx context.Context, bucketID uint64, op } // GetBucketSize indicates an expected call of GetBucketSize. -func (mr *MockMetadataAPIMockRecorder) GetBucketSize(ctx, bucketID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetBucketSize(ctx, bucketID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID}, opts...) + varargs := append([]interface{}{ctx, bucketID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketSize", reflect.TypeOf((*MockMetadataAPI)(nil).GetBucketSize), varargs...) } // GetEndpointBySpID mocks base method. func (m *MockMetadataAPI) GetEndpointBySpID(ctx context.Context, spID uint32, opts ...grpc.DialOption) (string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3008,16 +3025,16 @@ func (m *MockMetadataAPI) GetEndpointBySpID(ctx context.Context, spID uint32, op } // GetEndpointBySpID indicates an expected call of GetEndpointBySpID. -func (mr *MockMetadataAPIMockRecorder) GetEndpointBySpID(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetEndpointBySpID(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEndpointBySpID", reflect.TypeOf((*MockMetadataAPI)(nil).GetEndpointBySpID), varargs...) } // GetGlobalVirtualGroup mocks base method. func (m *MockMetadataAPI) GetGlobalVirtualGroup(ctx context.Context, bucketID uint64, lvgID uint32, opts ...grpc.DialOption) (*types4.GlobalVirtualGroup, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, lvgID} + varargs := []interface{}{ctx, bucketID, lvgID} for _, a := range opts { varargs = append(varargs, a) } @@ -3028,16 +3045,16 @@ func (m *MockMetadataAPI) GetGlobalVirtualGroup(ctx context.Context, bucketID ui } // GetGlobalVirtualGroup indicates an expected call of GetGlobalVirtualGroup. -func (mr *MockMetadataAPIMockRecorder) GetGlobalVirtualGroup(ctx, bucketID, lvgID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetGlobalVirtualGroup(ctx, bucketID, lvgID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, lvgID}, opts...) + varargs := append([]interface{}{ctx, bucketID, lvgID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalVirtualGroup", reflect.TypeOf((*MockMetadataAPI)(nil).GetGlobalVirtualGroup), varargs...) } // GetGlobalVirtualGroupByGvgID mocks base method. func (m *MockMetadataAPI) GetGlobalVirtualGroupByGvgID(ctx context.Context, gvgID uint32, opts ...grpc.DialOption) (*types4.GlobalVirtualGroup, error) { m.ctrl.T.Helper() - varargs := []any{ctx, gvgID} + varargs := []interface{}{ctx, gvgID} for _, a := range opts { varargs = append(varargs, a) } @@ -3048,16 +3065,16 @@ func (m *MockMetadataAPI) GetGlobalVirtualGroupByGvgID(ctx context.Context, gvgI } // GetGlobalVirtualGroupByGvgID indicates an expected call of GetGlobalVirtualGroupByGvgID. -func (mr *MockMetadataAPIMockRecorder) GetGlobalVirtualGroupByGvgID(ctx, gvgID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetGlobalVirtualGroupByGvgID(ctx, gvgID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, gvgID}, opts...) + varargs := append([]interface{}{ctx, gvgID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalVirtualGroupByGvgID", reflect.TypeOf((*MockMetadataAPI)(nil).GetGlobalVirtualGroupByGvgID), varargs...) } // GetGroupList mocks base method. func (m *MockMetadataAPI) GetGroupList(ctx context.Context, name, prefix, sourceType string, limit, offset int64, includeRemoved bool, opts ...grpc.DialOption) ([]*types.Group, int64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, name, prefix, sourceType, limit, offset, includeRemoved} + varargs := []interface{}{ctx, name, prefix, sourceType, limit, offset, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -3069,16 +3086,16 @@ func (m *MockMetadataAPI) GetGroupList(ctx context.Context, name, prefix, source } // GetGroupList indicates an expected call of GetGroupList. -func (mr *MockMetadataAPIMockRecorder) GetGroupList(ctx, name, prefix, sourceType, limit, offset, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetGroupList(ctx, name, prefix, sourceType, limit, offset, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, name, prefix, sourceType, limit, offset, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, name, prefix, sourceType, limit, offset, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupList", reflect.TypeOf((*MockMetadataAPI)(nil).GetGroupList), varargs...) } // GetGroupMembers mocks base method. func (m *MockMetadataAPI) GetGroupMembers(ctx context.Context, groupID uint64, startAfter string, limit uint32, opts ...grpc.DialOption) ([]*types.GroupMember, error) { m.ctrl.T.Helper() - varargs := []any{ctx, groupID, startAfter, limit} + varargs := []interface{}{ctx, groupID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -3089,16 +3106,16 @@ func (m *MockMetadataAPI) GetGroupMembers(ctx context.Context, groupID uint64, s } // GetGroupMembers indicates an expected call of GetGroupMembers. -func (mr *MockMetadataAPIMockRecorder) GetGroupMembers(ctx, groupID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetGroupMembers(ctx, groupID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, groupID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, groupID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembers", reflect.TypeOf((*MockMetadataAPI)(nil).GetGroupMembers), varargs...) } // GetLatestBucketReadQuota mocks base method. func (m *MockMetadataAPI) GetLatestBucketReadQuota(ctx context.Context, bucketID uint64, opts ...grpc.DialOption) (gfsptask.GfSpBucketQuotaInfo, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID} + varargs := []interface{}{ctx, bucketID} for _, a := range opts { varargs = append(varargs, a) } @@ -3109,16 +3126,16 @@ func (m *MockMetadataAPI) GetLatestBucketReadQuota(ctx context.Context, bucketID } // GetLatestBucketReadQuota indicates an expected call of GetLatestBucketReadQuota. -func (mr *MockMetadataAPIMockRecorder) GetLatestBucketReadQuota(ctx, bucketID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetLatestBucketReadQuota(ctx, bucketID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID}, opts...) + varargs := append([]interface{}{ctx, bucketID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestBucketReadQuota", reflect.TypeOf((*MockMetadataAPI)(nil).GetLatestBucketReadQuota), varargs...) } // GetObjectByID mocks base method. func (m *MockMetadataAPI) GetObjectByID(ctx context.Context, objectID uint64, opts ...grpc.DialOption) (*types3.ObjectInfo, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectID} + varargs := []interface{}{ctx, objectID} for _, a := range opts { varargs = append(varargs, a) } @@ -3129,16 +3146,16 @@ func (m *MockMetadataAPI) GetObjectByID(ctx context.Context, objectID uint64, op } // GetObjectByID indicates an expected call of GetObjectByID. -func (mr *MockMetadataAPIMockRecorder) GetObjectByID(ctx, objectID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetObjectByID(ctx, objectID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectID}, opts...) + varargs := append([]interface{}{ctx, objectID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectByID", reflect.TypeOf((*MockMetadataAPI)(nil).GetObjectByID), varargs...) } // GetObjectMeta mocks base method. func (m *MockMetadataAPI) GetObjectMeta(ctx context.Context, objectName, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types.Object, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectName, bucketName, includePrivate} + varargs := []interface{}{ctx, objectName, bucketName, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -3149,16 +3166,16 @@ func (m *MockMetadataAPI) GetObjectMeta(ctx context.Context, objectName, bucketN } // GetObjectMeta indicates an expected call of GetObjectMeta. -func (mr *MockMetadataAPIMockRecorder) GetObjectMeta(ctx, objectName, bucketName, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetObjectMeta(ctx, objectName, bucketName, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectName, bucketName, includePrivate}, opts...) + varargs := append([]interface{}{ctx, objectName, bucketName, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectMeta", reflect.TypeOf((*MockMetadataAPI)(nil).GetObjectMeta), varargs...) } // GetPaymentByBucketID mocks base method. func (m *MockMetadataAPI) GetPaymentByBucketID(ctx context.Context, bucketID int64, includePrivate bool, opts ...grpc.DialOption) (*types0.StreamRecord, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, includePrivate} + varargs := []interface{}{ctx, bucketID, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -3169,16 +3186,16 @@ func (m *MockMetadataAPI) GetPaymentByBucketID(ctx context.Context, bucketID int } // GetPaymentByBucketID indicates an expected call of GetPaymentByBucketID. -func (mr *MockMetadataAPIMockRecorder) GetPaymentByBucketID(ctx, bucketID, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetPaymentByBucketID(ctx, bucketID, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketID, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByBucketID", reflect.TypeOf((*MockMetadataAPI)(nil).GetPaymentByBucketID), varargs...) } // GetPaymentByBucketName mocks base method. func (m *MockMetadataAPI) GetPaymentByBucketName(ctx context.Context, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types0.StreamRecord, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketName, includePrivate} + varargs := []interface{}{ctx, bucketName, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -3189,16 +3206,16 @@ func (m *MockMetadataAPI) GetPaymentByBucketName(ctx context.Context, bucketName } // GetPaymentByBucketName indicates an expected call of GetPaymentByBucketName. -func (mr *MockMetadataAPIMockRecorder) GetPaymentByBucketName(ctx, bucketName, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetPaymentByBucketName(ctx, bucketName, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketName, includePrivate}, opts...) + varargs := append([]interface{}{ctx, bucketName, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByBucketName", reflect.TypeOf((*MockMetadataAPI)(nil).GetPaymentByBucketName), varargs...) } // GetSPInfo mocks base method. func (m *MockMetadataAPI) GetSPInfo(ctx context.Context, operatorAddress string, opts ...grpc.DialOption) (*types2.StorageProvider, error) { m.ctrl.T.Helper() - varargs := []any{ctx, operatorAddress} + varargs := []interface{}{ctx, operatorAddress} for _, a := range opts { varargs = append(varargs, a) } @@ -3209,16 +3226,16 @@ func (m *MockMetadataAPI) GetSPInfo(ctx context.Context, operatorAddress string, } // GetSPInfo indicates an expected call of GetSPInfo. -func (mr *MockMetadataAPIMockRecorder) GetSPInfo(ctx, operatorAddress any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetSPInfo(ctx, operatorAddress interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, operatorAddress}, opts...) + varargs := append([]interface{}{ctx, operatorAddress}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSPInfo", reflect.TypeOf((*MockMetadataAPI)(nil).GetSPInfo), varargs...) } // GetSPMigratingBucketNumber mocks base method. func (m *MockMetadataAPI) GetSPMigratingBucketNumber(ctx context.Context, spID uint32, opts ...grpc.DialOption) (uint64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3229,16 +3246,16 @@ func (m *MockMetadataAPI) GetSPMigratingBucketNumber(ctx context.Context, spID u } // GetSPMigratingBucketNumber indicates an expected call of GetSPMigratingBucketNumber. -func (mr *MockMetadataAPIMockRecorder) GetSPMigratingBucketNumber(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetSPMigratingBucketNumber(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSPMigratingBucketNumber", reflect.TypeOf((*MockMetadataAPI)(nil).GetSPMigratingBucketNumber), varargs...) } // GetStatus mocks base method. func (m *MockMetadataAPI) GetStatus(ctx context.Context, opts ...grpc.DialOption) (*types.Status, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -3249,16 +3266,16 @@ func (m *MockMetadataAPI) GetStatus(ctx context.Context, opts ...grpc.DialOption } // GetStatus indicates an expected call of GetStatus. -func (mr *MockMetadataAPIMockRecorder) GetStatus(ctx any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetStatus(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStatus", reflect.TypeOf((*MockMetadataAPI)(nil).GetStatus), varargs...) } // GetUploadObjectSegment mocks base method. func (m *MockMetadataAPI) GetUploadObjectSegment(ctx context.Context, objectID uint64, opts ...grpc.DialOption) (uint32, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectID} + varargs := []interface{}{ctx, objectID} for _, a := range opts { varargs = append(varargs, a) } @@ -3269,16 +3286,16 @@ func (m *MockMetadataAPI) GetUploadObjectSegment(ctx context.Context, objectID u } // GetUploadObjectSegment indicates an expected call of GetUploadObjectSegment. -func (mr *MockMetadataAPIMockRecorder) GetUploadObjectSegment(ctx, objectID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetUploadObjectSegment(ctx, objectID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectID}, opts...) + varargs := append([]interface{}{ctx, objectID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadObjectSegment", reflect.TypeOf((*MockMetadataAPI)(nil).GetUploadObjectSegment), varargs...) } // GetUploadObjectState mocks base method. func (m *MockMetadataAPI) GetUploadObjectState(ctx context.Context, objectID uint64, opts ...grpc.DialOption) (int32, string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectID} + varargs := []interface{}{ctx, objectID} for _, a := range opts { varargs = append(varargs, a) } @@ -3290,16 +3307,16 @@ func (m *MockMetadataAPI) GetUploadObjectState(ctx context.Context, objectID uin } // GetUploadObjectState indicates an expected call of GetUploadObjectState. -func (mr *MockMetadataAPIMockRecorder) GetUploadObjectState(ctx, objectID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetUploadObjectState(ctx, objectID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectID}, opts...) + varargs := append([]interface{}{ctx, objectID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadObjectState", reflect.TypeOf((*MockMetadataAPI)(nil).GetUploadObjectState), varargs...) } // GetUserBuckets mocks base method. func (m *MockMetadataAPI) GetUserBuckets(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.VGFInfoBucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, includeRemoved} + varargs := []interface{}{ctx, account, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -3310,16 +3327,16 @@ func (m *MockMetadataAPI) GetUserBuckets(ctx context.Context, account string, in } // GetUserBuckets indicates an expected call of GetUserBuckets. -func (mr *MockMetadataAPIMockRecorder) GetUserBuckets(ctx, account, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetUserBuckets(ctx, account, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, account, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserBuckets", reflect.TypeOf((*MockMetadataAPI)(nil).GetUserBuckets), varargs...) } // GetUserBucketsCount mocks base method. func (m *MockMetadataAPI) GetUserBucketsCount(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) (int64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, account, includeRemoved} + varargs := []interface{}{ctx, account, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -3330,16 +3347,16 @@ func (m *MockMetadataAPI) GetUserBucketsCount(ctx context.Context, account strin } // GetUserBucketsCount indicates an expected call of GetUserBucketsCount. -func (mr *MockMetadataAPIMockRecorder) GetUserBucketsCount(ctx, account, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetUserBucketsCount(ctx, account, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, account, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, account, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserBucketsCount", reflect.TypeOf((*MockMetadataAPI)(nil).GetUserBucketsCount), varargs...) } // GetUserGroups mocks base method. func (m *MockMetadataAPI) GetUserGroups(ctx context.Context, accountID string, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.GroupMember, error) { m.ctrl.T.Helper() - varargs := []any{ctx, accountID, startAfter, limit} + varargs := []interface{}{ctx, accountID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -3350,16 +3367,16 @@ func (m *MockMetadataAPI) GetUserGroups(ctx context.Context, accountID string, s } // GetUserGroups indicates an expected call of GetUserGroups. -func (mr *MockMetadataAPIMockRecorder) GetUserGroups(ctx, accountID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetUserGroups(ctx, accountID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, accountID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, accountID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserGroups", reflect.TypeOf((*MockMetadataAPI)(nil).GetUserGroups), varargs...) } // GetUserOwnedGroups mocks base method. func (m *MockMetadataAPI) GetUserOwnedGroups(ctx context.Context, accountID string, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.GroupMember, error) { m.ctrl.T.Helper() - varargs := []any{ctx, accountID, startAfter, limit} + varargs := []interface{}{ctx, accountID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -3370,16 +3387,16 @@ func (m *MockMetadataAPI) GetUserOwnedGroups(ctx context.Context, accountID stri } // GetUserOwnedGroups indicates an expected call of GetUserOwnedGroups. -func (mr *MockMetadataAPIMockRecorder) GetUserOwnedGroups(ctx, accountID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetUserOwnedGroups(ctx, accountID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, accountID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, accountID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserOwnedGroups", reflect.TypeOf((*MockMetadataAPI)(nil).GetUserOwnedGroups), varargs...) } // GetVirtualGroupFamily mocks base method. func (m *MockMetadataAPI) GetVirtualGroupFamily(ctx context.Context, vgfID uint32, opts ...grpc.DialOption) (*types4.GlobalVirtualGroupFamily, error) { m.ctrl.T.Helper() - varargs := []any{ctx, vgfID} + varargs := []interface{}{ctx, vgfID} for _, a := range opts { varargs = append(varargs, a) } @@ -3390,16 +3407,16 @@ func (m *MockMetadataAPI) GetVirtualGroupFamily(ctx context.Context, vgfID uint3 } // GetVirtualGroupFamily indicates an expected call of GetVirtualGroupFamily. -func (mr *MockMetadataAPIMockRecorder) GetVirtualGroupFamily(ctx, vgfID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) GetVirtualGroupFamily(ctx, vgfID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, vgfID}, opts...) + varargs := append([]interface{}{ctx, vgfID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualGroupFamily", reflect.TypeOf((*MockMetadataAPI)(nil).GetVirtualGroupFamily), varargs...) } // ListBucketReadRecord mocks base method. func (m *MockMetadataAPI) ListBucketReadRecord(ctx context.Context, bucket *types3.BucketInfo, startTimestampUs, endTimestampUs, maxRecordNum int64, opts ...grpc.DialOption) ([]*types.ReadRecord, int64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum} + varargs := []interface{}{ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum} for _, a := range opts { varargs = append(varargs, a) } @@ -3411,16 +3428,16 @@ func (m *MockMetadataAPI) ListBucketReadRecord(ctx context.Context, bucket *type } // ListBucketReadRecord indicates an expected call of ListBucketReadRecord. -func (mr *MockMetadataAPIMockRecorder) ListBucketReadRecord(ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListBucketReadRecord(ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum}, opts...) + varargs := append([]interface{}{ctx, bucket, startTimestampUs, endTimestampUs, maxRecordNum}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketReadRecord", reflect.TypeOf((*MockMetadataAPI)(nil).ListBucketReadRecord), varargs...) } // ListBucketsByIDs mocks base method. func (m *MockMetadataAPI) ListBucketsByIDs(ctx context.Context, bucketIDs []uint64, includeRemoved bool, opts ...grpc.DialOption) (map[uint64]*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketIDs, includeRemoved} + varargs := []interface{}{ctx, bucketIDs, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -3431,16 +3448,16 @@ func (m *MockMetadataAPI) ListBucketsByIDs(ctx context.Context, bucketIDs []uint } // ListBucketsByIDs indicates an expected call of ListBucketsByIDs. -func (mr *MockMetadataAPIMockRecorder) ListBucketsByIDs(ctx, bucketIDs, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListBucketsByIDs(ctx, bucketIDs, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketIDs, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, bucketIDs, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketsByIDs", reflect.TypeOf((*MockMetadataAPI)(nil).ListBucketsByIDs), varargs...) } // ListDeletedObjectsByBlockNumberRange mocks base method. func (m *MockMetadataAPI) ListDeletedObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate} + varargs := []interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate} for _, a := range opts { varargs = append(varargs, a) } @@ -3452,16 +3469,16 @@ func (m *MockMetadataAPI) ListDeletedObjectsByBlockNumberRange(ctx context.Conte } // ListDeletedObjectsByBlockNumberRange indicates an expected call of ListDeletedObjectsByBlockNumberRange. -func (mr *MockMetadataAPIMockRecorder) ListDeletedObjectsByBlockNumberRange(ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListDeletedObjectsByBlockNumberRange(ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate}, opts...) + varargs := append([]interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDeletedObjectsByBlockNumberRange", reflect.TypeOf((*MockMetadataAPI)(nil).ListDeletedObjectsByBlockNumberRange), varargs...) } // ListExpiredBucketsBySp mocks base method. func (m *MockMetadataAPI) ListExpiredBucketsBySp(ctx context.Context, createAt int64, primarySpID uint32, limit int64, opts ...grpc.DialOption) ([]*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, createAt, primarySpID, limit} + varargs := []interface{}{ctx, createAt, primarySpID, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -3472,16 +3489,16 @@ func (m *MockMetadataAPI) ListExpiredBucketsBySp(ctx context.Context, createAt i } // ListExpiredBucketsBySp indicates an expected call of ListExpiredBucketsBySp. -func (mr *MockMetadataAPIMockRecorder) ListExpiredBucketsBySp(ctx, createAt, primarySpID, limit any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListExpiredBucketsBySp(ctx, createAt, primarySpID, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, createAt, primarySpID, limit}, opts...) + varargs := append([]interface{}{ctx, createAt, primarySpID, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListExpiredBucketsBySp", reflect.TypeOf((*MockMetadataAPI)(nil).ListExpiredBucketsBySp), varargs...) } // ListGlobalVirtualGroupsByBucket mocks base method. func (m *MockMetadataAPI) ListGlobalVirtualGroupsByBucket(ctx context.Context, bucketID uint64, opts ...grpc.DialOption) ([]*types4.GlobalVirtualGroup, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID} + varargs := []interface{}{ctx, bucketID} for _, a := range opts { varargs = append(varargs, a) } @@ -3492,16 +3509,16 @@ func (m *MockMetadataAPI) ListGlobalVirtualGroupsByBucket(ctx context.Context, b } // ListGlobalVirtualGroupsByBucket indicates an expected call of ListGlobalVirtualGroupsByBucket. -func (mr *MockMetadataAPIMockRecorder) ListGlobalVirtualGroupsByBucket(ctx, bucketID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListGlobalVirtualGroupsByBucket(ctx, bucketID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID}, opts...) + varargs := append([]interface{}{ctx, bucketID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGlobalVirtualGroupsByBucket", reflect.TypeOf((*MockMetadataAPI)(nil).ListGlobalVirtualGroupsByBucket), varargs...) } // ListGlobalVirtualGroupsBySecondarySP mocks base method. func (m *MockMetadataAPI) ListGlobalVirtualGroupsBySecondarySP(ctx context.Context, spID uint32, opts ...grpc.DialOption) ([]*types4.GlobalVirtualGroup, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3512,16 +3529,16 @@ func (m *MockMetadataAPI) ListGlobalVirtualGroupsBySecondarySP(ctx context.Conte } // ListGlobalVirtualGroupsBySecondarySP indicates an expected call of ListGlobalVirtualGroupsBySecondarySP. -func (mr *MockMetadataAPIMockRecorder) ListGlobalVirtualGroupsBySecondarySP(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListGlobalVirtualGroupsBySecondarySP(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGlobalVirtualGroupsBySecondarySP", reflect.TypeOf((*MockMetadataAPI)(nil).ListGlobalVirtualGroupsBySecondarySP), varargs...) } // ListGroupsByIDs mocks base method. func (m *MockMetadataAPI) ListGroupsByIDs(ctx context.Context, groupIDs []uint64, opts ...grpc.DialOption) (map[uint64]*types.Group, error) { m.ctrl.T.Helper() - varargs := []any{ctx, groupIDs} + varargs := []interface{}{ctx, groupIDs} for _, a := range opts { varargs = append(varargs, a) } @@ -3532,16 +3549,16 @@ func (m *MockMetadataAPI) ListGroupsByIDs(ctx context.Context, groupIDs []uint64 } // ListGroupsByIDs indicates an expected call of ListGroupsByIDs. -func (mr *MockMetadataAPIMockRecorder) ListGroupsByIDs(ctx, groupIDs any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListGroupsByIDs(ctx, groupIDs interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, groupIDs}, opts...) + varargs := append([]interface{}{ctx, groupIDs}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGroupsByIDs", reflect.TypeOf((*MockMetadataAPI)(nil).ListGroupsByIDs), varargs...) } // ListMigrateBucketEvents mocks base method. func (m *MockMetadataAPI) ListMigrateBucketEvents(ctx context.Context, blockID uint64, spID uint32, opts ...grpc.DialOption) ([]*types.ListMigrateBucketEvents, error) { m.ctrl.T.Helper() - varargs := []any{ctx, blockID, spID} + varargs := []interface{}{ctx, blockID, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3552,16 +3569,16 @@ func (m *MockMetadataAPI) ListMigrateBucketEvents(ctx context.Context, blockID u } // ListMigrateBucketEvents indicates an expected call of ListMigrateBucketEvents. -func (mr *MockMetadataAPIMockRecorder) ListMigrateBucketEvents(ctx, blockID, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListMigrateBucketEvents(ctx, blockID, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, blockID, spID}, opts...) + varargs := append([]interface{}{ctx, blockID, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMigrateBucketEvents", reflect.TypeOf((*MockMetadataAPI)(nil).ListMigrateBucketEvents), varargs...) } // ListObjectPolicies mocks base method. func (m *MockMetadataAPI) ListObjectPolicies(ctx context.Context, objectName, bucketName string, startAfter uint64, actionType int32, limit uint32, opts ...grpc.DialOption) ([]*types.Policy, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectName, bucketName, startAfter, actionType, limit} + varargs := []interface{}{ctx, objectName, bucketName, startAfter, actionType, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -3572,16 +3589,37 @@ func (m *MockMetadataAPI) ListObjectPolicies(ctx context.Context, objectName, bu } // ListObjectPolicies indicates an expected call of ListObjectPolicies. -func (mr *MockMetadataAPIMockRecorder) ListObjectPolicies(ctx, objectName, bucketName, startAfter, actionType, limit any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListObjectPolicies(ctx, objectName, bucketName, startAfter, actionType, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectName, bucketName, startAfter, actionType, limit}, opts...) + varargs := append([]interface{}{ctx, objectName, bucketName, startAfter, actionType, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectPolicies", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectPolicies), varargs...) } +// ListObjectsByBlockNumberRange mocks base method. +func (m *MockMetadataAPI) ListObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListObjectsByBlockNumberRange", varargs...) + ret0, _ := ret[0].([]*types.Object) + ret1, _ := ret[1].(uint64) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// ListObjectsByBlockNumberRange indicates an expected call of ListObjectsByBlockNumberRange. +func (mr *MockMetadataAPIMockRecorder) ListObjectsByBlockNumberRange(ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate interface{}, opts ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBlockNumberRange", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectsByBlockNumberRange), varargs...) +} + // ListObjectsByBucketName mocks base method. func (m *MockMetadataAPI) ListObjectsByBucketName(ctx context.Context, bucketName, accountID string, maxKeys uint64, startAfter, continuationToken, delimiter, prefix string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.Object, uint64, uint64, bool, string, string, string, string, []string, string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved} + varargs := []interface{}{ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -3601,16 +3639,16 @@ func (m *MockMetadataAPI) ListObjectsByBucketName(ctx context.Context, bucketNam } // ListObjectsByBucketName indicates an expected call of ListObjectsByBucketName. -func (mr *MockMetadataAPIMockRecorder) ListObjectsByBucketName(ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListObjectsByBucketName(ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, bucketName, accountID, maxKeys, startAfter, continuationToken, delimiter, prefix, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBucketName", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectsByBucketName), varargs...) } // ListObjectsByGVGAndBucketForGC mocks base method. func (m *MockMetadataAPI) ListObjectsByGVGAndBucketForGC(ctx context.Context, gvgID uint32, bucketID, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.ObjectDetails, error) { m.ctrl.T.Helper() - varargs := []any{ctx, gvgID, bucketID, startAfter, limit} + varargs := []interface{}{ctx, gvgID, bucketID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -3621,16 +3659,16 @@ func (m *MockMetadataAPI) ListObjectsByGVGAndBucketForGC(ctx context.Context, gv } // ListObjectsByGVGAndBucketForGC indicates an expected call of ListObjectsByGVGAndBucketForGC. -func (mr *MockMetadataAPIMockRecorder) ListObjectsByGVGAndBucketForGC(ctx, gvgID, bucketID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListObjectsByGVGAndBucketForGC(ctx, gvgID, bucketID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, gvgID, bucketID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, gvgID, bucketID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByGVGAndBucketForGC", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectsByGVGAndBucketForGC), varargs...) } // ListObjectsByIDs mocks base method. func (m *MockMetadataAPI) ListObjectsByIDs(ctx context.Context, objectIDs []uint64, includeRemoved bool, opts ...grpc.DialOption) (map[uint64]*types.Object, error) { m.ctrl.T.Helper() - varargs := []any{ctx, objectIDs, includeRemoved} + varargs := []interface{}{ctx, objectIDs, includeRemoved} for _, a := range opts { varargs = append(varargs, a) } @@ -3641,16 +3679,16 @@ func (m *MockMetadataAPI) ListObjectsByIDs(ctx context.Context, objectIDs []uint } // ListObjectsByIDs indicates an expected call of ListObjectsByIDs. -func (mr *MockMetadataAPIMockRecorder) ListObjectsByIDs(ctx, objectIDs, includeRemoved any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListObjectsByIDs(ctx, objectIDs, includeRemoved interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, objectIDs, includeRemoved}, opts...) + varargs := append([]interface{}{ctx, objectIDs, includeRemoved}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByIDs", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectsByIDs), varargs...) } // ListObjectsInGVG mocks base method. func (m *MockMetadataAPI) ListObjectsInGVG(ctx context.Context, gvgID uint32, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.ObjectDetails, error) { m.ctrl.T.Helper() - varargs := []any{ctx, gvgID, startAfter, limit} + varargs := []interface{}{ctx, gvgID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -3661,16 +3699,16 @@ func (m *MockMetadataAPI) ListObjectsInGVG(ctx context.Context, gvgID uint32, st } // ListObjectsInGVG indicates an expected call of ListObjectsInGVG. -func (mr *MockMetadataAPIMockRecorder) ListObjectsInGVG(ctx, gvgID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListObjectsInGVG(ctx, gvgID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, gvgID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, gvgID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsInGVG", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectsInGVG), varargs...) } // ListObjectsInGVGAndBucket mocks base method. func (m *MockMetadataAPI) ListObjectsInGVGAndBucket(ctx context.Context, gvgID uint32, bucketID, startAfter uint64, limit uint32, opts ...grpc.DialOption) ([]*types.ObjectDetails, error) { m.ctrl.T.Helper() - varargs := []any{ctx, gvgID, bucketID, startAfter, limit} + varargs := []interface{}{ctx, gvgID, bucketID, startAfter, limit} for _, a := range opts { varargs = append(varargs, a) } @@ -3681,16 +3719,16 @@ func (m *MockMetadataAPI) ListObjectsInGVGAndBucket(ctx context.Context, gvgID u } // ListObjectsInGVGAndBucket indicates an expected call of ListObjectsInGVGAndBucket. -func (mr *MockMetadataAPIMockRecorder) ListObjectsInGVGAndBucket(ctx, gvgID, bucketID, startAfter, limit any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListObjectsInGVGAndBucket(ctx, gvgID, bucketID, startAfter, limit interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, gvgID, bucketID, startAfter, limit}, opts...) + varargs := append([]interface{}{ctx, gvgID, bucketID, startAfter, limit}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsInGVGAndBucket", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectsInGVGAndBucket), varargs...) } // ListPaymentAccountStreams mocks base method. func (m *MockMetadataAPI) ListPaymentAccountStreams(ctx context.Context, paymentAccount string, opts ...grpc.DialOption) ([]*types.Bucket, error) { m.ctrl.T.Helper() - varargs := []any{ctx, paymentAccount} + varargs := []interface{}{ctx, paymentAccount} for _, a := range opts { varargs = append(varargs, a) } @@ -3701,16 +3739,16 @@ func (m *MockMetadataAPI) ListPaymentAccountStreams(ctx context.Context, payment } // ListPaymentAccountStreams indicates an expected call of ListPaymentAccountStreams. -func (mr *MockMetadataAPIMockRecorder) ListPaymentAccountStreams(ctx, paymentAccount any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListPaymentAccountStreams(ctx, paymentAccount interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, paymentAccount}, opts...) + varargs := append([]interface{}{ctx, paymentAccount}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPaymentAccountStreams", reflect.TypeOf((*MockMetadataAPI)(nil).ListPaymentAccountStreams), varargs...) } // ListSpExitEvents mocks base method. func (m *MockMetadataAPI) ListSpExitEvents(ctx context.Context, blockID uint64, spID uint32, opts ...grpc.DialOption) (*types.ListSpExitEvents, error) { m.ctrl.T.Helper() - varargs := []any{ctx, blockID, spID} + varargs := []interface{}{ctx, blockID, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3721,16 +3759,16 @@ func (m *MockMetadataAPI) ListSpExitEvents(ctx context.Context, blockID uint64, } // ListSpExitEvents indicates an expected call of ListSpExitEvents. -func (mr *MockMetadataAPIMockRecorder) ListSpExitEvents(ctx, blockID, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListSpExitEvents(ctx, blockID, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, blockID, spID}, opts...) + varargs := append([]interface{}{ctx, blockID, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSpExitEvents", reflect.TypeOf((*MockMetadataAPI)(nil).ListSpExitEvents), varargs...) } // ListSwapOutEvents mocks base method. func (m *MockMetadataAPI) ListSwapOutEvents(ctx context.Context, blockID uint64, spID uint32, opts ...grpc.DialOption) ([]*types.ListSwapOutEvents, error) { m.ctrl.T.Helper() - varargs := []any{ctx, blockID, spID} + varargs := []interface{}{ctx, blockID, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3741,16 +3779,16 @@ func (m *MockMetadataAPI) ListSwapOutEvents(ctx context.Context, blockID uint64, } // ListSwapOutEvents indicates an expected call of ListSwapOutEvents. -func (mr *MockMetadataAPIMockRecorder) ListSwapOutEvents(ctx, blockID, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListSwapOutEvents(ctx, blockID, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, blockID, spID}, opts...) + varargs := append([]interface{}{ctx, blockID, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSwapOutEvents", reflect.TypeOf((*MockMetadataAPI)(nil).ListSwapOutEvents), varargs...) } // ListUserPaymentAccounts mocks base method. func (m *MockMetadataAPI) ListUserPaymentAccounts(ctx context.Context, accountID string, opts ...grpc.DialOption) ([]*types.PaymentAccountMeta, error) { m.ctrl.T.Helper() - varargs := []any{ctx, accountID} + varargs := []interface{}{ctx, accountID} for _, a := range opts { varargs = append(varargs, a) } @@ -3761,16 +3799,16 @@ func (m *MockMetadataAPI) ListUserPaymentAccounts(ctx context.Context, accountID } // ListUserPaymentAccounts indicates an expected call of ListUserPaymentAccounts. -func (mr *MockMetadataAPIMockRecorder) ListUserPaymentAccounts(ctx, accountID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListUserPaymentAccounts(ctx, accountID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, accountID}, opts...) + varargs := append([]interface{}{ctx, accountID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserPaymentAccounts", reflect.TypeOf((*MockMetadataAPI)(nil).ListUserPaymentAccounts), varargs...) } // ListVirtualGroupFamiliesSpID mocks base method. func (m *MockMetadataAPI) ListVirtualGroupFamiliesSpID(ctx context.Context, spID uint32, opts ...grpc.DialOption) ([]*types4.GlobalVirtualGroupFamily, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3781,16 +3819,16 @@ func (m *MockMetadataAPI) ListVirtualGroupFamiliesSpID(ctx context.Context, spID } // ListVirtualGroupFamiliesSpID indicates an expected call of ListVirtualGroupFamiliesSpID. -func (mr *MockMetadataAPIMockRecorder) ListVirtualGroupFamiliesSpID(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) ListVirtualGroupFamiliesSpID(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualGroupFamiliesSpID", reflect.TypeOf((*MockMetadataAPI)(nil).ListVirtualGroupFamiliesSpID), varargs...) } // PrimarySpIncomeDetails mocks base method. func (m *MockMetadataAPI) PrimarySpIncomeDetails(ctx context.Context, spID uint32, opts ...grpc.DialOption) (int64, []*types.PrimarySpIncomeDetail, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3802,16 +3840,16 @@ func (m *MockMetadataAPI) PrimarySpIncomeDetails(ctx context.Context, spID uint3 } // PrimarySpIncomeDetails indicates an expected call of PrimarySpIncomeDetails. -func (mr *MockMetadataAPIMockRecorder) PrimarySpIncomeDetails(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) PrimarySpIncomeDetails(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PrimarySpIncomeDetails", reflect.TypeOf((*MockMetadataAPI)(nil).PrimarySpIncomeDetails), varargs...) } // SecondarySpIncomeDetails mocks base method. func (m *MockMetadataAPI) SecondarySpIncomeDetails(ctx context.Context, spID uint32, opts ...grpc.DialOption) (int64, []*types.SecondarySpIncomeDetail, error) { m.ctrl.T.Helper() - varargs := []any{ctx, spID} + varargs := []interface{}{ctx, spID} for _, a := range opts { varargs = append(varargs, a) } @@ -3823,16 +3861,16 @@ func (m *MockMetadataAPI) SecondarySpIncomeDetails(ctx context.Context, spID uin } // SecondarySpIncomeDetails indicates an expected call of SecondarySpIncomeDetails. -func (mr *MockMetadataAPIMockRecorder) SecondarySpIncomeDetails(ctx, spID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) SecondarySpIncomeDetails(ctx, spID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, spID}, opts...) + varargs := append([]interface{}{ctx, spID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SecondarySpIncomeDetails", reflect.TypeOf((*MockMetadataAPI)(nil).SecondarySpIncomeDetails), varargs...) } // VerifyMigrateGVGPermission mocks base method. func (m *MockMetadataAPI) VerifyMigrateGVGPermission(ctx context.Context, bucketID uint64, gvgID, dstSpID uint32, opts ...grpc.DialOption) (*types1.Effect, error) { m.ctrl.T.Helper() - varargs := []any{ctx, bucketID, gvgID, dstSpID} + varargs := []interface{}{ctx, bucketID, gvgID, dstSpID} for _, a := range opts { varargs = append(varargs, a) } @@ -3843,16 +3881,16 @@ func (m *MockMetadataAPI) VerifyMigrateGVGPermission(ctx context.Context, bucket } // VerifyMigrateGVGPermission indicates an expected call of VerifyMigrateGVGPermission. -func (mr *MockMetadataAPIMockRecorder) VerifyMigrateGVGPermission(ctx, bucketID, gvgID, dstSpID any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) VerifyMigrateGVGPermission(ctx, bucketID, gvgID, dstSpID interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, bucketID, gvgID, dstSpID}, opts...) + varargs := append([]interface{}{ctx, bucketID, gvgID, dstSpID}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyMigrateGVGPermission", reflect.TypeOf((*MockMetadataAPI)(nil).VerifyMigrateGVGPermission), varargs...) } // VerifyPermission mocks base method. func (m *MockMetadataAPI) VerifyPermission(ctx context.Context, Operator, bucketName, objectName string, actionType types1.ActionType, opts ...grpc.DialOption) (*types1.Effect, error) { m.ctrl.T.Helper() - varargs := []any{ctx, Operator, bucketName, objectName, actionType} + varargs := []interface{}{ctx, Operator, bucketName, objectName, actionType} for _, a := range opts { varargs = append(varargs, a) } @@ -3863,16 +3901,16 @@ func (m *MockMetadataAPI) VerifyPermission(ctx context.Context, Operator, bucket } // VerifyPermission indicates an expected call of VerifyPermission. -func (mr *MockMetadataAPIMockRecorder) VerifyPermission(ctx, Operator, bucketName, objectName, actionType any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) VerifyPermission(ctx, Operator, bucketName, objectName, actionType interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, Operator, bucketName, objectName, actionType}, opts...) + varargs := append([]interface{}{ctx, Operator, bucketName, objectName, actionType}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyPermission", reflect.TypeOf((*MockMetadataAPI)(nil).VerifyPermission), varargs...) } // VerifyPermissionByID mocks base method. func (m *MockMetadataAPI) VerifyPermissionByID(ctx context.Context, Operator string, resourceType resource.ResourceType, resourceID uint64, actionType types1.ActionType, opts ...grpc.DialOption) (*types1.Effect, error) { m.ctrl.T.Helper() - varargs := []any{ctx, Operator, resourceType, resourceID, actionType} + varargs := []interface{}{ctx, Operator, resourceType, resourceID, actionType} for _, a := range opts { varargs = append(varargs, a) } @@ -3883,9 +3921,9 @@ func (m *MockMetadataAPI) VerifyPermissionByID(ctx context.Context, Operator str } // VerifyPermissionByID indicates an expected call of VerifyPermissionByID. -func (mr *MockMetadataAPIMockRecorder) VerifyPermissionByID(ctx, Operator, resourceType, resourceID, actionType any, opts ...any) *gomock.Call { +func (mr *MockMetadataAPIMockRecorder) VerifyPermissionByID(ctx, Operator, resourceType, resourceID, actionType interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, Operator, resourceType, resourceID, actionType}, opts...) + varargs := append([]interface{}{ctx, Operator, resourceType, resourceID, actionType}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyPermissionByID", reflect.TypeOf((*MockMetadataAPI)(nil).VerifyPermissionByID), varargs...) } @@ -3922,7 +3960,7 @@ func (m *MockP2PAPI) AskSecondaryReplicatePieceApproval(ctx context.Context, tas } // AskSecondaryReplicatePieceApproval indicates an expected call of AskSecondaryReplicatePieceApproval. -func (mr *MockP2PAPIMockRecorder) AskSecondaryReplicatePieceApproval(ctx, task, low, high, timeout any) *gomock.Call { +func (mr *MockP2PAPIMockRecorder) AskSecondaryReplicatePieceApproval(ctx, task, low, high, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskSecondaryReplicatePieceApproval", reflect.TypeOf((*MockP2PAPI)(nil).AskSecondaryReplicatePieceApproval), ctx, task, low, high, timeout) } @@ -3937,7 +3975,7 @@ func (m *MockP2PAPI) QueryP2PBootstrap(ctx context.Context) ([]string, error) { } // QueryP2PBootstrap indicates an expected call of QueryP2PBootstrap. -func (mr *MockP2PAPIMockRecorder) QueryP2PBootstrap(ctx any) *gomock.Call { +func (mr *MockP2PAPIMockRecorder) QueryP2PBootstrap(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryP2PBootstrap", reflect.TypeOf((*MockP2PAPI)(nil).QueryP2PBootstrap), ctx) } @@ -3968,7 +4006,7 @@ func (m *MockQueryAPI) EXPECT() *MockQueryAPIMockRecorder { // QueryBucketMigrate mocks base method. func (m *MockQueryAPI) QueryBucketMigrate(ctx context.Context, endpoint string, opts ...grpc.DialOption) (string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, endpoint} + varargs := []interface{}{ctx, endpoint} for _, a := range opts { varargs = append(varargs, a) } @@ -3979,16 +4017,16 @@ func (m *MockQueryAPI) QueryBucketMigrate(ctx context.Context, endpoint string, } // QueryBucketMigrate indicates an expected call of QueryBucketMigrate. -func (mr *MockQueryAPIMockRecorder) QueryBucketMigrate(ctx, endpoint any, opts ...any) *gomock.Call { +func (mr *MockQueryAPIMockRecorder) QueryBucketMigrate(ctx, endpoint interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, endpoint}, opts...) + varargs := append([]interface{}{ctx, endpoint}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryBucketMigrate", reflect.TypeOf((*MockQueryAPI)(nil).QueryBucketMigrate), varargs...) } // QuerySPExit mocks base method. func (m *MockQueryAPI) QuerySPExit(ctx context.Context, endpoint string, opts ...grpc.DialOption) (string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, endpoint} + varargs := []interface{}{ctx, endpoint} for _, a := range opts { varargs = append(varargs, a) } @@ -3999,16 +4037,16 @@ func (m *MockQueryAPI) QuerySPExit(ctx context.Context, endpoint string, opts .. } // QuerySPExit indicates an expected call of QuerySPExit. -func (mr *MockQueryAPIMockRecorder) QuerySPExit(ctx, endpoint any, opts ...any) *gomock.Call { +func (mr *MockQueryAPIMockRecorder) QuerySPExit(ctx, endpoint interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, endpoint}, opts...) + varargs := append([]interface{}{ctx, endpoint}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QuerySPExit", reflect.TypeOf((*MockQueryAPI)(nil).QuerySPExit), varargs...) } // QueryTasks mocks base method. func (m *MockQueryAPI) QueryTasks(ctx context.Context, endpoint, subKey string, opts ...grpc.DialOption) ([]string, error) { m.ctrl.T.Helper() - varargs := []any{ctx, endpoint, subKey} + varargs := []interface{}{ctx, endpoint, subKey} for _, a := range opts { varargs = append(varargs, a) } @@ -4019,9 +4057,9 @@ func (m *MockQueryAPI) QueryTasks(ctx context.Context, endpoint, subKey string, } // QueryTasks indicates an expected call of QueryTasks. -func (mr *MockQueryAPIMockRecorder) QueryTasks(ctx, endpoint, subKey any, opts ...any) *gomock.Call { +func (mr *MockQueryAPIMockRecorder) QueryTasks(ctx, endpoint, subKey interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, endpoint, subKey}, opts...) + varargs := append([]interface{}{ctx, endpoint, subKey}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasks", reflect.TypeOf((*MockQueryAPI)(nil).QueryTasks), varargs...) } @@ -4051,7 +4089,7 @@ func (m *MockReceiverAPI) EXPECT() *MockReceiverAPIMockRecorder { // DoneReplicatePiece mocks base method. func (m *MockReceiverAPI) DoneReplicatePiece(ctx context.Context, task task.ReceivePieceTask, opts ...grpc.DialOption) ([]byte, []byte, error) { m.ctrl.T.Helper() - varargs := []any{ctx, task} + varargs := []interface{}{ctx, task} for _, a := range opts { varargs = append(varargs, a) } @@ -4063,16 +4101,16 @@ func (m *MockReceiverAPI) DoneReplicatePiece(ctx context.Context, task task.Rece } // DoneReplicatePiece indicates an expected call of DoneReplicatePiece. -func (mr *MockReceiverAPIMockRecorder) DoneReplicatePiece(ctx, task any, opts ...any) *gomock.Call { +func (mr *MockReceiverAPIMockRecorder) DoneReplicatePiece(ctx, task interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, task}, opts...) + varargs := append([]interface{}{ctx, task}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DoneReplicatePiece", reflect.TypeOf((*MockReceiverAPI)(nil).DoneReplicatePiece), varargs...) } // ReplicatePiece mocks base method. func (m *MockReceiverAPI) ReplicatePiece(ctx context.Context, task task.ReceivePieceTask, data []byte, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, task, data} + varargs := []interface{}{ctx, task, data} for _, a := range opts { varargs = append(varargs, a) } @@ -4082,9 +4120,9 @@ func (m *MockReceiverAPI) ReplicatePiece(ctx context.Context, task task.ReceiveP } // ReplicatePiece indicates an expected call of ReplicatePiece. -func (mr *MockReceiverAPIMockRecorder) ReplicatePiece(ctx, task, data any, opts ...any) *gomock.Call { +func (mr *MockReceiverAPIMockRecorder) ReplicatePiece(ctx, task, data interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, task, data}, opts...) + varargs := append([]interface{}{ctx, task, data}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReplicatePiece", reflect.TypeOf((*MockReceiverAPI)(nil).ReplicatePiece), varargs...) } @@ -4121,7 +4159,7 @@ func (m *MockSignerAPI) CompleteMigrateBucket(ctx context.Context, migrateBucket } // CompleteMigrateBucket indicates an expected call of CompleteMigrateBucket. -func (mr *MockSignerAPIMockRecorder) CompleteMigrateBucket(ctx, migrateBucket any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) CompleteMigrateBucket(ctx, migrateBucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteMigrateBucket", reflect.TypeOf((*MockSignerAPI)(nil).CompleteMigrateBucket), ctx, migrateBucket) } @@ -4136,7 +4174,7 @@ func (m *MockSignerAPI) CompleteSPExit(ctx context.Context, completeSPExit *type } // CompleteSPExit indicates an expected call of CompleteSPExit. -func (mr *MockSignerAPIMockRecorder) CompleteSPExit(ctx, completeSPExit any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) CompleteSPExit(ctx, completeSPExit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteSPExit", reflect.TypeOf((*MockSignerAPI)(nil).CompleteSPExit), ctx, completeSPExit) } @@ -4151,7 +4189,7 @@ func (m *MockSignerAPI) CompleteSwapOut(ctx context.Context, completeSwapOut *ty } // CompleteSwapOut indicates an expected call of CompleteSwapOut. -func (mr *MockSignerAPIMockRecorder) CompleteSwapOut(ctx, completeSwapOut any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) CompleteSwapOut(ctx, completeSwapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteSwapOut", reflect.TypeOf((*MockSignerAPI)(nil).CompleteSwapOut), ctx, completeSwapOut) } @@ -4165,7 +4203,7 @@ func (m *MockSignerAPI) CreateGlobalVirtualGroup(ctx context.Context, group *gfs } // CreateGlobalVirtualGroup indicates an expected call of CreateGlobalVirtualGroup. -func (mr *MockSignerAPIMockRecorder) CreateGlobalVirtualGroup(ctx, group any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) CreateGlobalVirtualGroup(ctx, group interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateGlobalVirtualGroup", reflect.TypeOf((*MockSignerAPI)(nil).CreateGlobalVirtualGroup), ctx, group) } @@ -4180,7 +4218,7 @@ func (m *MockSignerAPI) DiscontinueBucket(ctx context.Context, bucket *types3.Ms } // DiscontinueBucket indicates an expected call of DiscontinueBucket. -func (mr *MockSignerAPIMockRecorder) DiscontinueBucket(ctx, bucket any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) DiscontinueBucket(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DiscontinueBucket", reflect.TypeOf((*MockSignerAPI)(nil).DiscontinueBucket), ctx, bucket) } @@ -4195,7 +4233,7 @@ func (m *MockSignerAPI) RejectMigrateBucket(ctx context.Context, rejectMigrateBu } // RejectMigrateBucket indicates an expected call of RejectMigrateBucket. -func (mr *MockSignerAPIMockRecorder) RejectMigrateBucket(ctx, rejectMigrateBucket any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) RejectMigrateBucket(ctx, rejectMigrateBucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RejectMigrateBucket", reflect.TypeOf((*MockSignerAPI)(nil).RejectMigrateBucket), ctx, rejectMigrateBucket) } @@ -4210,7 +4248,7 @@ func (m *MockSignerAPI) RejectUnSealObject(ctx context.Context, object *types3.M } // RejectUnSealObject indicates an expected call of RejectUnSealObject. -func (mr *MockSignerAPIMockRecorder) RejectUnSealObject(ctx, object any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) RejectUnSealObject(ctx, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RejectUnSealObject", reflect.TypeOf((*MockSignerAPI)(nil).RejectUnSealObject), ctx, object) } @@ -4225,7 +4263,7 @@ func (m *MockSignerAPI) SPExit(ctx context.Context, spExit *types4.MsgStoragePro } // SPExit indicates an expected call of SPExit. -func (mr *MockSignerAPIMockRecorder) SPExit(ctx, spExit any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SPExit(ctx, spExit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SPExit", reflect.TypeOf((*MockSignerAPI)(nil).SPExit), ctx, spExit) } @@ -4240,7 +4278,7 @@ func (m *MockSignerAPI) SealObject(ctx context.Context, object *types3.MsgSealOb } // SealObject indicates an expected call of SealObject. -func (mr *MockSignerAPIMockRecorder) SealObject(ctx, object any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SealObject(ctx, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SealObject", reflect.TypeOf((*MockSignerAPI)(nil).SealObject), ctx, object) } @@ -4255,7 +4293,7 @@ func (m *MockSignerAPI) SignBucketMigrationInfo(ctx context.Context, task *gfspt } // SignBucketMigrationInfo indicates an expected call of SignBucketMigrationInfo. -func (mr *MockSignerAPIMockRecorder) SignBucketMigrationInfo(ctx, task any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignBucketMigrationInfo(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignBucketMigrationInfo", reflect.TypeOf((*MockSignerAPI)(nil).SignBucketMigrationInfo), ctx, task) } @@ -4270,7 +4308,7 @@ func (m *MockSignerAPI) SignCreateBucketApproval(ctx context.Context, bucket *ty } // SignCreateBucketApproval indicates an expected call of SignCreateBucketApproval. -func (mr *MockSignerAPIMockRecorder) SignCreateBucketApproval(ctx, bucket any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignCreateBucketApproval(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignCreateBucketApproval", reflect.TypeOf((*MockSignerAPI)(nil).SignCreateBucketApproval), ctx, bucket) } @@ -4285,7 +4323,7 @@ func (m *MockSignerAPI) SignCreateObjectApproval(ctx context.Context, object *ty } // SignCreateObjectApproval indicates an expected call of SignCreateObjectApproval. -func (mr *MockSignerAPIMockRecorder) SignCreateObjectApproval(ctx, object any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignCreateObjectApproval(ctx, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignCreateObjectApproval", reflect.TypeOf((*MockSignerAPI)(nil).SignCreateObjectApproval), ctx, object) } @@ -4300,7 +4338,7 @@ func (m *MockSignerAPI) SignMigrateBucketApproval(ctx context.Context, bucket *t } // SignMigrateBucketApproval indicates an expected call of SignMigrateBucketApproval. -func (mr *MockSignerAPIMockRecorder) SignMigrateBucketApproval(ctx, bucket any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignMigrateBucketApproval(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignMigrateBucketApproval", reflect.TypeOf((*MockSignerAPI)(nil).SignMigrateBucketApproval), ctx, bucket) } @@ -4315,7 +4353,7 @@ func (m *MockSignerAPI) SignMigrateGVG(ctx context.Context, task *gfsptask.GfSpM } // SignMigrateGVG indicates an expected call of SignMigrateGVG. -func (mr *MockSignerAPIMockRecorder) SignMigrateGVG(ctx, task any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignMigrateGVG(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignMigrateGVG", reflect.TypeOf((*MockSignerAPI)(nil).SignMigrateGVG), ctx, task) } @@ -4330,7 +4368,7 @@ func (m *MockSignerAPI) SignP2PPingMsg(ctx context.Context, ping *gfspp2p.GfSpPi } // SignP2PPingMsg indicates an expected call of SignP2PPingMsg. -func (mr *MockSignerAPIMockRecorder) SignP2PPingMsg(ctx, ping any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignP2PPingMsg(ctx, ping interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignP2PPingMsg", reflect.TypeOf((*MockSignerAPI)(nil).SignP2PPingMsg), ctx, ping) } @@ -4345,7 +4383,7 @@ func (m *MockSignerAPI) SignP2PPongMsg(ctx context.Context, pong *gfspp2p.GfSpPo } // SignP2PPongMsg indicates an expected call of SignP2PPongMsg. -func (mr *MockSignerAPIMockRecorder) SignP2PPongMsg(ctx, pong any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignP2PPongMsg(ctx, pong interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignP2PPongMsg", reflect.TypeOf((*MockSignerAPI)(nil).SignP2PPongMsg), ctx, pong) } @@ -4360,7 +4398,7 @@ func (m *MockSignerAPI) SignReceiveTask(ctx context.Context, receiveTask task.Re } // SignReceiveTask indicates an expected call of SignReceiveTask. -func (mr *MockSignerAPIMockRecorder) SignReceiveTask(ctx, receiveTask any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignReceiveTask(ctx, receiveTask interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignReceiveTask", reflect.TypeOf((*MockSignerAPI)(nil).SignReceiveTask), ctx, receiveTask) } @@ -4375,7 +4413,7 @@ func (m *MockSignerAPI) SignRecoveryTask(ctx context.Context, recoveryTask task. } // SignRecoveryTask indicates an expected call of SignRecoveryTask. -func (mr *MockSignerAPIMockRecorder) SignRecoveryTask(ctx, recoveryTask any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignRecoveryTask(ctx, recoveryTask interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignRecoveryTask", reflect.TypeOf((*MockSignerAPI)(nil).SignRecoveryTask), ctx, recoveryTask) } @@ -4390,7 +4428,7 @@ func (m *MockSignerAPI) SignReplicatePieceApproval(ctx context.Context, task tas } // SignReplicatePieceApproval indicates an expected call of SignReplicatePieceApproval. -func (mr *MockSignerAPIMockRecorder) SignReplicatePieceApproval(ctx, task any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignReplicatePieceApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignReplicatePieceApproval", reflect.TypeOf((*MockSignerAPI)(nil).SignReplicatePieceApproval), ctx, task) } @@ -4405,7 +4443,7 @@ func (m *MockSignerAPI) SignSecondarySPMigrationBucket(ctx context.Context, sign } // SignSecondarySPMigrationBucket indicates an expected call of SignSecondarySPMigrationBucket. -func (mr *MockSignerAPIMockRecorder) SignSecondarySPMigrationBucket(ctx, signDoc any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignSecondarySPMigrationBucket(ctx, signDoc interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSecondarySPMigrationBucket", reflect.TypeOf((*MockSignerAPI)(nil).SignSecondarySPMigrationBucket), ctx, signDoc) } @@ -4420,7 +4458,7 @@ func (m *MockSignerAPI) SignSecondarySealBls(ctx context.Context, objectID uint6 } // SignSecondarySealBls indicates an expected call of SignSecondarySealBls. -func (mr *MockSignerAPIMockRecorder) SignSecondarySealBls(ctx, objectID, gvgId, checksums any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignSecondarySealBls(ctx, objectID, gvgId, checksums interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSecondarySealBls", reflect.TypeOf((*MockSignerAPI)(nil).SignSecondarySealBls), ctx, objectID, gvgId, checksums) } @@ -4435,7 +4473,7 @@ func (m *MockSignerAPI) SignSwapOut(ctx context.Context, swapOut *types4.MsgSwap } // SignSwapOut indicates an expected call of SignSwapOut. -func (mr *MockSignerAPIMockRecorder) SignSwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SignSwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSwapOut", reflect.TypeOf((*MockSignerAPI)(nil).SignSwapOut), ctx, swapOut) } @@ -4450,7 +4488,7 @@ func (m *MockSignerAPI) SwapOut(ctx context.Context, swapOut *types4.MsgSwapOut) } // SwapOut indicates an expected call of SwapOut. -func (mr *MockSignerAPIMockRecorder) SwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) SwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SwapOut", reflect.TypeOf((*MockSignerAPI)(nil).SwapOut), ctx, swapOut) } @@ -4465,7 +4503,7 @@ func (m *MockSignerAPI) UpdateSPPrice(ctx context.Context, price *types2.MsgUpda } // UpdateSPPrice indicates an expected call of UpdateSPPrice. -func (mr *MockSignerAPIMockRecorder) UpdateSPPrice(ctx, price any) *gomock.Call { +func (mr *MockSignerAPIMockRecorder) UpdateSPPrice(ctx, price interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSPPrice", reflect.TypeOf((*MockSignerAPI)(nil).UpdateSPPrice), ctx, price) } @@ -4496,7 +4534,7 @@ func (m *MockUploaderAPI) EXPECT() *MockUploaderAPIMockRecorder { // ResumableUploadObject mocks base method. func (m *MockUploaderAPI) ResumableUploadObject(ctx context.Context, task task.ResumableUploadObjectTask, stream io.Reader, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, task, stream} + varargs := []interface{}{ctx, task, stream} for _, a := range opts { varargs = append(varargs, a) } @@ -4506,16 +4544,16 @@ func (m *MockUploaderAPI) ResumableUploadObject(ctx context.Context, task task.R } // ResumableUploadObject indicates an expected call of ResumableUploadObject. -func (mr *MockUploaderAPIMockRecorder) ResumableUploadObject(ctx, task, stream any, opts ...any) *gomock.Call { +func (mr *MockUploaderAPIMockRecorder) ResumableUploadObject(ctx, task, stream interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, task, stream}, opts...) + varargs := append([]interface{}{ctx, task, stream}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResumableUploadObject", reflect.TypeOf((*MockUploaderAPI)(nil).ResumableUploadObject), varargs...) } // UploadObject mocks base method. func (m *MockUploaderAPI) UploadObject(ctx context.Context, task task.UploadObjectTask, stream io.Reader, opts ...grpc.DialOption) error { m.ctrl.T.Helper() - varargs := []any{ctx, task, stream} + varargs := []interface{}{ctx, task, stream} for _, a := range opts { varargs = append(varargs, a) } @@ -4525,9 +4563,9 @@ func (m *MockUploaderAPI) UploadObject(ctx context.Context, task task.UploadObje } // UploadObject indicates an expected call of UploadObject. -func (mr *MockUploaderAPIMockRecorder) UploadObject(ctx, task, stream any, opts ...any) *gomock.Call { +func (mr *MockUploaderAPIMockRecorder) UploadObject(ctx, task, stream interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, task, stream}, opts...) + varargs := append([]interface{}{ctx, task, stream}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadObject", reflect.TypeOf((*MockUploaderAPI)(nil).UploadObject), varargs...) } @@ -4557,7 +4595,7 @@ func (m *MockGfSpConnAPI) EXPECT() *MockGfSpConnAPIMockRecorder { // ApproverConn mocks base method. func (m *MockGfSpConnAPI) ApproverConn(ctx context.Context, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -4568,9 +4606,9 @@ func (m *MockGfSpConnAPI) ApproverConn(ctx context.Context, opts ...grpc.DialOpt } // ApproverConn indicates an expected call of ApproverConn. -func (mr *MockGfSpConnAPIMockRecorder) ApproverConn(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpConnAPIMockRecorder) ApproverConn(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ApproverConn", reflect.TypeOf((*MockGfSpConnAPI)(nil).ApproverConn), varargs...) } @@ -4591,7 +4629,7 @@ func (mr *MockGfSpConnAPIMockRecorder) Close() *gomock.Call { // Connection mocks base method. func (m *MockGfSpConnAPI) Connection(ctx context.Context, address string, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx, address} + varargs := []interface{}{ctx, address} for _, a := range opts { varargs = append(varargs, a) } @@ -4602,9 +4640,9 @@ func (m *MockGfSpConnAPI) Connection(ctx context.Context, address string, opts . } // Connection indicates an expected call of Connection. -func (mr *MockGfSpConnAPIMockRecorder) Connection(ctx, address any, opts ...any) *gomock.Call { +func (mr *MockGfSpConnAPIMockRecorder) Connection(ctx, address interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, address}, opts...) + varargs := append([]interface{}{ctx, address}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Connection", reflect.TypeOf((*MockGfSpConnAPI)(nil).Connection), varargs...) } @@ -4617,7 +4655,7 @@ func (m *MockGfSpConnAPI) HTTPClient(ctx context.Context) *http.Client { } // HTTPClient indicates an expected call of HTTPClient. -func (mr *MockGfSpConnAPIMockRecorder) HTTPClient(ctx any) *gomock.Call { +func (mr *MockGfSpConnAPIMockRecorder) HTTPClient(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HTTPClient", reflect.TypeOf((*MockGfSpConnAPI)(nil).HTTPClient), ctx) } @@ -4625,7 +4663,7 @@ func (mr *MockGfSpConnAPIMockRecorder) HTTPClient(ctx any) *gomock.Call { // ManagerConn mocks base method. func (m *MockGfSpConnAPI) ManagerConn(ctx context.Context, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -4636,16 +4674,16 @@ func (m *MockGfSpConnAPI) ManagerConn(ctx context.Context, opts ...grpc.DialOpti } // ManagerConn indicates an expected call of ManagerConn. -func (mr *MockGfSpConnAPIMockRecorder) ManagerConn(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpConnAPIMockRecorder) ManagerConn(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ManagerConn", reflect.TypeOf((*MockGfSpConnAPI)(nil).ManagerConn), varargs...) } // P2PConn mocks base method. func (m *MockGfSpConnAPI) P2PConn(ctx context.Context, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -4656,16 +4694,16 @@ func (m *MockGfSpConnAPI) P2PConn(ctx context.Context, opts ...grpc.DialOption) } // P2PConn indicates an expected call of P2PConn. -func (mr *MockGfSpConnAPIMockRecorder) P2PConn(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpConnAPIMockRecorder) P2PConn(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "P2PConn", reflect.TypeOf((*MockGfSpConnAPI)(nil).P2PConn), varargs...) } // SignerConn mocks base method. func (m *MockGfSpConnAPI) SignerConn(ctx context.Context, opts ...grpc.DialOption) (*grpc.ClientConn, error) { m.ctrl.T.Helper() - varargs := []any{ctx} + varargs := []interface{}{ctx} for _, a := range opts { varargs = append(varargs, a) } @@ -4676,9 +4714,9 @@ func (m *MockGfSpConnAPI) SignerConn(ctx context.Context, opts ...grpc.DialOptio } // SignerConn indicates an expected call of SignerConn. -func (mr *MockGfSpConnAPIMockRecorder) SignerConn(ctx any, opts ...any) *gomock.Call { +func (mr *MockGfSpConnAPIMockRecorder) SignerConn(ctx interface{}, opts ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx}, opts...) + varargs := append([]interface{}{ctx}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignerConn", reflect.TypeOf((*MockGfSpConnAPI)(nil).SignerConn), varargs...) } @@ -4729,7 +4767,7 @@ func (m *MockstdLib) Read(p []byte) (int, error) { } // Read indicates an expected call of Read. -func (mr *MockstdLibMockRecorder) Read(p any) *gomock.Call { +func (mr *MockstdLibMockRecorder) Read(p interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Read", reflect.TypeOf((*MockstdLib)(nil).Read), p) } diff --git a/base/gfspconfig/config.go b/base/gfspconfig/config.go index dabd86435..bfa7b3714 100644 --- a/base/gfspconfig/config.go +++ b/base/gfspconfig/config.go @@ -149,6 +149,8 @@ type ExecutorConfig struct { MaxObjectMigrationRetry int `comment:"optional"` ObjectMigrationRetryTimeout int `comment:"optional"` EnableSkipFailedToMigrateObject bool `comment:"optional"` + BucketTrafficKeepTimeDay uint64 `comment:"optional"` + ReadRecordKeepTimeDay uint64 `comment:"optional"` } type P2PConfig struct { @@ -165,24 +167,33 @@ type ParallelConfig struct { // upload + replicate + seal GlobalMaxUploadingParallel int `comment:"optional"` // only upload - GlobalUploadObjectParallel int `comment:"optional"` - GlobalReplicatePieceParallel int `comment:"optional"` - GlobalSealObjectParallel int `comment:"optional"` - GlobalReceiveObjectParallel int `comment:"optional"` - GlobalGCObjectParallel int `comment:"optional"` + GlobalUploadObjectParallel int `comment:"optional"` + GlobalReplicatePieceParallel int `comment:"optional"` + GlobalSealObjectParallel int `comment:"optional"` + GlobalReceiveObjectParallel int `comment:"optional"` + GlobalRecoveryPieceParallel int `comment:"optional"` + GlobalMigrateGVGParallel int `comment:"optional"` + GlobalBackupTaskParallel int `comment:"optional"` + GlobalDownloadObjectTaskCacheSize int `comment:"optional"` + GlobalChallengePieceTaskCacheSize int `comment:"optional"` + GlobalSyncConsensusInfoInterval uint64 `comment:"optional"` + + // gc + GlobalGCObjectParallel int `comment:"optional"` + GlobalGCBucketMigrationParallel int `comment:"optional"` + GlobalBatchGcObjectTimeInterval int `comment:"optional"` + GlobalGcObjectBlockInterval uint64 `comment:"optional"` + GlobalGcObjectSafeBlockDistance uint64 `comment:"optional"` + + GlobalGCZombieEnabled bool `comment:"optional"` GlobalGCZombieParallel int `comment:"optional"` - GlobalGCMetaParallel int `comment:"optional"` - GlobalGCBucketMigrationParallel int `comment:"optional"` - GlobalRecoveryPieceParallel int `comment:"optional"` - GlobalMigrateGVGParallel int `comment:"optional"` - GlobalBackupTaskParallel int `comment:"optional"` - GlobalDownloadObjectTaskCacheSize int `comment:"optional"` - GlobalChallengePieceTaskCacheSize int `comment:"optional"` - GlobalBatchGcObjectTimeInterval int `comment:"optional"` + GlobalGcZombieSafeObjectIDDistance uint64 `comment:"optional"` GlobalBatchGcZombiePieceTimeInterval int `comment:"optional"` - GlobalGcObjectBlockInterval uint64 `comment:"optional"` - GlobalGcObjectSafeBlockDistance uint64 `comment:"optional"` - GlobalSyncConsensusInfoInterval uint64 `comment:"optional"` + GlobalGcZombiePieceObjectIDInterval uint64 `comment:"optional"` + + GlobalGCMetaEnabled bool `comment:"optional"` + GlobalGCMetaParallel int `comment:"optional"` + GlobalGcMetaTimeInterval int `comment:"optional"` UploadObjectParallelPerNode int `comment:"optional"` ReceivePieceParallelPerNode int `comment:"optional"` diff --git a/base/types/gfsptask/gc.go b/base/types/gfsptask/gc.go index e614d7ed6..377d007db 100644 --- a/base/types/gfsptask/gc.go +++ b/base/types/gfsptask/gc.go @@ -183,7 +183,7 @@ func (m *GfSpGCZombiePieceTask) InitGCZombiePieceTask(priority coretask.TPriorit } func (m *GfSpGCZombiePieceTask) Key() coretask.TKey { - return GfSpGCZombiePieceTaskKey(m.GetCreateTime()) + return GfSpGCZombiePieceTaskKey(m.GetStartObjectId(), m.GetEndObjectId(), m.GetCreateTime()) } func (m *GfSpGCZombiePieceTask) Type() coretask.TType { @@ -191,9 +191,9 @@ func (m *GfSpGCZombiePieceTask) Type() coretask.TType { } func (m *GfSpGCZombiePieceTask) Info() string { - return fmt.Sprintf("key[%s], type[%s], priority[%d], limit[%s], %s", + return fmt.Sprintf("key[%s], type[%s], priority[%d], limit[%s], start_object_id[%d], end_object_id[%d],%s", m.Key(), coretask.TaskTypeName(m.Type()), m.GetPriority(), - m.EstimateLimit().String(), m.GetTask().Info()) + m.EstimateLimit().String(), m.GetStartObjectId(), m.GetEndObjectId(), m.GetTask().Info()) } func (m *GfSpGCZombiePieceTask) GetAddress() string { @@ -300,37 +300,12 @@ func (m *GfSpGCZombiePieceTask) SetError(err error) { m.GetTask().SetError(err) } -func (m *GfSpGCZombiePieceTask) SetStartBlockNumber(block uint64) { - m.StartBlockNumber = block -} - -func (m *GfSpGCZombiePieceTask) SetEndBlockNumber(block uint64) { - m.EndBlockNumber = block -} - -func (m *GfSpGCZombiePieceTask) GetGCObjectProgress() (uint64, uint64) { - return m.GetCurrentBlockNumber(), m.GetLastDeletedObjectId() -} - -func (m *GfSpGCZombiePieceTask) SetGCObjectProgress(block uint64, object uint64) { - m.CurrentBlockNumber = block - m.LastDeletedObjectId = object -} - -func (m *GfSpGCZombiePieceTask) SetCurrentBlockNumber(block uint64) { - m.CurrentBlockNumber = block -} - -func (m *GfSpGCZombiePieceTask) SetLastDeletedObjectId(object uint64) { - m.LastDeletedObjectId = object -} - -func (m *GfSpGCZombiePieceTask) SetStartObjectID(block uint64) { - m.StartObjectId = block +func (m *GfSpGCZombiePieceTask) SetStartObjectID(id uint64) { + m.StartObjectId = id } -func (m *GfSpGCZombiePieceTask) SetEndObjectID(block uint64) { - m.EndObjectId = block +func (m *GfSpGCZombiePieceTask) SetEndObjectID(id uint64) { + m.EndObjectId = id } func (m *GfSpGCMetaTask) InitGCMetaTask(priority coretask.TPriority, timeout int64) { @@ -340,8 +315,6 @@ func (m *GfSpGCMetaTask) InitGCMetaTask(priority coretask.TPriority, timeout int m.SetCreateTime(time.Now().Unix()) m.SetUpdateTime(time.Now().Unix()) m.SetTimeout(timeout) - //m.SetGCMetaTaskType(metaTaskType) - //m.SetDeletionTime(tx) } func (m *GfSpGCMetaTask) Key() coretask.TKey { diff --git a/base/types/gfsptask/migrate_gvg.go b/base/types/gfsptask/migrate_gvg.go index e72def2d9..fe7820568 100644 --- a/base/types/gfsptask/migrate_gvg.go +++ b/base/types/gfsptask/migrate_gvg.go @@ -247,8 +247,8 @@ func (m *GfSpGCBucketMigrationTask) InitGCBucketMigrationTask(priority coretask. m.SetUpdateTime(time.Now().Unix()) } -func (g *GfSpGCBucketMigrationTask) Key() coretask.TKey { - return GfSpGCBucketMigrationTaskKey(1) +func (m *GfSpGCBucketMigrationTask) Key() coretask.TKey { + return GfSpGCBucketMigrationTaskKey(m.BucketId) } func (m *GfSpGCBucketMigrationTask) Type() coretask.TType { diff --git a/base/types/gfsptask/task.pb.go b/base/types/gfsptask/task.pb.go index 69d211b79..10b031e17 100644 --- a/base/types/gfsptask/task.pb.go +++ b/base/types/gfsptask/task.pb.go @@ -1435,15 +1435,11 @@ func (m *GfSpGCObjectTask) GetRunning() bool { } type GfSpGCZombiePieceTask struct { - Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` - StartBlockNumber uint64 `protobuf:"varint,2,opt,name=start_block_number,json=startBlockNumber,proto3" json:"start_block_number,omitempty"` - EndBlockNumber uint64 `protobuf:"varint,3,opt,name=end_block_number,json=endBlockNumber,proto3" json:"end_block_number,omitempty"` - CurrentBlockNumber uint64 `protobuf:"varint,4,opt,name=current_block_number,json=currentBlockNumber,proto3" json:"current_block_number,omitempty"` - LastDeletedObjectId uint64 `protobuf:"varint,5,opt,name=last_deleted_object_id,json=lastDeletedObjectId,proto3" json:"last_deleted_object_id,omitempty"` - Running bool `protobuf:"varint,6,opt,name=running,proto3" json:"running,omitempty"` - StartObjectId uint64 `protobuf:"varint,7,opt,name=start_object_id,json=startObjectId,proto3" json:"start_object_id,omitempty"` - EndObjectId uint64 `protobuf:"varint,8,opt,name=end_object_id,json=endObjectId,proto3" json:"end_object_id,omitempty"` - Finished bool `protobuf:"varint,9,opt,name=finished,proto3" json:"finished,omitempty"` + Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` + Running bool `protobuf:"varint,2,opt,name=running,proto3" json:"running,omitempty"` + StartObjectId uint64 `protobuf:"varint,3,opt,name=start_object_id,json=startObjectId,proto3" json:"start_object_id,omitempty"` + EndObjectId uint64 `protobuf:"varint,4,opt,name=end_object_id,json=endObjectId,proto3" json:"end_object_id,omitempty"` + Finished bool `protobuf:"varint,5,opt,name=finished,proto3" json:"finished,omitempty"` } func (m *GfSpGCZombiePieceTask) Reset() { *m = GfSpGCZombiePieceTask{} } @@ -1486,34 +1482,6 @@ func (m *GfSpGCZombiePieceTask) GetTask() *GfSpTask { return nil } -func (m *GfSpGCZombiePieceTask) GetStartBlockNumber() uint64 { - if m != nil { - return m.StartBlockNumber - } - return 0 -} - -func (m *GfSpGCZombiePieceTask) GetEndBlockNumber() uint64 { - if m != nil { - return m.EndBlockNumber - } - return 0 -} - -func (m *GfSpGCZombiePieceTask) GetCurrentBlockNumber() uint64 { - if m != nil { - return m.CurrentBlockNumber - } - return 0 -} - -func (m *GfSpGCZombiePieceTask) GetLastDeletedObjectId() uint64 { - if m != nil { - return m.LastDeletedObjectId - } - return 0 -} - func (m *GfSpGCZombiePieceTask) GetRunning() bool { if m != nil { return m.Running @@ -2123,144 +2091,144 @@ func init() { func init() { proto.RegisterFile("base/types/gfsptask/task.proto", fileDescriptor_0d22df708e229306) } var fileDescriptor_0d22df708e229306 = []byte{ - // 2181 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xbb, 0x6f, 0x1b, 0xc9, - 0x19, 0x37, 0x1f, 0xe2, 0xe3, 0x23, 0x29, 0xd3, 0x6b, 0xda, 0xa6, 0x5f, 0xb4, 0xbc, 0x8a, 0x7d, - 0x8a, 0xef, 0x4c, 0xde, 0xe9, 0x60, 0xa4, 0x34, 0x24, 0x4a, 0xe2, 0x09, 0x8e, 0x6c, 0xdd, 0x52, - 0x3e, 0x20, 0x57, 0x64, 0x31, 0xdc, 0x1d, 0x2e, 0x37, 0xda, 0x57, 0x66, 0x97, 0xb2, 0xe8, 0x3a, - 0x5d, 0x8a, 0x04, 0x01, 0x82, 0x00, 0x29, 0x52, 0xa7, 0x0d, 0x10, 0xa4, 0x4b, 0x15, 0xe0, 0x10, - 0x20, 0xcd, 0x95, 0x01, 0xd2, 0x1c, 0xec, 0x34, 0xf9, 0x2f, 0x82, 0xf9, 0x66, 0x96, 0xbb, 0xa4, - 0x29, 0xc5, 0xaf, 0x24, 0xf6, 0xe1, 0x1a, 0x5b, 0xf3, 0xfd, 0xbe, 0x99, 0xfd, 0xe6, 0xf7, 0xbd, - 0x66, 0x86, 0xd0, 0x1a, 0x90, 0x90, 0x76, 0xa2, 0x49, 0x40, 0xc3, 0x8e, 0x35, 0x0c, 0x83, 0x88, - 0x84, 0x87, 0x1d, 0xfe, 0x4f, 0x3b, 0x60, 0x7e, 0xe4, 0x2b, 0xe7, 0x39, 0xde, 0x46, 0xbc, 0x1d, - 0xe3, 0x57, 0x6e, 0xce, 0x4d, 0xa2, 0x8c, 0xf9, 0x2c, 0xec, 0xe0, 0x7f, 0x62, 0xde, 0x95, 0xcb, - 0x16, 0xa3, 0xd4, 0x1b, 0xda, 0xd4, 0x31, 0x3b, 0x61, 0x20, 0x74, 0x25, 0x74, 0x23, 0x0d, 0x45, - 0x3e, 0x23, 0x16, 0xed, 0x04, 0x84, 0x11, 0x37, 0x56, 0xb8, 0xba, 0x40, 0x21, 0x3a, 0x96, 0x60, - 0x6b, 0x11, 0x98, 0x5a, 0x7d, 0x35, 0x85, 0x1f, 0xd9, 0x2c, 0x1a, 0x13, 0xc7, 0x62, 0xfe, 0x78, - 0xc6, 0x04, 0xf5, 0x2f, 0x59, 0x28, 0xf5, 0x86, 0xfd, 0xe0, 0x80, 0x84, 0x87, 0x4a, 0x13, 0x8a, - 0xc4, 0x34, 0x19, 0x0d, 0xc3, 0x66, 0x66, 0x25, 0xb3, 0x56, 0xd6, 0xe2, 0xa1, 0x72, 0x03, 0x2a, - 0x06, 0xa3, 0x24, 0xa2, 0x7a, 0x64, 0xbb, 0xb4, 0x99, 0x5d, 0xc9, 0xac, 0xe5, 0x34, 0x10, 0xa2, - 0x03, 0xdb, 0xa5, 0x5c, 0x61, 0x1c, 0x98, 0x53, 0x85, 0x9c, 0x50, 0x10, 0x22, 0x54, 0x68, 0x42, - 0x91, 0x23, 0xfe, 0x38, 0x6a, 0xe6, 0x11, 0x8c, 0x87, 0xca, 0x2a, 0xd4, 0x38, 0x97, 0x7a, 0xc0, - 0x6c, 0x9f, 0xd9, 0xd1, 0xa4, 0xb9, 0xb4, 0x92, 0x59, 0x5b, 0xd2, 0xaa, 0x5c, 0xb8, 0x2f, 0x65, - 0x4a, 0x03, 0x96, 0x18, 0x8d, 0xd8, 0xa4, 0x59, 0xc0, 0xc9, 0x62, 0xa0, 0x5c, 0x85, 0xb2, 0x4b, - 0x8e, 0x75, 0x81, 0x14, 0x11, 0x29, 0xb9, 0xe4, 0x58, 0x43, 0xf0, 0x26, 0x54, 0xc7, 0x21, 0x65, - 0x7a, 0xbc, 0xa5, 0x12, 0x6e, 0xa9, 0xc2, 0x65, 0x1b, 0x72, 0x5b, 0x0a, 0xe4, 0x1d, 0xdf, 0x0a, - 0x9b, 0x65, 0x84, 0xf0, 0x6f, 0x65, 0x1d, 0x72, 0x94, 0xb1, 0x26, 0xac, 0x64, 0xd6, 0x2a, 0xeb, - 0x2b, 0xed, 0x39, 0xaf, 0x0b, 0x07, 0xb7, 0x39, 0x65, 0xdb, 0xfc, 0x4f, 0x8d, 0x2b, 0xab, 0x5f, - 0x65, 0xe0, 0x1a, 0x17, 0x75, 0x91, 0x90, 0xcd, 0xb1, 0x71, 0x48, 0xa3, 0x8d, 0x20, 0x60, 0xfe, - 0x11, 0x71, 0x90, 0xd9, 0x4f, 0x20, 0xcf, 0xb7, 0x83, 0xb4, 0x56, 0xd6, 0xaf, 0xb7, 0x17, 0xc4, - 0x52, 0x3b, 0x76, 0x83, 0x86, 0xaa, 0xca, 0xe7, 0xa0, 0x48, 0xca, 0x07, 0xb8, 0x9e, 0x6e, 0x7b, - 0x43, 0x1f, 0x99, 0xaf, 0xac, 0xaf, 0xb6, 0x13, 0xdf, 0xb6, 0xa5, 0xef, 0xdb, 0x7b, 0xa1, 0x95, - 0xfe, 0xbe, 0x56, 0x37, 0x52, 0xa3, 0x5d, 0x6f, 0xe8, 0x2b, 0x2b, 0x50, 0x19, 0xda, 0x9e, 0x45, - 0x59, 0xc0, 0x6c, 0x2f, 0x42, 0x27, 0x55, 0xb5, 0xb4, 0x48, 0xfd, 0x7d, 0x06, 0xae, 0x73, 0x3b, - 0xf6, 0x6c, 0x8b, 0xbd, 0xb5, 0x9d, 0x1c, 0xc0, 0x79, 0x57, 0xac, 0xb7, 0x60, 0x2b, 0xdf, 0x3b, - 0x61, 0x2b, 0x33, 0x16, 0x68, 0xe7, 0xdc, 0xf4, 0x90, 0x6f, 0x66, 0x8e, 0xf3, 0x47, 0x83, 0x9f, - 0x50, 0xe3, 0x2d, 0x72, 0xee, 0xe3, 0x7a, 0x2f, 0xcf, 0xb9, 0xf8, 0x7e, 0xcc, 0xb9, 0x18, 0xbd, - 0x24, 0xe7, 0x7f, 0xce, 0x43, 0x8b, 0xdb, 0xa1, 0xd1, 0xc0, 0xb1, 0x0d, 0x12, 0xd1, 0x7d, 0x9b, - 0x1a, 0xf4, 0x4d, 0xb7, 0x72, 0x1f, 0x2a, 0x2f, 0xee, 0xa1, 0xb5, 0x68, 0x0f, 0x89, 0xb1, 0x1a, - 0xf8, 0x89, 0xe1, 0x1b, 0xb0, 0x2c, 0x35, 0x74, 0x51, 0x93, 0xd0, 0xf6, 0xca, 0xfa, 0x95, 0x45, - 0x6b, 0xec, 0xa3, 0x86, 0x56, 0x93, 0x63, 0x31, 0x54, 0xee, 0xc1, 0x25, 0x9e, 0xd8, 0x61, 0xa0, - 0xfb, 0x01, 0x65, 0x24, 0xf2, 0x93, 0x64, 0xcc, 0x63, 0xc6, 0x35, 0x48, 0x78, 0xd8, 0x0f, 0x1e, - 0x49, 0x30, 0xce, 0xca, 0x55, 0xa8, 0xe1, 0x34, 0xdb, 0xf2, 0x48, 0x34, 0x66, 0x14, 0x0b, 0x42, - 0x55, 0xab, 0x72, 0xe5, 0x58, 0xa6, 0x7c, 0x0c, 0x0d, 0x82, 0x14, 0x51, 0x93, 0x7f, 0x80, 0x7a, - 0x66, 0xe0, 0x73, 0x82, 0x0b, 0xb8, 0xb0, 0x12, 0x63, 0xfd, 0x60, 0x5b, 0x22, 0xca, 0x7d, 0xb8, - 0x96, 0x9e, 0xf1, 0x82, 0x49, 0x45, 0x9c, 0x79, 0x39, 0x99, 0x39, 0x6f, 0xd7, 0x5d, 0x50, 0x92, - 0x05, 0xa6, 0xc6, 0x95, 0xd0, 0xb8, 0x73, 0xd3, 0x69, 0x53, 0x0b, 0xe7, 0xbe, 0x47, 0xa4, 0x43, - 0xa7, 0xdf, 0x2b, 0xcf, 0x7f, 0x2f, 0x76, 0x79, 0xfc, 0xbd, 0x5b, 0xb0, 0x4c, 0x8f, 0x03, 0x9b, - 0x51, 0x53, 0x1f, 0x51, 0xdb, 0x1a, 0x45, 0x58, 0x94, 0xf2, 0x5a, 0x4d, 0x4a, 0x3f, 0x43, 0xa1, - 0xfa, 0xb3, 0x2c, 0x34, 0xb8, 0xf3, 0x1f, 0x07, 0x8e, 0x4f, 0x4c, 0xe1, 0xcd, 0xd7, 0x8d, 0x9a, - 0x7b, 0x70, 0x49, 0xb6, 0x0a, 0x1d, 0x7b, 0x85, 0x3e, 0x24, 0xae, 0xed, 0x4c, 0x74, 0xdb, 0xc4, - 0x08, 0xaa, 0x69, 0x0d, 0x09, 0xf7, 0x38, 0xba, 0x83, 0xe0, 0xae, 0x39, 0x1f, 0x6c, 0xb9, 0xb7, - 0x10, 0x6c, 0xf9, 0x57, 0x0c, 0x36, 0xf5, 0x1f, 0x59, 0x51, 0xba, 0x34, 0x1a, 0x8e, 0x5d, 0x32, - 0x70, 0xe8, 0xdb, 0xe0, 0xe3, 0x5d, 0xc8, 0xa2, 0x8b, 0x50, 0xf0, 0x87, 0xc3, 0x90, 0x8a, 0xc6, - 0x99, 0xd7, 0xe4, 0x88, 0xcb, 0x1d, 0xea, 0x59, 0xd1, 0x08, 0xf3, 0x23, 0xaf, 0xc9, 0x91, 0x72, - 0x0d, 0xca, 0x86, 0xef, 0x06, 0x0e, 0x8d, 0xa8, 0x89, 0xe9, 0x50, 0xd2, 0x12, 0xc1, 0x69, 0x1e, - 0x2e, 0x9e, 0xec, 0x61, 0xf5, 0x9f, 0x39, 0xb8, 0xf8, 0x62, 0x91, 0x7a, 0x9f, 0x69, 0xed, 0xc0, - 0xf9, 0x90, 0x1a, 0xbe, 0x67, 0x12, 0x36, 0x89, 0x73, 0x92, 0xf2, 0xb8, 0xcb, 0xf1, 0xfa, 0x31, - 0x85, 0x36, 0x62, 0x44, 0xf9, 0x04, 0x1a, 0xc9, 0x84, 0x69, 0xfe, 0x87, 0xcd, 0xa5, 0x95, 0xdc, - 0x5a, 0x55, 0x4b, 0x16, 0x9b, 0x56, 0x00, 0x74, 0x5d, 0x48, 0x89, 0x33, 0xf5, 0x83, 0x1c, 0x71, - 0x27, 0x58, 0x8e, 0x3f, 0x20, 0x8e, 0x3e, 0xeb, 0x8b, 0xc4, 0x09, 0x02, 0xfe, 0x22, 0xe5, 0x8a, - 0x5d, 0x73, 0xd6, 0xe4, 0xb8, 0xe2, 0xf1, 0x83, 0xcd, 0xac, 0xc9, 0x71, 0xc5, 0xe3, 0x7b, 0x6c, - 0x78, 0x7e, 0xa4, 0x93, 0x23, 0x62, 0x3b, 0x3c, 0x25, 0x78, 0x1d, 0xb2, 0xcd, 0x63, 0x2c, 0x3d, - 0x4b, 0xda, 0x39, 0xcf, 0x8f, 0x36, 0x62, 0xa8, 0x1f, 0xec, 0x9a, 0xc7, 0xea, 0x37, 0xb2, 0x96, - 0x68, 0xd4, 0xf0, 0x8f, 0x28, 0x7b, 0xef, 0x9d, 0x7c, 0x03, 0x2a, 0x21, 0xb5, 0x5c, 0xea, 0x45, - 0xb8, 0xef, 0x3c, 0x92, 0x0b, 0x52, 0xb4, 0x6b, 0x1e, 0x2b, 0x17, 0xa0, 0x40, 0x0d, 0xc4, 0xc4, - 0xa9, 0x73, 0x89, 0x1a, 0x5c, 0x7c, 0x1d, 0x20, 0xe0, 0x7b, 0xd7, 0x43, 0xfb, 0x29, 0x45, 0xe7, - 0xe5, 0xb5, 0x32, 0x4a, 0xfa, 0xf6, 0x53, 0xca, 0x53, 0x2c, 0x69, 0x00, 0x45, 0x6c, 0x00, 0x89, - 0x80, 0xa3, 0x4c, 0xf0, 0x47, 0x4d, 0x6c, 0x0f, 0x25, 0x2d, 0x11, 0xa8, 0xbf, 0xc8, 0x4f, 0x29, - 0xa6, 0xf6, 0x11, 0xfd, 0xf6, 0x53, 0x7c, 0x0b, 0x96, 0x19, 0x35, 0xc7, 0x9e, 0x49, 0x3c, 0x63, - 0x92, 0xa2, 0xba, 0x96, 0x48, 0x17, 0x53, 0x9e, 0x4b, 0x53, 0x7e, 0x0b, 0x96, 0x05, 0x6c, 0x8c, - 0xa8, 0x71, 0x18, 0x8e, 0x5d, 0xc9, 0x7b, 0x0d, 0xa5, 0x5d, 0x29, 0x9c, 0xf5, 0x4c, 0x69, 0xde, - 0x33, 0x49, 0x3e, 0x96, 0x67, 0xf2, 0xf1, 0x0a, 0x94, 0x86, 0xb6, 0x67, 0x87, 0x23, 0x6a, 0x62, - 0x8f, 0x2d, 0x69, 0xd3, 0xf1, 0x69, 0xb9, 0x5a, 0x39, 0x25, 0x57, 0xbf, 0x0f, 0x75, 0x79, 0xd8, - 0x15, 0x47, 0x57, 0xdb, 0xf7, 0x9a, 0x55, 0x5c, 0xfa, 0xac, 0x90, 0xef, 0xc5, 0x62, 0xf5, 0x37, - 0x39, 0x50, 0xb8, 0x63, 0xfb, 0x94, 0x38, 0xef, 0x7f, 0xbb, 0xfa, 0x5f, 0xd4, 0xd5, 0x53, 0x7c, - 0x52, 0x78, 0xf5, 0xfa, 0x59, 0x3c, 0xa9, 0x7e, 0xaa, 0x7f, 0xca, 0x8a, 0xae, 0xb7, 0xe5, 0x3f, - 0xf1, 0xde, 0x81, 0xc3, 0xc4, 0x7d, 0xa8, 0xa4, 0x2f, 0x50, 0xa7, 0x1c, 0xb3, 0x92, 0x7b, 0x92, - 0x06, 0x83, 0xe4, 0x02, 0xf8, 0xe6, 0xc7, 0x2c, 0xa5, 0x0e, 0x39, 0xc7, 0x7f, 0x82, 0x29, 0x9c, - 0xd3, 0xf8, 0x9f, 0xfc, 0x12, 0x3d, 0xb2, 0xad, 0x91, 0x4c, 0x59, 0xfc, 0x5b, 0xfd, 0x63, 0x0e, - 0x2e, 0xa4, 0x89, 0xfb, 0xff, 0x56, 0xb9, 0x77, 0x81, 0xb7, 0x9b, 0x50, 0xa5, 0x1e, 0xf6, 0x60, - 0x2c, 0x60, 0x48, 0x60, 0x49, 0xab, 0x08, 0x19, 0x96, 0x2f, 0x5e, 0x01, 0x23, 0x3f, 0x22, 0xce, - 0x4c, 0xd3, 0x41, 0x09, 0x56, 0xc0, 0xab, 0x20, 0xca, 0xa1, 0x7e, 0x48, 0x27, 0xf2, 0xb2, 0x52, - 0x42, 0xc1, 0x03, 0x8a, 0x8f, 0x1d, 0x02, 0x94, 0x47, 0xc5, 0x12, 0xce, 0xae, 0xa0, 0xec, 0x91, - 0x38, 0x2f, 0x4e, 0x55, 0xe4, 0xa9, 0xb1, 0x9c, 0x52, 0xf9, 0x21, 0x8a, 0xd4, 0xaf, 0xe4, 0x29, - 0xaf, 0x3b, 0x22, 0x0e, 0xd7, 0xa2, 0xdf, 0xf9, 0x6d, 0xae, 0xbd, 0x2d, 0xbd, 0x44, 0x7b, 0x2b, - 0x2c, 0x6a, 0x6f, 0xb7, 0x60, 0xd9, 0xf6, 0x22, 0x6a, 0x31, 0x3b, 0x9a, 0xe8, 0x23, 0x12, 0x8e, - 0xe2, 0xfe, 0x35, 0x95, 0x7e, 0x46, 0xc2, 0x51, 0xd2, 0x05, 0x51, 0xa5, 0x84, 0x25, 0x50, 0xb8, - 0x1d, 0xe1, 0xdb, 0x70, 0x56, 0xc0, 0x26, 0x89, 0x88, 0x88, 0x93, 0x32, 0xa6, 0x9d, 0x68, 0x83, - 0x5b, 0x24, 0x22, 0x3c, 0x56, 0xd4, 0xdf, 0x65, 0xa1, 0xce, 0xbd, 0xd1, 0xeb, 0xbe, 0x59, 0xc9, - 0xfa, 0x08, 0x94, 0x30, 0x22, 0x2c, 0xd2, 0x07, 0x8e, 0x6f, 0x1c, 0xea, 0xde, 0xd8, 0x1d, 0x50, - 0x86, 0x9e, 0xcc, 0x6b, 0x75, 0x44, 0x36, 0x39, 0xf0, 0x10, 0xe5, 0xca, 0x1a, 0xd4, 0xa9, 0x67, - 0xce, 0xea, 0xe6, 0x50, 0x77, 0x99, 0x7a, 0x66, 0x5a, 0xf3, 0x63, 0x68, 0x18, 0x63, 0xc6, 0x38, - 0xab, 0x33, 0xda, 0xe2, 0x86, 0xa3, 0x48, 0x2c, 0x3d, 0xe3, 0x53, 0xb8, 0xe8, 0x90, 0x30, 0xd2, - 0x4d, 0x8a, 0xf7, 0x98, 0xe9, 0x03, 0x8d, 0x29, 0x6f, 0x3f, 0xe7, 0x39, 0xba, 0x25, 0x40, 0x19, - 0x4e, 0xa6, 0xd2, 0x84, 0x22, 0x1b, 0x7b, 0x9e, 0xed, 0x59, 0xf2, 0x00, 0x1e, 0x0f, 0xd5, 0x9f, - 0xcb, 0x02, 0xd5, 0xeb, 0x7e, 0xe9, 0xbb, 0x03, 0xfb, 0xcd, 0x02, 0xfd, 0xdb, 0xca, 0x12, 0x0f, - 0x37, 0xb1, 0xb1, 0x64, 0x9d, 0xa2, 0x78, 0x82, 0x40, 0xf1, 0x74, 0x05, 0x15, 0x6a, 0x7c, 0x4b, - 0x89, 0x96, 0x2c, 0x3f, 0xd4, 0x4b, 0xbe, 0x92, 0x3e, 0x63, 0x95, 0x67, 0xcf, 0x58, 0xea, 0xaf, - 0xb3, 0xb0, 0x2c, 0xbc, 0xb1, 0x47, 0x23, 0xf2, 0xba, 0x6e, 0xb8, 0x01, 0x95, 0x98, 0x2e, 0x9e, - 0x86, 0x82, 0x7f, 0x90, 0x22, 0x9e, 0x83, 0x37, 0xa1, 0x2a, 0x88, 0xd1, 0x0d, 0x7f, 0x2c, 0x1f, - 0xe3, 0xf2, 0x5a, 0x45, 0xc8, 0xba, 0x5c, 0x94, 0xe6, 0x22, 0x3f, 0xcb, 0xc5, 0x2a, 0xd4, 0x50, - 0xd1, 0xf6, 0x3d, 0xf1, 0xc6, 0x2d, 0x5a, 0x60, 0x35, 0x16, 0xe2, 0x2b, 0xf7, 0x1e, 0x2c, 0xbb, - 0x34, 0x22, 0x3a, 0x3e, 0x68, 0x73, 0x6b, 0x91, 0xd1, 0xe5, 0xf5, 0x0f, 0x4e, 0xb4, 0x3f, 0xd9, - 0xf2, 0xc1, 0x24, 0xa0, 0x5a, 0xd5, 0x4d, 0x8d, 0xd4, 0x5f, 0xe5, 0xc5, 0xc9, 0x50, 0x3e, 0x86, - 0xf6, 0xbe, 0xe8, 0xbd, 0x2e, 0x37, 0x57, 0xa1, 0x1c, 0x97, 0x52, 0x53, 0x32, 0x53, 0x92, 0x85, - 0xd2, 0x54, 0xb6, 0xa0, 0x18, 0x32, 0x43, 0xb7, 0x8e, 0x2c, 0x59, 0x63, 0x3f, 0x4c, 0xd7, 0xc7, - 0xf4, 0x6f, 0x07, 0xed, 0xde, 0x0b, 0xe7, 0x2a, 0xad, 0x10, 0x32, 0xa3, 0x77, 0x64, 0x29, 0x3b, - 0x50, 0x32, 0x69, 0x18, 0xe1, 0x32, 0xf9, 0x57, 0x5f, 0xa6, 0xc8, 0x27, 0xf3, 0x75, 0x5e, 0xf2, - 0xbe, 0x70, 0x0f, 0xf8, 0x87, 0xf5, 0x30, 0x40, 0x8a, 0xe7, 0xfb, 0x42, 0xd0, 0xee, 0xcb, 0x32, - 0xce, 0xfc, 0x23, 0xdb, 0xa4, 0x4c, 0x5b, 0x0a, 0x99, 0xd1, 0x0f, 0xf8, 0xd1, 0x11, 0x33, 0x44, - 0x3e, 0x28, 0x9b, 0x2f, 0x84, 0x76, 0x83, 0xc3, 0x92, 0xf0, 0xc5, 0xd1, 0x5b, 0x9a, 0xbb, 0x21, - 0xdc, 0x80, 0x8a, 0x78, 0x91, 0x13, 0x71, 0x21, 0x0a, 0x32, 0x08, 0x11, 0x46, 0xc5, 0xcc, 0xa5, - 0x04, 0xe6, 0x2f, 0x25, 0xed, 0xe9, 0xf3, 0xb8, 0xa9, 0x0f, 0x26, 0x11, 0x0d, 0x45, 0x5d, 0xaf, - 0xa0, 0x35, 0xf1, 0xc3, 0xb7, 0xb9, 0xc9, 0x11, 0xac, 0xed, 0xff, 0x92, 0x77, 0x74, 0x69, 0xe3, - 0x7b, 0x7f, 0x81, 0xe4, 0x45, 0x06, 0x1d, 0x99, 0x3c, 0xe2, 0x8a, 0xd7, 0xe1, 0x1a, 0x7a, 0x6c, - 0xfa, 0x7e, 0xfb, 0xb6, 0x3a, 0xf1, 0x1d, 0x38, 0x67, 0x87, 0xfa, 0xcc, 0xe5, 0x4c, 0x5c, 0xe2, - 0x4b, 0xda, 0x59, 0x3b, 0xdc, 0x4c, 0x5d, 0xce, 0xa8, 0x7a, 0x08, 0x97, 0x45, 0x92, 0x6e, 0xce, - 0xde, 0xd9, 0xfe, 0x1b, 0x69, 0xa8, 0xfe, 0x21, 0x0b, 0x97, 0xb8, 0xfe, 0xdc, 0xb7, 0x90, 0xe7, - 0x99, 0x89, 0x99, 0xb9, 0xfc, 0x4d, 0x07, 0x67, 0x76, 0x2e, 0x38, 0x4f, 0x88, 0xae, 0xdc, 0x09, - 0xd1, 0xa5, 0xfc, 0x00, 0x30, 0x11, 0x79, 0x5e, 0xe5, 0x5f, 0x2a, 0xaf, 0x0a, 0x5c, 0x1d, 0x13, - 0x2b, 0xce, 0xc7, 0xa5, 0x57, 0xc9, 0xc7, 0xb9, 0xe4, 0x29, 0x9c, 0x9e, 0x3c, 0xf3, 0x6f, 0x2d, - 0xea, 0xdf, 0xb2, 0x70, 0x3e, 0xe1, 0xec, 0xf3, 0xb1, 0x1f, 0x91, 0xff, 0xcc, 0x57, 0x03, 0x96, - 0x5c, 0xdf, 0x8b, 0x46, 0x48, 0x56, 0x59, 0x13, 0x03, 0x6e, 0x89, 0x9c, 0xe2, 0x11, 0xf9, 0x13, - 0x66, 0x39, 0x3e, 0x4d, 0x3e, 0x24, 0x2e, 0xe5, 0x6d, 0x9e, 0x51, 0x62, 0xea, 0x86, 0xef, 0x85, - 0x63, 0x17, 0x7f, 0x04, 0x78, 0x4a, 0x65, 0x33, 0xae, 0x73, 0xa4, 0x2b, 0x01, 0x49, 0x64, 0x73, - 0xc8, 0x28, 0xd5, 0x7f, 0xca, 0x6d, 0x9a, 0x9b, 0x23, 0x9a, 0xf1, 0x05, 0x8e, 0xa3, 0xc9, 0x33, - 0x13, 0x6f, 0xc3, 0xd9, 0xd4, 0xc4, 0xd4, 0x5d, 0xa0, 0x36, 0xd5, 0x47, 0xbd, 0x8f, 0x40, 0x31, - 0x46, 0x84, 0x59, 0xd4, 0x4c, 0xab, 0x8a, 0x22, 0x56, 0x97, 0x48, 0xa2, 0xbd, 0x0a, 0x35, 0xe2, - 0x38, 0xfe, 0x93, 0x69, 0xc4, 0x8b, 0x2a, 0x56, 0x45, 0xa1, 0x0c, 0xf7, 0x3b, 0xbf, 0xcd, 0x88, - 0x7e, 0x33, 0xdb, 0x94, 0x94, 0x0f, 0x60, 0xb5, 0xb7, 0xa3, 0xf7, 0xf7, 0xf5, 0x5e, 0x57, 0xdf, - 0xdb, 0x3e, 0xd8, 0xd0, 0x0f, 0x36, 0xfa, 0x0f, 0xf4, 0x83, 0x1f, 0xed, 0x6f, 0xeb, 0x8f, 0x1f, - 0xf6, 0xf7, 0xb7, 0xbb, 0xbb, 0x3b, 0xbb, 0xdb, 0x5b, 0xf5, 0x33, 0xca, 0x1d, 0xb8, 0x7d, 0x92, - 0xe2, 0xe6, 0xe3, 0xee, 0x83, 0xed, 0x03, 0xfd, 0x40, 0xdb, 0xd8, 0xd9, 0xd9, 0xed, 0xd6, 0x33, - 0x4a, 0x07, 0x3e, 0x3c, 0x49, 0x57, 0x2a, 0xe9, 0xda, 0xf6, 0xc6, 0x96, 0xae, 0x6d, 0x77, 0x1f, - 0x69, 0x5b, 0xf5, 0xec, 0xe6, 0x8f, 0xff, 0xfa, 0xac, 0x95, 0xf9, 0xfa, 0x59, 0x2b, 0xf3, 0xcd, - 0xb3, 0x56, 0xe6, 0x97, 0xcf, 0x5b, 0x67, 0xbe, 0x7e, 0xde, 0x3a, 0xf3, 0xf7, 0xe7, 0xad, 0x33, - 0x5f, 0x6e, 0x59, 0x76, 0x34, 0x1a, 0x0f, 0xda, 0x86, 0xef, 0x76, 0x06, 0xde, 0xe0, 0xae, 0x31, - 0x22, 0xb6, 0xd7, 0x49, 0xc2, 0xef, 0xae, 0x2c, 0x38, 0x77, 0x03, 0x19, 0x7c, 0x9d, 0x05, 0xbf, - 0xf5, 0x0f, 0x0a, 0xf8, 0x8b, 0xf8, 0xa7, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x9e, 0x2f, 0xb4, - 0x71, 0x09, 0x20, 0x00, 0x00, + // 2183 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6f, 0xdb, 0xc8, + 0x15, 0x8f, 0xbe, 0x2c, 0xe9, 0x49, 0x72, 0x14, 0x46, 0x9b, 0x28, 0x5f, 0x8a, 0x43, 0x37, 0x59, + 0x37, 0xbb, 0x91, 0x76, 0xbd, 0x08, 0x7a, 0x0c, 0x6c, 0xd9, 0xd6, 0x1a, 0xa9, 0x13, 0x2f, 0xe5, + 0x2c, 0xd0, 0x3d, 0x94, 0x18, 0x91, 0x23, 0x8a, 0x35, 0xbf, 0x3a, 0xa4, 0x1c, 0x2b, 0xe7, 0xde, + 0x5b, 0x14, 0x28, 0x0a, 0xf4, 0xd0, 0x73, 0xaf, 0x05, 0x8a, 0xde, 0x7a, 0x2a, 0xb0, 0x28, 0xd0, + 0x1e, 0xf6, 0x58, 0xa0, 0x97, 0x45, 0xd2, 0x4b, 0xff, 0x8b, 0x62, 0xde, 0x0c, 0x45, 0x4a, 0x91, + 0xdd, 0x7c, 0xb8, 0x6d, 0x52, 0xf4, 0x62, 0x73, 0xde, 0x7b, 0x33, 0xf3, 0xe6, 0xf7, 0x3e, 0x67, + 0x04, 0xad, 0x01, 0x09, 0x69, 0x27, 0x9a, 0x04, 0x34, 0xec, 0x58, 0xc3, 0x30, 0x88, 0x48, 0x78, + 0xd8, 0xe1, 0x7f, 0xda, 0x01, 0xf3, 0x23, 0x5f, 0xb9, 0xc8, 0xf9, 0x6d, 0xe4, 0xb7, 0x63, 0xfe, + 0xd5, 0x5b, 0x73, 0x93, 0x28, 0x63, 0x3e, 0x0b, 0x3b, 0xf8, 0x4f, 0xcc, 0xbb, 0x7a, 0xc5, 0x62, + 0x94, 0x7a, 0x43, 0x9b, 0x3a, 0x66, 0x27, 0x0c, 0x84, 0xac, 0x64, 0xdd, 0x4c, 0xb3, 0x22, 0x9f, + 0x11, 0x8b, 0x76, 0x02, 0xc2, 0x88, 0x1b, 0x0b, 0x5c, 0x5b, 0x20, 0x10, 0x1d, 0x4b, 0x66, 0x6b, + 0x11, 0x33, 0xb5, 0xfa, 0x6a, 0x8a, 0x7f, 0x64, 0xb3, 0x68, 0x4c, 0x1c, 0x8b, 0xf9, 0xe3, 0x19, + 0x15, 0xd4, 0x3f, 0x66, 0xa1, 0xd4, 0x1b, 0xf6, 0x83, 0x03, 0x12, 0x1e, 0x2a, 0x4d, 0x28, 0x12, + 0xd3, 0x64, 0x34, 0x0c, 0x9b, 0x99, 0x95, 0xcc, 0x5a, 0x59, 0x8b, 0x87, 0xca, 0x4d, 0xa8, 0x18, + 0x8c, 0x92, 0x88, 0xea, 0x91, 0xed, 0xd2, 0x66, 0x76, 0x25, 0xb3, 0x96, 0xd3, 0x40, 0x90, 0x0e, + 0x6c, 0x97, 0x72, 0x81, 0x71, 0x60, 0x4e, 0x05, 0x72, 0x42, 0x40, 0x90, 0x50, 0xa0, 0x09, 0x45, + 0xce, 0xf1, 0xc7, 0x51, 0x33, 0x8f, 0xcc, 0x78, 0xa8, 0xac, 0x42, 0x8d, 0x63, 0xa9, 0x07, 0xcc, + 0xf6, 0x99, 0x1d, 0x4d, 0x9a, 0x85, 0x95, 0xcc, 0x5a, 0x41, 0xab, 0x72, 0xe2, 0xbe, 0xa4, 0x29, + 0x0d, 0x28, 0x30, 0x1a, 0xb1, 0x49, 0x73, 0x09, 0x27, 0x8b, 0x81, 0x72, 0x0d, 0xca, 0x2e, 0x39, + 0xd6, 0x05, 0xa7, 0x88, 0x9c, 0x92, 0x4b, 0x8e, 0x35, 0x64, 0xde, 0x82, 0xea, 0x38, 0xa4, 0x4c, + 0x8f, 0x8f, 0x54, 0xc2, 0x23, 0x55, 0x38, 0x6d, 0x43, 0x1e, 0x4b, 0x81, 0xbc, 0xe3, 0x5b, 0x61, + 0xb3, 0x8c, 0x2c, 0xfc, 0x56, 0xd6, 0x21, 0x47, 0x19, 0x6b, 0xc2, 0x4a, 0x66, 0xad, 0xb2, 0xbe, + 0xd2, 0x9e, 0xb3, 0xba, 0x30, 0x70, 0x9b, 0x43, 0xb6, 0xcd, 0x3f, 0x35, 0x2e, 0xac, 0x7e, 0x9d, + 0x81, 0xeb, 0x9c, 0xd4, 0x45, 0x40, 0x36, 0xc7, 0xc6, 0x21, 0x8d, 0x36, 0x82, 0x80, 0xf9, 0x47, + 0xc4, 0x41, 0x64, 0x3f, 0x85, 0x3c, 0x3f, 0x0e, 0xc2, 0x5a, 0x59, 0xbf, 0xd1, 0x5e, 0xe0, 0x4b, + 0xed, 0xd8, 0x0c, 0x1a, 0x8a, 0x2a, 0x5f, 0x80, 0x22, 0x21, 0x1f, 0xe0, 0x7a, 0xba, 0xed, 0x0d, + 0x7d, 0x44, 0xbe, 0xb2, 0xbe, 0xda, 0x4e, 0x6c, 0xdb, 0x96, 0xb6, 0x6f, 0xef, 0x85, 0x56, 0x7a, + 0x7f, 0xad, 0x6e, 0xa4, 0x46, 0xbb, 0xde, 0xd0, 0x57, 0x56, 0xa0, 0x32, 0xb4, 0x3d, 0x8b, 0xb2, + 0x80, 0xd9, 0x5e, 0x84, 0x46, 0xaa, 0x6a, 0x69, 0x92, 0xfa, 0x9b, 0x0c, 0xdc, 0xe0, 0x7a, 0xec, + 0xd9, 0x16, 0x3b, 0xb3, 0x93, 0x1c, 0xc0, 0x45, 0x57, 0xac, 0xb7, 0xe0, 0x28, 0xdf, 0x39, 0xe1, + 0x28, 0x33, 0x1a, 0x68, 0x17, 0xdc, 0xf4, 0x90, 0x1f, 0x66, 0x0e, 0xf3, 0xc7, 0x83, 0x1f, 0x51, + 0xe3, 0x0c, 0x31, 0xf7, 0x71, 0xbd, 0x57, 0xc7, 0x5c, 0xec, 0x1f, 0x63, 0x2e, 0x46, 0xaf, 0x88, + 0xf9, 0x1f, 0xf2, 0xd0, 0xe2, 0x7a, 0x68, 0x34, 0x70, 0x6c, 0x83, 0x44, 0x74, 0xdf, 0xa6, 0x06, + 0x7d, 0xdb, 0xa3, 0x3c, 0x80, 0xca, 0xcb, 0x67, 0x68, 0x2d, 0x3a, 0x43, 0xa2, 0xac, 0x06, 0x7e, + 0xa2, 0xf8, 0x06, 0x2c, 0x4b, 0x09, 0x5d, 0xe4, 0x24, 0xd4, 0xbd, 0xb2, 0x7e, 0x75, 0xd1, 0x1a, + 0xfb, 0x28, 0xa1, 0xd5, 0xe4, 0x58, 0x0c, 0x95, 0xfb, 0x70, 0x99, 0x07, 0x76, 0x18, 0xe8, 0x7e, + 0x40, 0x19, 0x89, 0xfc, 0x24, 0x18, 0xf3, 0x18, 0x71, 0x0d, 0x12, 0x1e, 0xf6, 0x83, 0xc7, 0x92, + 0x19, 0x47, 0xe5, 0x2a, 0xd4, 0x70, 0x9a, 0x6d, 0x79, 0x24, 0x1a, 0x33, 0x8a, 0x09, 0xa1, 0xaa, + 0x55, 0xb9, 0x70, 0x4c, 0x53, 0x3e, 0x81, 0x06, 0x41, 0x88, 0xa8, 0xc9, 0x37, 0xa0, 0x9e, 0x19, + 0xf8, 0x1c, 0xe0, 0x25, 0x5c, 0x58, 0x89, 0x79, 0xfd, 0x60, 0x5b, 0x72, 0x94, 0x07, 0x70, 0x3d, + 0x3d, 0xe3, 0x25, 0x95, 0x8a, 0x38, 0xf3, 0x4a, 0x32, 0x73, 0x5e, 0xaf, 0x7b, 0xa0, 0x24, 0x0b, + 0x4c, 0x95, 0x2b, 0xa1, 0x72, 0x17, 0xa6, 0xd3, 0xa6, 0x1a, 0xce, 0xed, 0x47, 0xa4, 0x41, 0xa7, + 0xfb, 0x95, 0xe7, 0xf7, 0x8b, 0x4d, 0x1e, 0xef, 0x77, 0x1b, 0x96, 0xe9, 0x71, 0x60, 0x33, 0x6a, + 0xea, 0x23, 0x6a, 0x5b, 0xa3, 0x08, 0x93, 0x52, 0x5e, 0xab, 0x49, 0xea, 0xe7, 0x48, 0x54, 0x7f, + 0x92, 0x85, 0x06, 0x37, 0xfe, 0x93, 0xc0, 0xf1, 0x89, 0x29, 0xac, 0xf9, 0xa6, 0x5e, 0x73, 0x1f, + 0x2e, 0xcb, 0x52, 0xa1, 0x63, 0xad, 0xd0, 0x87, 0xc4, 0xb5, 0x9d, 0x89, 0x6e, 0x9b, 0xe8, 0x41, + 0x35, 0xad, 0x21, 0xd9, 0x3d, 0xce, 0xdd, 0x41, 0xe6, 0xae, 0x39, 0xef, 0x6c, 0xb9, 0x33, 0x70, + 0xb6, 0xfc, 0x6b, 0x3a, 0x9b, 0xfa, 0xb7, 0xac, 0x48, 0x5d, 0x1a, 0x0d, 0xc7, 0x2e, 0x19, 0x38, + 0xf4, 0x2c, 0xf0, 0x78, 0x17, 0xa2, 0xe8, 0x12, 0x2c, 0xf9, 0xc3, 0x61, 0x48, 0x45, 0xe1, 0xcc, + 0x6b, 0x72, 0xc4, 0xe9, 0x0e, 0xf5, 0xac, 0x68, 0x84, 0xf1, 0x91, 0xd7, 0xe4, 0x48, 0xb9, 0x0e, + 0x65, 0xc3, 0x77, 0x03, 0x87, 0x46, 0xd4, 0xc4, 0x70, 0x28, 0x69, 0x09, 0xe1, 0x34, 0x0b, 0x17, + 0x4f, 0xb6, 0xb0, 0xfa, 0xf7, 0x1c, 0x5c, 0x7a, 0x39, 0x49, 0xbd, 0xcf, 0xb0, 0x76, 0xe0, 0x62, + 0x48, 0x0d, 0xdf, 0x33, 0x09, 0x9b, 0xc4, 0x31, 0x49, 0xb9, 0xdf, 0xe5, 0x78, 0xfe, 0x98, 0xb2, + 0x36, 0x62, 0x8e, 0xf2, 0x29, 0x34, 0x92, 0x09, 0xd3, 0xf8, 0x0f, 0x9b, 0x85, 0x95, 0xdc, 0x5a, + 0x55, 0x4b, 0x16, 0x9b, 0x66, 0x00, 0x34, 0x5d, 0x48, 0x89, 0x33, 0xb5, 0x83, 0x1c, 0x71, 0x23, + 0x58, 0x8e, 0x3f, 0x20, 0x8e, 0x3e, 0x6b, 0x8b, 0xc4, 0x08, 0x82, 0xfd, 0x65, 0xca, 0x14, 0xbb, + 0xe6, 0xac, 0xca, 0x71, 0xc6, 0xe3, 0x8d, 0xcd, 0xac, 0xca, 0x71, 0xc6, 0xe3, 0x67, 0x6c, 0x78, + 0x7e, 0xa4, 0x93, 0x23, 0x62, 0x3b, 0x3c, 0x24, 0x78, 0x1e, 0xb2, 0xcd, 0x63, 0x4c, 0x3d, 0x05, + 0xed, 0x82, 0xe7, 0x47, 0x1b, 0x31, 0xab, 0x1f, 0xec, 0x9a, 0xc7, 0xea, 0xb7, 0x32, 0x97, 0x68, + 0xd4, 0xf0, 0x8f, 0x28, 0x7b, 0xef, 0x8d, 0x7c, 0x13, 0x2a, 0x21, 0xb5, 0x5c, 0xea, 0x45, 0x78, + 0xee, 0x3c, 0x82, 0x0b, 0x92, 0xb4, 0x6b, 0x1e, 0x2b, 0x1f, 0xc0, 0x12, 0x35, 0x90, 0x27, 0xba, + 0xce, 0x02, 0x35, 0x38, 0xf9, 0x06, 0x40, 0xc0, 0xcf, 0xae, 0x87, 0xf6, 0x33, 0x8a, 0xc6, 0xcb, + 0x6b, 0x65, 0xa4, 0xf4, 0xed, 0x67, 0x94, 0x87, 0x58, 0x52, 0x00, 0x8a, 0x58, 0x00, 0x12, 0x02, + 0xe7, 0x32, 0x81, 0x1f, 0x35, 0xb1, 0x3c, 0x94, 0xb4, 0x84, 0xa0, 0xfe, 0x34, 0x3f, 0x85, 0x98, + 0xda, 0x47, 0xf4, 0x7f, 0x1f, 0xe2, 0xdb, 0xb0, 0xcc, 0xa8, 0x39, 0xf6, 0x4c, 0xe2, 0x19, 0x93, + 0x14, 0xd4, 0xb5, 0x84, 0xba, 0x18, 0xf2, 0x5c, 0x1a, 0xf2, 0xdb, 0xb0, 0x2c, 0xd8, 0xc6, 0x88, + 0x1a, 0x87, 0xe1, 0xd8, 0x95, 0xb8, 0xd7, 0x90, 0xda, 0x95, 0xc4, 0x59, 0xcb, 0x94, 0xe6, 0x2d, + 0x93, 0xc4, 0x63, 0x79, 0x26, 0x1e, 0xaf, 0x42, 0x69, 0x68, 0x7b, 0x76, 0x38, 0xa2, 0x26, 0xd6, + 0xd8, 0x92, 0x36, 0x1d, 0x9f, 0x16, 0xab, 0x95, 0x53, 0x62, 0xf5, 0xbb, 0x50, 0x97, 0xcd, 0xae, + 0x68, 0x5d, 0x6d, 0xdf, 0x6b, 0x56, 0x71, 0xe9, 0xf3, 0x82, 0xbe, 0x17, 0x93, 0xd5, 0x5f, 0xe6, + 0x40, 0xe1, 0x86, 0xed, 0x53, 0xe2, 0xbc, 0xff, 0xe5, 0xea, 0x3f, 0x91, 0x57, 0x4f, 0xb1, 0xc9, + 0xd2, 0xeb, 0xe7, 0xcf, 0xe2, 0x49, 0xf9, 0x53, 0xfd, 0x7d, 0x56, 0x54, 0xbd, 0x2d, 0xff, 0xa9, + 0xf7, 0x0e, 0x34, 0x13, 0x0f, 0xa0, 0x92, 0xbe, 0x40, 0x9d, 0xd2, 0x66, 0x25, 0xf7, 0x24, 0x0d, + 0x06, 0xc9, 0x05, 0xf0, 0xed, 0xdb, 0x2c, 0xa5, 0x0e, 0x39, 0xc7, 0x7f, 0x8a, 0x21, 0x9c, 0xd3, + 0xf8, 0x27, 0xbf, 0x44, 0x8f, 0x6c, 0x6b, 0x24, 0x43, 0x16, 0xbf, 0xd5, 0xdf, 0xe5, 0xe0, 0x83, + 0x34, 0x70, 0xff, 0xdd, 0x2c, 0xf7, 0x2e, 0xe0, 0x76, 0x0b, 0xaa, 0xd4, 0xc3, 0x1a, 0x8c, 0x09, + 0x0c, 0x01, 0x2c, 0x69, 0x15, 0x41, 0xc3, 0xf4, 0xc5, 0x33, 0x60, 0xe4, 0x47, 0xc4, 0x99, 0x29, + 0x3a, 0x48, 0xc1, 0x0c, 0x78, 0x0d, 0x44, 0x3a, 0xd4, 0x0f, 0xe9, 0x44, 0x5e, 0x56, 0x4a, 0x48, + 0x78, 0x48, 0xf1, 0xb1, 0x43, 0x30, 0x65, 0xab, 0x58, 0xc2, 0xd9, 0x15, 0xa4, 0x3d, 0x16, 0xfd, + 0xe2, 0x54, 0x44, 0x76, 0x8d, 0xe5, 0x94, 0xc8, 0xf7, 0x91, 0xa4, 0x7e, 0x2d, 0xbb, 0xbc, 0xee, + 0x88, 0x38, 0x5c, 0x8a, 0xfe, 0xdf, 0x6e, 0x73, 0xe5, 0xad, 0xf0, 0x0a, 0xe5, 0x6d, 0x69, 0x51, + 0x79, 0xbb, 0x0d, 0xcb, 0xb6, 0x17, 0x51, 0x8b, 0xd9, 0xd1, 0x44, 0x1f, 0x91, 0x70, 0x14, 0xd7, + 0xaf, 0x29, 0xf5, 0x73, 0x12, 0x8e, 0x92, 0x2a, 0x88, 0x22, 0x25, 0x4c, 0x81, 0xc2, 0xec, 0xc8, + 0xbe, 0x03, 0xe7, 0x05, 0xdb, 0x24, 0x11, 0x11, 0x7e, 0x52, 0xc6, 0xb0, 0x13, 0x65, 0x70, 0x8b, + 0x44, 0x84, 0xfb, 0x8a, 0xfa, 0xeb, 0x2c, 0xd4, 0xb9, 0x35, 0x7a, 0xdd, 0xb7, 0x4b, 0x59, 0x1f, + 0x83, 0x12, 0x46, 0x84, 0x45, 0xfa, 0xc0, 0xf1, 0x8d, 0x43, 0xdd, 0x1b, 0xbb, 0x03, 0xca, 0xd0, + 0x92, 0x79, 0xad, 0x8e, 0x9c, 0x4d, 0xce, 0x78, 0x84, 0x74, 0x65, 0x0d, 0xea, 0xd4, 0x33, 0x67, + 0x65, 0x73, 0x28, 0xbb, 0x4c, 0x3d, 0x33, 0x2d, 0xf9, 0x09, 0x34, 0x8c, 0x31, 0x63, 0x1c, 0xd5, + 0x19, 0x69, 0x71, 0xc3, 0x51, 0x24, 0x2f, 0x3d, 0xe3, 0x33, 0xb8, 0xe4, 0x90, 0x30, 0xd2, 0x4d, + 0x8a, 0xf7, 0x98, 0xe9, 0x03, 0x8d, 0x29, 0x6f, 0x3f, 0x17, 0x39, 0x77, 0x4b, 0x30, 0xa5, 0x3b, + 0x99, 0x4a, 0x13, 0x8a, 0x6c, 0xec, 0x79, 0xb6, 0x67, 0xc9, 0x06, 0x3c, 0x1e, 0xaa, 0x7f, 0xc9, + 0x88, 0x04, 0xd5, 0xeb, 0x7e, 0xe5, 0xbb, 0x03, 0xfb, 0xed, 0x1c, 0x3d, 0xb5, 0x4d, 0x76, 0x66, + 0x1b, 0x6e, 0x2f, 0x81, 0x5f, 0xa2, 0xae, 0x00, 0xa4, 0x86, 0xe4, 0xa9, 0xa2, 0x2a, 0xd4, 0x38, + 0x72, 0x89, 0x94, 0x00, 0xa2, 0x42, 0xbd, 0xe4, 0x30, 0xe9, 0x26, 0xa5, 0x30, 0xdb, 0xa4, 0xa8, + 0xbf, 0xc8, 0xc2, 0xb2, 0x38, 0xce, 0x1e, 0x8d, 0xc8, 0x9b, 0x9e, 0xe3, 0x26, 0x54, 0x62, 0xab, + 0x70, 0x3f, 0x16, 0x66, 0x06, 0x49, 0xe2, 0x4e, 0x7c, 0x0b, 0xaa, 0x02, 0x7f, 0xdd, 0xf0, 0xc7, + 0xf2, 0x35, 0x2b, 0xaf, 0x55, 0x04, 0xad, 0xcb, 0x49, 0x69, 0x2c, 0xf2, 0xb3, 0x58, 0xac, 0x42, + 0x0d, 0x05, 0x6d, 0xdf, 0x13, 0x8f, 0xc4, 0xa2, 0x86, 0x54, 0x63, 0x22, 0x3e, 0x13, 0xef, 0xc1, + 0xb2, 0x4b, 0x23, 0xa2, 0xe3, 0x8b, 0x30, 0xd7, 0x16, 0x0d, 0xb7, 0xbc, 0xfe, 0xe1, 0x89, 0xfa, + 0x27, 0x47, 0x3e, 0x98, 0x04, 0x54, 0xab, 0xba, 0xa9, 0x91, 0xfa, 0xf3, 0xbc, 0x68, 0xad, 0xe4, + 0x6b, 0x62, 0xef, 0xcb, 0xde, 0x9b, 0x62, 0x73, 0x0d, 0xca, 0x71, 0x2e, 0x32, 0x25, 0x32, 0x25, + 0x99, 0x69, 0x4c, 0x65, 0x0b, 0x8a, 0x21, 0x33, 0x74, 0xeb, 0xc8, 0x92, 0x49, 0xea, 0xa3, 0x74, + 0x82, 0x49, 0x3f, 0xbe, 0xb7, 0x7b, 0x2f, 0x35, 0x26, 0xda, 0x52, 0xc8, 0x8c, 0xde, 0x91, 0xa5, + 0xec, 0x40, 0xc9, 0xa4, 0x61, 0x84, 0xcb, 0xe4, 0x5f, 0x7f, 0x99, 0x22, 0x9f, 0xcc, 0xd7, 0x79, + 0xc5, 0x86, 0xfb, 0x3e, 0xf0, 0x8d, 0xf5, 0x30, 0x40, 0x88, 0xe7, 0x13, 0x6b, 0xd0, 0xee, 0xcb, + 0x3c, 0xc8, 0xfc, 0x23, 0xdb, 0xa4, 0x4c, 0x2b, 0x84, 0xcc, 0xe8, 0x07, 0xbc, 0xf7, 0xc2, 0x40, + 0x94, 0x2f, 0xb2, 0x69, 0xa7, 0x2d, 0x22, 0x2c, 0x0d, 0xce, 0x96, 0x80, 0x2f, 0xf6, 0xde, 0xd2, + 0x5c, 0x8b, 0x7d, 0x13, 0x2a, 0xe2, 0x49, 0x4b, 0xf8, 0x85, 0xc8, 0x68, 0x20, 0x48, 0xe8, 0x15, + 0x33, 0x5d, 0x3d, 0xcc, 0x77, 0xf5, 0xed, 0xe9, 0xfb, 0xb2, 0xa9, 0x0f, 0x26, 0x11, 0x0d, 0x45, + 0x62, 0xac, 0xa0, 0x36, 0xf1, 0xcb, 0xb1, 0xb9, 0xc9, 0x39, 0x98, 0x1c, 0xff, 0x21, 0x2f, 0xb9, + 0x52, 0xc7, 0xf7, 0xfe, 0x06, 0xc6, 0x93, 0x0c, 0x1a, 0x32, 0x79, 0x05, 0x15, 0xcf, 0xab, 0x35, + 0xb4, 0xd8, 0xf4, 0x01, 0xf4, 0xac, 0x4a, 0xd9, 0x5d, 0xb8, 0x60, 0x87, 0xfa, 0xcc, 0xed, 0x46, + 0xdc, 0x82, 0x4b, 0xda, 0x79, 0x3b, 0xdc, 0x4c, 0xdd, 0x6e, 0xa8, 0x7a, 0x08, 0x57, 0x44, 0x90, + 0x6e, 0xce, 0x5e, 0x7a, 0xfe, 0x1d, 0x61, 0xa8, 0xfe, 0x36, 0x0b, 0x97, 0xb9, 0xfc, 0xdc, 0x5e, + 0x88, 0xf3, 0xcc, 0xc4, 0xcc, 0x5c, 0xfc, 0xa6, 0x9d, 0x33, 0x3b, 0xe7, 0x9c, 0x27, 0x78, 0x57, + 0xee, 0x04, 0xef, 0x52, 0xbe, 0x07, 0x18, 0x88, 0x3c, 0xae, 0xf2, 0xaf, 0x14, 0x57, 0x4b, 0x5c, + 0x1c, 0x03, 0x2b, 0x8e, 0xc7, 0xc2, 0xeb, 0xc4, 0xe3, 0x5c, 0xf0, 0x2c, 0x9d, 0x1e, 0x3c, 0xf3, + 0x8f, 0x15, 0xea, 0x9f, 0xb3, 0x70, 0x31, 0xc1, 0xec, 0x8b, 0xb1, 0x1f, 0x91, 0x7f, 0x8d, 0x57, + 0x03, 0x0a, 0xae, 0xef, 0x45, 0x23, 0x04, 0xab, 0xac, 0x89, 0x01, 0xd7, 0x44, 0x4e, 0xf1, 0x88, + 0xfc, 0x0d, 0xb0, 0x1c, 0xb7, 0x63, 0x8f, 0x88, 0x4b, 0x79, 0x37, 0xc1, 0x28, 0x31, 0x75, 0xc3, + 0xf7, 0xc2, 0xb1, 0x8b, 0xaf, 0xe8, 0xcf, 0xa8, 0x2c, 0x75, 0x75, 0xce, 0xe9, 0x4a, 0x86, 0x04, + 0xb2, 0x39, 0x64, 0x94, 0xea, 0x3f, 0xe6, 0x3a, 0xcd, 0xcd, 0x11, 0x35, 0xff, 0x03, 0xce, 0x47, + 0x95, 0x67, 0x26, 0xde, 0x81, 0xf3, 0xa9, 0x89, 0xa9, 0x66, 0xba, 0x36, 0x95, 0x47, 0xb9, 0x8f, + 0x41, 0x31, 0x46, 0x84, 0x59, 0xd4, 0x4c, 0x8b, 0x8a, 0x24, 0x56, 0x97, 0x9c, 0x44, 0x7a, 0x15, + 0x6a, 0xc4, 0x71, 0xfc, 0xa7, 0x53, 0x8f, 0x17, 0x59, 0xac, 0x8a, 0x44, 0xe9, 0xee, 0x77, 0x7f, + 0x95, 0x11, 0xf5, 0x66, 0xb6, 0x28, 0x29, 0x1f, 0xc2, 0x6a, 0x6f, 0x47, 0xef, 0xef, 0xeb, 0xbd, + 0xae, 0xbe, 0xb7, 0x7d, 0xb0, 0xa1, 0x1f, 0x6c, 0xf4, 0x1f, 0xea, 0x07, 0x3f, 0xd8, 0xdf, 0xd6, + 0x9f, 0x3c, 0xea, 0xef, 0x6f, 0x77, 0x77, 0x77, 0x76, 0xb7, 0xb7, 0xea, 0xe7, 0x94, 0xbb, 0x70, + 0xe7, 0x24, 0xc1, 0xcd, 0x27, 0xdd, 0x87, 0xdb, 0x07, 0xfa, 0x81, 0xb6, 0xb1, 0xb3, 0xb3, 0xdb, + 0xad, 0x67, 0x94, 0x0e, 0x7c, 0x74, 0x92, 0xac, 0x14, 0xd2, 0xb5, 0xed, 0x8d, 0x2d, 0x5d, 0xdb, + 0xee, 0x3e, 0xd6, 0xb6, 0xea, 0xd9, 0xcd, 0x1f, 0xfe, 0xe9, 0x79, 0x2b, 0xf3, 0xcd, 0xf3, 0x56, + 0xe6, 0xdb, 0xe7, 0xad, 0xcc, 0xcf, 0x5e, 0xb4, 0xce, 0x7d, 0xf3, 0xa2, 0x75, 0xee, 0xaf, 0x2f, + 0x5a, 0xe7, 0xbe, 0xda, 0xb2, 0xec, 0x68, 0x34, 0x1e, 0xb4, 0x0d, 0xdf, 0xed, 0x0c, 0xbc, 0xc1, + 0x3d, 0x63, 0x44, 0x6c, 0xaf, 0x93, 0xb8, 0xdf, 0x3d, 0x99, 0x70, 0xee, 0x05, 0xd2, 0xf9, 0x3a, + 0x0b, 0x7e, 0x2c, 0x1f, 0x2c, 0xe1, 0x4f, 0xca, 0x9f, 0xfd, 0x33, 0x00, 0x00, 0xff, 0xff, 0x7c, + 0x11, 0xb7, 0x27, 0x4a, 0x1f, 0x00, 0x00, } func (m *GfSpTask) Marshal() (dAtA []byte, err error) { @@ -3548,17 +3516,17 @@ func (m *GfSpGCZombiePieceTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- - dAtA[i] = 0x48 + dAtA[i] = 0x28 } if m.EndObjectId != 0 { i = encodeVarintTask(dAtA, i, uint64(m.EndObjectId)) i-- - dAtA[i] = 0x40 + dAtA[i] = 0x20 } if m.StartObjectId != 0 { i = encodeVarintTask(dAtA, i, uint64(m.StartObjectId)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x18 } if m.Running { i-- @@ -3568,26 +3536,6 @@ func (m *GfSpGCZombiePieceTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0 } i-- - dAtA[i] = 0x30 - } - if m.LastDeletedObjectId != 0 { - i = encodeVarintTask(dAtA, i, uint64(m.LastDeletedObjectId)) - i-- - dAtA[i] = 0x28 - } - if m.CurrentBlockNumber != 0 { - i = encodeVarintTask(dAtA, i, uint64(m.CurrentBlockNumber)) - i-- - dAtA[i] = 0x20 - } - if m.EndBlockNumber != 0 { - i = encodeVarintTask(dAtA, i, uint64(m.EndBlockNumber)) - i-- - dAtA[i] = 0x18 - } - if m.StartBlockNumber != 0 { - i = encodeVarintTask(dAtA, i, uint64(m.StartBlockNumber)) - i-- dAtA[i] = 0x10 } if m.Task != nil { @@ -4609,18 +4557,6 @@ func (m *GfSpGCZombiePieceTask) Size() (n int) { l = m.Task.Size() n += 1 + l + sovTask(uint64(l)) } - if m.StartBlockNumber != 0 { - n += 1 + sovTask(uint64(m.StartBlockNumber)) - } - if m.EndBlockNumber != 0 { - n += 1 + sovTask(uint64(m.EndBlockNumber)) - } - if m.CurrentBlockNumber != 0 { - n += 1 + sovTask(uint64(m.CurrentBlockNumber)) - } - if m.LastDeletedObjectId != 0 { - n += 1 + sovTask(uint64(m.LastDeletedObjectId)) - } if m.Running { n += 2 } @@ -8666,82 +8602,6 @@ func (m *GfSpGCZombiePieceTask) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field StartBlockNumber", wireType) - } - m.StartBlockNumber = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTask - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.StartBlockNumber |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EndBlockNumber", wireType) - } - m.EndBlockNumber = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTask - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.EndBlockNumber |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentBlockNumber", wireType) - } - m.CurrentBlockNumber = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTask - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CurrentBlockNumber |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LastDeletedObjectId", wireType) - } - m.LastDeletedObjectId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTask - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.LastDeletedObjectId |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Running", wireType) } @@ -8761,7 +8621,7 @@ func (m *GfSpGCZombiePieceTask) Unmarshal(dAtA []byte) error { } } m.Running = bool(v != 0) - case 7: + case 3: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field StartObjectId", wireType) } @@ -8780,7 +8640,7 @@ func (m *GfSpGCZombiePieceTask) Unmarshal(dAtA []byte) error { break } } - case 8: + case 4: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field EndObjectId", wireType) } @@ -8799,7 +8659,7 @@ func (m *GfSpGCZombiePieceTask) Unmarshal(dAtA []byte) error { break } } - case 9: + case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Finished", wireType) } diff --git a/base/types/gfsptask/task_key.go b/base/types/gfsptask/task_key.go index 261a3560b..32b4718d4 100644 --- a/base/types/gfsptask/task_key.go +++ b/base/types/gfsptask/task_key.go @@ -108,8 +108,9 @@ func GfSpGCObjectTaskKey(start, end uint64, time int64) task.TKey { "start"+fmt.Sprint(start), "end"+fmt.Sprint(end), "time"+fmt.Sprint(time))) } -func GfSpGCZombiePieceTaskKey(time int64) task.TKey { - return task.TKey(KeyPrefixGfSpGCZombiePieceTask + CombineKey("time"+fmt.Sprint(time))) +func GfSpGCZombiePieceTaskKey(start, end uint64, time int64) task.TKey { + return task.TKey(KeyPrefixGfSpGCZombiePieceTask + CombineKey( + "start"+fmt.Sprint(start), "end"+fmt.Sprint(end), "time"+fmt.Sprint(time))) } func GfSpGfSpGCMetaTaskKey(time int64) task.TKey { diff --git a/core/module/modular_mock.go b/core/module/modular_mock.go index 8a07f62fe..1baadbd2c 100644 --- a/core/module/modular_mock.go +++ b/core/module/modular_mock.go @@ -1,10 +1,6 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: ./modular.go -// -// Generated by this command: -// -// mockgen -source=./modular.go -destination=./modular_mock.go -package=module -// +// Source: core/module/modular.go + // Package module is a generated GoMock package. package module @@ -69,7 +65,7 @@ func (m *MockModular) ReleaseResource(ctx context.Context, scope rcmgr.ResourceS } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockModularMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockModularMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockModular)(nil).ReleaseResource), ctx, scope) } @@ -84,7 +80,7 @@ func (m *MockModular) ReserveResource(ctx context.Context, state *rcmgr.ScopeSta } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockModularMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockModularMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockModular)(nil).ReserveResource), ctx, state) } @@ -98,7 +94,7 @@ func (m *MockModular) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockModularMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockModularMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockModular)(nil).Start), ctx) } @@ -112,7 +108,7 @@ func (m *MockModular) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockModularMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockModularMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockModular)(nil).Stop), ctx) } @@ -150,7 +146,7 @@ func (m *MockAuthenticator) GetAuthNonce(ctx context.Context, account, domain st } // GetAuthNonce indicates an expected call of GetAuthNonce. -func (mr *MockAuthenticatorMockRecorder) GetAuthNonce(ctx, account, domain any) *gomock.Call { +func (mr *MockAuthenticatorMockRecorder) GetAuthNonce(ctx, account, domain interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthNonce", reflect.TypeOf((*MockAuthenticator)(nil).GetAuthNonce), ctx, account, domain) } @@ -176,7 +172,7 @@ func (m *MockAuthenticator) ReleaseResource(ctx context.Context, scope rcmgr.Res } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockAuthenticatorMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockAuthenticatorMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockAuthenticator)(nil).ReleaseResource), ctx, scope) } @@ -191,7 +187,7 @@ func (m *MockAuthenticator) ReserveResource(ctx context.Context, state *rcmgr.Sc } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockAuthenticatorMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockAuthenticatorMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockAuthenticator)(nil).ReserveResource), ctx, state) } @@ -205,7 +201,7 @@ func (m *MockAuthenticator) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockAuthenticatorMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockAuthenticatorMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockAuthenticator)(nil).Start), ctx) } @@ -219,7 +215,7 @@ func (m *MockAuthenticator) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockAuthenticatorMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockAuthenticatorMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockAuthenticator)(nil).Stop), ctx) } @@ -234,7 +230,7 @@ func (m *MockAuthenticator) UpdateUserPublicKey(ctx context.Context, account, do } // UpdateUserPublicKey indicates an expected call of UpdateUserPublicKey. -func (mr *MockAuthenticatorMockRecorder) UpdateUserPublicKey(ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate any) *gomock.Call { +func (mr *MockAuthenticatorMockRecorder) UpdateUserPublicKey(ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserPublicKey", reflect.TypeOf((*MockAuthenticator)(nil).UpdateUserPublicKey), ctx, account, domain, currentNonce, nonce, userPublicKey, expiryDate) } @@ -249,7 +245,7 @@ func (m *MockAuthenticator) VerifyAuthentication(ctx context.Context, auth AuthO } // VerifyAuthentication indicates an expected call of VerifyAuthentication. -func (mr *MockAuthenticatorMockRecorder) VerifyAuthentication(ctx, auth, account, bucket, object any) *gomock.Call { +func (mr *MockAuthenticatorMockRecorder) VerifyAuthentication(ctx, auth, account, bucket, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyAuthentication", reflect.TypeOf((*MockAuthenticator)(nil).VerifyAuthentication), ctx, auth, account, bucket, object) } @@ -264,7 +260,7 @@ func (m *MockAuthenticator) VerifyGNFD1EddsaSignature(ctx context.Context, accou } // VerifyGNFD1EddsaSignature indicates an expected call of VerifyGNFD1EddsaSignature. -func (mr *MockAuthenticatorMockRecorder) VerifyGNFD1EddsaSignature(ctx, account, domain, offChainSig, realMsgToSign any) *gomock.Call { +func (mr *MockAuthenticatorMockRecorder) VerifyGNFD1EddsaSignature(ctx, account, domain, offChainSig, realMsgToSign interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerifyGNFD1EddsaSignature", reflect.TypeOf((*MockAuthenticator)(nil).VerifyGNFD1EddsaSignature), ctx, account, domain, offChainSig, realMsgToSign) } @@ -302,7 +298,7 @@ func (m *MockApprover) HandleCreateBucketApprovalTask(ctx context.Context, task } // HandleCreateBucketApprovalTask indicates an expected call of HandleCreateBucketApprovalTask. -func (mr *MockApproverMockRecorder) HandleCreateBucketApprovalTask(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) HandleCreateBucketApprovalTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleCreateBucketApprovalTask", reflect.TypeOf((*MockApprover)(nil).HandleCreateBucketApprovalTask), ctx, task) } @@ -317,7 +313,7 @@ func (m *MockApprover) HandleCreateObjectApprovalTask(ctx context.Context, task } // HandleCreateObjectApprovalTask indicates an expected call of HandleCreateObjectApprovalTask. -func (mr *MockApproverMockRecorder) HandleCreateObjectApprovalTask(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) HandleCreateObjectApprovalTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleCreateObjectApprovalTask", reflect.TypeOf((*MockApprover)(nil).HandleCreateObjectApprovalTask), ctx, task) } @@ -332,7 +328,7 @@ func (m *MockApprover) HandleMigrateBucketApprovalTask(ctx context.Context, task } // HandleMigrateBucketApprovalTask indicates an expected call of HandleMigrateBucketApprovalTask. -func (mr *MockApproverMockRecorder) HandleMigrateBucketApprovalTask(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) HandleMigrateBucketApprovalTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleMigrateBucketApprovalTask", reflect.TypeOf((*MockApprover)(nil).HandleMigrateBucketApprovalTask), ctx, task) } @@ -358,7 +354,7 @@ func (m *MockApprover) PostCreateBucketApproval(ctx context.Context, task task.A } // PostCreateBucketApproval indicates an expected call of PostCreateBucketApproval. -func (mr *MockApproverMockRecorder) PostCreateBucketApproval(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) PostCreateBucketApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostCreateBucketApproval", reflect.TypeOf((*MockApprover)(nil).PostCreateBucketApproval), ctx, task) } @@ -370,7 +366,7 @@ func (m *MockApprover) PostCreateObjectApproval(ctx context.Context, task task.A } // PostCreateObjectApproval indicates an expected call of PostCreateObjectApproval. -func (mr *MockApproverMockRecorder) PostCreateObjectApproval(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) PostCreateObjectApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostCreateObjectApproval", reflect.TypeOf((*MockApprover)(nil).PostCreateObjectApproval), ctx, task) } @@ -382,7 +378,7 @@ func (m *MockApprover) PostMigrateBucketApproval(ctx context.Context, task task. } // PostMigrateBucketApproval indicates an expected call of PostMigrateBucketApproval. -func (mr *MockApproverMockRecorder) PostMigrateBucketApproval(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) PostMigrateBucketApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostMigrateBucketApproval", reflect.TypeOf((*MockApprover)(nil).PostMigrateBucketApproval), ctx, task) } @@ -396,7 +392,7 @@ func (m *MockApprover) PreCreateBucketApproval(ctx context.Context, task task.Ap } // PreCreateBucketApproval indicates an expected call of PreCreateBucketApproval. -func (mr *MockApproverMockRecorder) PreCreateBucketApproval(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) PreCreateBucketApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreCreateBucketApproval", reflect.TypeOf((*MockApprover)(nil).PreCreateBucketApproval), ctx, task) } @@ -410,7 +406,7 @@ func (m *MockApprover) PreCreateObjectApproval(ctx context.Context, task task.Ap } // PreCreateObjectApproval indicates an expected call of PreCreateObjectApproval. -func (mr *MockApproverMockRecorder) PreCreateObjectApproval(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) PreCreateObjectApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreCreateObjectApproval", reflect.TypeOf((*MockApprover)(nil).PreCreateObjectApproval), ctx, task) } @@ -424,7 +420,7 @@ func (m *MockApprover) PreMigrateBucketApproval(ctx context.Context, task task.A } // PreMigrateBucketApproval indicates an expected call of PreMigrateBucketApproval. -func (mr *MockApproverMockRecorder) PreMigrateBucketApproval(ctx, task any) *gomock.Call { +func (mr *MockApproverMockRecorder) PreMigrateBucketApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreMigrateBucketApproval", reflect.TypeOf((*MockApprover)(nil).PreMigrateBucketApproval), ctx, task) } @@ -439,7 +435,7 @@ func (m *MockApprover) QueryTasks(ctx context.Context, subKey task.TKey) ([]task } // QueryTasks indicates an expected call of QueryTasks. -func (mr *MockApproverMockRecorder) QueryTasks(ctx, subKey any) *gomock.Call { +func (mr *MockApproverMockRecorder) QueryTasks(ctx, subKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasks", reflect.TypeOf((*MockApprover)(nil).QueryTasks), ctx, subKey) } @@ -451,7 +447,7 @@ func (m *MockApprover) ReleaseResource(ctx context.Context, scope rcmgr.Resource } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockApproverMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockApproverMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockApprover)(nil).ReleaseResource), ctx, scope) } @@ -466,7 +462,7 @@ func (m *MockApprover) ReserveResource(ctx context.Context, state *rcmgr.ScopeSt } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockApproverMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockApproverMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockApprover)(nil).ReserveResource), ctx, state) } @@ -480,7 +476,7 @@ func (m *MockApprover) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockApproverMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockApproverMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockApprover)(nil).Start), ctx) } @@ -494,7 +490,7 @@ func (m *MockApprover) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockApproverMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockApproverMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockApprover)(nil).Stop), ctx) } @@ -534,7 +530,7 @@ func (m *MockDownloader) HandleChallengePiece(ctx context.Context, task task.Cha } // HandleChallengePiece indicates an expected call of HandleChallengePiece. -func (mr *MockDownloaderMockRecorder) HandleChallengePiece(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) HandleChallengePiece(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleChallengePiece", reflect.TypeOf((*MockDownloader)(nil).HandleChallengePiece), ctx, task) } @@ -549,7 +545,7 @@ func (m *MockDownloader) HandleDownloadObjectTask(ctx context.Context, task task } // HandleDownloadObjectTask indicates an expected call of HandleDownloadObjectTask. -func (mr *MockDownloaderMockRecorder) HandleDownloadObjectTask(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) HandleDownloadObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleDownloadObjectTask", reflect.TypeOf((*MockDownloader)(nil).HandleDownloadObjectTask), ctx, task) } @@ -564,7 +560,7 @@ func (m *MockDownloader) HandleDownloadPieceTask(ctx context.Context, task task. } // HandleDownloadPieceTask indicates an expected call of HandleDownloadPieceTask. -func (mr *MockDownloaderMockRecorder) HandleDownloadPieceTask(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) HandleDownloadPieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleDownloadPieceTask", reflect.TypeOf((*MockDownloader)(nil).HandleDownloadPieceTask), ctx, task) } @@ -590,7 +586,7 @@ func (m *MockDownloader) PostChallengePiece(ctx context.Context, task task.Chall } // PostChallengePiece indicates an expected call of PostChallengePiece. -func (mr *MockDownloaderMockRecorder) PostChallengePiece(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) PostChallengePiece(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostChallengePiece", reflect.TypeOf((*MockDownloader)(nil).PostChallengePiece), ctx, task) } @@ -602,7 +598,7 @@ func (m *MockDownloader) PostDownloadObject(ctx context.Context, task task.Downl } // PostDownloadObject indicates an expected call of PostDownloadObject. -func (mr *MockDownloaderMockRecorder) PostDownloadObject(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) PostDownloadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostDownloadObject", reflect.TypeOf((*MockDownloader)(nil).PostDownloadObject), ctx, task) } @@ -614,7 +610,7 @@ func (m *MockDownloader) PostDownloadPiece(ctx context.Context, task task.Downlo } // PostDownloadPiece indicates an expected call of PostDownloadPiece. -func (mr *MockDownloaderMockRecorder) PostDownloadPiece(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) PostDownloadPiece(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostDownloadPiece", reflect.TypeOf((*MockDownloader)(nil).PostDownloadPiece), ctx, task) } @@ -628,7 +624,7 @@ func (m *MockDownloader) PreChallengePiece(ctx context.Context, task task.Challe } // PreChallengePiece indicates an expected call of PreChallengePiece. -func (mr *MockDownloaderMockRecorder) PreChallengePiece(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) PreChallengePiece(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreChallengePiece", reflect.TypeOf((*MockDownloader)(nil).PreChallengePiece), ctx, task) } @@ -642,7 +638,7 @@ func (m *MockDownloader) PreDownloadObject(ctx context.Context, task task.Downlo } // PreDownloadObject indicates an expected call of PreDownloadObject. -func (mr *MockDownloaderMockRecorder) PreDownloadObject(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) PreDownloadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreDownloadObject", reflect.TypeOf((*MockDownloader)(nil).PreDownloadObject), ctx, task) } @@ -656,7 +652,7 @@ func (m *MockDownloader) PreDownloadPiece(ctx context.Context, task task.Downloa } // PreDownloadPiece indicates an expected call of PreDownloadPiece. -func (mr *MockDownloaderMockRecorder) PreDownloadPiece(ctx, task any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) PreDownloadPiece(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreDownloadPiece", reflect.TypeOf((*MockDownloader)(nil).PreDownloadPiece), ctx, task) } @@ -671,7 +667,7 @@ func (m *MockDownloader) QueryTasks(ctx context.Context, subKey task.TKey) ([]ta } // QueryTasks indicates an expected call of QueryTasks. -func (mr *MockDownloaderMockRecorder) QueryTasks(ctx, subKey any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) QueryTasks(ctx, subKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasks", reflect.TypeOf((*MockDownloader)(nil).QueryTasks), ctx, subKey) } @@ -683,7 +679,7 @@ func (m *MockDownloader) ReleaseResource(ctx context.Context, scope rcmgr.Resour } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockDownloaderMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockDownloader)(nil).ReleaseResource), ctx, scope) } @@ -698,7 +694,7 @@ func (m *MockDownloader) ReserveResource(ctx context.Context, state *rcmgr.Scope } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockDownloaderMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockDownloader)(nil).ReserveResource), ctx, state) } @@ -712,7 +708,7 @@ func (m *MockDownloader) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockDownloaderMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockDownloader)(nil).Start), ctx) } @@ -726,7 +722,7 @@ func (m *MockDownloader) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockDownloaderMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockDownloaderMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockDownloader)(nil).Stop), ctx) } @@ -763,7 +759,7 @@ func (m *MockTaskExecutor) AskTask(ctx context.Context) error { } // AskTask indicates an expected call of AskTask. -func (mr *MockTaskExecutorMockRecorder) AskTask(ctx any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) AskTask(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AskTask", reflect.TypeOf((*MockTaskExecutor)(nil).AskTask), ctx) } @@ -775,7 +771,7 @@ func (m *MockTaskExecutor) HandleGCMetaTask(ctx context.Context, task task.GCMet } // HandleGCMetaTask indicates an expected call of HandleGCMetaTask. -func (mr *MockTaskExecutorMockRecorder) HandleGCMetaTask(ctx, task any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) HandleGCMetaTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleGCMetaTask", reflect.TypeOf((*MockTaskExecutor)(nil).HandleGCMetaTask), ctx, task) } @@ -787,7 +783,7 @@ func (m *MockTaskExecutor) HandleGCObjectTask(ctx context.Context, task task.GCO } // HandleGCObjectTask indicates an expected call of HandleGCObjectTask. -func (mr *MockTaskExecutorMockRecorder) HandleGCObjectTask(ctx, task any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) HandleGCObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleGCObjectTask", reflect.TypeOf((*MockTaskExecutor)(nil).HandleGCObjectTask), ctx, task) } @@ -799,7 +795,7 @@ func (m *MockTaskExecutor) HandleGCZombiePieceTask(ctx context.Context, task tas } // HandleGCZombiePieceTask indicates an expected call of HandleGCZombiePieceTask. -func (mr *MockTaskExecutorMockRecorder) HandleGCZombiePieceTask(ctx, task any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) HandleGCZombiePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleGCZombiePieceTask", reflect.TypeOf((*MockTaskExecutor)(nil).HandleGCZombiePieceTask), ctx, task) } @@ -811,7 +807,7 @@ func (m *MockTaskExecutor) HandleMigrateGVGTask(ctx context.Context, gvgTask tas } // HandleMigrateGVGTask indicates an expected call of HandleMigrateGVGTask. -func (mr *MockTaskExecutorMockRecorder) HandleMigrateGVGTask(ctx, gvgTask any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) HandleMigrateGVGTask(ctx, gvgTask interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleMigrateGVGTask", reflect.TypeOf((*MockTaskExecutor)(nil).HandleMigrateGVGTask), ctx, gvgTask) } @@ -823,7 +819,7 @@ func (m *MockTaskExecutor) HandleReceivePieceTask(ctx context.Context, task task } // HandleReceivePieceTask indicates an expected call of HandleReceivePieceTask. -func (mr *MockTaskExecutorMockRecorder) HandleReceivePieceTask(ctx, task any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) HandleReceivePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleReceivePieceTask", reflect.TypeOf((*MockTaskExecutor)(nil).HandleReceivePieceTask), ctx, task) } @@ -835,7 +831,7 @@ func (m *MockTaskExecutor) HandleReplicatePieceTask(ctx context.Context, task ta } // HandleReplicatePieceTask indicates an expected call of HandleReplicatePieceTask. -func (mr *MockTaskExecutorMockRecorder) HandleReplicatePieceTask(ctx, task any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) HandleReplicatePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleReplicatePieceTask", reflect.TypeOf((*MockTaskExecutor)(nil).HandleReplicatePieceTask), ctx, task) } @@ -847,7 +843,7 @@ func (m *MockTaskExecutor) HandleSealObjectTask(ctx context.Context, task task.S } // HandleSealObjectTask indicates an expected call of HandleSealObjectTask. -func (mr *MockTaskExecutorMockRecorder) HandleSealObjectTask(ctx, task any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) HandleSealObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleSealObjectTask", reflect.TypeOf((*MockTaskExecutor)(nil).HandleSealObjectTask), ctx, task) } @@ -873,7 +869,7 @@ func (m *MockTaskExecutor) ReleaseResource(ctx context.Context, scope rcmgr.Reso } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockTaskExecutorMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockTaskExecutor)(nil).ReleaseResource), ctx, scope) } @@ -887,7 +883,7 @@ func (m *MockTaskExecutor) ReportTask(ctx context.Context, task task.Task) error } // ReportTask indicates an expected call of ReportTask. -func (mr *MockTaskExecutorMockRecorder) ReportTask(ctx, task any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) ReportTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReportTask", reflect.TypeOf((*MockTaskExecutor)(nil).ReportTask), ctx, task) } @@ -902,7 +898,7 @@ func (m *MockTaskExecutor) ReserveResource(ctx context.Context, state *rcmgr.Sco } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockTaskExecutorMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockTaskExecutor)(nil).ReserveResource), ctx, state) } @@ -916,7 +912,7 @@ func (m *MockTaskExecutor) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockTaskExecutorMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockTaskExecutor)(nil).Start), ctx) } @@ -930,7 +926,7 @@ func (m *MockTaskExecutor) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockTaskExecutorMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockTaskExecutorMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockTaskExecutor)(nil).Stop), ctx) } @@ -968,7 +964,7 @@ func (m *MockManager) DispatchTask(ctx context.Context, limit rcmgr.Limit) (task } // DispatchTask indicates an expected call of DispatchTask. -func (mr *MockManagerMockRecorder) DispatchTask(ctx, limit any) *gomock.Call { +func (mr *MockManagerMockRecorder) DispatchTask(ctx, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DispatchTask", reflect.TypeOf((*MockManager)(nil).DispatchTask), ctx, limit) } @@ -982,7 +978,7 @@ func (m *MockManager) HandleChallengePieceTask(ctx context.Context, task task.Ch } // HandleChallengePieceTask indicates an expected call of HandleChallengePieceTask. -func (mr *MockManagerMockRecorder) HandleChallengePieceTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleChallengePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleChallengePieceTask", reflect.TypeOf((*MockManager)(nil).HandleChallengePieceTask), ctx, task) } @@ -996,7 +992,7 @@ func (m *MockManager) HandleCreateResumableUploadObjectTask(ctx context.Context, } // HandleCreateResumableUploadObjectTask indicates an expected call of HandleCreateResumableUploadObjectTask. -func (mr *MockManagerMockRecorder) HandleCreateResumableUploadObjectTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleCreateResumableUploadObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleCreateResumableUploadObjectTask", reflect.TypeOf((*MockManager)(nil).HandleCreateResumableUploadObjectTask), ctx, task) } @@ -1010,7 +1006,7 @@ func (m *MockManager) HandleCreateUploadObjectTask(ctx context.Context, task tas } // HandleCreateUploadObjectTask indicates an expected call of HandleCreateUploadObjectTask. -func (mr *MockManagerMockRecorder) HandleCreateUploadObjectTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleCreateUploadObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleCreateUploadObjectTask", reflect.TypeOf((*MockManager)(nil).HandleCreateUploadObjectTask), ctx, task) } @@ -1024,7 +1020,7 @@ func (m *MockManager) HandleDoneResumableUploadObjectTask(ctx context.Context, t } // HandleDoneResumableUploadObjectTask indicates an expected call of HandleDoneResumableUploadObjectTask. -func (mr *MockManagerMockRecorder) HandleDoneResumableUploadObjectTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleDoneResumableUploadObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleDoneResumableUploadObjectTask", reflect.TypeOf((*MockManager)(nil).HandleDoneResumableUploadObjectTask), ctx, task) } @@ -1038,7 +1034,7 @@ func (m *MockManager) HandleDoneUploadObjectTask(ctx context.Context, task task. } // HandleDoneUploadObjectTask indicates an expected call of HandleDoneUploadObjectTask. -func (mr *MockManagerMockRecorder) HandleDoneUploadObjectTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleDoneUploadObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleDoneUploadObjectTask", reflect.TypeOf((*MockManager)(nil).HandleDoneUploadObjectTask), ctx, task) } @@ -1052,11 +1048,25 @@ func (m *MockManager) HandleDownloadObjectTask(ctx context.Context, task task.Do } // HandleDownloadObjectTask indicates an expected call of HandleDownloadObjectTask. -func (mr *MockManagerMockRecorder) HandleDownloadObjectTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleDownloadObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleDownloadObjectTask", reflect.TypeOf((*MockManager)(nil).HandleDownloadObjectTask), ctx, task) } +// HandleGCBucketMigrationTask mocks base method. +func (m *MockManager) HandleGCBucketMigrationTask(ctx context.Context, task task.GCBucketMigrationTask) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "HandleGCBucketMigrationTask", ctx, task) + ret0, _ := ret[0].(error) + return ret0 +} + +// HandleGCBucketMigrationTask indicates an expected call of HandleGCBucketMigrationTask. +func (mr *MockManagerMockRecorder) HandleGCBucketMigrationTask(ctx, task interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleGCBucketMigrationTask", reflect.TypeOf((*MockManager)(nil).HandleGCBucketMigrationTask), ctx, task) +} + // HandleGCMetaTask mocks base method. func (m *MockManager) HandleGCMetaTask(ctx context.Context, task task.GCMetaTask) error { m.ctrl.T.Helper() @@ -1066,7 +1076,7 @@ func (m *MockManager) HandleGCMetaTask(ctx context.Context, task task.GCMetaTask } // HandleGCMetaTask indicates an expected call of HandleGCMetaTask. -func (mr *MockManagerMockRecorder) HandleGCMetaTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleGCMetaTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleGCMetaTask", reflect.TypeOf((*MockManager)(nil).HandleGCMetaTask), ctx, task) } @@ -1080,7 +1090,7 @@ func (m *MockManager) HandleGCObjectTask(ctx context.Context, task task.GCObject } // HandleGCObjectTask indicates an expected call of HandleGCObjectTask. -func (mr *MockManagerMockRecorder) HandleGCObjectTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleGCObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleGCObjectTask", reflect.TypeOf((*MockManager)(nil).HandleGCObjectTask), ctx, task) } @@ -1094,7 +1104,7 @@ func (m *MockManager) HandleGCZombiePieceTask(ctx context.Context, task task.GCZ } // HandleGCZombiePieceTask indicates an expected call of HandleGCZombiePieceTask. -func (mr *MockManagerMockRecorder) HandleGCZombiePieceTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleGCZombiePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleGCZombiePieceTask", reflect.TypeOf((*MockManager)(nil).HandleGCZombiePieceTask), ctx, task) } @@ -1108,7 +1118,7 @@ func (m *MockManager) HandleMigrateGVGTask(ctx context.Context, task task.Migrat } // HandleMigrateGVGTask indicates an expected call of HandleMigrateGVGTask. -func (mr *MockManagerMockRecorder) HandleMigrateGVGTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleMigrateGVGTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleMigrateGVGTask", reflect.TypeOf((*MockManager)(nil).HandleMigrateGVGTask), ctx, task) } @@ -1122,7 +1132,7 @@ func (m *MockManager) HandleReceivePieceTask(ctx context.Context, task task.Rece } // HandleReceivePieceTask indicates an expected call of HandleReceivePieceTask. -func (mr *MockManagerMockRecorder) HandleReceivePieceTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleReceivePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleReceivePieceTask", reflect.TypeOf((*MockManager)(nil).HandleReceivePieceTask), ctx, task) } @@ -1136,7 +1146,7 @@ func (m *MockManager) HandleRecoverPieceTask(ctx context.Context, task task.Reco } // HandleRecoverPieceTask indicates an expected call of HandleRecoverPieceTask. -func (mr *MockManagerMockRecorder) HandleRecoverPieceTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleRecoverPieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleRecoverPieceTask", reflect.TypeOf((*MockManager)(nil).HandleRecoverPieceTask), ctx, task) } @@ -1150,7 +1160,7 @@ func (m *MockManager) HandleReplicatePieceTask(ctx context.Context, task task.Re } // HandleReplicatePieceTask indicates an expected call of HandleReplicatePieceTask. -func (mr *MockManagerMockRecorder) HandleReplicatePieceTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleReplicatePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleReplicatePieceTask", reflect.TypeOf((*MockManager)(nil).HandleReplicatePieceTask), ctx, task) } @@ -1164,7 +1174,7 @@ func (m *MockManager) HandleSealObjectTask(ctx context.Context, task task.SealOb } // HandleSealObjectTask indicates an expected call of HandleSealObjectTask. -func (mr *MockManagerMockRecorder) HandleSealObjectTask(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) HandleSealObjectTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleSealObjectTask", reflect.TypeOf((*MockManager)(nil).HandleSealObjectTask), ctx, task) } @@ -1192,23 +1202,23 @@ func (m *MockManager) NotifyMigrateSwapOut(ctx context.Context, swapOut *types1. } // NotifyMigrateSwapOut indicates an expected call of NotifyMigrateSwapOut. -func (mr *MockManagerMockRecorder) NotifyMigrateSwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockManagerMockRecorder) NotifyMigrateSwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyMigrateSwapOut", reflect.TypeOf((*MockManager)(nil).NotifyMigrateSwapOut), ctx, swapOut) } // NotifyPostMigrateBucket mocks base method. -func (m *MockManager) NotifyPostMigrateBucket(ctx context.Context, bucketID uint64) error { +func (m *MockManager) NotifyPostMigrateBucket(ctx context.Context, bmStatus *gfsptask.GfSpBucketMigrationInfo) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NotifyPostMigrateBucket", ctx, bucketID) + ret := m.ctrl.Call(m, "NotifyPostMigrateBucket", ctx, bmStatus) ret0, _ := ret[0].(error) return ret0 } // NotifyPostMigrateBucket indicates an expected call of NotifyPostMigrateBucket. -func (mr *MockManagerMockRecorder) NotifyPostMigrateBucket(ctx, bucketID any) *gomock.Call { +func (mr *MockManagerMockRecorder) NotifyPostMigrateBucket(ctx, bmStatus interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPostMigrateBucket", reflect.TypeOf((*MockManager)(nil).NotifyPostMigrateBucket), ctx, bucketID) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPostMigrateBucket", reflect.TypeOf((*MockManager)(nil).NotifyPostMigrateBucket), ctx, bmStatus) } // NotifyPreMigrateBucket mocks base method. @@ -1220,7 +1230,7 @@ func (m *MockManager) NotifyPreMigrateBucket(ctx context.Context, bucketID uint6 } // NotifyPreMigrateBucket indicates an expected call of NotifyPreMigrateBucket. -func (mr *MockManagerMockRecorder) NotifyPreMigrateBucket(ctx, bucketID any) *gomock.Call { +func (mr *MockManagerMockRecorder) NotifyPreMigrateBucket(ctx, bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NotifyPreMigrateBucket", reflect.TypeOf((*MockManager)(nil).NotifyPreMigrateBucket), ctx, bucketID) } @@ -1235,7 +1245,7 @@ func (m *MockManager) PickVirtualGroupFamily(ctx context.Context, task task.Appr } // PickVirtualGroupFamily indicates an expected call of PickVirtualGroupFamily. -func (mr *MockManagerMockRecorder) PickVirtualGroupFamily(ctx, task any) *gomock.Call { +func (mr *MockManagerMockRecorder) PickVirtualGroupFamily(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PickVirtualGroupFamily", reflect.TypeOf((*MockManager)(nil).PickVirtualGroupFamily), ctx, task) } @@ -1250,7 +1260,7 @@ func (m *MockManager) QueryBucketMigrate(ctx context.Context) (*gfspserver.GfSpQ } // QueryBucketMigrate indicates an expected call of QueryBucketMigrate. -func (mr *MockManagerMockRecorder) QueryBucketMigrate(ctx any) *gomock.Call { +func (mr *MockManagerMockRecorder) QueryBucketMigrate(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryBucketMigrate", reflect.TypeOf((*MockManager)(nil).QueryBucketMigrate), ctx) } @@ -1265,7 +1275,7 @@ func (m *MockManager) QuerySpExit(ctx context.Context) (*gfspserver.GfSpQuerySpE } // QuerySpExit indicates an expected call of QuerySpExit. -func (mr *MockManagerMockRecorder) QuerySpExit(ctx any) *gomock.Call { +func (mr *MockManagerMockRecorder) QuerySpExit(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QuerySpExit", reflect.TypeOf((*MockManager)(nil).QuerySpExit), ctx) } @@ -1280,7 +1290,7 @@ func (m *MockManager) QueryTasks(ctx context.Context, subKey task.TKey) ([]task. } // QueryTasks indicates an expected call of QueryTasks. -func (mr *MockManagerMockRecorder) QueryTasks(ctx, subKey any) *gomock.Call { +func (mr *MockManagerMockRecorder) QueryTasks(ctx, subKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasks", reflect.TypeOf((*MockManager)(nil).QueryTasks), ctx, subKey) } @@ -1301,7 +1311,7 @@ func (m *MockManager) QueryTasksStats(ctx context.Context) (int, int, int, int, } // QueryTasksStats indicates an expected call of QueryTasksStats. -func (mr *MockManagerMockRecorder) QueryTasksStats(ctx any) *gomock.Call { +func (mr *MockManagerMockRecorder) QueryTasksStats(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasksStats", reflect.TypeOf((*MockManager)(nil).QueryTasksStats), ctx) } @@ -1313,7 +1323,7 @@ func (m *MockManager) ReleaseResource(ctx context.Context, scope rcmgr.ResourceS } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockManagerMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockManagerMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockManager)(nil).ReleaseResource), ctx, scope) } @@ -1328,7 +1338,7 @@ func (m *MockManager) ReserveResource(ctx context.Context, state *rcmgr.ScopeSta } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockManagerMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockManagerMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockManager)(nil).ReserveResource), ctx, state) } @@ -1342,7 +1352,7 @@ func (m *MockManager) ResetRecoveryFailedList(ctx context.Context) []string { } // ResetRecoveryFailedList indicates an expected call of ResetRecoveryFailedList. -func (mr *MockManagerMockRecorder) ResetRecoveryFailedList(ctx any) *gomock.Call { +func (mr *MockManagerMockRecorder) ResetRecoveryFailedList(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetRecoveryFailedList", reflect.TypeOf((*MockManager)(nil).ResetRecoveryFailedList), ctx) } @@ -1356,7 +1366,7 @@ func (m *MockManager) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockManagerMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockManagerMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockManager)(nil).Start), ctx) } @@ -1370,7 +1380,7 @@ func (m *MockManager) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockManagerMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockManagerMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockManager)(nil).Stop), ctx) } @@ -1408,7 +1418,7 @@ func (m *MockP2P) HandleQueryBootstrap(ctx context.Context) ([]string, error) { } // HandleQueryBootstrap indicates an expected call of HandleQueryBootstrap. -func (mr *MockP2PMockRecorder) HandleQueryBootstrap(ctx any) *gomock.Call { +func (mr *MockP2PMockRecorder) HandleQueryBootstrap(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleQueryBootstrap", reflect.TypeOf((*MockP2P)(nil).HandleQueryBootstrap), ctx) } @@ -1423,7 +1433,7 @@ func (m *MockP2P) HandleReplicatePieceApproval(ctx context.Context, t task.Appro } // HandleReplicatePieceApproval indicates an expected call of HandleReplicatePieceApproval. -func (mr *MockP2PMockRecorder) HandleReplicatePieceApproval(ctx, t, min, max, timeout any) *gomock.Call { +func (mr *MockP2PMockRecorder) HandleReplicatePieceApproval(ctx, t, min, max, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleReplicatePieceApproval", reflect.TypeOf((*MockP2P)(nil).HandleReplicatePieceApproval), ctx, t, min, max, timeout) } @@ -1452,7 +1462,7 @@ func (m *MockP2P) QueryTasks(ctx context.Context, subKey task.TKey) ([]task.Task } // QueryTasks indicates an expected call of QueryTasks. -func (mr *MockP2PMockRecorder) QueryTasks(ctx, subKey any) *gomock.Call { +func (mr *MockP2PMockRecorder) QueryTasks(ctx, subKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasks", reflect.TypeOf((*MockP2P)(nil).QueryTasks), ctx, subKey) } @@ -1464,7 +1474,7 @@ func (m *MockP2P) ReleaseResource(ctx context.Context, scope rcmgr.ResourceScope } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockP2PMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockP2PMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockP2P)(nil).ReleaseResource), ctx, scope) } @@ -1479,7 +1489,7 @@ func (m *MockP2P) ReserveResource(ctx context.Context, state *rcmgr.ScopeStat) ( } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockP2PMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockP2PMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockP2P)(nil).ReserveResource), ctx, state) } @@ -1493,7 +1503,7 @@ func (m *MockP2P) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockP2PMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockP2PMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockP2P)(nil).Start), ctx) } @@ -1507,7 +1517,7 @@ func (m *MockP2P) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockP2PMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockP2PMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockP2P)(nil).Stop), ctx) } @@ -1545,7 +1555,7 @@ func (m *MockReceiver) HandleDoneReceivePieceTask(ctx context.Context, task task } // HandleDoneReceivePieceTask indicates an expected call of HandleDoneReceivePieceTask. -func (mr *MockReceiverMockRecorder) HandleDoneReceivePieceTask(ctx, task any) *gomock.Call { +func (mr *MockReceiverMockRecorder) HandleDoneReceivePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleDoneReceivePieceTask", reflect.TypeOf((*MockReceiver)(nil).HandleDoneReceivePieceTask), ctx, task) } @@ -1559,7 +1569,7 @@ func (m *MockReceiver) HandleReceivePieceTask(ctx context.Context, task task.Rec } // HandleReceivePieceTask indicates an expected call of HandleReceivePieceTask. -func (mr *MockReceiverMockRecorder) HandleReceivePieceTask(ctx, task, data any) *gomock.Call { +func (mr *MockReceiverMockRecorder) HandleReceivePieceTask(ctx, task, data interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleReceivePieceTask", reflect.TypeOf((*MockReceiver)(nil).HandleReceivePieceTask), ctx, task, data) } @@ -1588,7 +1598,7 @@ func (m *MockReceiver) QueryTasks(ctx context.Context, subKey task.TKey) ([]task } // QueryTasks indicates an expected call of QueryTasks. -func (mr *MockReceiverMockRecorder) QueryTasks(ctx, subKey any) *gomock.Call { +func (mr *MockReceiverMockRecorder) QueryTasks(ctx, subKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasks", reflect.TypeOf((*MockReceiver)(nil).QueryTasks), ctx, subKey) } @@ -1600,7 +1610,7 @@ func (m *MockReceiver) ReleaseResource(ctx context.Context, scope rcmgr.Resource } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockReceiverMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockReceiverMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockReceiver)(nil).ReleaseResource), ctx, scope) } @@ -1615,7 +1625,7 @@ func (m *MockReceiver) ReserveResource(ctx context.Context, state *rcmgr.ScopeSt } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockReceiverMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockReceiverMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockReceiver)(nil).ReserveResource), ctx, state) } @@ -1629,7 +1639,7 @@ func (m *MockReceiver) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockReceiverMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockReceiverMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockReceiver)(nil).Start), ctx) } @@ -1643,7 +1653,7 @@ func (m *MockReceiver) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockReceiverMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockReceiverMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockReceiver)(nil).Stop), ctx) } @@ -1681,7 +1691,7 @@ func (m *MockSigner) CompleteMigrateBucket(ctx context.Context, migrateBucket *t } // CompleteMigrateBucket indicates an expected call of CompleteMigrateBucket. -func (mr *MockSignerMockRecorder) CompleteMigrateBucket(ctx, migrateBucket any) *gomock.Call { +func (mr *MockSignerMockRecorder) CompleteMigrateBucket(ctx, migrateBucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteMigrateBucket", reflect.TypeOf((*MockSigner)(nil).CompleteMigrateBucket), ctx, migrateBucket) } @@ -1696,7 +1706,7 @@ func (m *MockSigner) CompleteSPExit(ctx context.Context, completeSPExit *types1. } // CompleteSPExit indicates an expected call of CompleteSPExit. -func (mr *MockSignerMockRecorder) CompleteSPExit(ctx, completeSPExit any) *gomock.Call { +func (mr *MockSignerMockRecorder) CompleteSPExit(ctx, completeSPExit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteSPExit", reflect.TypeOf((*MockSigner)(nil).CompleteSPExit), ctx, completeSPExit) } @@ -1711,7 +1721,7 @@ func (m *MockSigner) CompleteSwapOut(ctx context.Context, completeSwapOut *types } // CompleteSwapOut indicates an expected call of CompleteSwapOut. -func (mr *MockSignerMockRecorder) CompleteSwapOut(ctx, completeSwapOut any) *gomock.Call { +func (mr *MockSignerMockRecorder) CompleteSwapOut(ctx, completeSwapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteSwapOut", reflect.TypeOf((*MockSigner)(nil).CompleteSwapOut), ctx, completeSwapOut) } @@ -1726,7 +1736,7 @@ func (m *MockSigner) CreateGlobalVirtualGroup(ctx context.Context, gvg *types1.M } // CreateGlobalVirtualGroup indicates an expected call of CreateGlobalVirtualGroup. -func (mr *MockSignerMockRecorder) CreateGlobalVirtualGroup(ctx, gvg any) *gomock.Call { +func (mr *MockSignerMockRecorder) CreateGlobalVirtualGroup(ctx, gvg interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateGlobalVirtualGroup", reflect.TypeOf((*MockSigner)(nil).CreateGlobalVirtualGroup), ctx, gvg) } @@ -1741,7 +1751,7 @@ func (m *MockSigner) DiscontinueBucket(ctx context.Context, bucket *types0.MsgDi } // DiscontinueBucket indicates an expected call of DiscontinueBucket. -func (mr *MockSignerMockRecorder) DiscontinueBucket(ctx, bucket any) *gomock.Call { +func (mr *MockSignerMockRecorder) DiscontinueBucket(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DiscontinueBucket", reflect.TypeOf((*MockSigner)(nil).DiscontinueBucket), ctx, bucket) } @@ -1770,7 +1780,7 @@ func (m *MockSigner) RejectMigrateBucket(ctx context.Context, rejectMigrateBucke } // RejectMigrateBucket indicates an expected call of RejectMigrateBucket. -func (mr *MockSignerMockRecorder) RejectMigrateBucket(ctx, rejectMigrateBucket any) *gomock.Call { +func (mr *MockSignerMockRecorder) RejectMigrateBucket(ctx, rejectMigrateBucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RejectMigrateBucket", reflect.TypeOf((*MockSigner)(nil).RejectMigrateBucket), ctx, rejectMigrateBucket) } @@ -1785,7 +1795,7 @@ func (m *MockSigner) RejectUnSealObject(ctx context.Context, object *types0.MsgR } // RejectUnSealObject indicates an expected call of RejectUnSealObject. -func (mr *MockSignerMockRecorder) RejectUnSealObject(ctx, object any) *gomock.Call { +func (mr *MockSignerMockRecorder) RejectUnSealObject(ctx, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RejectUnSealObject", reflect.TypeOf((*MockSigner)(nil).RejectUnSealObject), ctx, object) } @@ -1797,7 +1807,7 @@ func (m *MockSigner) ReleaseResource(ctx context.Context, scope rcmgr.ResourceSc } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockSignerMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockSignerMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockSigner)(nil).ReleaseResource), ctx, scope) } @@ -1812,7 +1822,7 @@ func (m *MockSigner) ReserveResource(ctx context.Context, state *rcmgr.ScopeStat } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockSignerMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockSignerMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockSigner)(nil).ReserveResource), ctx, state) } @@ -1827,7 +1837,7 @@ func (m *MockSigner) SPExit(ctx context.Context, spExit *types1.MsgStorageProvid } // SPExit indicates an expected call of SPExit. -func (mr *MockSignerMockRecorder) SPExit(ctx, spExit any) *gomock.Call { +func (mr *MockSignerMockRecorder) SPExit(ctx, spExit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SPExit", reflect.TypeOf((*MockSigner)(nil).SPExit), ctx, spExit) } @@ -1842,7 +1852,7 @@ func (m *MockSigner) SealObject(ctx context.Context, object *types0.MsgSealObjec } // SealObject indicates an expected call of SealObject. -func (mr *MockSignerMockRecorder) SealObject(ctx, object any) *gomock.Call { +func (mr *MockSignerMockRecorder) SealObject(ctx, object interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SealObject", reflect.TypeOf((*MockSigner)(nil).SealObject), ctx, object) } @@ -1857,7 +1867,7 @@ func (m *MockSigner) SignBucketMigrationInfo(ctx context.Context, task *gfsptask } // SignBucketMigrationInfo indicates an expected call of SignBucketMigrationInfo. -func (mr *MockSignerMockRecorder) SignBucketMigrationInfo(ctx, task any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignBucketMigrationInfo(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignBucketMigrationInfo", reflect.TypeOf((*MockSigner)(nil).SignBucketMigrationInfo), ctx, task) } @@ -1872,7 +1882,7 @@ func (m *MockSigner) SignCreateBucketApproval(ctx context.Context, bucket *types } // SignCreateBucketApproval indicates an expected call of SignCreateBucketApproval. -func (mr *MockSignerMockRecorder) SignCreateBucketApproval(ctx, bucket any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignCreateBucketApproval(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignCreateBucketApproval", reflect.TypeOf((*MockSigner)(nil).SignCreateBucketApproval), ctx, bucket) } @@ -1887,7 +1897,7 @@ func (m *MockSigner) SignCreateObjectApproval(ctx context.Context, task *types0. } // SignCreateObjectApproval indicates an expected call of SignCreateObjectApproval. -func (mr *MockSignerMockRecorder) SignCreateObjectApproval(ctx, task any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignCreateObjectApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignCreateObjectApproval", reflect.TypeOf((*MockSigner)(nil).SignCreateObjectApproval), ctx, task) } @@ -1902,7 +1912,7 @@ func (m *MockSigner) SignMigrateBucketApproval(ctx context.Context, bucket *type } // SignMigrateBucketApproval indicates an expected call of SignMigrateBucketApproval. -func (mr *MockSignerMockRecorder) SignMigrateBucketApproval(ctx, bucket any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignMigrateBucketApproval(ctx, bucket interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignMigrateBucketApproval", reflect.TypeOf((*MockSigner)(nil).SignMigrateBucketApproval), ctx, bucket) } @@ -1917,7 +1927,7 @@ func (m *MockSigner) SignMigrateGVG(ctx context.Context, task *gfsptask.GfSpMigr } // SignMigrateGVG indicates an expected call of SignMigrateGVG. -func (mr *MockSignerMockRecorder) SignMigrateGVG(ctx, task any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignMigrateGVG(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignMigrateGVG", reflect.TypeOf((*MockSigner)(nil).SignMigrateGVG), ctx, task) } @@ -1932,7 +1942,7 @@ func (m *MockSigner) SignP2PPingMsg(ctx context.Context, ping *gfspp2p.GfSpPing) } // SignP2PPingMsg indicates an expected call of SignP2PPingMsg. -func (mr *MockSignerMockRecorder) SignP2PPingMsg(ctx, ping any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignP2PPingMsg(ctx, ping interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignP2PPingMsg", reflect.TypeOf((*MockSigner)(nil).SignP2PPingMsg), ctx, ping) } @@ -1947,7 +1957,7 @@ func (m *MockSigner) SignP2PPongMsg(ctx context.Context, pong *gfspp2p.GfSpPong) } // SignP2PPongMsg indicates an expected call of SignP2PPongMsg. -func (mr *MockSignerMockRecorder) SignP2PPongMsg(ctx, pong any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignP2PPongMsg(ctx, pong interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignP2PPongMsg", reflect.TypeOf((*MockSigner)(nil).SignP2PPongMsg), ctx, pong) } @@ -1962,7 +1972,7 @@ func (m *MockSigner) SignReceivePieceTask(ctx context.Context, task task.Receive } // SignReceivePieceTask indicates an expected call of SignReceivePieceTask. -func (mr *MockSignerMockRecorder) SignReceivePieceTask(ctx, task any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignReceivePieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignReceivePieceTask", reflect.TypeOf((*MockSigner)(nil).SignReceivePieceTask), ctx, task) } @@ -1977,7 +1987,7 @@ func (m *MockSigner) SignRecoveryPieceTask(ctx context.Context, task task.Recove } // SignRecoveryPieceTask indicates an expected call of SignRecoveryPieceTask. -func (mr *MockSignerMockRecorder) SignRecoveryPieceTask(ctx, task any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignRecoveryPieceTask(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignRecoveryPieceTask", reflect.TypeOf((*MockSigner)(nil).SignRecoveryPieceTask), ctx, task) } @@ -1992,7 +2002,7 @@ func (m *MockSigner) SignReplicatePieceApproval(ctx context.Context, task task.A } // SignReplicatePieceApproval indicates an expected call of SignReplicatePieceApproval. -func (mr *MockSignerMockRecorder) SignReplicatePieceApproval(ctx, task any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignReplicatePieceApproval(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignReplicatePieceApproval", reflect.TypeOf((*MockSigner)(nil).SignReplicatePieceApproval), ctx, task) } @@ -2007,7 +2017,7 @@ func (m *MockSigner) SignSecondarySPMigrationBucket(ctx context.Context, signDoc } // SignSecondarySPMigrationBucket indicates an expected call of SignSecondarySPMigrationBucket. -func (mr *MockSignerMockRecorder) SignSecondarySPMigrationBucket(ctx, signDoc any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignSecondarySPMigrationBucket(ctx, signDoc interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSecondarySPMigrationBucket", reflect.TypeOf((*MockSigner)(nil).SignSecondarySPMigrationBucket), ctx, signDoc) } @@ -2022,7 +2032,7 @@ func (m *MockSigner) SignSecondarySealBls(ctx context.Context, objectID uint64, } // SignSecondarySealBls indicates an expected call of SignSecondarySealBls. -func (mr *MockSignerMockRecorder) SignSecondarySealBls(ctx, objectID, gvgId, hash any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignSecondarySealBls(ctx, objectID, gvgId, hash interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSecondarySealBls", reflect.TypeOf((*MockSigner)(nil).SignSecondarySealBls), ctx, objectID, gvgId, hash) } @@ -2037,7 +2047,7 @@ func (m *MockSigner) SignSwapOut(ctx context.Context, swapOut *types1.MsgSwapOut } // SignSwapOut indicates an expected call of SignSwapOut. -func (mr *MockSignerMockRecorder) SignSwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockSignerMockRecorder) SignSwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SignSwapOut", reflect.TypeOf((*MockSigner)(nil).SignSwapOut), ctx, swapOut) } @@ -2051,7 +2061,7 @@ func (m *MockSigner) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockSignerMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockSignerMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockSigner)(nil).Start), ctx) } @@ -2065,7 +2075,7 @@ func (m *MockSigner) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockSignerMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockSignerMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockSigner)(nil).Stop), ctx) } @@ -2080,7 +2090,7 @@ func (m *MockSigner) SwapOut(ctx context.Context, swapOut *types1.MsgSwapOut) (s } // SwapOut indicates an expected call of SwapOut. -func (mr *MockSignerMockRecorder) SwapOut(ctx, swapOut any) *gomock.Call { +func (mr *MockSignerMockRecorder) SwapOut(ctx, swapOut interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SwapOut", reflect.TypeOf((*MockSigner)(nil).SwapOut), ctx, swapOut) } @@ -2095,7 +2105,7 @@ func (m *MockSigner) UpdateSPPrice(ctx context.Context, price *types.MsgUpdateSp } // UpdateSPPrice indicates an expected call of UpdateSPPrice. -func (mr *MockSignerMockRecorder) UpdateSPPrice(ctx, price any) *gomock.Call { +func (mr *MockSignerMockRecorder) UpdateSPPrice(ctx, price interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSPPrice", reflect.TypeOf((*MockSigner)(nil).UpdateSPPrice), ctx, price) } @@ -2132,7 +2142,7 @@ func (m *MockUploader) HandleResumableUploadObjectTask(ctx context.Context, task } // HandleResumableUploadObjectTask indicates an expected call of HandleResumableUploadObjectTask. -func (mr *MockUploaderMockRecorder) HandleResumableUploadObjectTask(ctx, task, stream any) *gomock.Call { +func (mr *MockUploaderMockRecorder) HandleResumableUploadObjectTask(ctx, task, stream interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleResumableUploadObjectTask", reflect.TypeOf((*MockUploader)(nil).HandleResumableUploadObjectTask), ctx, task, stream) } @@ -2146,7 +2156,7 @@ func (m *MockUploader) HandleUploadObjectTask(ctx context.Context, task task.Upl } // HandleUploadObjectTask indicates an expected call of HandleUploadObjectTask. -func (mr *MockUploaderMockRecorder) HandleUploadObjectTask(ctx, task, stream any) *gomock.Call { +func (mr *MockUploaderMockRecorder) HandleUploadObjectTask(ctx, task, stream interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleUploadObjectTask", reflect.TypeOf((*MockUploader)(nil).HandleUploadObjectTask), ctx, task, stream) } @@ -2172,7 +2182,7 @@ func (m *MockUploader) PostResumableUploadObject(ctx context.Context, task task. } // PostResumableUploadObject indicates an expected call of PostResumableUploadObject. -func (mr *MockUploaderMockRecorder) PostResumableUploadObject(ctx, task any) *gomock.Call { +func (mr *MockUploaderMockRecorder) PostResumableUploadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostResumableUploadObject", reflect.TypeOf((*MockUploader)(nil).PostResumableUploadObject), ctx, task) } @@ -2184,7 +2194,7 @@ func (m *MockUploader) PostUploadObject(ctx context.Context, task task.UploadObj } // PostUploadObject indicates an expected call of PostUploadObject. -func (mr *MockUploaderMockRecorder) PostUploadObject(ctx, task any) *gomock.Call { +func (mr *MockUploaderMockRecorder) PostUploadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PostUploadObject", reflect.TypeOf((*MockUploader)(nil).PostUploadObject), ctx, task) } @@ -2198,7 +2208,7 @@ func (m *MockUploader) PreResumableUploadObject(ctx context.Context, task task.R } // PreResumableUploadObject indicates an expected call of PreResumableUploadObject. -func (mr *MockUploaderMockRecorder) PreResumableUploadObject(ctx, task any) *gomock.Call { +func (mr *MockUploaderMockRecorder) PreResumableUploadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreResumableUploadObject", reflect.TypeOf((*MockUploader)(nil).PreResumableUploadObject), ctx, task) } @@ -2212,7 +2222,7 @@ func (m *MockUploader) PreUploadObject(ctx context.Context, task task.UploadObje } // PreUploadObject indicates an expected call of PreUploadObject. -func (mr *MockUploaderMockRecorder) PreUploadObject(ctx, task any) *gomock.Call { +func (mr *MockUploaderMockRecorder) PreUploadObject(ctx, task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreUploadObject", reflect.TypeOf((*MockUploader)(nil).PreUploadObject), ctx, task) } @@ -2227,7 +2237,7 @@ func (m *MockUploader) QueryTasks(ctx context.Context, subKey task.TKey) ([]task } // QueryTasks indicates an expected call of QueryTasks. -func (mr *MockUploaderMockRecorder) QueryTasks(ctx, subKey any) *gomock.Call { +func (mr *MockUploaderMockRecorder) QueryTasks(ctx, subKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryTasks", reflect.TypeOf((*MockUploader)(nil).QueryTasks), ctx, subKey) } @@ -2239,7 +2249,7 @@ func (m *MockUploader) ReleaseResource(ctx context.Context, scope rcmgr.Resource } // ReleaseResource indicates an expected call of ReleaseResource. -func (mr *MockUploaderMockRecorder) ReleaseResource(ctx, scope any) *gomock.Call { +func (mr *MockUploaderMockRecorder) ReleaseResource(ctx, scope interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReleaseResource", reflect.TypeOf((*MockUploader)(nil).ReleaseResource), ctx, scope) } @@ -2254,7 +2264,7 @@ func (m *MockUploader) ReserveResource(ctx context.Context, state *rcmgr.ScopeSt } // ReserveResource indicates an expected call of ReserveResource. -func (mr *MockUploaderMockRecorder) ReserveResource(ctx, state any) *gomock.Call { +func (mr *MockUploaderMockRecorder) ReserveResource(ctx, state interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReserveResource", reflect.TypeOf((*MockUploader)(nil).ReserveResource), ctx, state) } @@ -2268,7 +2278,7 @@ func (m *MockUploader) Start(ctx context.Context) error { } // Start indicates an expected call of Start. -func (mr *MockUploaderMockRecorder) Start(ctx any) *gomock.Call { +func (mr *MockUploaderMockRecorder) Start(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockUploader)(nil).Start), ctx) } @@ -2282,7 +2292,7 @@ func (m *MockUploader) Stop(ctx context.Context) error { } // Stop indicates an expected call of Stop. -func (mr *MockUploaderMockRecorder) Stop(ctx any) *gomock.Call { +func (mr *MockUploaderMockRecorder) Stop(ctx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockUploader)(nil).Stop), ctx) } diff --git a/core/spdb/spdb.go b/core/spdb/spdb.go index 636b6cc80..092e738d6 100644 --- a/core/spdb/spdb.go +++ b/core/spdb/spdb.go @@ -69,8 +69,8 @@ type SignatureDB interface { UpdateIntegrityChecksum(integrity *IntegrityMeta) error // UpdatePieceChecksum if the IntegrityMetaTable already exists, it will be appended to the existing PieceChecksumList. UpdatePieceChecksum(objectID uint64, redundancyIndex int32, checksum []byte) error - // ListObjectsByBlockNumberRange list object in range - ListObjectsByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) + // ListIntegrityMetaByObjectIDRange list object in range + ListIntegrityMetaByObjectIDRange(startBlockNumber int64, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) /* Piece Signature is used to help replicate object's piece data to secondary sps, which is temporary. */ @@ -86,8 +86,8 @@ type SignatureDB interface { DeleteAllReplicatePieceChecksum(objectID uint64, redundancyIdx int32, pieceCount uint32) error // DeleteAllReplicatePieceChecksumOptimized deletes all piece hashes. DeleteAllReplicatePieceChecksumOptimized(objectID uint64, redundancyIdx int32) error - // ListReplicatePieceChecksumByBlockNumberRange list object in range - ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, objectID uint64, redundancyIdx int32, pieceCount uint32) ([]*GCPieceMeta, error) + // ListReplicatePieceChecksumByObjectIDRange list object in range + ListReplicatePieceChecksumByObjectIDRange(startObjectID int64, endObjectID int64) ([]*GCPieceMeta, error) } // TrafficDB defines a series of traffic interfaces. diff --git a/core/spdb/spdb_mock.go b/core/spdb/spdb_mock.go index 8a35dd391..bd78a0e63 100644 --- a/core/spdb/spdb_mock.go +++ b/core/spdb/spdb_mock.go @@ -1,10 +1,6 @@ // Code generated by MockGen. DO NOT EDIT. // Source: core/spdb/spdb.go -// -// Generated by this command: -// -// mockgen -source=core/spdb/spdb.go -destination=core/spdb/spdb_mock.go -package=spdb -// + // Package spdb is a generated GoMock package. package spdb @@ -50,7 +46,7 @@ func (m *MockSPDB) CheckQuotaAndAddReadRecord(record *ReadRecord, quota *BucketQ } // CheckQuotaAndAddReadRecord indicates an expected call of CheckQuotaAndAddReadRecord. -func (mr *MockSPDBMockRecorder) CheckQuotaAndAddReadRecord(record, quota any) *gomock.Call { +func (mr *MockSPDBMockRecorder) CheckQuotaAndAddReadRecord(record, quota interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckQuotaAndAddReadRecord", reflect.TypeOf((*MockSPDB)(nil).CheckQuotaAndAddReadRecord), record, quota) } @@ -92,7 +88,7 @@ func (m *MockSPDB) DeleteAllReplicatePieceChecksum(objectID uint64, redundancyId } // DeleteAllReplicatePieceChecksum indicates an expected call of DeleteAllReplicatePieceChecksum. -func (mr *MockSPDBMockRecorder) DeleteAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount any) *gomock.Call { +func (mr *MockSPDBMockRecorder) DeleteAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReplicatePieceChecksum", reflect.TypeOf((*MockSPDB)(nil).DeleteAllReplicatePieceChecksum), objectID, redundancyIdx, pieceCount) } @@ -106,7 +102,7 @@ func (m *MockSPDB) DeleteAllReplicatePieceChecksumOptimized(objectID uint64, red } // DeleteAllReplicatePieceChecksumOptimized indicates an expected call of DeleteAllReplicatePieceChecksumOptimized. -func (mr *MockSPDBMockRecorder) DeleteAllReplicatePieceChecksumOptimized(objectID, redundancyIdx any) *gomock.Call { +func (mr *MockSPDBMockRecorder) DeleteAllReplicatePieceChecksumOptimized(objectID, redundancyIdx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReplicatePieceChecksumOptimized", reflect.TypeOf((*MockSPDB)(nil).DeleteAllReplicatePieceChecksumOptimized), objectID, redundancyIdx) } @@ -120,7 +116,7 @@ func (m *MockSPDB) DeleteGCObjectProgress(taskKey string) error { } // DeleteGCObjectProgress indicates an expected call of DeleteGCObjectProgress. -func (mr *MockSPDBMockRecorder) DeleteGCObjectProgress(taskKey any) *gomock.Call { +func (mr *MockSPDBMockRecorder) DeleteGCObjectProgress(taskKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGCObjectProgress", reflect.TypeOf((*MockSPDB)(nil).DeleteGCObjectProgress), taskKey) } @@ -134,7 +130,7 @@ func (m *MockSPDB) DeleteMigrateGVGUnit(meta *MigrateGVGUnitMeta) error { } // DeleteMigrateGVGUnit indicates an expected call of DeleteMigrateGVGUnit. -func (mr *MockSPDBMockRecorder) DeleteMigrateGVGUnit(meta any) *gomock.Call { +func (mr *MockSPDBMockRecorder) DeleteMigrateGVGUnit(meta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteMigrateGVGUnit", reflect.TypeOf((*MockSPDB)(nil).DeleteMigrateGVGUnit), meta) } @@ -148,7 +144,7 @@ func (m *MockSPDB) DeleteMigrateGVGUnitsByBucketID(bucketID uint64) error { } // DeleteMigrateGVGUnitsByBucketID indicates an expected call of DeleteMigrateGVGUnitsByBucketID. -func (mr *MockSPDBMockRecorder) DeleteMigrateGVGUnitsByBucketID(bucketID any) *gomock.Call { +func (mr *MockSPDBMockRecorder) DeleteMigrateGVGUnitsByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteMigrateGVGUnitsByBucketID", reflect.TypeOf((*MockSPDB)(nil).DeleteMigrateGVGUnitsByBucketID), bucketID) } @@ -162,7 +158,7 @@ func (m *MockSPDB) DeleteObjectIntegrity(objectID uint64, redundancyIndex int32) } // DeleteObjectIntegrity indicates an expected call of DeleteObjectIntegrity. -func (mr *MockSPDBMockRecorder) DeleteObjectIntegrity(objectID, redundancyIndex any) *gomock.Call { +func (mr *MockSPDBMockRecorder) DeleteObjectIntegrity(objectID, redundancyIndex interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectIntegrity", reflect.TypeOf((*MockSPDB)(nil).DeleteObjectIntegrity), objectID, redundancyIndex) } @@ -190,7 +186,7 @@ func (m *MockSPDB) DeleteUploadProgress(objectID uint64) error { } // DeleteUploadProgress indicates an expected call of DeleteUploadProgress. -func (mr *MockSPDBMockRecorder) DeleteUploadProgress(objectID any) *gomock.Call { +func (mr *MockSPDBMockRecorder) DeleteUploadProgress(objectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUploadProgress", reflect.TypeOf((*MockSPDB)(nil).DeleteUploadProgress), objectID) } @@ -198,7 +194,7 @@ func (mr *MockSPDBMockRecorder) DeleteUploadProgress(objectID any) *gomock.Call // FetchAllSp mocks base method. func (m *MockSPDB) FetchAllSp(status ...types0.Status) ([]*types0.StorageProvider, error) { m.ctrl.T.Helper() - varargs := []any{} + varargs := []interface{}{} for _, a := range status { varargs = append(varargs, a) } @@ -209,7 +205,7 @@ func (m *MockSPDB) FetchAllSp(status ...types0.Status) ([]*types0.StorageProvide } // FetchAllSp indicates an expected call of FetchAllSp. -func (mr *MockSPDBMockRecorder) FetchAllSp(status ...any) *gomock.Call { +func (mr *MockSPDBMockRecorder) FetchAllSp(status ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchAllSp", reflect.TypeOf((*MockSPDB)(nil).FetchAllSp), status...) } @@ -217,7 +213,7 @@ func (mr *MockSPDBMockRecorder) FetchAllSp(status ...any) *gomock.Call { // FetchAllSpWithoutOwnSp mocks base method. func (m *MockSPDB) FetchAllSpWithoutOwnSp(status ...types0.Status) ([]*types0.StorageProvider, error) { m.ctrl.T.Helper() - varargs := []any{} + varargs := []interface{}{} for _, a := range status { varargs = append(varargs, a) } @@ -228,7 +224,7 @@ func (m *MockSPDB) FetchAllSpWithoutOwnSp(status ...types0.Status) ([]*types0.St } // FetchAllSpWithoutOwnSp indicates an expected call of FetchAllSpWithoutOwnSp. -func (mr *MockSPDBMockRecorder) FetchAllSpWithoutOwnSp(status ...any) *gomock.Call { +func (mr *MockSPDBMockRecorder) FetchAllSpWithoutOwnSp(status ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchAllSpWithoutOwnSp", reflect.TypeOf((*MockSPDB)(nil).FetchAllSpWithoutOwnSp), status...) } @@ -243,7 +239,7 @@ func (m *MockSPDB) GetAllReplicatePieceChecksum(objectID uint64, redundancyIdx i } // GetAllReplicatePieceChecksum indicates an expected call of GetAllReplicatePieceChecksum. -func (mr *MockSPDBMockRecorder) GetAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllReplicatePieceChecksum", reflect.TypeOf((*MockSPDB)(nil).GetAllReplicatePieceChecksum), objectID, redundancyIdx, pieceCount) } @@ -258,7 +254,7 @@ func (m *MockSPDB) GetAllReplicatePieceChecksumOptimized(objectID uint64, redund } // GetAllReplicatePieceChecksumOptimized indicates an expected call of GetAllReplicatePieceChecksumOptimized. -func (mr *MockSPDBMockRecorder) GetAllReplicatePieceChecksumOptimized(objectID, redundancyIdx, pieceCount any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetAllReplicatePieceChecksumOptimized(objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllReplicatePieceChecksumOptimized", reflect.TypeOf((*MockSPDB)(nil).GetAllReplicatePieceChecksumOptimized), objectID, redundancyIdx, pieceCount) } @@ -273,7 +269,7 @@ func (m *MockSPDB) GetAuthKey(userAddress, domain string) (*OffChainAuthKey, err } // GetAuthKey indicates an expected call of GetAuthKey. -func (mr *MockSPDBMockRecorder) GetAuthKey(userAddress, domain any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetAuthKey(userAddress, domain interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthKey", reflect.TypeOf((*MockSPDB)(nil).GetAuthKey), userAddress, domain) } @@ -288,7 +284,7 @@ func (m *MockSPDB) GetBucketReadRecord(bucketID uint64, timeRange *TrafficTimeRa } // GetBucketReadRecord indicates an expected call of GetBucketReadRecord. -func (mr *MockSPDBMockRecorder) GetBucketReadRecord(bucketID, timeRange any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetBucketReadRecord(bucketID, timeRange interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketReadRecord", reflect.TypeOf((*MockSPDB)(nil).GetBucketReadRecord), bucketID, timeRange) } @@ -303,7 +299,7 @@ func (m *MockSPDB) GetBucketTraffic(bucketID uint64, yearMonth string) (*BucketT } // GetBucketTraffic indicates an expected call of GetBucketTraffic. -func (mr *MockSPDBMockRecorder) GetBucketTraffic(bucketID, yearMonth any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetBucketTraffic(bucketID, yearMonth interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketTraffic", reflect.TypeOf((*MockSPDB)(nil).GetBucketTraffic), bucketID, yearMonth) } @@ -318,7 +314,7 @@ func (m *MockSPDB) GetGCMetasToGC(limit int) ([]*GCObjectMeta, error) { } // GetGCMetasToGC indicates an expected call of GetGCMetasToGC. -func (mr *MockSPDBMockRecorder) GetGCMetasToGC(limit any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetGCMetasToGC(limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGCMetasToGC", reflect.TypeOf((*MockSPDB)(nil).GetGCMetasToGC), limit) } @@ -333,7 +329,7 @@ func (m *MockSPDB) GetLatestBucketTraffic(bucketID uint64) (*BucketTraffic, erro } // GetLatestBucketTraffic indicates an expected call of GetLatestBucketTraffic. -func (mr *MockSPDBMockRecorder) GetLatestBucketTraffic(bucketID any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetLatestBucketTraffic(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestBucketTraffic", reflect.TypeOf((*MockSPDB)(nil).GetLatestBucketTraffic), bucketID) } @@ -348,7 +344,7 @@ func (m *MockSPDB) GetObjectIntegrity(objectID uint64, redundancyIndex int32) (* } // GetObjectIntegrity indicates an expected call of GetObjectIntegrity. -func (mr *MockSPDBMockRecorder) GetObjectIntegrity(objectID, redundancyIndex any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetObjectIntegrity(objectID, redundancyIndex interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectIntegrity", reflect.TypeOf((*MockSPDB)(nil).GetObjectIntegrity), objectID, redundancyIndex) } @@ -363,7 +359,7 @@ func (m *MockSPDB) GetObjectReadRecord(objectID uint64, timeRange *TrafficTimeRa } // GetObjectReadRecord indicates an expected call of GetObjectReadRecord. -func (mr *MockSPDBMockRecorder) GetObjectReadRecord(objectID, timeRange any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetObjectReadRecord(objectID, timeRange interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectReadRecord", reflect.TypeOf((*MockSPDB)(nil).GetObjectReadRecord), objectID, timeRange) } @@ -393,7 +389,7 @@ func (m *MockSPDB) GetReadRecord(timeRange *TrafficTimeRange) ([]*ReadRecord, er } // GetReadRecord indicates an expected call of GetReadRecord. -func (mr *MockSPDBMockRecorder) GetReadRecord(timeRange any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetReadRecord(timeRange interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReadRecord", reflect.TypeOf((*MockSPDB)(nil).GetReadRecord), timeRange) } @@ -408,7 +404,7 @@ func (m *MockSPDB) GetSpByAddress(address string, addressType SpAddressType) (*t } // GetSpByAddress indicates an expected call of GetSpByAddress. -func (mr *MockSPDBMockRecorder) GetSpByAddress(address, addressType any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetSpByAddress(address, addressType interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpByAddress", reflect.TypeOf((*MockSPDB)(nil).GetSpByAddress), address, addressType) } @@ -423,7 +419,7 @@ func (m *MockSPDB) GetSpByEndpoint(endpoint string) (*types0.StorageProvider, er } // GetSpByEndpoint indicates an expected call of GetSpByEndpoint. -func (mr *MockSPDBMockRecorder) GetSpByEndpoint(endpoint any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetSpByEndpoint(endpoint interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpByEndpoint", reflect.TypeOf((*MockSPDB)(nil).GetSpByEndpoint), endpoint) } @@ -438,7 +434,7 @@ func (m *MockSPDB) GetSpByID(id uint32) (*types0.StorageProvider, error) { } // GetSpByID indicates an expected call of GetSpByID. -func (mr *MockSPDBMockRecorder) GetSpByID(id any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetSpByID(id interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpByID", reflect.TypeOf((*MockSPDB)(nil).GetSpByID), id) } @@ -453,7 +449,7 @@ func (m *MockSPDB) GetUploadMetasToReplicate(limit int, timeout int64) ([]*Uploa } // GetUploadMetasToReplicate indicates an expected call of GetUploadMetasToReplicate. -func (mr *MockSPDBMockRecorder) GetUploadMetasToReplicate(limit, timeout any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetUploadMetasToReplicate(limit, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadMetasToReplicate", reflect.TypeOf((*MockSPDB)(nil).GetUploadMetasToReplicate), limit, timeout) } @@ -468,7 +464,7 @@ func (m *MockSPDB) GetUploadMetasToSeal(limit int, timeout int64) ([]*UploadObje } // GetUploadMetasToSeal indicates an expected call of GetUploadMetasToSeal. -func (mr *MockSPDBMockRecorder) GetUploadMetasToSeal(limit, timeout any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetUploadMetasToSeal(limit, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadMetasToSeal", reflect.TypeOf((*MockSPDB)(nil).GetUploadMetasToSeal), limit, timeout) } @@ -484,7 +480,7 @@ func (m *MockSPDB) GetUploadState(objectID uint64) (types.TaskState, string, err } // GetUploadState indicates an expected call of GetUploadState. -func (mr *MockSPDBMockRecorder) GetUploadState(objectID any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetUploadState(objectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadState", reflect.TypeOf((*MockSPDB)(nil).GetUploadState), objectID) } @@ -499,7 +495,7 @@ func (m *MockSPDB) GetUserReadRecord(userAddress string, timeRange *TrafficTimeR } // GetUserReadRecord indicates an expected call of GetUserReadRecord. -func (mr *MockSPDBMockRecorder) GetUserReadRecord(userAddress, timeRange any) *gomock.Call { +func (mr *MockSPDBMockRecorder) GetUserReadRecord(userAddress, timeRange interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserReadRecord", reflect.TypeOf((*MockSPDB)(nil).GetUserReadRecord), userAddress, timeRange) } @@ -513,7 +509,7 @@ func (m *MockSPDB) InitBucketTraffic(record *ReadRecord, quota *BucketQuota) err } // InitBucketTraffic indicates an expected call of InitBucketTraffic. -func (mr *MockSPDBMockRecorder) InitBucketTraffic(record, quota any) *gomock.Call { +func (mr *MockSPDBMockRecorder) InitBucketTraffic(record, quota interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitBucketTraffic", reflect.TypeOf((*MockSPDB)(nil).InitBucketTraffic), record, quota) } @@ -527,7 +523,7 @@ func (m *MockSPDB) InsertAuthKey(newRecord *OffChainAuthKey) error { } // InsertAuthKey indicates an expected call of InsertAuthKey. -func (mr *MockSPDBMockRecorder) InsertAuthKey(newRecord any) *gomock.Call { +func (mr *MockSPDBMockRecorder) InsertAuthKey(newRecord interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAuthKey", reflect.TypeOf((*MockSPDB)(nil).InsertAuthKey), newRecord) } @@ -541,7 +537,7 @@ func (m *MockSPDB) InsertGCObjectProgress(gcMeta *GCObjectMeta) error { } // InsertGCObjectProgress indicates an expected call of InsertGCObjectProgress. -func (mr *MockSPDBMockRecorder) InsertGCObjectProgress(gcMeta any) *gomock.Call { +func (mr *MockSPDBMockRecorder) InsertGCObjectProgress(gcMeta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertGCObjectProgress", reflect.TypeOf((*MockSPDB)(nil).InsertGCObjectProgress), gcMeta) } @@ -555,7 +551,7 @@ func (m *MockSPDB) InsertMigrateGVGUnit(meta *MigrateGVGUnitMeta) error { } // InsertMigrateGVGUnit indicates an expected call of InsertMigrateGVGUnit. -func (mr *MockSPDBMockRecorder) InsertMigrateGVGUnit(meta any) *gomock.Call { +func (mr *MockSPDBMockRecorder) InsertMigrateGVGUnit(meta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertMigrateGVGUnit", reflect.TypeOf((*MockSPDB)(nil).InsertMigrateGVGUnit), meta) } @@ -569,7 +565,7 @@ func (m *MockSPDB) InsertPutEvent(task task.Task) error { } // InsertPutEvent indicates an expected call of InsertPutEvent. -func (mr *MockSPDBMockRecorder) InsertPutEvent(task any) *gomock.Call { +func (mr *MockSPDBMockRecorder) InsertPutEvent(task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertPutEvent", reflect.TypeOf((*MockSPDB)(nil).InsertPutEvent), task) } @@ -583,7 +579,7 @@ func (m *MockSPDB) InsertSwapOutUnit(meta *SwapOutMeta) error { } // InsertSwapOutUnit indicates an expected call of InsertSwapOutUnit. -func (mr *MockSPDBMockRecorder) InsertSwapOutUnit(meta any) *gomock.Call { +func (mr *MockSPDBMockRecorder) InsertSwapOutUnit(meta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertSwapOutUnit", reflect.TypeOf((*MockSPDB)(nil).InsertSwapOutUnit), meta) } @@ -597,7 +593,7 @@ func (m *MockSPDB) InsertUploadProgress(objectID uint64) error { } // InsertUploadProgress indicates an expected call of InsertUploadProgress. -func (mr *MockSPDBMockRecorder) InsertUploadProgress(objectID any) *gomock.Call { +func (mr *MockSPDBMockRecorder) InsertUploadProgress(objectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUploadProgress", reflect.TypeOf((*MockSPDB)(nil).InsertUploadProgress), objectID) } @@ -617,49 +613,49 @@ func (mr *MockSPDBMockRecorder) ListDestSPSwapOutUnits() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDestSPSwapOutUnits", reflect.TypeOf((*MockSPDB)(nil).ListDestSPSwapOutUnits)) } -// ListMigrateGVGUnitsByBucketID mocks base method. -func (m *MockSPDB) ListMigrateGVGUnitsByBucketID(bucketID uint64) ([]*MigrateGVGUnitMeta, error) { +// ListIntegrityMetaByObjectIDRange mocks base method. +func (m *MockSPDB) ListIntegrityMetaByObjectIDRange(startBlockNumber, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListMigrateGVGUnitsByBucketID", bucketID) - ret0, _ := ret[0].([]*MigrateGVGUnitMeta) + ret := m.ctrl.Call(m, "ListIntegrityMetaByObjectIDRange", startBlockNumber, endBlockNumber, includePrivate) + ret0, _ := ret[0].([]*IntegrityMeta) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListMigrateGVGUnitsByBucketID indicates an expected call of ListMigrateGVGUnitsByBucketID. -func (mr *MockSPDBMockRecorder) ListMigrateGVGUnitsByBucketID(bucketID any) *gomock.Call { +// ListIntegrityMetaByObjectIDRange indicates an expected call of ListIntegrityMetaByObjectIDRange. +func (mr *MockSPDBMockRecorder) ListIntegrityMetaByObjectIDRange(startBlockNumber, endBlockNumber, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMigrateGVGUnitsByBucketID", reflect.TypeOf((*MockSPDB)(nil).ListMigrateGVGUnitsByBucketID), bucketID) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListIntegrityMetaByObjectIDRange", reflect.TypeOf((*MockSPDB)(nil).ListIntegrityMetaByObjectIDRange), startBlockNumber, endBlockNumber, includePrivate) } -// ListObjectsByBlockNumberRange mocks base method. -func (m *MockSPDB) ListObjectsByBlockNumberRange(startBlockNumber, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) { +// ListMigrateGVGUnitsByBucketID mocks base method. +func (m *MockSPDB) ListMigrateGVGUnitsByBucketID(bucketID uint64) ([]*MigrateGVGUnitMeta, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListObjectsByBlockNumberRange", startBlockNumber, endBlockNumber, includePrivate) - ret0, _ := ret[0].([]*IntegrityMeta) + ret := m.ctrl.Call(m, "ListMigrateGVGUnitsByBucketID", bucketID) + ret0, _ := ret[0].([]*MigrateGVGUnitMeta) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListObjectsByBlockNumberRange indicates an expected call of ListObjectsByBlockNumberRange. -func (mr *MockSPDBMockRecorder) ListObjectsByBlockNumberRange(startBlockNumber, endBlockNumber, includePrivate interface{}) *gomock.Call { +// ListMigrateGVGUnitsByBucketID indicates an expected call of ListMigrateGVGUnitsByBucketID. +func (mr *MockSPDBMockRecorder) ListMigrateGVGUnitsByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBlockNumberRange", reflect.TypeOf((*MockSPDB)(nil).ListObjectsByBlockNumberRange), startBlockNumber, endBlockNumber, includePrivate) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMigrateGVGUnitsByBucketID", reflect.TypeOf((*MockSPDB)(nil).ListMigrateGVGUnitsByBucketID), bucketID) } -// ListReplicatePieceChecksumByBlockNumberRange mocks base method. -func (m *MockSPDB) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber, endBlockNumber int64, objectID uint64, redundancyIdx int32, pieceCount uint32) ([]*GCPieceMeta, error) { +// ListReplicatePieceChecksumByObjectIDRange mocks base method. +func (m *MockSPDB) ListReplicatePieceChecksumByObjectIDRange(startObjectID, endObjectID int64) ([]*GCPieceMeta, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListReplicatePieceChecksumByBlockNumberRange", startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount) + ret := m.ctrl.Call(m, "ListReplicatePieceChecksumByObjectIDRange", startObjectID, endObjectID) ret0, _ := ret[0].([]*GCPieceMeta) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListReplicatePieceChecksumByBlockNumberRange indicates an expected call of ListReplicatePieceChecksumByBlockNumberRange. -func (mr *MockSPDBMockRecorder) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { +// ListReplicatePieceChecksumByObjectIDRange indicates an expected call of ListReplicatePieceChecksumByObjectIDRange. +func (mr *MockSPDBMockRecorder) ListReplicatePieceChecksumByObjectIDRange(startObjectID, endObjectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReplicatePieceChecksumByBlockNumberRange", reflect.TypeOf((*MockSPDB)(nil).ListReplicatePieceChecksumByBlockNumberRange), startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReplicatePieceChecksumByObjectIDRange", reflect.TypeOf((*MockSPDB)(nil).ListReplicatePieceChecksumByObjectIDRange), startObjectID, endObjectID) } // QueryBucketMigrateSubscribeProgress mocks base method. @@ -687,7 +683,7 @@ func (m *MockSPDB) QueryMigrateGVGUnit(migrateKey string) (*MigrateGVGUnitMeta, } // QueryMigrateGVGUnit indicates an expected call of QueryMigrateGVGUnit. -func (mr *MockSPDBMockRecorder) QueryMigrateGVGUnit(migrateKey any) *gomock.Call { +func (mr *MockSPDBMockRecorder) QueryMigrateGVGUnit(migrateKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryMigrateGVGUnit", reflect.TypeOf((*MockSPDB)(nil).QueryMigrateGVGUnit), migrateKey) } @@ -732,7 +728,7 @@ func (m *MockSPDB) QuerySwapOutUnitInSrcSP(swapOutKey string) (*SwapOutMeta, err } // QuerySwapOutUnitInSrcSP indicates an expected call of QuerySwapOutUnitInSrcSP. -func (mr *MockSPDBMockRecorder) QuerySwapOutUnitInSrcSP(swapOutKey any) *gomock.Call { +func (mr *MockSPDBMockRecorder) QuerySwapOutUnitInSrcSP(swapOutKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QuerySwapOutUnitInSrcSP", reflect.TypeOf((*MockSPDB)(nil).QuerySwapOutUnitInSrcSP), swapOutKey) } @@ -746,7 +742,7 @@ func (m *MockSPDB) SetObjectIntegrity(integrity *IntegrityMeta) error { } // SetObjectIntegrity indicates an expected call of SetObjectIntegrity. -func (mr *MockSPDBMockRecorder) SetObjectIntegrity(integrity any) *gomock.Call { +func (mr *MockSPDBMockRecorder) SetObjectIntegrity(integrity interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectIntegrity", reflect.TypeOf((*MockSPDB)(nil).SetObjectIntegrity), integrity) } @@ -760,7 +756,7 @@ func (m *MockSPDB) SetOwnSpInfo(sp *types0.StorageProvider) error { } // SetOwnSpInfo indicates an expected call of SetOwnSpInfo. -func (mr *MockSPDBMockRecorder) SetOwnSpInfo(sp any) *gomock.Call { +func (mr *MockSPDBMockRecorder) SetOwnSpInfo(sp interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetOwnSpInfo", reflect.TypeOf((*MockSPDB)(nil).SetOwnSpInfo), sp) } @@ -774,7 +770,7 @@ func (m *MockSPDB) SetReplicatePieceChecksum(objectID uint64, segmentIdx uint32, } // SetReplicatePieceChecksum indicates an expected call of SetReplicatePieceChecksum. -func (mr *MockSPDBMockRecorder) SetReplicatePieceChecksum(objectID, segmentIdx, redundancyIdx, checksum any) *gomock.Call { +func (mr *MockSPDBMockRecorder) SetReplicatePieceChecksum(objectID, segmentIdx, redundancyIdx, checksum interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetReplicatePieceChecksum", reflect.TypeOf((*MockSPDB)(nil).SetReplicatePieceChecksum), objectID, segmentIdx, redundancyIdx, checksum) } @@ -788,7 +784,7 @@ func (m *MockSPDB) UpdateAllSp(spList []*types0.StorageProvider) error { } // UpdateAllSp indicates an expected call of UpdateAllSp. -func (mr *MockSPDBMockRecorder) UpdateAllSp(spList any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateAllSp(spList interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAllSp", reflect.TypeOf((*MockSPDB)(nil).UpdateAllSp), spList) } @@ -802,7 +798,7 @@ func (m *MockSPDB) UpdateAuthKey(userAddress, domain string, oldNonce, newNonce } // UpdateAuthKey indicates an expected call of UpdateAuthKey. -func (mr *MockSPDBMockRecorder) UpdateAuthKey(userAddress, domain, oldNonce, newNonce, newPublicKey, newExpiryDate any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateAuthKey(userAddress, domain, oldNonce, newNonce, newPublicKey, newExpiryDate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAuthKey", reflect.TypeOf((*MockSPDB)(nil).UpdateAuthKey), userAddress, domain, oldNonce, newNonce, newPublicKey, newExpiryDate) } @@ -816,7 +812,7 @@ func (m *MockSPDB) UpdateBucketMigrateSubscribeProgress(blockHeight uint64) erro } // UpdateBucketMigrateSubscribeProgress indicates an expected call of UpdateBucketMigrateSubscribeProgress. -func (mr *MockSPDBMockRecorder) UpdateBucketMigrateSubscribeProgress(blockHeight any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateBucketMigrateSubscribeProgress(blockHeight interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBucketMigrateSubscribeProgress", reflect.TypeOf((*MockSPDB)(nil).UpdateBucketMigrateSubscribeProgress), blockHeight) } @@ -830,7 +826,7 @@ func (m *MockSPDB) UpdateBucketTraffic(bucketID uint64, update *BucketTraffic) e } // UpdateBucketTraffic indicates an expected call of UpdateBucketTraffic. -func (mr *MockSPDBMockRecorder) UpdateBucketTraffic(bucketID, update any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateBucketTraffic(bucketID, update interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBucketTraffic", reflect.TypeOf((*MockSPDB)(nil).UpdateBucketTraffic), bucketID, update) } @@ -844,7 +840,7 @@ func (m *MockSPDB) UpdateExtraQuota(bucketID, extraQuota uint64, yearMonth strin } // UpdateExtraQuota indicates an expected call of UpdateExtraQuota. -func (mr *MockSPDBMockRecorder) UpdateExtraQuota(bucketID, extraQuota, yearMonth any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateExtraQuota(bucketID, extraQuota, yearMonth interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateExtraQuota", reflect.TypeOf((*MockSPDB)(nil).UpdateExtraQuota), bucketID, extraQuota, yearMonth) } @@ -858,7 +854,7 @@ func (m *MockSPDB) UpdateGCObjectProgress(gcMeta *GCObjectMeta) error { } // UpdateGCObjectProgress indicates an expected call of UpdateGCObjectProgress. -func (mr *MockSPDBMockRecorder) UpdateGCObjectProgress(gcMeta any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateGCObjectProgress(gcMeta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGCObjectProgress", reflect.TypeOf((*MockSPDB)(nil).UpdateGCObjectProgress), gcMeta) } @@ -872,7 +868,7 @@ func (m *MockSPDB) UpdateIntegrityChecksum(integrity *IntegrityMeta) error { } // UpdateIntegrityChecksum indicates an expected call of UpdateIntegrityChecksum. -func (mr *MockSPDBMockRecorder) UpdateIntegrityChecksum(integrity any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateIntegrityChecksum(integrity interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateIntegrityChecksum", reflect.TypeOf((*MockSPDB)(nil).UpdateIntegrityChecksum), integrity) } @@ -886,7 +882,7 @@ func (m *MockSPDB) UpdateMigrateGVGRetryCount(migrateKey string, retryTime int) } // UpdateMigrateGVGRetryCount indicates an expected call of UpdateMigrateGVGRetryCount. -func (mr *MockSPDBMockRecorder) UpdateMigrateGVGRetryCount(migrateKey, retryTime any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateMigrateGVGRetryCount(migrateKey, retryTime interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMigrateGVGRetryCount", reflect.TypeOf((*MockSPDB)(nil).UpdateMigrateGVGRetryCount), migrateKey, retryTime) } @@ -900,7 +896,7 @@ func (m *MockSPDB) UpdateMigrateGVGUnitLastMigrateObjectID(migrateKey string, la } // UpdateMigrateGVGUnitLastMigrateObjectID indicates an expected call of UpdateMigrateGVGUnitLastMigrateObjectID. -func (mr *MockSPDBMockRecorder) UpdateMigrateGVGUnitLastMigrateObjectID(migrateKey, lastMigrateObjectID any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateMigrateGVGUnitLastMigrateObjectID(migrateKey, lastMigrateObjectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMigrateGVGUnitLastMigrateObjectID", reflect.TypeOf((*MockSPDB)(nil).UpdateMigrateGVGUnitLastMigrateObjectID), migrateKey, lastMigrateObjectID) } @@ -914,7 +910,7 @@ func (m *MockSPDB) UpdateMigrateGVGUnitStatus(migrateKey string, migrateStatus i } // UpdateMigrateGVGUnitStatus indicates an expected call of UpdateMigrateGVGUnitStatus. -func (mr *MockSPDBMockRecorder) UpdateMigrateGVGUnitStatus(migrateKey, migrateStatus any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateMigrateGVGUnitStatus(migrateKey, migrateStatus interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMigrateGVGUnitStatus", reflect.TypeOf((*MockSPDB)(nil).UpdateMigrateGVGUnitStatus), migrateKey, migrateStatus) } @@ -928,7 +924,7 @@ func (m *MockSPDB) UpdatePieceChecksum(objectID uint64, redundancyIndex int32, c } // UpdatePieceChecksum indicates an expected call of UpdatePieceChecksum. -func (mr *MockSPDBMockRecorder) UpdatePieceChecksum(objectID, redundancyIndex, checksum any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdatePieceChecksum(objectID, redundancyIndex, checksum interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePieceChecksum", reflect.TypeOf((*MockSPDB)(nil).UpdatePieceChecksum), objectID, redundancyIndex, checksum) } @@ -942,7 +938,7 @@ func (m *MockSPDB) UpdateSPExitSubscribeProgress(blockHeight uint64) error { } // UpdateSPExitSubscribeProgress indicates an expected call of UpdateSPExitSubscribeProgress. -func (mr *MockSPDBMockRecorder) UpdateSPExitSubscribeProgress(blockHeight any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateSPExitSubscribeProgress(blockHeight interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSPExitSubscribeProgress", reflect.TypeOf((*MockSPDB)(nil).UpdateSPExitSubscribeProgress), blockHeight) } @@ -956,7 +952,7 @@ func (m *MockSPDB) UpdateSwapOutSubscribeProgress(blockHeight uint64) error { } // UpdateSwapOutSubscribeProgress indicates an expected call of UpdateSwapOutSubscribeProgress. -func (mr *MockSPDBMockRecorder) UpdateSwapOutSubscribeProgress(blockHeight any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateSwapOutSubscribeProgress(blockHeight interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSwapOutSubscribeProgress", reflect.TypeOf((*MockSPDB)(nil).UpdateSwapOutSubscribeProgress), blockHeight) } @@ -970,7 +966,7 @@ func (m *MockSPDB) UpdateSwapOutUnitCompletedGVGList(swapOutKey string, complete } // UpdateSwapOutUnitCompletedGVGList indicates an expected call of UpdateSwapOutUnitCompletedGVGList. -func (mr *MockSPDBMockRecorder) UpdateSwapOutUnitCompletedGVGList(swapOutKey, completedGVGList any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateSwapOutUnitCompletedGVGList(swapOutKey, completedGVGList interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSwapOutUnitCompletedGVGList", reflect.TypeOf((*MockSPDB)(nil).UpdateSwapOutUnitCompletedGVGList), swapOutKey, completedGVGList) } @@ -984,7 +980,7 @@ func (m *MockSPDB) UpdateUploadProgress(uploadMeta *UploadObjectMeta) error { } // UpdateUploadProgress indicates an expected call of UpdateUploadProgress. -func (mr *MockSPDBMockRecorder) UpdateUploadProgress(uploadMeta any) *gomock.Call { +func (mr *MockSPDBMockRecorder) UpdateUploadProgress(uploadMeta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUploadProgress", reflect.TypeOf((*MockSPDB)(nil).UpdateUploadProgress), uploadMeta) } @@ -1021,7 +1017,7 @@ func (m *MockUploadObjectProgressDB) DeleteUploadProgress(objectID uint64) error } // DeleteUploadProgress indicates an expected call of DeleteUploadProgress. -func (mr *MockUploadObjectProgressDBMockRecorder) DeleteUploadProgress(objectID any) *gomock.Call { +func (mr *MockUploadObjectProgressDBMockRecorder) DeleteUploadProgress(objectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteUploadProgress", reflect.TypeOf((*MockUploadObjectProgressDB)(nil).DeleteUploadProgress), objectID) } @@ -1036,7 +1032,7 @@ func (m *MockUploadObjectProgressDB) GetUploadMetasToReplicate(limit int, timeou } // GetUploadMetasToReplicate indicates an expected call of GetUploadMetasToReplicate. -func (mr *MockUploadObjectProgressDBMockRecorder) GetUploadMetasToReplicate(limit, timeout any) *gomock.Call { +func (mr *MockUploadObjectProgressDBMockRecorder) GetUploadMetasToReplicate(limit, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadMetasToReplicate", reflect.TypeOf((*MockUploadObjectProgressDB)(nil).GetUploadMetasToReplicate), limit, timeout) } @@ -1051,7 +1047,7 @@ func (m *MockUploadObjectProgressDB) GetUploadMetasToSeal(limit int, timeout int } // GetUploadMetasToSeal indicates an expected call of GetUploadMetasToSeal. -func (mr *MockUploadObjectProgressDBMockRecorder) GetUploadMetasToSeal(limit, timeout any) *gomock.Call { +func (mr *MockUploadObjectProgressDBMockRecorder) GetUploadMetasToSeal(limit, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadMetasToSeal", reflect.TypeOf((*MockUploadObjectProgressDB)(nil).GetUploadMetasToSeal), limit, timeout) } @@ -1067,7 +1063,7 @@ func (m *MockUploadObjectProgressDB) GetUploadState(objectID uint64) (types.Task } // GetUploadState indicates an expected call of GetUploadState. -func (mr *MockUploadObjectProgressDBMockRecorder) GetUploadState(objectID any) *gomock.Call { +func (mr *MockUploadObjectProgressDBMockRecorder) GetUploadState(objectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUploadState", reflect.TypeOf((*MockUploadObjectProgressDB)(nil).GetUploadState), objectID) } @@ -1081,7 +1077,7 @@ func (m *MockUploadObjectProgressDB) InsertPutEvent(task task.Task) error { } // InsertPutEvent indicates an expected call of InsertPutEvent. -func (mr *MockUploadObjectProgressDBMockRecorder) InsertPutEvent(task any) *gomock.Call { +func (mr *MockUploadObjectProgressDBMockRecorder) InsertPutEvent(task interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertPutEvent", reflect.TypeOf((*MockUploadObjectProgressDB)(nil).InsertPutEvent), task) } @@ -1095,7 +1091,7 @@ func (m *MockUploadObjectProgressDB) InsertUploadProgress(objectID uint64) error } // InsertUploadProgress indicates an expected call of InsertUploadProgress. -func (mr *MockUploadObjectProgressDBMockRecorder) InsertUploadProgress(objectID any) *gomock.Call { +func (mr *MockUploadObjectProgressDBMockRecorder) InsertUploadProgress(objectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertUploadProgress", reflect.TypeOf((*MockUploadObjectProgressDB)(nil).InsertUploadProgress), objectID) } @@ -1109,7 +1105,7 @@ func (m *MockUploadObjectProgressDB) UpdateUploadProgress(uploadMeta *UploadObje } // UpdateUploadProgress indicates an expected call of UpdateUploadProgress. -func (mr *MockUploadObjectProgressDBMockRecorder) UpdateUploadProgress(uploadMeta any) *gomock.Call { +func (mr *MockUploadObjectProgressDBMockRecorder) UpdateUploadProgress(uploadMeta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUploadProgress", reflect.TypeOf((*MockUploadObjectProgressDB)(nil).UpdateUploadProgress), uploadMeta) } @@ -1146,7 +1142,7 @@ func (m *MockGCObjectProgressDB) DeleteGCObjectProgress(taskKey string) error { } // DeleteGCObjectProgress indicates an expected call of DeleteGCObjectProgress. -func (mr *MockGCObjectProgressDBMockRecorder) DeleteGCObjectProgress(taskKey any) *gomock.Call { +func (mr *MockGCObjectProgressDBMockRecorder) DeleteGCObjectProgress(taskKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGCObjectProgress", reflect.TypeOf((*MockGCObjectProgressDB)(nil).DeleteGCObjectProgress), taskKey) } @@ -1161,7 +1157,7 @@ func (m *MockGCObjectProgressDB) GetGCMetasToGC(limit int) ([]*GCObjectMeta, err } // GetGCMetasToGC indicates an expected call of GetGCMetasToGC. -func (mr *MockGCObjectProgressDBMockRecorder) GetGCMetasToGC(limit any) *gomock.Call { +func (mr *MockGCObjectProgressDBMockRecorder) GetGCMetasToGC(limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGCMetasToGC", reflect.TypeOf((*MockGCObjectProgressDB)(nil).GetGCMetasToGC), limit) } @@ -1175,7 +1171,7 @@ func (m *MockGCObjectProgressDB) InsertGCObjectProgress(gcMeta *GCObjectMeta) er } // InsertGCObjectProgress indicates an expected call of InsertGCObjectProgress. -func (mr *MockGCObjectProgressDBMockRecorder) InsertGCObjectProgress(gcMeta any) *gomock.Call { +func (mr *MockGCObjectProgressDBMockRecorder) InsertGCObjectProgress(gcMeta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertGCObjectProgress", reflect.TypeOf((*MockGCObjectProgressDB)(nil).InsertGCObjectProgress), gcMeta) } @@ -1189,7 +1185,7 @@ func (m *MockGCObjectProgressDB) UpdateGCObjectProgress(gcMeta *GCObjectMeta) er } // UpdateGCObjectProgress indicates an expected call of UpdateGCObjectProgress. -func (mr *MockGCObjectProgressDBMockRecorder) UpdateGCObjectProgress(gcMeta any) *gomock.Call { +func (mr *MockGCObjectProgressDBMockRecorder) UpdateGCObjectProgress(gcMeta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGCObjectProgress", reflect.TypeOf((*MockGCObjectProgressDB)(nil).UpdateGCObjectProgress), gcMeta) } @@ -1226,7 +1222,7 @@ func (m *MockSignatureDB) DeleteAllReplicatePieceChecksum(objectID uint64, redun } // DeleteAllReplicatePieceChecksum indicates an expected call of DeleteAllReplicatePieceChecksum. -func (mr *MockSignatureDBMockRecorder) DeleteAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) DeleteAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReplicatePieceChecksum", reflect.TypeOf((*MockSignatureDB)(nil).DeleteAllReplicatePieceChecksum), objectID, redundancyIdx, pieceCount) } @@ -1240,7 +1236,7 @@ func (m *MockSignatureDB) DeleteAllReplicatePieceChecksumOptimized(objectID uint } // DeleteAllReplicatePieceChecksumOptimized indicates an expected call of DeleteAllReplicatePieceChecksumOptimized. -func (mr *MockSignatureDBMockRecorder) DeleteAllReplicatePieceChecksumOptimized(objectID, redundancyIdx any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) DeleteAllReplicatePieceChecksumOptimized(objectID, redundancyIdx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReplicatePieceChecksumOptimized", reflect.TypeOf((*MockSignatureDB)(nil).DeleteAllReplicatePieceChecksumOptimized), objectID, redundancyIdx) } @@ -1254,7 +1250,7 @@ func (m *MockSignatureDB) DeleteObjectIntegrity(objectID uint64, redundancyIndex } // DeleteObjectIntegrity indicates an expected call of DeleteObjectIntegrity. -func (mr *MockSignatureDBMockRecorder) DeleteObjectIntegrity(objectID, redundancyIndex any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) DeleteObjectIntegrity(objectID, redundancyIndex interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectIntegrity", reflect.TypeOf((*MockSignatureDB)(nil).DeleteObjectIntegrity), objectID, redundancyIndex) } @@ -1283,7 +1279,7 @@ func (m *MockSignatureDB) GetAllReplicatePieceChecksum(objectID uint64, redundan } // GetAllReplicatePieceChecksum indicates an expected call of GetAllReplicatePieceChecksum. -func (mr *MockSignatureDBMockRecorder) GetAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) GetAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllReplicatePieceChecksum", reflect.TypeOf((*MockSignatureDB)(nil).GetAllReplicatePieceChecksum), objectID, redundancyIdx, pieceCount) } @@ -1298,7 +1294,7 @@ func (m *MockSignatureDB) GetAllReplicatePieceChecksumOptimized(objectID uint64, } // GetAllReplicatePieceChecksumOptimized indicates an expected call of GetAllReplicatePieceChecksumOptimized. -func (mr *MockSignatureDBMockRecorder) GetAllReplicatePieceChecksumOptimized(objectID, redundancyIdx, pieceCount any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) GetAllReplicatePieceChecksumOptimized(objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllReplicatePieceChecksumOptimized", reflect.TypeOf((*MockSignatureDB)(nil).GetAllReplicatePieceChecksumOptimized), objectID, redundancyIdx, pieceCount) } @@ -1313,39 +1309,39 @@ func (m *MockSignatureDB) GetObjectIntegrity(objectID uint64, redundancyIndex in } // GetObjectIntegrity indicates an expected call of GetObjectIntegrity. -func (mr *MockSignatureDBMockRecorder) GetObjectIntegrity(objectID, redundancyIndex any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) GetObjectIntegrity(objectID, redundancyIndex interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectIntegrity", reflect.TypeOf((*MockSignatureDB)(nil).GetObjectIntegrity), objectID, redundancyIndex) } -// ListObjectsByBlockNumberRange mocks base method. -func (m *MockSignatureDB) ListObjectsByBlockNumberRange(startBlockNumber, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) { +// ListIntegrityMetaByObjectIDRange mocks base method. +func (m *MockSignatureDB) ListIntegrityMetaByObjectIDRange(startBlockNumber, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListObjectsByBlockNumberRange", startBlockNumber, endBlockNumber, includePrivate) + ret := m.ctrl.Call(m, "ListIntegrityMetaByObjectIDRange", startBlockNumber, endBlockNumber, includePrivate) ret0, _ := ret[0].([]*IntegrityMeta) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListObjectsByBlockNumberRange indicates an expected call of ListObjectsByBlockNumberRange. -func (mr *MockSignatureDBMockRecorder) ListObjectsByBlockNumberRange(startBlockNumber, endBlockNumber, includePrivate interface{}) *gomock.Call { +// ListIntegrityMetaByObjectIDRange indicates an expected call of ListIntegrityMetaByObjectIDRange. +func (mr *MockSignatureDBMockRecorder) ListIntegrityMetaByObjectIDRange(startBlockNumber, endBlockNumber, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBlockNumberRange", reflect.TypeOf((*MockSignatureDB)(nil).ListObjectsByBlockNumberRange), startBlockNumber, endBlockNumber, includePrivate) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListIntegrityMetaByObjectIDRange", reflect.TypeOf((*MockSignatureDB)(nil).ListIntegrityMetaByObjectIDRange), startBlockNumber, endBlockNumber, includePrivate) } -// ListReplicatePieceChecksumByBlockNumberRange mocks base method. -func (m *MockSignatureDB) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber, endBlockNumber int64, objectID uint64, redundancyIdx int32, pieceCount uint32) ([]*GCPieceMeta, error) { +// ListReplicatePieceChecksumByObjectIDRange mocks base method. +func (m *MockSignatureDB) ListReplicatePieceChecksumByObjectIDRange(startObjectID, endObjectID int64) ([]*GCPieceMeta, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListReplicatePieceChecksumByBlockNumberRange", startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount) + ret := m.ctrl.Call(m, "ListReplicatePieceChecksumByObjectIDRange", startObjectID, endObjectID) ret0, _ := ret[0].([]*GCPieceMeta) ret1, _ := ret[1].(error) return ret0, ret1 } -// ListReplicatePieceChecksumByBlockNumberRange indicates an expected call of ListReplicatePieceChecksumByBlockNumberRange. -func (mr *MockSignatureDBMockRecorder) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { +// ListReplicatePieceChecksumByObjectIDRange indicates an expected call of ListReplicatePieceChecksumByObjectIDRange. +func (mr *MockSignatureDBMockRecorder) ListReplicatePieceChecksumByObjectIDRange(startObjectID, endObjectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReplicatePieceChecksumByBlockNumberRange", reflect.TypeOf((*MockSignatureDB)(nil).ListReplicatePieceChecksumByBlockNumberRange), startBlockNumber, endBlockNumber, objectID, redundancyIdx, pieceCount) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListReplicatePieceChecksumByObjectIDRange", reflect.TypeOf((*MockSignatureDB)(nil).ListReplicatePieceChecksumByObjectIDRange), startObjectID, endObjectID) } // SetObjectIntegrity mocks base method. @@ -1357,7 +1353,7 @@ func (m *MockSignatureDB) SetObjectIntegrity(integrity *IntegrityMeta) error { } // SetObjectIntegrity indicates an expected call of SetObjectIntegrity. -func (mr *MockSignatureDBMockRecorder) SetObjectIntegrity(integrity any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) SetObjectIntegrity(integrity interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectIntegrity", reflect.TypeOf((*MockSignatureDB)(nil).SetObjectIntegrity), integrity) } @@ -1371,7 +1367,7 @@ func (m *MockSignatureDB) SetReplicatePieceChecksum(objectID uint64, segmentIdx } // SetReplicatePieceChecksum indicates an expected call of SetReplicatePieceChecksum. -func (mr *MockSignatureDBMockRecorder) SetReplicatePieceChecksum(objectID, segmentIdx, redundancyIdx, checksum any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) SetReplicatePieceChecksum(objectID, segmentIdx, redundancyIdx, checksum interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetReplicatePieceChecksum", reflect.TypeOf((*MockSignatureDB)(nil).SetReplicatePieceChecksum), objectID, segmentIdx, redundancyIdx, checksum) } @@ -1385,7 +1381,7 @@ func (m *MockSignatureDB) UpdateIntegrityChecksum(integrity *IntegrityMeta) erro } // UpdateIntegrityChecksum indicates an expected call of UpdateIntegrityChecksum. -func (mr *MockSignatureDBMockRecorder) UpdateIntegrityChecksum(integrity any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) UpdateIntegrityChecksum(integrity interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateIntegrityChecksum", reflect.TypeOf((*MockSignatureDB)(nil).UpdateIntegrityChecksum), integrity) } @@ -1399,7 +1395,7 @@ func (m *MockSignatureDB) UpdatePieceChecksum(objectID uint64, redundancyIndex i } // UpdatePieceChecksum indicates an expected call of UpdatePieceChecksum. -func (mr *MockSignatureDBMockRecorder) UpdatePieceChecksum(objectID, redundancyIndex, checksum any) *gomock.Call { +func (mr *MockSignatureDBMockRecorder) UpdatePieceChecksum(objectID, redundancyIndex, checksum interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdatePieceChecksum", reflect.TypeOf((*MockSignatureDB)(nil).UpdatePieceChecksum), objectID, redundancyIndex, checksum) } @@ -1436,7 +1432,7 @@ func (m *MockTrafficDB) CheckQuotaAndAddReadRecord(record *ReadRecord, quota *Bu } // CheckQuotaAndAddReadRecord indicates an expected call of CheckQuotaAndAddReadRecord. -func (mr *MockTrafficDBMockRecorder) CheckQuotaAndAddReadRecord(record, quota any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) CheckQuotaAndAddReadRecord(record, quota interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckQuotaAndAddReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).CheckQuotaAndAddReadRecord), record, quota) } @@ -1479,7 +1475,7 @@ func (m *MockTrafficDB) GetBucketReadRecord(bucketID uint64, timeRange *TrafficT } // GetBucketReadRecord indicates an expected call of GetBucketReadRecord. -func (mr *MockTrafficDBMockRecorder) GetBucketReadRecord(bucketID, timeRange any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) GetBucketReadRecord(bucketID, timeRange interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).GetBucketReadRecord), bucketID, timeRange) } @@ -1494,7 +1490,7 @@ func (m *MockTrafficDB) GetBucketTraffic(bucketID uint64, yearMonth string) (*Bu } // GetBucketTraffic indicates an expected call of GetBucketTraffic. -func (mr *MockTrafficDBMockRecorder) GetBucketTraffic(bucketID, yearMonth any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) GetBucketTraffic(bucketID, yearMonth interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketTraffic", reflect.TypeOf((*MockTrafficDB)(nil).GetBucketTraffic), bucketID, yearMonth) } @@ -1509,7 +1505,7 @@ func (m *MockTrafficDB) GetLatestBucketTraffic(bucketID uint64) (*BucketTraffic, } // GetLatestBucketTraffic indicates an expected call of GetLatestBucketTraffic. -func (mr *MockTrafficDBMockRecorder) GetLatestBucketTraffic(bucketID any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) GetLatestBucketTraffic(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestBucketTraffic", reflect.TypeOf((*MockTrafficDB)(nil).GetLatestBucketTraffic), bucketID) } @@ -1524,7 +1520,7 @@ func (m *MockTrafficDB) GetObjectReadRecord(objectID uint64, timeRange *TrafficT } // GetObjectReadRecord indicates an expected call of GetObjectReadRecord. -func (mr *MockTrafficDBMockRecorder) GetObjectReadRecord(objectID, timeRange any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) GetObjectReadRecord(objectID, timeRange interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).GetObjectReadRecord), objectID, timeRange) } @@ -1539,7 +1535,7 @@ func (m *MockTrafficDB) GetReadRecord(timeRange *TrafficTimeRange) ([]*ReadRecor } // GetReadRecord indicates an expected call of GetReadRecord. -func (mr *MockTrafficDBMockRecorder) GetReadRecord(timeRange any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) GetReadRecord(timeRange interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).GetReadRecord), timeRange) } @@ -1554,7 +1550,7 @@ func (m *MockTrafficDB) GetUserReadRecord(userAddress string, timeRange *Traffic } // GetUserReadRecord indicates an expected call of GetUserReadRecord. -func (mr *MockTrafficDBMockRecorder) GetUserReadRecord(userAddress, timeRange any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) GetUserReadRecord(userAddress, timeRange interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).GetUserReadRecord), userAddress, timeRange) } @@ -1568,7 +1564,7 @@ func (m *MockTrafficDB) InitBucketTraffic(record *ReadRecord, quota *BucketQuota } // InitBucketTraffic indicates an expected call of InitBucketTraffic. -func (mr *MockTrafficDBMockRecorder) InitBucketTraffic(record, quota any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) InitBucketTraffic(record, quota interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitBucketTraffic", reflect.TypeOf((*MockTrafficDB)(nil).InitBucketTraffic), record, quota) } @@ -1582,7 +1578,7 @@ func (m *MockTrafficDB) UpdateBucketTraffic(bucketID uint64, update *BucketTraff } // UpdateBucketTraffic indicates an expected call of UpdateBucketTraffic. -func (mr *MockTrafficDBMockRecorder) UpdateBucketTraffic(bucketID, update any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) UpdateBucketTraffic(bucketID, update interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBucketTraffic", reflect.TypeOf((*MockTrafficDB)(nil).UpdateBucketTraffic), bucketID, update) } @@ -1596,7 +1592,7 @@ func (m *MockTrafficDB) UpdateExtraQuota(bucketID, extraQuota uint64, yearMonth } // UpdateExtraQuota indicates an expected call of UpdateExtraQuota. -func (mr *MockTrafficDBMockRecorder) UpdateExtraQuota(bucketID, extraQuota, yearMonth any) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) UpdateExtraQuota(bucketID, extraQuota, yearMonth interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateExtraQuota", reflect.TypeOf((*MockTrafficDB)(nil).UpdateExtraQuota), bucketID, extraQuota, yearMonth) } @@ -1627,7 +1623,7 @@ func (m *MockSPInfoDB) EXPECT() *MockSPInfoDBMockRecorder { // FetchAllSp mocks base method. func (m *MockSPInfoDB) FetchAllSp(status ...types0.Status) ([]*types0.StorageProvider, error) { m.ctrl.T.Helper() - varargs := []any{} + varargs := []interface{}{} for _, a := range status { varargs = append(varargs, a) } @@ -1638,7 +1634,7 @@ func (m *MockSPInfoDB) FetchAllSp(status ...types0.Status) ([]*types0.StoragePro } // FetchAllSp indicates an expected call of FetchAllSp. -func (mr *MockSPInfoDBMockRecorder) FetchAllSp(status ...any) *gomock.Call { +func (mr *MockSPInfoDBMockRecorder) FetchAllSp(status ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchAllSp", reflect.TypeOf((*MockSPInfoDB)(nil).FetchAllSp), status...) } @@ -1646,7 +1642,7 @@ func (mr *MockSPInfoDBMockRecorder) FetchAllSp(status ...any) *gomock.Call { // FetchAllSpWithoutOwnSp mocks base method. func (m *MockSPInfoDB) FetchAllSpWithoutOwnSp(status ...types0.Status) ([]*types0.StorageProvider, error) { m.ctrl.T.Helper() - varargs := []any{} + varargs := []interface{}{} for _, a := range status { varargs = append(varargs, a) } @@ -1657,7 +1653,7 @@ func (m *MockSPInfoDB) FetchAllSpWithoutOwnSp(status ...types0.Status) ([]*types } // FetchAllSpWithoutOwnSp indicates an expected call of FetchAllSpWithoutOwnSp. -func (mr *MockSPInfoDBMockRecorder) FetchAllSpWithoutOwnSp(status ...any) *gomock.Call { +func (mr *MockSPInfoDBMockRecorder) FetchAllSpWithoutOwnSp(status ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchAllSpWithoutOwnSp", reflect.TypeOf((*MockSPInfoDB)(nil).FetchAllSpWithoutOwnSp), status...) } @@ -1687,7 +1683,7 @@ func (m *MockSPInfoDB) GetSpByAddress(address string, addressType SpAddressType) } // GetSpByAddress indicates an expected call of GetSpByAddress. -func (mr *MockSPInfoDBMockRecorder) GetSpByAddress(address, addressType any) *gomock.Call { +func (mr *MockSPInfoDBMockRecorder) GetSpByAddress(address, addressType interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpByAddress", reflect.TypeOf((*MockSPInfoDB)(nil).GetSpByAddress), address, addressType) } @@ -1702,7 +1698,7 @@ func (m *MockSPInfoDB) GetSpByEndpoint(endpoint string) (*types0.StorageProvider } // GetSpByEndpoint indicates an expected call of GetSpByEndpoint. -func (mr *MockSPInfoDBMockRecorder) GetSpByEndpoint(endpoint any) *gomock.Call { +func (mr *MockSPInfoDBMockRecorder) GetSpByEndpoint(endpoint interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpByEndpoint", reflect.TypeOf((*MockSPInfoDB)(nil).GetSpByEndpoint), endpoint) } @@ -1717,7 +1713,7 @@ func (m *MockSPInfoDB) GetSpByID(id uint32) (*types0.StorageProvider, error) { } // GetSpByID indicates an expected call of GetSpByID. -func (mr *MockSPInfoDBMockRecorder) GetSpByID(id any) *gomock.Call { +func (mr *MockSPInfoDBMockRecorder) GetSpByID(id interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSpByID", reflect.TypeOf((*MockSPInfoDB)(nil).GetSpByID), id) } @@ -1731,7 +1727,7 @@ func (m *MockSPInfoDB) SetOwnSpInfo(sp *types0.StorageProvider) error { } // SetOwnSpInfo indicates an expected call of SetOwnSpInfo. -func (mr *MockSPInfoDBMockRecorder) SetOwnSpInfo(sp any) *gomock.Call { +func (mr *MockSPInfoDBMockRecorder) SetOwnSpInfo(sp interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetOwnSpInfo", reflect.TypeOf((*MockSPInfoDB)(nil).SetOwnSpInfo), sp) } @@ -1745,7 +1741,7 @@ func (m *MockSPInfoDB) UpdateAllSp(spList []*types0.StorageProvider) error { } // UpdateAllSp indicates an expected call of UpdateAllSp. -func (mr *MockSPInfoDBMockRecorder) UpdateAllSp(spList any) *gomock.Call { +func (mr *MockSPInfoDBMockRecorder) UpdateAllSp(spList interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAllSp", reflect.TypeOf((*MockSPInfoDB)(nil).UpdateAllSp), spList) } @@ -1783,7 +1779,7 @@ func (m *MockOffChainAuthKeyDB) GetAuthKey(userAddress, domain string) (*OffChai } // GetAuthKey indicates an expected call of GetAuthKey. -func (mr *MockOffChainAuthKeyDBMockRecorder) GetAuthKey(userAddress, domain any) *gomock.Call { +func (mr *MockOffChainAuthKeyDBMockRecorder) GetAuthKey(userAddress, domain interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthKey", reflect.TypeOf((*MockOffChainAuthKeyDB)(nil).GetAuthKey), userAddress, domain) } @@ -1797,7 +1793,7 @@ func (m *MockOffChainAuthKeyDB) InsertAuthKey(newRecord *OffChainAuthKey) error } // InsertAuthKey indicates an expected call of InsertAuthKey. -func (mr *MockOffChainAuthKeyDBMockRecorder) InsertAuthKey(newRecord any) *gomock.Call { +func (mr *MockOffChainAuthKeyDBMockRecorder) InsertAuthKey(newRecord interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertAuthKey", reflect.TypeOf((*MockOffChainAuthKeyDB)(nil).InsertAuthKey), newRecord) } @@ -1811,7 +1807,7 @@ func (m *MockOffChainAuthKeyDB) UpdateAuthKey(userAddress, domain string, oldNon } // UpdateAuthKey indicates an expected call of UpdateAuthKey. -func (mr *MockOffChainAuthKeyDBMockRecorder) UpdateAuthKey(userAddress, domain, oldNonce, newNonce, newPublicKey, newExpiryDate any) *gomock.Call { +func (mr *MockOffChainAuthKeyDBMockRecorder) UpdateAuthKey(userAddress, domain, oldNonce, newNonce, newPublicKey, newExpiryDate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAuthKey", reflect.TypeOf((*MockOffChainAuthKeyDB)(nil).UpdateAuthKey), userAddress, domain, oldNonce, newNonce, newPublicKey, newExpiryDate) } @@ -1848,7 +1844,7 @@ func (m *MockMigrateDB) DeleteMigrateGVGUnit(meta *MigrateGVGUnitMeta) error { } // DeleteMigrateGVGUnit indicates an expected call of DeleteMigrateGVGUnit. -func (mr *MockMigrateDBMockRecorder) DeleteMigrateGVGUnit(meta any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) DeleteMigrateGVGUnit(meta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteMigrateGVGUnit", reflect.TypeOf((*MockMigrateDB)(nil).DeleteMigrateGVGUnit), meta) } @@ -1862,7 +1858,7 @@ func (m *MockMigrateDB) DeleteMigrateGVGUnitsByBucketID(bucketID uint64) error { } // DeleteMigrateGVGUnitsByBucketID indicates an expected call of DeleteMigrateGVGUnitsByBucketID. -func (mr *MockMigrateDBMockRecorder) DeleteMigrateGVGUnitsByBucketID(bucketID any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) DeleteMigrateGVGUnitsByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteMigrateGVGUnitsByBucketID", reflect.TypeOf((*MockMigrateDB)(nil).DeleteMigrateGVGUnitsByBucketID), bucketID) } @@ -1876,7 +1872,7 @@ func (m *MockMigrateDB) InsertMigrateGVGUnit(meta *MigrateGVGUnitMeta) error { } // InsertMigrateGVGUnit indicates an expected call of InsertMigrateGVGUnit. -func (mr *MockMigrateDBMockRecorder) InsertMigrateGVGUnit(meta any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) InsertMigrateGVGUnit(meta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertMigrateGVGUnit", reflect.TypeOf((*MockMigrateDB)(nil).InsertMigrateGVGUnit), meta) } @@ -1890,7 +1886,7 @@ func (m *MockMigrateDB) InsertSwapOutUnit(meta *SwapOutMeta) error { } // InsertSwapOutUnit indicates an expected call of InsertSwapOutUnit. -func (mr *MockMigrateDBMockRecorder) InsertSwapOutUnit(meta any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) InsertSwapOutUnit(meta interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertSwapOutUnit", reflect.TypeOf((*MockMigrateDB)(nil).InsertSwapOutUnit), meta) } @@ -1920,7 +1916,7 @@ func (m *MockMigrateDB) ListMigrateGVGUnitsByBucketID(bucketID uint64) ([]*Migra } // ListMigrateGVGUnitsByBucketID indicates an expected call of ListMigrateGVGUnitsByBucketID. -func (mr *MockMigrateDBMockRecorder) ListMigrateGVGUnitsByBucketID(bucketID any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) ListMigrateGVGUnitsByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMigrateGVGUnitsByBucketID", reflect.TypeOf((*MockMigrateDB)(nil).ListMigrateGVGUnitsByBucketID), bucketID) } @@ -1950,7 +1946,7 @@ func (m *MockMigrateDB) QueryMigrateGVGUnit(migrateKey string) (*MigrateGVGUnitM } // QueryMigrateGVGUnit indicates an expected call of QueryMigrateGVGUnit. -func (mr *MockMigrateDBMockRecorder) QueryMigrateGVGUnit(migrateKey any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) QueryMigrateGVGUnit(migrateKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QueryMigrateGVGUnit", reflect.TypeOf((*MockMigrateDB)(nil).QueryMigrateGVGUnit), migrateKey) } @@ -1995,7 +1991,7 @@ func (m *MockMigrateDB) QuerySwapOutUnitInSrcSP(swapOutKey string) (*SwapOutMeta } // QuerySwapOutUnitInSrcSP indicates an expected call of QuerySwapOutUnitInSrcSP. -func (mr *MockMigrateDBMockRecorder) QuerySwapOutUnitInSrcSP(swapOutKey any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) QuerySwapOutUnitInSrcSP(swapOutKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "QuerySwapOutUnitInSrcSP", reflect.TypeOf((*MockMigrateDB)(nil).QuerySwapOutUnitInSrcSP), swapOutKey) } @@ -2009,7 +2005,7 @@ func (m *MockMigrateDB) UpdateBucketMigrateSubscribeProgress(blockHeight uint64) } // UpdateBucketMigrateSubscribeProgress indicates an expected call of UpdateBucketMigrateSubscribeProgress. -func (mr *MockMigrateDBMockRecorder) UpdateBucketMigrateSubscribeProgress(blockHeight any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) UpdateBucketMigrateSubscribeProgress(blockHeight interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateBucketMigrateSubscribeProgress", reflect.TypeOf((*MockMigrateDB)(nil).UpdateBucketMigrateSubscribeProgress), blockHeight) } @@ -2023,7 +2019,7 @@ func (m *MockMigrateDB) UpdateMigrateGVGRetryCount(migrateKey string, retryTime } // UpdateMigrateGVGRetryCount indicates an expected call of UpdateMigrateGVGRetryCount. -func (mr *MockMigrateDBMockRecorder) UpdateMigrateGVGRetryCount(migrateKey, retryTime any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) UpdateMigrateGVGRetryCount(migrateKey, retryTime interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMigrateGVGRetryCount", reflect.TypeOf((*MockMigrateDB)(nil).UpdateMigrateGVGRetryCount), migrateKey, retryTime) } @@ -2037,7 +2033,7 @@ func (m *MockMigrateDB) UpdateMigrateGVGUnitLastMigrateObjectID(migrateKey strin } // UpdateMigrateGVGUnitLastMigrateObjectID indicates an expected call of UpdateMigrateGVGUnitLastMigrateObjectID. -func (mr *MockMigrateDBMockRecorder) UpdateMigrateGVGUnitLastMigrateObjectID(migrateKey, lastMigrateObjectID any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) UpdateMigrateGVGUnitLastMigrateObjectID(migrateKey, lastMigrateObjectID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMigrateGVGUnitLastMigrateObjectID", reflect.TypeOf((*MockMigrateDB)(nil).UpdateMigrateGVGUnitLastMigrateObjectID), migrateKey, lastMigrateObjectID) } @@ -2051,7 +2047,7 @@ func (m *MockMigrateDB) UpdateMigrateGVGUnitStatus(migrateKey string, migrateSta } // UpdateMigrateGVGUnitStatus indicates an expected call of UpdateMigrateGVGUnitStatus. -func (mr *MockMigrateDBMockRecorder) UpdateMigrateGVGUnitStatus(migrateKey, migrateStatus any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) UpdateMigrateGVGUnitStatus(migrateKey, migrateStatus interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMigrateGVGUnitStatus", reflect.TypeOf((*MockMigrateDB)(nil).UpdateMigrateGVGUnitStatus), migrateKey, migrateStatus) } @@ -2065,7 +2061,7 @@ func (m *MockMigrateDB) UpdateSPExitSubscribeProgress(blockHeight uint64) error } // UpdateSPExitSubscribeProgress indicates an expected call of UpdateSPExitSubscribeProgress. -func (mr *MockMigrateDBMockRecorder) UpdateSPExitSubscribeProgress(blockHeight any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) UpdateSPExitSubscribeProgress(blockHeight interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSPExitSubscribeProgress", reflect.TypeOf((*MockMigrateDB)(nil).UpdateSPExitSubscribeProgress), blockHeight) } @@ -2079,7 +2075,7 @@ func (m *MockMigrateDB) UpdateSwapOutSubscribeProgress(blockHeight uint64) error } // UpdateSwapOutSubscribeProgress indicates an expected call of UpdateSwapOutSubscribeProgress. -func (mr *MockMigrateDBMockRecorder) UpdateSwapOutSubscribeProgress(blockHeight any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) UpdateSwapOutSubscribeProgress(blockHeight interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSwapOutSubscribeProgress", reflect.TypeOf((*MockMigrateDB)(nil).UpdateSwapOutSubscribeProgress), blockHeight) } @@ -2093,7 +2089,7 @@ func (m *MockMigrateDB) UpdateSwapOutUnitCompletedGVGList(swapOutKey string, com } // UpdateSwapOutUnitCompletedGVGList indicates an expected call of UpdateSwapOutUnitCompletedGVGList. -func (mr *MockMigrateDBMockRecorder) UpdateSwapOutUnitCompletedGVGList(swapOutKey, completedGVGList any) *gomock.Call { +func (mr *MockMigrateDBMockRecorder) UpdateSwapOutUnitCompletedGVGList(swapOutKey, completedGVGList interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateSwapOutUnitCompletedGVGList", reflect.TypeOf((*MockMigrateDB)(nil).UpdateSwapOutUnitCompletedGVGList), swapOutKey, completedGVGList) } diff --git a/core/task/task.go b/core/task/task.go index b32ef4425..8cf5a9574 100644 --- a/core/task/task.go +++ b/core/task/task.go @@ -494,37 +494,8 @@ type GCObjectTask interface { // the piece data meta is not on chain but the pieces has been store in piece store. type GCZombiePieceTask interface { GCTask - // GetGCZombiePieceStatus returns the status of collecting zombie pieces, returns - // the last deleted object id and the number that has been deleted. - //GetGCZombiePieceStatus() (uint64, uint64) - // SetGCZombiePieceStatus sets the status of collecting zombie pieces, param - // stands the last deleted object id and the has been deleted pieces number. - //SetGCZombiePieceStatus(uint64, uint64) - // InitGCZombiePieceTask inits InitGCObjectTask. InitGCZombiePieceTask(priority TPriority, start, end uint64, timeout int64) - // SetStartBlockNumber sets start block number for collecting object. - SetStartBlockNumber(uint64) - // GetStartBlockNumber returns start block number for collecting object. - GetStartBlockNumber() uint64 - // SetEndBlockNumber sets end block number for collecting object. - SetEndBlockNumber(uint64) - // GetEndBlockNumber returns end block number for collecting object. - GetEndBlockNumber() uint64 - // SetCurrentBlockNumber sets the collecting block number. - SetCurrentBlockNumber(uint64) - // GetCurrentBlockNumber returns the collecting block number. - GetCurrentBlockNumber() uint64 - // GetLastDeletedObjectId returns the last deleted ObjectID. - GetLastDeletedObjectId() uint64 - // SetLastDeletedObjectId sets the last deleted ObjectID. - SetLastDeletedObjectId(uint64) - // GetGCObjectProgress returns the progress of collecting object, returns the - // deleting block number and the last deleted object id. - GetGCObjectProgress() (uint64, uint64) - // SetGCObjectProgress sets the progress of collecting object, params stand - // the deleting block number and the last deleted object id. - SetGCObjectProgress(uint64, uint64) // SetStartObjectID sets start block number for collecting object. SetStartObjectID(uint64) // GetStartObjectId returns start block number for collecting object. diff --git a/core/task/task_mock.go b/core/task/task_mock.go index 41522ccd1..64d87777b 100644 --- a/core/task/task_mock.go +++ b/core/task/task_mock.go @@ -1,10 +1,6 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: ./task.go -// -// Generated by this command: -// -// mockgen -source=./task.go -destination=./task_mock.go -package=task -// +// Source: core/task/task.go + // Package task is a generated GoMock package. package task @@ -48,7 +44,7 @@ func (m *MockTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockTask)(nil).AppendLog), log) } @@ -296,7 +292,7 @@ func (m *MockTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockTask)(nil).SetAddress), arg0) } @@ -308,7 +304,7 @@ func (m *MockTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockTask)(nil).SetCreateTime), arg0) } @@ -320,7 +316,7 @@ func (m *MockTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockTask)(nil).SetError), arg0) } @@ -332,7 +328,7 @@ func (m *MockTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockTask)(nil).SetLogs), logs) } @@ -344,7 +340,7 @@ func (m *MockTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockTask)(nil).SetMaxRetry), arg0) } @@ -356,7 +352,7 @@ func (m *MockTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockTask)(nil).SetPriority), arg0) } @@ -368,7 +364,7 @@ func (m *MockTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockTask)(nil).SetRetry), arg0) } @@ -380,7 +376,7 @@ func (m *MockTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockTask)(nil).SetTimeout), arg0) } @@ -392,7 +388,7 @@ func (m *MockTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockTask)(nil).SetUpdateTime), arg0) } @@ -404,7 +400,7 @@ func (m *MockTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockTask)(nil).SetUserAddress), arg0) } @@ -453,7 +449,7 @@ func (m *MockApprovalTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockApprovalTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockApprovalTask)(nil).AppendLog), log) } @@ -715,7 +711,7 @@ func (m *MockApprovalTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockApprovalTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockApprovalTask)(nil).SetAddress), arg0) } @@ -727,7 +723,7 @@ func (m *MockApprovalTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockApprovalTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockApprovalTask)(nil).SetCreateTime), arg0) } @@ -739,7 +735,7 @@ func (m *MockApprovalTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockApprovalTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockApprovalTask)(nil).SetError), arg0) } @@ -751,7 +747,7 @@ func (m *MockApprovalTask) SetExpiredHeight(arg0 uint64) { } // SetExpiredHeight indicates an expected call of SetExpiredHeight. -func (mr *MockApprovalTaskMockRecorder) SetExpiredHeight(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetExpiredHeight(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetExpiredHeight", reflect.TypeOf((*MockApprovalTask)(nil).SetExpiredHeight), arg0) } @@ -763,7 +759,7 @@ func (m *MockApprovalTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockApprovalTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockApprovalTask)(nil).SetLogs), logs) } @@ -775,7 +771,7 @@ func (m *MockApprovalTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockApprovalTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockApprovalTask)(nil).SetMaxRetry), arg0) } @@ -787,7 +783,7 @@ func (m *MockApprovalTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockApprovalTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockApprovalTask)(nil).SetPriority), arg0) } @@ -799,7 +795,7 @@ func (m *MockApprovalTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockApprovalTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockApprovalTask)(nil).SetRetry), arg0) } @@ -811,7 +807,7 @@ func (m *MockApprovalTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockApprovalTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockApprovalTask)(nil).SetTimeout), arg0) } @@ -823,7 +819,7 @@ func (m *MockApprovalTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockApprovalTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockApprovalTask)(nil).SetUpdateTime), arg0) } @@ -835,7 +831,7 @@ func (m *MockApprovalTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockApprovalTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockApprovalTask)(nil).SetUserAddress), arg0) } @@ -884,7 +880,7 @@ func (m *MockApprovalCreateBucketTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockApprovalCreateBucketTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).AppendLog), log) } @@ -1146,7 +1142,7 @@ func (m *MockApprovalCreateBucketTask) InitApprovalCreateBucketTask(arg0 string, } // InitApprovalCreateBucketTask indicates an expected call of InitApprovalCreateBucketTask. -func (mr *MockApprovalCreateBucketTaskMockRecorder) InitApprovalCreateBucketTask(arg0, arg1, arg2, arg3 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) InitApprovalCreateBucketTask(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitApprovalCreateBucketTask", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).InitApprovalCreateBucketTask), arg0, arg1, arg2, arg3) } @@ -1172,7 +1168,7 @@ func (m *MockApprovalCreateBucketTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetAddress), arg0) } @@ -1184,7 +1180,7 @@ func (m *MockApprovalCreateBucketTask) SetCreateBucketInfo(arg0 *types0.MsgCreat } // SetCreateBucketInfo indicates an expected call of SetCreateBucketInfo. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetCreateBucketInfo(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetCreateBucketInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateBucketInfo", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetCreateBucketInfo), arg0) } @@ -1196,7 +1192,7 @@ func (m *MockApprovalCreateBucketTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetCreateTime), arg0) } @@ -1208,7 +1204,7 @@ func (m *MockApprovalCreateBucketTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetError), arg0) } @@ -1220,7 +1216,7 @@ func (m *MockApprovalCreateBucketTask) SetExpiredHeight(arg0 uint64) { } // SetExpiredHeight indicates an expected call of SetExpiredHeight. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetExpiredHeight(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetExpiredHeight(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetExpiredHeight", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetExpiredHeight), arg0) } @@ -1232,7 +1228,7 @@ func (m *MockApprovalCreateBucketTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetLogs), logs) } @@ -1244,7 +1240,7 @@ func (m *MockApprovalCreateBucketTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetMaxRetry), arg0) } @@ -1256,7 +1252,7 @@ func (m *MockApprovalCreateBucketTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetPriority), arg0) } @@ -1268,7 +1264,7 @@ func (m *MockApprovalCreateBucketTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetRetry), arg0) } @@ -1280,7 +1276,7 @@ func (m *MockApprovalCreateBucketTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetTimeout), arg0) } @@ -1292,7 +1288,7 @@ func (m *MockApprovalCreateBucketTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetUpdateTime), arg0) } @@ -1304,7 +1300,7 @@ func (m *MockApprovalCreateBucketTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockApprovalCreateBucketTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateBucketTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockApprovalCreateBucketTask)(nil).SetUserAddress), arg0) } @@ -1353,7 +1349,7 @@ func (m *MockApprovalMigrateBucketTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).AppendLog), log) } @@ -1615,7 +1611,7 @@ func (m *MockApprovalMigrateBucketTask) InitApprovalMigrateBucketTask(arg0 *type } // InitApprovalMigrateBucketTask indicates an expected call of InitApprovalMigrateBucketTask. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) InitApprovalMigrateBucketTask(arg0, arg1 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) InitApprovalMigrateBucketTask(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitApprovalMigrateBucketTask", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).InitApprovalMigrateBucketTask), arg0, arg1) } @@ -1641,7 +1637,7 @@ func (m *MockApprovalMigrateBucketTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetAddress), arg0) } @@ -1653,7 +1649,7 @@ func (m *MockApprovalMigrateBucketTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetCreateTime), arg0) } @@ -1665,7 +1661,7 @@ func (m *MockApprovalMigrateBucketTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetError), arg0) } @@ -1677,7 +1673,7 @@ func (m *MockApprovalMigrateBucketTask) SetExpiredHeight(arg0 uint64) { } // SetExpiredHeight indicates an expected call of SetExpiredHeight. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetExpiredHeight(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetExpiredHeight(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetExpiredHeight", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetExpiredHeight), arg0) } @@ -1689,7 +1685,7 @@ func (m *MockApprovalMigrateBucketTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetLogs), logs) } @@ -1701,7 +1697,7 @@ func (m *MockApprovalMigrateBucketTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetMaxRetry), arg0) } @@ -1713,7 +1709,7 @@ func (m *MockApprovalMigrateBucketTask) SetMigrateBucketInfo(arg0 *types0.MsgMig } // SetMigrateBucketInfo indicates an expected call of SetMigrateBucketInfo. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetMigrateBucketInfo(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetMigrateBucketInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMigrateBucketInfo", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetMigrateBucketInfo), arg0) } @@ -1725,7 +1721,7 @@ func (m *MockApprovalMigrateBucketTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetPriority), arg0) } @@ -1737,7 +1733,7 @@ func (m *MockApprovalMigrateBucketTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetRetry), arg0) } @@ -1749,7 +1745,7 @@ func (m *MockApprovalMigrateBucketTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetTimeout), arg0) } @@ -1761,7 +1757,7 @@ func (m *MockApprovalMigrateBucketTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetUpdateTime), arg0) } @@ -1773,7 +1769,7 @@ func (m *MockApprovalMigrateBucketTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalMigrateBucketTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockApprovalMigrateBucketTask)(nil).SetUserAddress), arg0) } @@ -1822,7 +1818,7 @@ func (m *MockApprovalCreateObjectTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockApprovalCreateObjectTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).AppendLog), log) } @@ -2084,7 +2080,7 @@ func (m *MockApprovalCreateObjectTask) InitApprovalCreateObjectTask(arg0 string, } // InitApprovalCreateObjectTask indicates an expected call of InitApprovalCreateObjectTask. -func (mr *MockApprovalCreateObjectTaskMockRecorder) InitApprovalCreateObjectTask(arg0, arg1, arg2, arg3 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) InitApprovalCreateObjectTask(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitApprovalCreateObjectTask", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).InitApprovalCreateObjectTask), arg0, arg1, arg2, arg3) } @@ -2110,7 +2106,7 @@ func (m *MockApprovalCreateObjectTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetAddress), arg0) } @@ -2122,7 +2118,7 @@ func (m *MockApprovalCreateObjectTask) SetCreateObjectInfo(arg0 *types0.MsgCreat } // SetCreateObjectInfo indicates an expected call of SetCreateObjectInfo. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetCreateObjectInfo(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetCreateObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateObjectInfo", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetCreateObjectInfo), arg0) } @@ -2134,7 +2130,7 @@ func (m *MockApprovalCreateObjectTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetCreateTime), arg0) } @@ -2146,7 +2142,7 @@ func (m *MockApprovalCreateObjectTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetError), arg0) } @@ -2158,7 +2154,7 @@ func (m *MockApprovalCreateObjectTask) SetExpiredHeight(arg0 uint64) { } // SetExpiredHeight indicates an expected call of SetExpiredHeight. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetExpiredHeight(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetExpiredHeight(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetExpiredHeight", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetExpiredHeight), arg0) } @@ -2170,7 +2166,7 @@ func (m *MockApprovalCreateObjectTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetLogs), logs) } @@ -2182,7 +2178,7 @@ func (m *MockApprovalCreateObjectTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetMaxRetry), arg0) } @@ -2194,7 +2190,7 @@ func (m *MockApprovalCreateObjectTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetPriority), arg0) } @@ -2206,7 +2202,7 @@ func (m *MockApprovalCreateObjectTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetRetry), arg0) } @@ -2218,7 +2214,7 @@ func (m *MockApprovalCreateObjectTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetTimeout), arg0) } @@ -2230,7 +2226,7 @@ func (m *MockApprovalCreateObjectTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetUpdateTime), arg0) } @@ -2242,7 +2238,7 @@ func (m *MockApprovalCreateObjectTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockApprovalCreateObjectTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalCreateObjectTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockApprovalCreateObjectTask)(nil).SetUserAddress), arg0) } @@ -2291,7 +2287,7 @@ func (m *MockApprovalReplicatePieceTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).AppendLog), log) } @@ -2665,7 +2661,7 @@ func (m *MockApprovalReplicatePieceTask) InitApprovalReplicatePieceTask(object * } // InitApprovalReplicatePieceTask indicates an expected call of InitApprovalReplicatePieceTask. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) InitApprovalReplicatePieceTask(object, params, priority, askOpAddress any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) InitApprovalReplicatePieceTask(object, params, priority, askOpAddress interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitApprovalReplicatePieceTask", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).InitApprovalReplicatePieceTask), object, params, priority, askOpAddress) } @@ -2691,7 +2687,7 @@ func (m *MockApprovalReplicatePieceTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetAddress), arg0) } @@ -2703,7 +2699,7 @@ func (m *MockApprovalReplicatePieceTask) SetApprovedSignature(arg0 []byte) { } // SetApprovedSignature indicates an expected call of SetApprovedSignature. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetApprovedSignature(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetApprovedSignature(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetApprovedSignature", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetApprovedSignature), arg0) } @@ -2715,7 +2711,7 @@ func (m *MockApprovalReplicatePieceTask) SetApprovedSpApprovalAddress(arg0 strin } // SetApprovedSpApprovalAddress indicates an expected call of SetApprovedSpApprovalAddress. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetApprovedSpApprovalAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetApprovedSpApprovalAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetApprovedSpApprovalAddress", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetApprovedSpApprovalAddress), arg0) } @@ -2727,7 +2723,7 @@ func (m *MockApprovalReplicatePieceTask) SetApprovedSpEndpoint(arg0 string) { } // SetApprovedSpEndpoint indicates an expected call of SetApprovedSpEndpoint. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetApprovedSpEndpoint(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetApprovedSpEndpoint(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetApprovedSpEndpoint", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetApprovedSpEndpoint), arg0) } @@ -2739,7 +2735,7 @@ func (m *MockApprovalReplicatePieceTask) SetApprovedSpOperatorAddress(arg0 strin } // SetApprovedSpOperatorAddress indicates an expected call of SetApprovedSpOperatorAddress. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetApprovedSpOperatorAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetApprovedSpOperatorAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetApprovedSpOperatorAddress", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetApprovedSpOperatorAddress), arg0) } @@ -2751,7 +2747,7 @@ func (m *MockApprovalReplicatePieceTask) SetAskSignature(arg0 []byte) { } // SetAskSignature indicates an expected call of SetAskSignature. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetAskSignature(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetAskSignature(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAskSignature", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetAskSignature), arg0) } @@ -2763,7 +2759,7 @@ func (m *MockApprovalReplicatePieceTask) SetAskSpOperatorAddress(arg0 string) { } // SetAskSpOperatorAddress indicates an expected call of SetAskSpOperatorAddress. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetAskSpOperatorAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetAskSpOperatorAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAskSpOperatorAddress", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetAskSpOperatorAddress), arg0) } @@ -2775,7 +2771,7 @@ func (m *MockApprovalReplicatePieceTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetCreateTime), arg0) } @@ -2787,7 +2783,7 @@ func (m *MockApprovalReplicatePieceTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetError), arg0) } @@ -2799,7 +2795,7 @@ func (m *MockApprovalReplicatePieceTask) SetExpiredHeight(arg0 uint64) { } // SetExpiredHeight indicates an expected call of SetExpiredHeight. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetExpiredHeight(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetExpiredHeight(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetExpiredHeight", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetExpiredHeight), arg0) } @@ -2811,7 +2807,7 @@ func (m *MockApprovalReplicatePieceTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetLogs), logs) } @@ -2823,7 +2819,7 @@ func (m *MockApprovalReplicatePieceTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetMaxRetry), arg0) } @@ -2835,7 +2831,7 @@ func (m *MockApprovalReplicatePieceTask) SetObjectInfo(arg0 *types0.ObjectInfo) } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetObjectInfo), arg0) } @@ -2847,7 +2843,7 @@ func (m *MockApprovalReplicatePieceTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetPriority), arg0) } @@ -2859,7 +2855,7 @@ func (m *MockApprovalReplicatePieceTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetRetry), arg0) } @@ -2871,7 +2867,7 @@ func (m *MockApprovalReplicatePieceTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetStorageParams), arg0) } @@ -2883,7 +2879,7 @@ func (m *MockApprovalReplicatePieceTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetTimeout), arg0) } @@ -2895,7 +2891,7 @@ func (m *MockApprovalReplicatePieceTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetUpdateTime), arg0) } @@ -2907,7 +2903,7 @@ func (m *MockApprovalReplicatePieceTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockApprovalReplicatePieceTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockApprovalReplicatePieceTask)(nil).SetUserAddress), arg0) } @@ -2956,7 +2952,7 @@ func (m *MockObjectTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockObjectTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockObjectTask)(nil).AppendLog), log) } @@ -3232,7 +3228,7 @@ func (m *MockObjectTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockObjectTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockObjectTask)(nil).SetAddress), arg0) } @@ -3244,7 +3240,7 @@ func (m *MockObjectTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockObjectTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockObjectTask)(nil).SetCreateTime), arg0) } @@ -3256,7 +3252,7 @@ func (m *MockObjectTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockObjectTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockObjectTask)(nil).SetError), arg0) } @@ -3268,7 +3264,7 @@ func (m *MockObjectTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockObjectTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockObjectTask)(nil).SetLogs), logs) } @@ -3280,7 +3276,7 @@ func (m *MockObjectTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockObjectTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockObjectTask)(nil).SetMaxRetry), arg0) } @@ -3292,7 +3288,7 @@ func (m *MockObjectTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockObjectTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockObjectTask)(nil).SetObjectInfo), arg0) } @@ -3304,7 +3300,7 @@ func (m *MockObjectTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockObjectTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockObjectTask)(nil).SetPriority), arg0) } @@ -3316,7 +3312,7 @@ func (m *MockObjectTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockObjectTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockObjectTask)(nil).SetRetry), arg0) } @@ -3328,7 +3324,7 @@ func (m *MockObjectTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockObjectTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockObjectTask)(nil).SetStorageParams), arg0) } @@ -3340,7 +3336,7 @@ func (m *MockObjectTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockObjectTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockObjectTask)(nil).SetTimeout), arg0) } @@ -3352,7 +3348,7 @@ func (m *MockObjectTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockObjectTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockObjectTask)(nil).SetUpdateTime), arg0) } @@ -3364,7 +3360,7 @@ func (m *MockObjectTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockObjectTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockObjectTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockObjectTask)(nil).SetUserAddress), arg0) } @@ -3413,7 +3409,7 @@ func (m *MockUploadObjectTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockUploadObjectTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockUploadObjectTask)(nil).AppendLog), log) } @@ -3689,7 +3685,7 @@ func (m *MockUploadObjectTask) InitUploadObjectTask(vgfID uint32, object *types0 } // InitUploadObjectTask indicates an expected call of InitUploadObjectTask. -func (mr *MockUploadObjectTaskMockRecorder) InitUploadObjectTask(vgfID, object, params, timeout any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) InitUploadObjectTask(vgfID, object, params, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitUploadObjectTask", reflect.TypeOf((*MockUploadObjectTask)(nil).InitUploadObjectTask), vgfID, object, params, timeout) } @@ -3715,7 +3711,7 @@ func (m *MockUploadObjectTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockUploadObjectTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockUploadObjectTask)(nil).SetAddress), arg0) } @@ -3727,7 +3723,7 @@ func (m *MockUploadObjectTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockUploadObjectTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockUploadObjectTask)(nil).SetCreateTime), arg0) } @@ -3739,7 +3735,7 @@ func (m *MockUploadObjectTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockUploadObjectTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockUploadObjectTask)(nil).SetError), arg0) } @@ -3751,7 +3747,7 @@ func (m *MockUploadObjectTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockUploadObjectTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockUploadObjectTask)(nil).SetLogs), logs) } @@ -3763,7 +3759,7 @@ func (m *MockUploadObjectTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockUploadObjectTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockUploadObjectTask)(nil).SetMaxRetry), arg0) } @@ -3775,7 +3771,7 @@ func (m *MockUploadObjectTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockUploadObjectTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockUploadObjectTask)(nil).SetObjectInfo), arg0) } @@ -3787,7 +3783,7 @@ func (m *MockUploadObjectTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockUploadObjectTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockUploadObjectTask)(nil).SetPriority), arg0) } @@ -3799,7 +3795,7 @@ func (m *MockUploadObjectTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockUploadObjectTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockUploadObjectTask)(nil).SetRetry), arg0) } @@ -3811,7 +3807,7 @@ func (m *MockUploadObjectTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockUploadObjectTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockUploadObjectTask)(nil).SetStorageParams), arg0) } @@ -3823,7 +3819,7 @@ func (m *MockUploadObjectTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockUploadObjectTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockUploadObjectTask)(nil).SetTimeout), arg0) } @@ -3835,7 +3831,7 @@ func (m *MockUploadObjectTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockUploadObjectTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockUploadObjectTask)(nil).SetUpdateTime), arg0) } @@ -3847,7 +3843,7 @@ func (m *MockUploadObjectTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockUploadObjectTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockUploadObjectTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockUploadObjectTask)(nil).SetUserAddress), arg0) } @@ -3896,7 +3892,7 @@ func (m *MockResumableUploadObjectTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockResumableUploadObjectTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).AppendLog), log) } @@ -4200,7 +4196,7 @@ func (m *MockResumableUploadObjectTask) InitResumableUploadObjectTask(vgfID uint } // InitResumableUploadObjectTask indicates an expected call of InitResumableUploadObjectTask. -func (mr *MockResumableUploadObjectTaskMockRecorder) InitResumableUploadObjectTask(vgfID, object, params, timeout, complete, offset any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) InitResumableUploadObjectTask(vgfID, object, params, timeout, complete, offset interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitResumableUploadObjectTask", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).InitResumableUploadObjectTask), vgfID, object, params, timeout, complete, offset) } @@ -4226,7 +4222,7 @@ func (m *MockResumableUploadObjectTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetAddress), arg0) } @@ -4238,7 +4234,7 @@ func (m *MockResumableUploadObjectTask) SetCompleted(completed bool) { } // SetCompleted indicates an expected call of SetCompleted. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetCompleted(completed any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetCompleted(completed interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCompleted", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetCompleted), completed) } @@ -4250,7 +4246,7 @@ func (m *MockResumableUploadObjectTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetCreateTime), arg0) } @@ -4262,7 +4258,7 @@ func (m *MockResumableUploadObjectTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetError), arg0) } @@ -4274,7 +4270,7 @@ func (m *MockResumableUploadObjectTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetLogs), logs) } @@ -4286,7 +4282,7 @@ func (m *MockResumableUploadObjectTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetMaxRetry), arg0) } @@ -4298,7 +4294,7 @@ func (m *MockResumableUploadObjectTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetObjectInfo), arg0) } @@ -4310,7 +4306,7 @@ func (m *MockResumableUploadObjectTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetPriority), arg0) } @@ -4322,7 +4318,7 @@ func (m *MockResumableUploadObjectTask) SetResumeOffset(offset uint64) { } // SetResumeOffset indicates an expected call of SetResumeOffset. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetResumeOffset(offset any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetResumeOffset(offset interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetResumeOffset", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetResumeOffset), offset) } @@ -4334,7 +4330,7 @@ func (m *MockResumableUploadObjectTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetRetry), arg0) } @@ -4346,7 +4342,7 @@ func (m *MockResumableUploadObjectTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetStorageParams), arg0) } @@ -4358,7 +4354,7 @@ func (m *MockResumableUploadObjectTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetTimeout), arg0) } @@ -4370,7 +4366,7 @@ func (m *MockResumableUploadObjectTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetUpdateTime), arg0) } @@ -4382,7 +4378,7 @@ func (m *MockResumableUploadObjectTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockResumableUploadObjectTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockResumableUploadObjectTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockResumableUploadObjectTask)(nil).SetUserAddress), arg0) } @@ -4431,7 +4427,7 @@ func (m *MockReplicatePieceTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockReplicatePieceTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockReplicatePieceTask)(nil).AppendLog), log) } @@ -4777,7 +4773,7 @@ func (m *MockReplicatePieceTask) InitReplicatePieceTask(object *types0.ObjectInf } // InitReplicatePieceTask indicates an expected call of InitReplicatePieceTask. -func (mr *MockReplicatePieceTaskMockRecorder) InitReplicatePieceTask(object, params, priority, timeout, retry any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) InitReplicatePieceTask(object, params, priority, timeout, retry interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitReplicatePieceTask", reflect.TypeOf((*MockReplicatePieceTask)(nil).InitReplicatePieceTask), object, params, priority, timeout, retry) } @@ -4803,7 +4799,7 @@ func (m *MockReplicatePieceTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockReplicatePieceTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetAddress), arg0) } @@ -4815,7 +4811,7 @@ func (m *MockReplicatePieceTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockReplicatePieceTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetCreateTime), arg0) } @@ -4827,7 +4823,7 @@ func (m *MockReplicatePieceTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockReplicatePieceTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetError), arg0) } @@ -4839,7 +4835,7 @@ func (m *MockReplicatePieceTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockReplicatePieceTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetLogs), logs) } @@ -4851,7 +4847,7 @@ func (m *MockReplicatePieceTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockReplicatePieceTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetMaxRetry), arg0) } @@ -4863,7 +4859,7 @@ func (m *MockReplicatePieceTask) SetNotAvailableSpIdx(arg0 int32) { } // SetNotAvailableSpIdx indicates an expected call of SetNotAvailableSpIdx. -func (mr *MockReplicatePieceTaskMockRecorder) SetNotAvailableSpIdx(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetNotAvailableSpIdx(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetNotAvailableSpIdx", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetNotAvailableSpIdx), arg0) } @@ -4875,7 +4871,7 @@ func (m *MockReplicatePieceTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockReplicatePieceTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetObjectInfo), arg0) } @@ -4887,7 +4883,7 @@ func (m *MockReplicatePieceTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockReplicatePieceTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetPriority), arg0) } @@ -4899,7 +4895,7 @@ func (m *MockReplicatePieceTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockReplicatePieceTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetRetry), arg0) } @@ -4911,7 +4907,7 @@ func (m *MockReplicatePieceTask) SetSealed(arg0 bool) { } // SetSealed indicates an expected call of SetSealed. -func (mr *MockReplicatePieceTaskMockRecorder) SetSealed(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetSealed(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSealed", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetSealed), arg0) } @@ -4923,7 +4919,7 @@ func (m *MockReplicatePieceTask) SetSecondaryAddresses(arg0 []string) { } // SetSecondaryAddresses indicates an expected call of SetSecondaryAddresses. -func (mr *MockReplicatePieceTaskMockRecorder) SetSecondaryAddresses(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetSecondaryAddresses(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSecondaryAddresses", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetSecondaryAddresses), arg0) } @@ -4935,7 +4931,7 @@ func (m *MockReplicatePieceTask) SetSecondarySignatures(arg0 [][]byte) { } // SetSecondarySignatures indicates an expected call of SetSecondarySignatures. -func (mr *MockReplicatePieceTaskMockRecorder) SetSecondarySignatures(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetSecondarySignatures(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSecondarySignatures", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetSecondarySignatures), arg0) } @@ -4947,7 +4943,7 @@ func (m *MockReplicatePieceTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockReplicatePieceTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetStorageParams), arg0) } @@ -4959,7 +4955,7 @@ func (m *MockReplicatePieceTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockReplicatePieceTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetTimeout), arg0) } @@ -4971,7 +4967,7 @@ func (m *MockReplicatePieceTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockReplicatePieceTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetUpdateTime), arg0) } @@ -4983,7 +4979,7 @@ func (m *MockReplicatePieceTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockReplicatePieceTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockReplicatePieceTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockReplicatePieceTask)(nil).SetUserAddress), arg0) } @@ -5032,7 +5028,7 @@ func (m *MockReceivePieceTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockReceivePieceTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockReceivePieceTask)(nil).AppendLog), log) } @@ -5434,7 +5430,7 @@ func (m *MockReceivePieceTask) InitReceivePieceTask(vgfID uint32, object *types0 } // InitReceivePieceTask indicates an expected call of InitReceivePieceTask. -func (mr *MockReceivePieceTaskMockRecorder) InitReceivePieceTask(vgfID, object, params, priority, segmentIdx, redundancyIdx, pieceSize any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) InitReceivePieceTask(vgfID, object, params, priority, segmentIdx, redundancyIdx, pieceSize interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitReceivePieceTask", reflect.TypeOf((*MockReceivePieceTask)(nil).InitReceivePieceTask), vgfID, object, params, priority, segmentIdx, redundancyIdx, pieceSize) } @@ -5460,7 +5456,7 @@ func (m *MockReceivePieceTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockReceivePieceTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockReceivePieceTask)(nil).SetAddress), arg0) } @@ -5472,7 +5468,7 @@ func (m *MockReceivePieceTask) SetBucketMigration(arg0 bool) { } // SetBucketMigration indicates an expected call of SetBucketMigration. -func (mr *MockReceivePieceTaskMockRecorder) SetBucketMigration(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetBucketMigration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetBucketMigration", reflect.TypeOf((*MockReceivePieceTask)(nil).SetBucketMigration), arg0) } @@ -5484,7 +5480,7 @@ func (m *MockReceivePieceTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockReceivePieceTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockReceivePieceTask)(nil).SetCreateTime), arg0) } @@ -5496,7 +5492,7 @@ func (m *MockReceivePieceTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockReceivePieceTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockReceivePieceTask)(nil).SetError), arg0) } @@ -5508,7 +5504,7 @@ func (m *MockReceivePieceTask) SetFinished(arg0 bool) { } // SetFinished indicates an expected call of SetFinished. -func (mr *MockReceivePieceTaskMockRecorder) SetFinished(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetFinished(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetFinished", reflect.TypeOf((*MockReceivePieceTask)(nil).SetFinished), arg0) } @@ -5520,7 +5516,7 @@ func (m *MockReceivePieceTask) SetGlobalVirtualGroupID(arg0 uint32) { } // SetGlobalVirtualGroupID indicates an expected call of SetGlobalVirtualGroupID. -func (mr *MockReceivePieceTaskMockRecorder) SetGlobalVirtualGroupID(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetGlobalVirtualGroupID(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetGlobalVirtualGroupID", reflect.TypeOf((*MockReceivePieceTask)(nil).SetGlobalVirtualGroupID), arg0) } @@ -5532,7 +5528,7 @@ func (m *MockReceivePieceTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockReceivePieceTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockReceivePieceTask)(nil).SetLogs), logs) } @@ -5544,7 +5540,7 @@ func (m *MockReceivePieceTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockReceivePieceTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockReceivePieceTask)(nil).SetMaxRetry), arg0) } @@ -5556,7 +5552,7 @@ func (m *MockReceivePieceTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockReceivePieceTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockReceivePieceTask)(nil).SetObjectInfo), arg0) } @@ -5568,7 +5564,7 @@ func (m *MockReceivePieceTask) SetPieceChecksum(arg0 []byte) { } // SetPieceChecksum indicates an expected call of SetPieceChecksum. -func (mr *MockReceivePieceTaskMockRecorder) SetPieceChecksum(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetPieceChecksum(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPieceChecksum", reflect.TypeOf((*MockReceivePieceTask)(nil).SetPieceChecksum), arg0) } @@ -5580,7 +5576,7 @@ func (m *MockReceivePieceTask) SetPieceSize(arg0 int64) { } // SetPieceSize indicates an expected call of SetPieceSize. -func (mr *MockReceivePieceTaskMockRecorder) SetPieceSize(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetPieceSize(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPieceSize", reflect.TypeOf((*MockReceivePieceTask)(nil).SetPieceSize), arg0) } @@ -5592,7 +5588,7 @@ func (m *MockReceivePieceTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockReceivePieceTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockReceivePieceTask)(nil).SetPriority), arg0) } @@ -5604,7 +5600,7 @@ func (m *MockReceivePieceTask) SetRedundancyIdx(arg0 int32) { } // SetRedundancyIdx indicates an expected call of SetRedundancyIdx. -func (mr *MockReceivePieceTaskMockRecorder) SetRedundancyIdx(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetRedundancyIdx(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRedundancyIdx", reflect.TypeOf((*MockReceivePieceTask)(nil).SetRedundancyIdx), arg0) } @@ -5616,7 +5612,7 @@ func (m *MockReceivePieceTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockReceivePieceTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockReceivePieceTask)(nil).SetRetry), arg0) } @@ -5628,7 +5624,7 @@ func (m *MockReceivePieceTask) SetSealed(arg0 bool) { } // SetSealed indicates an expected call of SetSealed. -func (mr *MockReceivePieceTaskMockRecorder) SetSealed(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetSealed(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSealed", reflect.TypeOf((*MockReceivePieceTask)(nil).SetSealed), arg0) } @@ -5640,7 +5636,7 @@ func (m *MockReceivePieceTask) SetSegmentIdx(arg0 uint32) { } // SetSegmentIdx indicates an expected call of SetSegmentIdx. -func (mr *MockReceivePieceTaskMockRecorder) SetSegmentIdx(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetSegmentIdx(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSegmentIdx", reflect.TypeOf((*MockReceivePieceTask)(nil).SetSegmentIdx), arg0) } @@ -5652,7 +5648,7 @@ func (m *MockReceivePieceTask) SetSignature(arg0 []byte) { } // SetSignature indicates an expected call of SetSignature. -func (mr *MockReceivePieceTaskMockRecorder) SetSignature(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetSignature(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSignature", reflect.TypeOf((*MockReceivePieceTask)(nil).SetSignature), arg0) } @@ -5664,7 +5660,7 @@ func (m *MockReceivePieceTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockReceivePieceTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockReceivePieceTask)(nil).SetStorageParams), arg0) } @@ -5676,7 +5672,7 @@ func (m *MockReceivePieceTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockReceivePieceTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockReceivePieceTask)(nil).SetTimeout), arg0) } @@ -5688,7 +5684,7 @@ func (m *MockReceivePieceTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockReceivePieceTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockReceivePieceTask)(nil).SetUpdateTime), arg0) } @@ -5700,7 +5696,7 @@ func (m *MockReceivePieceTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockReceivePieceTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockReceivePieceTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockReceivePieceTask)(nil).SetUserAddress), arg0) } @@ -5749,7 +5745,7 @@ func (m *MockSealObjectTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockSealObjectTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockSealObjectTask)(nil).AppendLog), log) } @@ -6053,7 +6049,7 @@ func (m *MockSealObjectTask) InitSealObjectTask(vgfID uint32, object *types0.Obj } // InitSealObjectTask indicates an expected call of InitSealObjectTask. -func (mr *MockSealObjectTaskMockRecorder) InitSealObjectTask(vgfID, object, params, priority, addresses, signatures, timeout, retry any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) InitSealObjectTask(vgfID, object, params, priority, addresses, signatures, timeout, retry interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitSealObjectTask", reflect.TypeOf((*MockSealObjectTask)(nil).InitSealObjectTask), vgfID, object, params, priority, addresses, signatures, timeout, retry) } @@ -6079,7 +6075,7 @@ func (m *MockSealObjectTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockSealObjectTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockSealObjectTask)(nil).SetAddress), arg0) } @@ -6091,7 +6087,7 @@ func (m *MockSealObjectTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockSealObjectTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockSealObjectTask)(nil).SetCreateTime), arg0) } @@ -6103,7 +6099,7 @@ func (m *MockSealObjectTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockSealObjectTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockSealObjectTask)(nil).SetError), arg0) } @@ -6115,7 +6111,7 @@ func (m *MockSealObjectTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockSealObjectTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockSealObjectTask)(nil).SetLogs), logs) } @@ -6127,7 +6123,7 @@ func (m *MockSealObjectTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockSealObjectTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockSealObjectTask)(nil).SetMaxRetry), arg0) } @@ -6139,7 +6135,7 @@ func (m *MockSealObjectTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockSealObjectTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockSealObjectTask)(nil).SetObjectInfo), arg0) } @@ -6151,7 +6147,7 @@ func (m *MockSealObjectTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockSealObjectTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockSealObjectTask)(nil).SetPriority), arg0) } @@ -6163,7 +6159,7 @@ func (m *MockSealObjectTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockSealObjectTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockSealObjectTask)(nil).SetRetry), arg0) } @@ -6175,7 +6171,7 @@ func (m *MockSealObjectTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockSealObjectTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockSealObjectTask)(nil).SetStorageParams), arg0) } @@ -6187,7 +6183,7 @@ func (m *MockSealObjectTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockSealObjectTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockSealObjectTask)(nil).SetTimeout), arg0) } @@ -6199,7 +6195,7 @@ func (m *MockSealObjectTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockSealObjectTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockSealObjectTask)(nil).SetUpdateTime), arg0) } @@ -6211,7 +6207,7 @@ func (m *MockSealObjectTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockSealObjectTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockSealObjectTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockSealObjectTask)(nil).SetUserAddress), arg0) } @@ -6260,7 +6256,7 @@ func (m *MockDownloadObjectTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockDownloadObjectTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockDownloadObjectTask)(nil).AppendLog), log) } @@ -6578,7 +6574,7 @@ func (m *MockDownloadObjectTask) InitDownloadObjectTask(object *types0.ObjectInf } // InitDownloadObjectTask indicates an expected call of InitDownloadObjectTask. -func (mr *MockDownloadObjectTaskMockRecorder) InitDownloadObjectTask(object, bucket, params, priority, userAddress, low, high, timeout, retry any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) InitDownloadObjectTask(object, bucket, params, priority, userAddress, low, high, timeout, retry interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitDownloadObjectTask", reflect.TypeOf((*MockDownloadObjectTask)(nil).InitDownloadObjectTask), object, bucket, params, priority, userAddress, low, high, timeout, retry) } @@ -6604,7 +6600,7 @@ func (m *MockDownloadObjectTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockDownloadObjectTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetAddress), arg0) } @@ -6616,7 +6612,7 @@ func (m *MockDownloadObjectTask) SetBucketInfo(arg0 *types0.BucketInfo) { } // SetBucketInfo indicates an expected call of SetBucketInfo. -func (mr *MockDownloadObjectTaskMockRecorder) SetBucketInfo(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetBucketInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetBucketInfo", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetBucketInfo), arg0) } @@ -6628,7 +6624,7 @@ func (m *MockDownloadObjectTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockDownloadObjectTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetCreateTime), arg0) } @@ -6640,7 +6636,7 @@ func (m *MockDownloadObjectTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockDownloadObjectTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetError), arg0) } @@ -6652,7 +6648,7 @@ func (m *MockDownloadObjectTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockDownloadObjectTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetLogs), logs) } @@ -6664,7 +6660,7 @@ func (m *MockDownloadObjectTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockDownloadObjectTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetMaxRetry), arg0) } @@ -6676,7 +6672,7 @@ func (m *MockDownloadObjectTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockDownloadObjectTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetObjectInfo), arg0) } @@ -6688,7 +6684,7 @@ func (m *MockDownloadObjectTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockDownloadObjectTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetPriority), arg0) } @@ -6700,7 +6696,7 @@ func (m *MockDownloadObjectTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockDownloadObjectTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetRetry), arg0) } @@ -6712,7 +6708,7 @@ func (m *MockDownloadObjectTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockDownloadObjectTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetStorageParams), arg0) } @@ -6724,7 +6720,7 @@ func (m *MockDownloadObjectTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockDownloadObjectTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetTimeout), arg0) } @@ -6736,7 +6732,7 @@ func (m *MockDownloadObjectTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockDownloadObjectTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetUpdateTime), arg0) } @@ -6748,7 +6744,7 @@ func (m *MockDownloadObjectTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockDownloadObjectTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockDownloadObjectTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockDownloadObjectTask)(nil).SetUserAddress), arg0) } @@ -6797,7 +6793,7 @@ func (m *MockDownloadPieceTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockDownloadPieceTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockDownloadPieceTask)(nil).AppendLog), log) } @@ -7157,7 +7153,7 @@ func (m *MockDownloadPieceTask) InitDownloadPieceTask(object *types0.ObjectInfo, } // InitDownloadPieceTask indicates an expected call of InitDownloadPieceTask. -func (mr *MockDownloadPieceTaskMockRecorder) InitDownloadPieceTask(object, bucket, params, priority, enableCheck, userAddress, totalSize, pieceKey, pieceOffset, pieceLength, timeout, maxRetry any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) InitDownloadPieceTask(object, bucket, params, priority, enableCheck, userAddress, totalSize, pieceKey, pieceOffset, pieceLength, timeout, maxRetry interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitDownloadPieceTask", reflect.TypeOf((*MockDownloadPieceTask)(nil).InitDownloadPieceTask), object, bucket, params, priority, enableCheck, userAddress, totalSize, pieceKey, pieceOffset, pieceLength, timeout, maxRetry) } @@ -7183,7 +7179,7 @@ func (m *MockDownloadPieceTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockDownloadPieceTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetAddress), arg0) } @@ -7195,7 +7191,7 @@ func (m *MockDownloadPieceTask) SetBucketInfo(arg0 *types0.BucketInfo) { } // SetBucketInfo indicates an expected call of SetBucketInfo. -func (mr *MockDownloadPieceTaskMockRecorder) SetBucketInfo(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetBucketInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetBucketInfo", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetBucketInfo), arg0) } @@ -7207,7 +7203,7 @@ func (m *MockDownloadPieceTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockDownloadPieceTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetCreateTime), arg0) } @@ -7219,7 +7215,7 @@ func (m *MockDownloadPieceTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockDownloadPieceTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetError), arg0) } @@ -7231,7 +7227,7 @@ func (m *MockDownloadPieceTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockDownloadPieceTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetLogs), logs) } @@ -7243,7 +7239,7 @@ func (m *MockDownloadPieceTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockDownloadPieceTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetMaxRetry), arg0) } @@ -7255,7 +7251,7 @@ func (m *MockDownloadPieceTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockDownloadPieceTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetObjectInfo), arg0) } @@ -7267,7 +7263,7 @@ func (m *MockDownloadPieceTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockDownloadPieceTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetPriority), arg0) } @@ -7279,7 +7275,7 @@ func (m *MockDownloadPieceTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockDownloadPieceTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetRetry), arg0) } @@ -7291,7 +7287,7 @@ func (m *MockDownloadPieceTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockDownloadPieceTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetStorageParams), arg0) } @@ -7303,7 +7299,7 @@ func (m *MockDownloadPieceTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockDownloadPieceTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetTimeout), arg0) } @@ -7315,7 +7311,7 @@ func (m *MockDownloadPieceTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockDownloadPieceTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetUpdateTime), arg0) } @@ -7327,7 +7323,7 @@ func (m *MockDownloadPieceTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockDownloadPieceTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockDownloadPieceTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockDownloadPieceTask)(nil).SetUserAddress), arg0) } @@ -7376,7 +7372,7 @@ func (m *MockChallengePieceTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockChallengePieceTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockChallengePieceTask)(nil).AppendLog), log) } @@ -7722,7 +7718,7 @@ func (m *MockChallengePieceTask) InitChallengePieceTask(object *types0.ObjectInf } // InitChallengePieceTask indicates an expected call of InitChallengePieceTask. -func (mr *MockChallengePieceTaskMockRecorder) InitChallengePieceTask(object, bucket, params, priority, userAddress, replicateIdx, segmentIdx, timeout, retry any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) InitChallengePieceTask(object, bucket, params, priority, userAddress, replicateIdx, segmentIdx, timeout, retry interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitChallengePieceTask", reflect.TypeOf((*MockChallengePieceTask)(nil).InitChallengePieceTask), object, bucket, params, priority, userAddress, replicateIdx, segmentIdx, timeout, retry) } @@ -7748,7 +7744,7 @@ func (m *MockChallengePieceTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockChallengePieceTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockChallengePieceTask)(nil).SetAddress), arg0) } @@ -7760,7 +7756,7 @@ func (m *MockChallengePieceTask) SetBucketInfo(arg0 *types0.BucketInfo) { } // SetBucketInfo indicates an expected call of SetBucketInfo. -func (mr *MockChallengePieceTaskMockRecorder) SetBucketInfo(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetBucketInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetBucketInfo", reflect.TypeOf((*MockChallengePieceTask)(nil).SetBucketInfo), arg0) } @@ -7772,7 +7768,7 @@ func (m *MockChallengePieceTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockChallengePieceTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockChallengePieceTask)(nil).SetCreateTime), arg0) } @@ -7784,7 +7780,7 @@ func (m *MockChallengePieceTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockChallengePieceTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockChallengePieceTask)(nil).SetError), arg0) } @@ -7796,7 +7792,7 @@ func (m *MockChallengePieceTask) SetIntegrityHash(arg0 []byte) { } // SetIntegrityHash indicates an expected call of SetIntegrityHash. -func (mr *MockChallengePieceTaskMockRecorder) SetIntegrityHash(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetIntegrityHash(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetIntegrityHash", reflect.TypeOf((*MockChallengePieceTask)(nil).SetIntegrityHash), arg0) } @@ -7808,7 +7804,7 @@ func (m *MockChallengePieceTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockChallengePieceTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockChallengePieceTask)(nil).SetLogs), logs) } @@ -7820,7 +7816,7 @@ func (m *MockChallengePieceTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockChallengePieceTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockChallengePieceTask)(nil).SetMaxRetry), arg0) } @@ -7832,7 +7828,7 @@ func (m *MockChallengePieceTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockChallengePieceTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockChallengePieceTask)(nil).SetObjectInfo), arg0) } @@ -7844,7 +7840,7 @@ func (m *MockChallengePieceTask) SetPieceDataSize(arg0 int64) { } // SetPieceDataSize indicates an expected call of SetPieceDataSize. -func (mr *MockChallengePieceTaskMockRecorder) SetPieceDataSize(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetPieceDataSize(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPieceDataSize", reflect.TypeOf((*MockChallengePieceTask)(nil).SetPieceDataSize), arg0) } @@ -7856,7 +7852,7 @@ func (m *MockChallengePieceTask) SetPieceHash(arg0 [][]byte) { } // SetPieceHash indicates an expected call of SetPieceHash. -func (mr *MockChallengePieceTaskMockRecorder) SetPieceHash(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetPieceHash(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPieceHash", reflect.TypeOf((*MockChallengePieceTask)(nil).SetPieceHash), arg0) } @@ -7868,7 +7864,7 @@ func (m *MockChallengePieceTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockChallengePieceTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockChallengePieceTask)(nil).SetPriority), arg0) } @@ -7880,7 +7876,7 @@ func (m *MockChallengePieceTask) SetRedundancyIdx(idx int32) { } // SetRedundancyIdx indicates an expected call of SetRedundancyIdx. -func (mr *MockChallengePieceTaskMockRecorder) SetRedundancyIdx(idx any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetRedundancyIdx(idx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRedundancyIdx", reflect.TypeOf((*MockChallengePieceTask)(nil).SetRedundancyIdx), idx) } @@ -7892,7 +7888,7 @@ func (m *MockChallengePieceTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockChallengePieceTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockChallengePieceTask)(nil).SetRetry), arg0) } @@ -7904,7 +7900,7 @@ func (m *MockChallengePieceTask) SetSegmentIdx(arg0 uint32) { } // SetSegmentIdx indicates an expected call of SetSegmentIdx. -func (mr *MockChallengePieceTaskMockRecorder) SetSegmentIdx(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetSegmentIdx(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSegmentIdx", reflect.TypeOf((*MockChallengePieceTask)(nil).SetSegmentIdx), arg0) } @@ -7916,7 +7912,7 @@ func (m *MockChallengePieceTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockChallengePieceTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockChallengePieceTask)(nil).SetStorageParams), arg0) } @@ -7928,7 +7924,7 @@ func (m *MockChallengePieceTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockChallengePieceTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockChallengePieceTask)(nil).SetTimeout), arg0) } @@ -7940,7 +7936,7 @@ func (m *MockChallengePieceTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockChallengePieceTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockChallengePieceTask)(nil).SetUpdateTime), arg0) } @@ -7952,7 +7948,7 @@ func (m *MockChallengePieceTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockChallengePieceTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockChallengePieceTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockChallengePieceTask)(nil).SetUserAddress), arg0) } @@ -8001,7 +7997,7 @@ func (m *MockGCTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockGCTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockGCTask)(nil).AppendLog), log) } @@ -8249,7 +8245,7 @@ func (m *MockGCTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockGCTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockGCTask)(nil).SetAddress), arg0) } @@ -8261,7 +8257,7 @@ func (m *MockGCTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockGCTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockGCTask)(nil).SetCreateTime), arg0) } @@ -8273,7 +8269,7 @@ func (m *MockGCTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockGCTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockGCTask)(nil).SetError), arg0) } @@ -8285,7 +8281,7 @@ func (m *MockGCTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockGCTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockGCTask)(nil).SetLogs), logs) } @@ -8297,7 +8293,7 @@ func (m *MockGCTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockGCTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockGCTask)(nil).SetMaxRetry), arg0) } @@ -8309,7 +8305,7 @@ func (m *MockGCTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockGCTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockGCTask)(nil).SetPriority), arg0) } @@ -8321,7 +8317,7 @@ func (m *MockGCTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockGCTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockGCTask)(nil).SetRetry), arg0) } @@ -8333,7 +8329,7 @@ func (m *MockGCTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockGCTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockGCTask)(nil).SetTimeout), arg0) } @@ -8345,7 +8341,7 @@ func (m *MockGCTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockGCTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockGCTask)(nil).SetUpdateTime), arg0) } @@ -8357,7 +8353,7 @@ func (m *MockGCTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockGCTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockGCTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockGCTask)(nil).SetUserAddress), arg0) } @@ -8406,7 +8402,7 @@ func (m *MockGCObjectTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockGCObjectTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockGCObjectTask)(nil).AppendLog), log) } @@ -8711,7 +8707,7 @@ func (m *MockGCObjectTask) InitGCObjectTask(priority TPriority, start, end uint6 } // InitGCObjectTask indicates an expected call of InitGCObjectTask. -func (mr *MockGCObjectTaskMockRecorder) InitGCObjectTask(priority, start, end, timeout any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) InitGCObjectTask(priority, start, end, timeout interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitGCObjectTask", reflect.TypeOf((*MockGCObjectTask)(nil).InitGCObjectTask), priority, start, end, timeout) } @@ -8737,7 +8733,7 @@ func (m *MockGCObjectTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockGCObjectTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockGCObjectTask)(nil).SetAddress), arg0) } @@ -8749,7 +8745,7 @@ func (m *MockGCObjectTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockGCObjectTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockGCObjectTask)(nil).SetCreateTime), arg0) } @@ -8761,7 +8757,7 @@ func (m *MockGCObjectTask) SetCurrentBlockNumber(arg0 uint64) { } // SetCurrentBlockNumber indicates an expected call of SetCurrentBlockNumber. -func (mr *MockGCObjectTaskMockRecorder) SetCurrentBlockNumber(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetCurrentBlockNumber(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCurrentBlockNumber", reflect.TypeOf((*MockGCObjectTask)(nil).SetCurrentBlockNumber), arg0) } @@ -8773,7 +8769,7 @@ func (m *MockGCObjectTask) SetEndBlockNumber(arg0 uint64) { } // SetEndBlockNumber indicates an expected call of SetEndBlockNumber. -func (mr *MockGCObjectTaskMockRecorder) SetEndBlockNumber(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetEndBlockNumber(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetEndBlockNumber", reflect.TypeOf((*MockGCObjectTask)(nil).SetEndBlockNumber), arg0) } @@ -8785,7 +8781,7 @@ func (m *MockGCObjectTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockGCObjectTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockGCObjectTask)(nil).SetError), arg0) } @@ -8797,7 +8793,7 @@ func (m *MockGCObjectTask) SetGCObjectProgress(arg0, arg1 uint64) { } // SetGCObjectProgress indicates an expected call of SetGCObjectProgress. -func (mr *MockGCObjectTaskMockRecorder) SetGCObjectProgress(arg0, arg1 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetGCObjectProgress(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetGCObjectProgress", reflect.TypeOf((*MockGCObjectTask)(nil).SetGCObjectProgress), arg0, arg1) } @@ -8809,7 +8805,7 @@ func (m *MockGCObjectTask) SetLastDeletedObjectId(arg0 uint64) { } // SetLastDeletedObjectId indicates an expected call of SetLastDeletedObjectId. -func (mr *MockGCObjectTaskMockRecorder) SetLastDeletedObjectId(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetLastDeletedObjectId(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLastDeletedObjectId", reflect.TypeOf((*MockGCObjectTask)(nil).SetLastDeletedObjectId), arg0) } @@ -8821,7 +8817,7 @@ func (m *MockGCObjectTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockGCObjectTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockGCObjectTask)(nil).SetLogs), logs) } @@ -8833,7 +8829,7 @@ func (m *MockGCObjectTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockGCObjectTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockGCObjectTask)(nil).SetMaxRetry), arg0) } @@ -8845,7 +8841,7 @@ func (m *MockGCObjectTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockGCObjectTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockGCObjectTask)(nil).SetPriority), arg0) } @@ -8857,7 +8853,7 @@ func (m *MockGCObjectTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockGCObjectTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockGCObjectTask)(nil).SetRetry), arg0) } @@ -8869,7 +8865,7 @@ func (m *MockGCObjectTask) SetStartBlockNumber(arg0 uint64) { } // SetStartBlockNumber indicates an expected call of SetStartBlockNumber. -func (mr *MockGCObjectTaskMockRecorder) SetStartBlockNumber(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetStartBlockNumber(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStartBlockNumber", reflect.TypeOf((*MockGCObjectTask)(nil).SetStartBlockNumber), arg0) } @@ -8881,7 +8877,7 @@ func (m *MockGCObjectTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockGCObjectTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockGCObjectTask)(nil).SetTimeout), arg0) } @@ -8893,7 +8889,7 @@ func (m *MockGCObjectTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockGCObjectTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockGCObjectTask)(nil).SetUpdateTime), arg0) } @@ -8905,7 +8901,7 @@ func (m *MockGCObjectTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockGCObjectTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockGCObjectTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockGCObjectTask)(nil).SetUserAddress), arg0) } @@ -8954,7 +8950,7 @@ func (m *MockGCZombiePieceTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockGCZombiePieceTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockGCZombiePieceTask)(nil).AppendLog), log) } @@ -9057,19 +9053,75 @@ func (mr *MockGCZombiePieceTaskMockRecorder) GetCreateTime() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCreateTime", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetCreateTime)) } -// GetGCZombiePieceStatus mocks base method. -func (m *MockGCZombiePieceTask) GetGCZombiePieceStatus() (uint64, uint64) { +// GetCurrentBlockNumber mocks base method. +func (m *MockGCZombiePieceTask) GetCurrentBlockNumber() uint64 { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGCZombiePieceStatus") + ret := m.ctrl.Call(m, "GetCurrentBlockNumber") + ret0, _ := ret[0].(uint64) + return ret0 +} + +// GetCurrentBlockNumber indicates an expected call of GetCurrentBlockNumber. +func (mr *MockGCZombiePieceTaskMockRecorder) GetCurrentBlockNumber() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCurrentBlockNumber", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetCurrentBlockNumber)) +} + +// GetEndBlockNumber mocks base method. +func (m *MockGCZombiePieceTask) GetEndBlockNumber() uint64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetEndBlockNumber") + ret0, _ := ret[0].(uint64) + return ret0 +} + +// GetEndBlockNumber indicates an expected call of GetEndBlockNumber. +func (mr *MockGCZombiePieceTaskMockRecorder) GetEndBlockNumber() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEndBlockNumber", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetEndBlockNumber)) +} + +// GetEndObjectId mocks base method. +func (m *MockGCZombiePieceTask) GetEndObjectId() uint64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetEndObjectId") + ret0, _ := ret[0].(uint64) + return ret0 +} + +// GetEndObjectId indicates an expected call of GetEndObjectId. +func (mr *MockGCZombiePieceTaskMockRecorder) GetEndObjectId() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEndObjectId", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetEndObjectId)) +} + +// GetGCObjectProgress mocks base method. +func (m *MockGCZombiePieceTask) GetGCObjectProgress() (uint64, uint64) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetGCObjectProgress") ret0, _ := ret[0].(uint64) ret1, _ := ret[1].(uint64) return ret0, ret1 } -// GetGCZombiePieceStatus indicates an expected call of GetGCZombiePieceStatus. -func (mr *MockGCZombiePieceTaskMockRecorder) GetGCZombiePieceStatus() *gomock.Call { +// GetGCObjectProgress indicates an expected call of GetGCObjectProgress. +func (mr *MockGCZombiePieceTaskMockRecorder) GetGCObjectProgress() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGCObjectProgress", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetGCObjectProgress)) +} + +// GetLastDeletedObjectId mocks base method. +func (m *MockGCZombiePieceTask) GetLastDeletedObjectId() uint64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLastDeletedObjectId") + ret0, _ := ret[0].(uint64) + return ret0 +} + +// GetLastDeletedObjectId indicates an expected call of GetLastDeletedObjectId. +func (mr *MockGCZombiePieceTaskMockRecorder) GetLastDeletedObjectId() *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGCZombiePieceStatus", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetGCZombiePieceStatus)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLastDeletedObjectId", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetLastDeletedObjectId)) } // GetLogs mocks base method. @@ -9128,6 +9180,34 @@ func (mr *MockGCZombiePieceTaskMockRecorder) GetRetry() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRetry", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetRetry)) } +// GetStartBlockNumber mocks base method. +func (m *MockGCZombiePieceTask) GetStartBlockNumber() uint64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetStartBlockNumber") + ret0, _ := ret[0].(uint64) + return ret0 +} + +// GetStartBlockNumber indicates an expected call of GetStartBlockNumber. +func (mr *MockGCZombiePieceTaskMockRecorder) GetStartBlockNumber() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStartBlockNumber", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetStartBlockNumber)) +} + +// GetStartObjectId mocks base method. +func (m *MockGCZombiePieceTask) GetStartObjectId() uint64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetStartObjectId") + ret0, _ := ret[0].(uint64) + return ret0 +} + +// GetStartObjectId indicates an expected call of GetStartObjectId. +func (mr *MockGCZombiePieceTaskMockRecorder) GetStartObjectId() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStartObjectId", reflect.TypeOf((*MockGCZombiePieceTask)(nil).GetStartObjectId)) +} + // GetTimeout mocks base method. func (m *MockGCZombiePieceTask) GetTimeout() int64 { m.ctrl.T.Helper() @@ -9196,6 +9276,18 @@ func (mr *MockGCZombiePieceTaskMockRecorder) Info() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Info", reflect.TypeOf((*MockGCZombiePieceTask)(nil).Info)) } +// InitGCZombiePieceTask mocks base method. +func (m *MockGCZombiePieceTask) InitGCZombiePieceTask(priority TPriority, start, end uint64, timeout int64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "InitGCZombiePieceTask", priority, start, end, timeout) +} + +// InitGCZombiePieceTask indicates an expected call of InitGCZombiePieceTask. +func (mr *MockGCZombiePieceTaskMockRecorder) InitGCZombiePieceTask(priority, start, end, timeout interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitGCZombiePieceTask", reflect.TypeOf((*MockGCZombiePieceTask)(nil).InitGCZombiePieceTask), priority, start, end, timeout) +} + // Key mocks base method. func (m *MockGCZombiePieceTask) Key() TKey { m.ctrl.T.Helper() @@ -9217,7 +9309,7 @@ func (m *MockGCZombiePieceTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockGCZombiePieceTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetAddress), arg0) } @@ -9229,11 +9321,47 @@ func (m *MockGCZombiePieceTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockGCZombiePieceTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetCreateTime), arg0) } +// SetCurrentBlockNumber mocks base method. +func (m *MockGCZombiePieceTask) SetCurrentBlockNumber(arg0 uint64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetCurrentBlockNumber", arg0) +} + +// SetCurrentBlockNumber indicates an expected call of SetCurrentBlockNumber. +func (mr *MockGCZombiePieceTaskMockRecorder) SetCurrentBlockNumber(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCurrentBlockNumber", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetCurrentBlockNumber), arg0) +} + +// SetEndBlockNumber mocks base method. +func (m *MockGCZombiePieceTask) SetEndBlockNumber(arg0 uint64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetEndBlockNumber", arg0) +} + +// SetEndBlockNumber indicates an expected call of SetEndBlockNumber. +func (mr *MockGCZombiePieceTaskMockRecorder) SetEndBlockNumber(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetEndBlockNumber", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetEndBlockNumber), arg0) +} + +// SetEndObjectID mocks base method. +func (m *MockGCZombiePieceTask) SetEndObjectID(arg0 uint64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetEndObjectID", arg0) +} + +// SetEndObjectID indicates an expected call of SetEndObjectID. +func (mr *MockGCZombiePieceTaskMockRecorder) SetEndObjectID(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetEndObjectID", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetEndObjectID), arg0) +} + // SetError mocks base method. func (m *MockGCZombiePieceTask) SetError(arg0 error) { m.ctrl.T.Helper() @@ -9241,21 +9369,33 @@ func (m *MockGCZombiePieceTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockGCZombiePieceTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetError), arg0) } -// SetGCZombiePieceStatus mocks base method. -func (m *MockGCZombiePieceTask) SetGCZombiePieceStatus(arg0, arg1 uint64) { +// SetGCObjectProgress mocks base method. +func (m *MockGCZombiePieceTask) SetGCObjectProgress(arg0, arg1 uint64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetGCObjectProgress", arg0, arg1) +} + +// SetGCObjectProgress indicates an expected call of SetGCObjectProgress. +func (mr *MockGCZombiePieceTaskMockRecorder) SetGCObjectProgress(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetGCObjectProgress", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetGCObjectProgress), arg0, arg1) +} + +// SetLastDeletedObjectId mocks base method. +func (m *MockGCZombiePieceTask) SetLastDeletedObjectId(arg0 uint64) { m.ctrl.T.Helper() - m.ctrl.Call(m, "SetGCZombiePieceStatus", arg0, arg1) + m.ctrl.Call(m, "SetLastDeletedObjectId", arg0) } -// SetGCZombiePieceStatus indicates an expected call of SetGCZombiePieceStatus. -func (mr *MockGCZombiePieceTaskMockRecorder) SetGCZombiePieceStatus(arg0, arg1 any) *gomock.Call { +// SetLastDeletedObjectId indicates an expected call of SetLastDeletedObjectId. +func (mr *MockGCZombiePieceTaskMockRecorder) SetLastDeletedObjectId(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetGCZombiePieceStatus", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetGCZombiePieceStatus), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLastDeletedObjectId", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetLastDeletedObjectId), arg0) } // SetLogs mocks base method. @@ -9265,7 +9405,7 @@ func (m *MockGCZombiePieceTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockGCZombiePieceTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetLogs), logs) } @@ -9277,7 +9417,7 @@ func (m *MockGCZombiePieceTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockGCZombiePieceTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetMaxRetry), arg0) } @@ -9289,7 +9429,7 @@ func (m *MockGCZombiePieceTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockGCZombiePieceTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetPriority), arg0) } @@ -9301,11 +9441,35 @@ func (m *MockGCZombiePieceTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockGCZombiePieceTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetRetry), arg0) } +// SetStartBlockNumber mocks base method. +func (m *MockGCZombiePieceTask) SetStartBlockNumber(arg0 uint64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetStartBlockNumber", arg0) +} + +// SetStartBlockNumber indicates an expected call of SetStartBlockNumber. +func (mr *MockGCZombiePieceTaskMockRecorder) SetStartBlockNumber(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStartBlockNumber", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetStartBlockNumber), arg0) +} + +// SetStartObjectID mocks base method. +func (m *MockGCZombiePieceTask) SetStartObjectID(arg0 uint64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetStartObjectID", arg0) +} + +// SetStartObjectID indicates an expected call of SetStartObjectID. +func (mr *MockGCZombiePieceTaskMockRecorder) SetStartObjectID(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStartObjectID", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetStartObjectID), arg0) +} + // SetTimeout mocks base method. func (m *MockGCZombiePieceTask) SetTimeout(arg0 int64) { m.ctrl.T.Helper() @@ -9313,7 +9477,7 @@ func (m *MockGCZombiePieceTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockGCZombiePieceTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetTimeout), arg0) } @@ -9325,7 +9489,7 @@ func (m *MockGCZombiePieceTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockGCZombiePieceTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetUpdateTime), arg0) } @@ -9337,7 +9501,7 @@ func (m *MockGCZombiePieceTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockGCZombiePieceTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockGCZombiePieceTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockGCZombiePieceTask)(nil).SetUserAddress), arg0) } @@ -9386,7 +9550,7 @@ func (m *MockGCMetaTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockGCMetaTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockGCMetaTask)(nil).AppendLog), log) } @@ -9649,7 +9813,7 @@ func (m *MockGCMetaTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockGCMetaTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockGCMetaTask)(nil).SetAddress), arg0) } @@ -9661,7 +9825,7 @@ func (m *MockGCMetaTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockGCMetaTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockGCMetaTask)(nil).SetCreateTime), arg0) } @@ -9673,7 +9837,7 @@ func (m *MockGCMetaTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockGCMetaTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockGCMetaTask)(nil).SetError), arg0) } @@ -9685,7 +9849,7 @@ func (m *MockGCMetaTask) SetGCMetaStatus(arg0, arg1 uint64) { } // SetGCMetaStatus indicates an expected call of SetGCMetaStatus. -func (mr *MockGCMetaTaskMockRecorder) SetGCMetaStatus(arg0, arg1 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetGCMetaStatus(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetGCMetaStatus", reflect.TypeOf((*MockGCMetaTask)(nil).SetGCMetaStatus), arg0, arg1) } @@ -9697,7 +9861,7 @@ func (m *MockGCMetaTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockGCMetaTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockGCMetaTask)(nil).SetLogs), logs) } @@ -9709,7 +9873,7 @@ func (m *MockGCMetaTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockGCMetaTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockGCMetaTask)(nil).SetMaxRetry), arg0) } @@ -9721,7 +9885,7 @@ func (m *MockGCMetaTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockGCMetaTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockGCMetaTask)(nil).SetPriority), arg0) } @@ -9733,7 +9897,7 @@ func (m *MockGCMetaTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockGCMetaTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockGCMetaTask)(nil).SetRetry), arg0) } @@ -9745,7 +9909,7 @@ func (m *MockGCMetaTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockGCMetaTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockGCMetaTask)(nil).SetTimeout), arg0) } @@ -9757,7 +9921,7 @@ func (m *MockGCMetaTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockGCMetaTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockGCMetaTask)(nil).SetUpdateTime), arg0) } @@ -9769,7 +9933,7 @@ func (m *MockGCMetaTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockGCMetaTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockGCMetaTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockGCMetaTask)(nil).SetUserAddress), arg0) } @@ -9818,7 +9982,7 @@ func (m *MockRecoveryPieceTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockRecoveryPieceTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockRecoveryPieceTask)(nil).AppendLog), log) } @@ -10150,7 +10314,7 @@ func (m *MockRecoveryPieceTask) InitRecoverPieceTask(object *types0.ObjectInfo, } // InitRecoverPieceTask indicates an expected call of InitRecoverPieceTask. -func (mr *MockRecoveryPieceTaskMockRecorder) InitRecoverPieceTask(object, params, priority, pieceIdx, ecIdx, pieceSize, timeout, retry any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) InitRecoverPieceTask(object, params, priority, pieceIdx, ecIdx, pieceSize, timeout, retry interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitRecoverPieceTask", reflect.TypeOf((*MockRecoveryPieceTask)(nil).InitRecoverPieceTask), object, params, priority, pieceIdx, ecIdx, pieceSize, timeout, retry) } @@ -10176,7 +10340,7 @@ func (m *MockRecoveryPieceTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockRecoveryPieceTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetAddress), arg0) } @@ -10188,7 +10352,7 @@ func (m *MockRecoveryPieceTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockRecoveryPieceTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetCreateTime), arg0) } @@ -10200,7 +10364,7 @@ func (m *MockRecoveryPieceTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockRecoveryPieceTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetError), arg0) } @@ -10212,7 +10376,7 @@ func (m *MockRecoveryPieceTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockRecoveryPieceTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetLogs), logs) } @@ -10224,7 +10388,7 @@ func (m *MockRecoveryPieceTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockRecoveryPieceTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetMaxRetry), arg0) } @@ -10236,7 +10400,7 @@ func (m *MockRecoveryPieceTask) SetObjectInfo(arg0 *types0.ObjectInfo) { } // SetObjectInfo indicates an expected call of SetObjectInfo. -func (mr *MockRecoveryPieceTaskMockRecorder) SetObjectInfo(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetObjectInfo(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetObjectInfo", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetObjectInfo), arg0) } @@ -10248,7 +10412,7 @@ func (m *MockRecoveryPieceTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockRecoveryPieceTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetPriority), arg0) } @@ -10272,7 +10436,7 @@ func (m *MockRecoveryPieceTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockRecoveryPieceTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetRetry), arg0) } @@ -10284,7 +10448,7 @@ func (m *MockRecoveryPieceTask) SetSignature(arg0 []byte) { } // SetSignature indicates an expected call of SetSignature. -func (mr *MockRecoveryPieceTaskMockRecorder) SetSignature(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetSignature(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSignature", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetSignature), arg0) } @@ -10296,7 +10460,7 @@ func (m *MockRecoveryPieceTask) SetStorageParams(arg0 *types0.Params) { } // SetStorageParams indicates an expected call of SetStorageParams. -func (mr *MockRecoveryPieceTaskMockRecorder) SetStorageParams(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetStorageParams(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetStorageParams", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetStorageParams), arg0) } @@ -10308,7 +10472,7 @@ func (m *MockRecoveryPieceTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockRecoveryPieceTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetTimeout), arg0) } @@ -10320,7 +10484,7 @@ func (m *MockRecoveryPieceTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockRecoveryPieceTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetUpdateTime), arg0) } @@ -10332,7 +10496,7 @@ func (m *MockRecoveryPieceTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockRecoveryPieceTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockRecoveryPieceTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockRecoveryPieceTask)(nil).SetUserAddress), arg0) } @@ -10381,7 +10545,7 @@ func (m *MockMigrateGVGTask) AppendLog(log string) { } // AppendLog indicates an expected call of AppendLog. -func (mr *MockMigrateGVGTaskMockRecorder) AppendLog(log any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockMigrateGVGTask)(nil).AppendLog), log) } @@ -10741,7 +10905,7 @@ func (m *MockMigrateGVGTask) InitMigrateGVGTask(priority TPriority, bucketID uin } // InitMigrateGVGTask indicates an expected call of InitMigrateGVGTask. -func (mr *MockMigrateGVGTaskMockRecorder) InitMigrateGVGTask(priority, bucketID, srcGvg, redundancyIndex, srcSP, timeout, retry any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) InitMigrateGVGTask(priority, bucketID, srcGvg, redundancyIndex, srcSP, timeout, retry interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitMigrateGVGTask", reflect.TypeOf((*MockMigrateGVGTask)(nil).InitMigrateGVGTask), priority, bucketID, srcGvg, redundancyIndex, srcSP, timeout, retry) } @@ -10767,7 +10931,7 @@ func (m *MockMigrateGVGTask) SetAddress(arg0 string) { } // SetAddress indicates an expected call of SetAddress. -func (mr *MockMigrateGVGTaskMockRecorder) SetAddress(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetAddress), arg0) } @@ -10779,7 +10943,7 @@ func (m *MockMigrateGVGTask) SetBucketID(arg0 uint64) { } // SetBucketID indicates an expected call of SetBucketID. -func (mr *MockMigrateGVGTaskMockRecorder) SetBucketID(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetBucketID(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetBucketID", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetBucketID), arg0) } @@ -10791,7 +10955,7 @@ func (m *MockMigrateGVGTask) SetCreateTime(arg0 int64) { } // SetCreateTime indicates an expected call of SetCreateTime. -func (mr *MockMigrateGVGTaskMockRecorder) SetCreateTime(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetCreateTime), arg0) } @@ -10803,7 +10967,7 @@ func (m *MockMigrateGVGTask) SetDestGvg(arg0 *types1.GlobalVirtualGroup) { } // SetDestGvg indicates an expected call of SetDestGvg. -func (mr *MockMigrateGVGTaskMockRecorder) SetDestGvg(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetDestGvg(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetDestGvg", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetDestGvg), arg0) } @@ -10815,7 +10979,7 @@ func (m *MockMigrateGVGTask) SetError(arg0 error) { } // SetError indicates an expected call of SetError. -func (mr *MockMigrateGVGTaskMockRecorder) SetError(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetError), arg0) } @@ -10827,7 +10991,7 @@ func (m *MockMigrateGVGTask) SetFinished(arg0 bool) { } // SetFinished indicates an expected call of SetFinished. -func (mr *MockMigrateGVGTaskMockRecorder) SetFinished(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetFinished(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetFinished", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetFinished), arg0) } @@ -10839,7 +11003,7 @@ func (m *MockMigrateGVGTask) SetLastMigratedObjectID(arg0 uint64) { } // SetLastMigratedObjectID indicates an expected call of SetLastMigratedObjectID. -func (mr *MockMigrateGVGTaskMockRecorder) SetLastMigratedObjectID(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetLastMigratedObjectID(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLastMigratedObjectID", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetLastMigratedObjectID), arg0) } @@ -10851,7 +11015,7 @@ func (m *MockMigrateGVGTask) SetLogs(logs string) { } // SetLogs indicates an expected call of SetLogs. -func (mr *MockMigrateGVGTaskMockRecorder) SetLogs(logs any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetLogs), logs) } @@ -10863,7 +11027,7 @@ func (m *MockMigrateGVGTask) SetMaxRetry(arg0 int64) { } // SetMaxRetry indicates an expected call of SetMaxRetry. -func (mr *MockMigrateGVGTaskMockRecorder) SetMaxRetry(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetMaxRetry), arg0) } @@ -10875,7 +11039,7 @@ func (m *MockMigrateGVGTask) SetMigratedBytesSize(arg0 uint64) { } // SetMigratedBytesSize indicates an expected call of SetMigratedBytesSize. -func (mr *MockMigrateGVGTaskMockRecorder) SetMigratedBytesSize(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetMigratedBytesSize(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMigratedBytesSize", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetMigratedBytesSize), arg0) } @@ -10887,7 +11051,7 @@ func (m *MockMigrateGVGTask) SetPriority(arg0 TPriority) { } // SetPriority indicates an expected call of SetPriority. -func (mr *MockMigrateGVGTaskMockRecorder) SetPriority(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetPriority), arg0) } @@ -10899,7 +11063,7 @@ func (m *MockMigrateGVGTask) SetRedundancyIdx(arg0 int32) { } // SetRedundancyIdx indicates an expected call of SetRedundancyIdx. -func (mr *MockMigrateGVGTaskMockRecorder) SetRedundancyIdx(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetRedundancyIdx(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRedundancyIdx", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetRedundancyIdx), arg0) } @@ -10911,7 +11075,7 @@ func (m *MockMigrateGVGTask) SetRetry(arg0 int) { } // SetRetry indicates an expected call of SetRetry. -func (mr *MockMigrateGVGTaskMockRecorder) SetRetry(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetRetry), arg0) } @@ -10923,7 +11087,7 @@ func (m *MockMigrateGVGTask) SetSignature(arg0 []byte) { } // SetSignature indicates an expected call of SetSignature. -func (mr *MockMigrateGVGTaskMockRecorder) SetSignature(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetSignature(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSignature", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetSignature), arg0) } @@ -10935,7 +11099,7 @@ func (m *MockMigrateGVGTask) SetSrcGvg(arg0 *types1.GlobalVirtualGroup) { } // SetSrcGvg indicates an expected call of SetSrcGvg. -func (mr *MockMigrateGVGTaskMockRecorder) SetSrcGvg(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetSrcGvg(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSrcGvg", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetSrcGvg), arg0) } @@ -10947,7 +11111,7 @@ func (m *MockMigrateGVGTask) SetSrcSp(arg0 *types.StorageProvider) { } // SetSrcSp indicates an expected call of SetSrcSp. -func (mr *MockMigrateGVGTaskMockRecorder) SetSrcSp(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetSrcSp(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetSrcSp", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetSrcSp), arg0) } @@ -10959,7 +11123,7 @@ func (m *MockMigrateGVGTask) SetTimeout(arg0 int64) { } // SetTimeout indicates an expected call of SetTimeout. -func (mr *MockMigrateGVGTaskMockRecorder) SetTimeout(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetTimeout), arg0) } @@ -10971,7 +11135,7 @@ func (m *MockMigrateGVGTask) SetUpdateTime(arg0 int64) { } // SetUpdateTime indicates an expected call of SetUpdateTime. -func (mr *MockMigrateGVGTaskMockRecorder) SetUpdateTime(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetUpdateTime), arg0) } @@ -10983,7 +11147,7 @@ func (m *MockMigrateGVGTask) SetUserAddress(arg0 string) { } // SetUserAddress indicates an expected call of SetUserAddress. -func (mr *MockMigrateGVGTaskMockRecorder) SetUserAddress(arg0 any) *gomock.Call { +func (mr *MockMigrateGVGTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockMigrateGVGTask)(nil).SetUserAddress), arg0) } @@ -11001,3 +11165,446 @@ func (mr *MockMigrateGVGTaskMockRecorder) Type() *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Type", reflect.TypeOf((*MockMigrateGVGTask)(nil).Type)) } + +// MockGCBucketMigrationTask is a mock of GCBucketMigrationTask interface. +type MockGCBucketMigrationTask struct { + ctrl *gomock.Controller + recorder *MockGCBucketMigrationTaskMockRecorder +} + +// MockGCBucketMigrationTaskMockRecorder is the mock recorder for MockGCBucketMigrationTask. +type MockGCBucketMigrationTaskMockRecorder struct { + mock *MockGCBucketMigrationTask +} + +// NewMockGCBucketMigrationTask creates a new mock instance. +func NewMockGCBucketMigrationTask(ctrl *gomock.Controller) *MockGCBucketMigrationTask { + mock := &MockGCBucketMigrationTask{ctrl: ctrl} + mock.recorder = &MockGCBucketMigrationTaskMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockGCBucketMigrationTask) EXPECT() *MockGCBucketMigrationTaskMockRecorder { + return m.recorder +} + +// AppendLog mocks base method. +func (m *MockGCBucketMigrationTask) AppendLog(log string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "AppendLog", log) +} + +// AppendLog indicates an expected call of AppendLog. +func (mr *MockGCBucketMigrationTaskMockRecorder) AppendLog(log interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AppendLog", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).AppendLog), log) +} + +// Error mocks base method. +func (m *MockGCBucketMigrationTask) Error() error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Error") + ret0, _ := ret[0].(error) + return ret0 +} + +// Error indicates an expected call of Error. +func (mr *MockGCBucketMigrationTaskMockRecorder) Error() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Error", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).Error)) +} + +// EstimateLimit mocks base method. +func (m *MockGCBucketMigrationTask) EstimateLimit() rcmgr.Limit { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "EstimateLimit") + ret0, _ := ret[0].(rcmgr.Limit) + return ret0 +} + +// EstimateLimit indicates an expected call of EstimateLimit. +func (mr *MockGCBucketMigrationTaskMockRecorder) EstimateLimit() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EstimateLimit", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).EstimateLimit)) +} + +// ExceedRetry mocks base method. +func (m *MockGCBucketMigrationTask) ExceedRetry() bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExceedRetry") + ret0, _ := ret[0].(bool) + return ret0 +} + +// ExceedRetry indicates an expected call of ExceedRetry. +func (mr *MockGCBucketMigrationTaskMockRecorder) ExceedRetry() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExceedRetry", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).ExceedRetry)) +} + +// ExceedTimeout mocks base method. +func (m *MockGCBucketMigrationTask) ExceedTimeout() bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExceedTimeout") + ret0, _ := ret[0].(bool) + return ret0 +} + +// ExceedTimeout indicates an expected call of ExceedTimeout. +func (mr *MockGCBucketMigrationTaskMockRecorder) ExceedTimeout() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExceedTimeout", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).ExceedTimeout)) +} + +// Expired mocks base method. +func (m *MockGCBucketMigrationTask) Expired() bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Expired") + ret0, _ := ret[0].(bool) + return ret0 +} + +// Expired indicates an expected call of Expired. +func (mr *MockGCBucketMigrationTaskMockRecorder) Expired() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Expired", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).Expired)) +} + +// GetAddress mocks base method. +func (m *MockGCBucketMigrationTask) GetAddress() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAddress") + ret0, _ := ret[0].(string) + return ret0 +} + +// GetAddress indicates an expected call of GetAddress. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetAddress() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAddress", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetAddress)) +} + +// GetBucketID mocks base method. +func (m *MockGCBucketMigrationTask) GetBucketID() uint64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBucketID") + ret0, _ := ret[0].(uint64) + return ret0 +} + +// GetBucketID indicates an expected call of GetBucketID. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetBucketID() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketID", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetBucketID)) +} + +// GetCreateTime mocks base method. +func (m *MockGCBucketMigrationTask) GetCreateTime() int64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCreateTime") + ret0, _ := ret[0].(int64) + return ret0 +} + +// GetCreateTime indicates an expected call of GetCreateTime. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetCreateTime() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCreateTime", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetCreateTime)) +} + +// GetLogs mocks base method. +func (m *MockGCBucketMigrationTask) GetLogs() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLogs") + ret0, _ := ret[0].(string) + return ret0 +} + +// GetLogs indicates an expected call of GetLogs. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetLogs() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLogs", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetLogs)) +} + +// GetMaxRetry mocks base method. +func (m *MockGCBucketMigrationTask) GetMaxRetry() int64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetMaxRetry") + ret0, _ := ret[0].(int64) + return ret0 +} + +// GetMaxRetry indicates an expected call of GetMaxRetry. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetMaxRetry() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMaxRetry", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetMaxRetry)) +} + +// GetPriority mocks base method. +func (m *MockGCBucketMigrationTask) GetPriority() TPriority { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPriority") + ret0, _ := ret[0].(TPriority) + return ret0 +} + +// GetPriority indicates an expected call of GetPriority. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetPriority() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPriority", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetPriority)) +} + +// GetRetry mocks base method. +func (m *MockGCBucketMigrationTask) GetRetry() int64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetRetry") + ret0, _ := ret[0].(int64) + return ret0 +} + +// GetRetry indicates an expected call of GetRetry. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetRetry() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRetry", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetRetry)) +} + +// GetTimeout mocks base method. +func (m *MockGCBucketMigrationTask) GetTimeout() int64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTimeout") + ret0, _ := ret[0].(int64) + return ret0 +} + +// GetTimeout indicates an expected call of GetTimeout. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetTimeout() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTimeout", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetTimeout)) +} + +// GetUpdateTime mocks base method. +func (m *MockGCBucketMigrationTask) GetUpdateTime() int64 { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUpdateTime") + ret0, _ := ret[0].(int64) + return ret0 +} + +// GetUpdateTime indicates an expected call of GetUpdateTime. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetUpdateTime() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUpdateTime", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetUpdateTime)) +} + +// GetUserAddress mocks base method. +func (m *MockGCBucketMigrationTask) GetUserAddress() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserAddress") + ret0, _ := ret[0].(string) + return ret0 +} + +// GetUserAddress indicates an expected call of GetUserAddress. +func (mr *MockGCBucketMigrationTaskMockRecorder) GetUserAddress() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserAddress", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).GetUserAddress)) +} + +// IncRetry mocks base method. +func (m *MockGCBucketMigrationTask) IncRetry() { + m.ctrl.T.Helper() + m.ctrl.Call(m, "IncRetry") +} + +// IncRetry indicates an expected call of IncRetry. +func (mr *MockGCBucketMigrationTaskMockRecorder) IncRetry() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IncRetry", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).IncRetry)) +} + +// Info mocks base method. +func (m *MockGCBucketMigrationTask) Info() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Info") + ret0, _ := ret[0].(string) + return ret0 +} + +// Info indicates an expected call of Info. +func (mr *MockGCBucketMigrationTaskMockRecorder) Info() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Info", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).Info)) +} + +// InitGCBucketMigrationTask mocks base method. +func (m *MockGCBucketMigrationTask) InitGCBucketMigrationTask(priority TPriority, bucketID uint64, timeout, retry int64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "InitGCBucketMigrationTask", priority, bucketID, timeout, retry) +} + +// InitGCBucketMigrationTask indicates an expected call of InitGCBucketMigrationTask. +func (mr *MockGCBucketMigrationTaskMockRecorder) InitGCBucketMigrationTask(priority, bucketID, timeout, retry interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitGCBucketMigrationTask", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).InitGCBucketMigrationTask), priority, bucketID, timeout, retry) +} + +// Key mocks base method. +func (m *MockGCBucketMigrationTask) Key() TKey { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Key") + ret0, _ := ret[0].(TKey) + return ret0 +} + +// Key indicates an expected call of Key. +func (mr *MockGCBucketMigrationTaskMockRecorder) Key() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Key", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).Key)) +} + +// SetAddress mocks base method. +func (m *MockGCBucketMigrationTask) SetAddress(arg0 string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetAddress", arg0) +} + +// SetAddress indicates an expected call of SetAddress. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetAddress(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetAddress", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetAddress), arg0) +} + +// SetBucketID mocks base method. +func (m *MockGCBucketMigrationTask) SetBucketID(arg0 uint64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetBucketID", arg0) +} + +// SetBucketID indicates an expected call of SetBucketID. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetBucketID(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetBucketID", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetBucketID), arg0) +} + +// SetCreateTime mocks base method. +func (m *MockGCBucketMigrationTask) SetCreateTime(arg0 int64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetCreateTime", arg0) +} + +// SetCreateTime indicates an expected call of SetCreateTime. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetCreateTime(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCreateTime", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetCreateTime), arg0) +} + +// SetError mocks base method. +func (m *MockGCBucketMigrationTask) SetError(arg0 error) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetError", arg0) +} + +// SetError indicates an expected call of SetError. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetError(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetError", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetError), arg0) +} + +// SetLogs mocks base method. +func (m *MockGCBucketMigrationTask) SetLogs(logs string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetLogs", logs) +} + +// SetLogs indicates an expected call of SetLogs. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetLogs(logs interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetLogs", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetLogs), logs) +} + +// SetMaxRetry mocks base method. +func (m *MockGCBucketMigrationTask) SetMaxRetry(arg0 int64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetMaxRetry", arg0) +} + +// SetMaxRetry indicates an expected call of SetMaxRetry. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetMaxRetry(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMaxRetry", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetMaxRetry), arg0) +} + +// SetPriority mocks base method. +func (m *MockGCBucketMigrationTask) SetPriority(arg0 TPriority) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetPriority", arg0) +} + +// SetPriority indicates an expected call of SetPriority. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetPriority(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetPriority", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetPriority), arg0) +} + +// SetRetry mocks base method. +func (m *MockGCBucketMigrationTask) SetRetry(arg0 int) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetRetry", arg0) +} + +// SetRetry indicates an expected call of SetRetry. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetRetry(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetRetry", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetRetry), arg0) +} + +// SetTimeout mocks base method. +func (m *MockGCBucketMigrationTask) SetTimeout(arg0 int64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetTimeout", arg0) +} + +// SetTimeout indicates an expected call of SetTimeout. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetTimeout(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTimeout", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetTimeout), arg0) +} + +// SetUpdateTime mocks base method. +func (m *MockGCBucketMigrationTask) SetUpdateTime(arg0 int64) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetUpdateTime", arg0) +} + +// SetUpdateTime indicates an expected call of SetUpdateTime. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetUpdateTime(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUpdateTime", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetUpdateTime), arg0) +} + +// SetUserAddress mocks base method. +func (m *MockGCBucketMigrationTask) SetUserAddress(arg0 string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetUserAddress", arg0) +} + +// SetUserAddress indicates an expected call of SetUserAddress. +func (mr *MockGCBucketMigrationTaskMockRecorder) SetUserAddress(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetUserAddress", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).SetUserAddress), arg0) +} + +// Type mocks base method. +func (m *MockGCBucketMigrationTask) Type() TType { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Type") + ret0, _ := ret[0].(TType) + return ret0 +} + +// Type indicates an expected call of Type. +func (mr *MockGCBucketMigrationTaskMockRecorder) Type() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Type", reflect.TypeOf((*MockGCBucketMigrationTask)(nil).Type)) +} diff --git a/deployment/localup/localup.sh b/deployment/localup/localup.sh index 09d803aac..9218c8139 100644 --- a/deployment/localup/localup.sh +++ b/deployment/localup/localup.sh @@ -156,6 +156,8 @@ function make_config() { sed -i -e "s/SubscribeSwapOutExitEventIntervalMillisecond = .*/SubscribeSwapOutExitEventIntervalMillisecond = 100/g" config.toml sed -i -e "s/SubscribeBucketMigrateEventIntervalMillisecond = .*/SubscribeBucketMigrateEventIntervalMillisecond = 20/g" config.toml sed -i -e "s/GVGPreferSPList = \[\]/GVGPreferSPList = \[1,2,3,4,5,6,7,8\]/g" config.toml + sed -i -e "s/GCZombieEnabled = .*/GCZombieEnabled = true/g" config.toml + sed -i -e "s/GCMetaEnabled = .*/GCMetaEnabled = true/g" config.toml echo "succeed to generate config.toml in "${sp_dir} cd - >/dev/null @@ -168,6 +170,7 @@ function make_config() { ############# function start_sp() { index=0 + sleep 5 for sp_dir in ${workspace}/${SP_DEPLOY_DIR}/* ; do cd ${sp_dir} || exit 1 nohup ./${sp_bin_name}${index} --config config.toml log.txt 2>&1& diff --git a/modular/approver/approve_task.go b/modular/approver/approve_task.go index 52d8085dc..68da48f38 100644 --- a/modular/approver/approve_task.go +++ b/modular/approver/approve_task.go @@ -155,9 +155,9 @@ func (a *ApprovalModular) HandleMigrateBucketApprovalTask(ctx context.Context, t } // check src sp has enough quota - success, err := a.migrateBucketQuotaCheck(ctx, task) - if err != nil { - return success, err + allow, err := a.migrateBucketQuotaCheck(ctx, task) + if err != nil || !allow { + return allow, err } // begin to sign the new approval task @@ -244,9 +244,9 @@ func (a *ApprovalModular) migrateBucketQuotaCheck(ctx context.Context, task core signature []byte err error ) - msgMigrateBucket := task.GetMigrateBucketInfo() - log.CtxDebugw(ctx, "start to check migrate bucket bucket info", "migrate_bucket_info", msgMigrateBucket) - bucketMeta, _, err := a.baseApp.GfSpClient().GetBucketMeta(ctx, msgMigrateBucket.GetBucketName(), true) + migrateBucketMsg := task.GetMigrateBucketInfo() + log.CtxDebugw(ctx, "start to check source sp whether has enough quota to execute bucket migration", "migrate_bucket_msg", migrateBucketMsg) + bucketMeta, _, err := a.baseApp.GfSpClient().GetBucketMeta(ctx, migrateBucketMsg.GetBucketName(), true) if err != nil { return false, err } @@ -259,21 +259,21 @@ func (a *ApprovalModular) migrateBucketQuotaCheck(ctx context.Context, task core return false, ErrSignerWithDetail("failed to query sp info, error: " + err.Error()) } - queryMsg := &gfsptask.GfSpBucketMigrationInfo{BucketId: bucketID} - queryMsg.ExpireTime = time.Now().Unix() + SigExpireTimeSecond - signature, err = a.baseApp.GfSpClient().SignBucketMigrationInfo(context.Background(), queryMsg) + bucketMigrationInfo := &gfsptask.GfSpBucketMigrationInfo{BucketId: bucketID} + bucketMigrationInfo.ExpireTime = time.Now().Unix() + SigExpireTimeSecond + signature, err = a.baseApp.GfSpClient().SignBucketMigrationInfo(context.Background(), bucketMigrationInfo) if err != nil { - log.Errorw("failed to sign migrate bucket", "migrate_bucket_info", queryMsg, "error", err) + log.Errorw("failed to sign migrate bucket", "bucket_migration_info", bucketMigrationInfo, "error", err) return false, err } else { - queryMsg.SetSignature(signature) + bucketMigrationInfo.SetSignature(signature) } - err = a.baseApp.GfSpClient().QuerySPHasEnoughQuotaForMigrateBucket(ctx, srcSP.GetEndpoint(), queryMsg) + err = a.baseApp.GfSpClient().QuerySPHasEnoughQuotaForMigrateBucket(ctx, srcSP.GetEndpoint(), bucketMigrationInfo) if err != nil { log.CtxErrorw(ctx, "failed to check src SP migrate bucket quota", "src_sp", srcSP, "bucket_id", bucketID, "error", err) return false, ErrSignerWithDetail("failed to check src SP migrate bucket quota, error: " + err.Error()) } - log.CtxDebugw(ctx, "succeed to check migrate bucket info", "migrate_bucket_info", msgMigrateBucket) + log.CtxDebugw(ctx, "succeed to check bucket source sp quota for bucket migration", "migrate_bucket_msg", migrateBucketMsg) return true, nil } diff --git a/modular/blocksyncer/blocksyncer_options.go b/modular/blocksyncer/blocksyncer_options.go index 47e8e7a70..6b5d0dff6 100644 --- a/modular/blocksyncer/blocksyncer_options.go +++ b/modular/blocksyncer/blocksyncer_options.go @@ -592,7 +592,7 @@ func (b *BlockSyncerModular) syncBucketSize() error { offset = right } } - log.Info("sync bucket size success") + log.Info("succeed to sync bucket size") err = db.Cast(b.parserCtx.Database).UpdateDataMigrationRecord(context.Background(), dataMigrateKey, true) if err != nil { log.Errorw("failed to UpdateDataMigrationRecord", "error", err, "dataMigrateKey", dataMigrateKey) diff --git a/modular/executor/execute_task.go b/modular/executor/execute_task.go index 1b5fe16e8..787cbf9cc 100644 --- a/modular/executor/execute_task.go +++ b/modular/executor/execute_task.go @@ -9,6 +9,7 @@ import ( "io" "net/http" "strconv" + "strings" "sync/atomic" "time" @@ -17,6 +18,7 @@ import ( "github.com/bnb-chain/greenfield-common/go/redundancy" "github.com/bnb-chain/greenfield-storage-provider/base/types/gfsperrors" "github.com/bnb-chain/greenfield-storage-provider/core/module" + "github.com/bnb-chain/greenfield-storage-provider/core/piecestore" "github.com/bnb-chain/greenfield-storage-provider/core/spdb" corespdb "github.com/bnb-chain/greenfield-storage-provider/core/spdb" coretask "github.com/bnb-chain/greenfield-storage-provider/core/task" @@ -25,8 +27,10 @@ import ( "github.com/bnb-chain/greenfield-storage-provider/pkg/log" "github.com/bnb-chain/greenfield-storage-provider/pkg/metrics" "github.com/bnb-chain/greenfield-storage-provider/store/bsdb" + "github.com/bnb-chain/greenfield-storage-provider/store/sqldb" "github.com/bnb-chain/greenfield-storage-provider/util" storagetypes "github.com/bnb-chain/greenfield/x/storage/types" + virtualgrouptypes "github.com/bnb-chain/greenfield/x/virtualgroup/types" "github.com/forbole/juno/v4/common" "github.com/prysmaticlabs/prysm/crypto/bls" ) @@ -66,6 +70,155 @@ func ErrConsensusWithDetail(detail string) *gfsperrors.GfSpError { return gfsperrors.Register(module.ExecuteModularName, http.StatusBadRequest, 45211, detail) } +type GCChecker struct { + e *ExecuteModular +} + +// NewGCChecker returns a family conflicted checker instance. +func NewGCChecker(e *ExecuteModular) *GCChecker { + return &GCChecker{ + e: e, + } +} + +// deleteObjectPiecesAndIntegrityMetaByObjectInfo used by gcZombiePiece +func (gc *GCChecker) deleteObjectPiecesAndIntegrityMeta(ctx context.Context, integrityMeta *corespdb.IntegrityMeta) error { + objID := integrityMeta.ObjectID + redundancyIdx := integrityMeta.RedundancyIndex + maxSegment := len(integrityMeta.PieceChecksumList) + + // delete object pieces + for segmentIdx := uint32(0); segmentIdx <= uint32(maxSegment); segmentIdx++ { + gc.deletePiece(ctx, objID, segmentIdx, redundancyIdx) + } + + // delete integrity meta + _ = gc.e.baseApp.GfSpDB().DeleteObjectIntegrity(objID, redundancyIdx) + log.CtxDebugw(ctx, "succeed to delete all object segment and integrity meta", "object_id", objID, "integrity_meta", integrityMeta) + + return nil +} + +func (gc *GCChecker) deleteObjectSegments(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { + var ( + storageParams *storagetypes.Params + err error + ) + if storageParams, err = gc.e.baseApp.Consensus().QueryStorageParamsByTimestamp( + context.Background(), objectInfo.GetCreateAt()); err != nil { + log.Errorw("failed to query storage params", "error", err) + return errors.New("failed to query storage params") + } + segmentCount := gc.e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), + storageParams.VersionedParams.GetMaxSegmentSize()) + for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { + pieceKey := gc.e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) + // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. + deleteErr := gc.e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "succeed to delete the primary sp segment", "object_info", objectInfo, + "piece_key", pieceKey, "error", deleteErr) + } + return nil +} + +// deletePiece delete single piece if meta data or chain has object info +func (gc *GCChecker) deletePiece(ctx context.Context, objID uint64, segmentIdx uint32, redundancyIdx int32) { + var pieceKey string + // TODO -1 means REDUNDANCY_EC_TYPE + if redundancyIdx != piecestore.PrimarySPRedundancyIndex { + pieceKey = gc.e.baseApp.PieceOp().ECPieceKey(objID, segmentIdx, uint32(redundancyIdx)) + } else { + pieceKey = gc.e.baseApp.PieceOp().SegmentPieceKey(objID, segmentIdx) + } + deleteErr := gc.e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "succeed to delete the sp piece", "object_id", objID, + "piece_key", pieceKey, "error", deleteErr) +} + +// deletePieceAndPieceChecksum delete single piece and it's corresponding piece checksum +func (gc *GCChecker) deletePieceAndPieceChecksum(ctx context.Context, piece *spdb.GCPieceMeta) error { + objID := piece.ObjectID + segmentIdx := piece.SegmentIndex + redundancyIdx := piece.RedundancyIndex + log.CtxInfow(ctx, "start to delete piece and piece checksum", "object_id", objID, "segmentIdx", segmentIdx, "redundancyIdx", redundancyIdx) + + gc.deletePiece(ctx, piece.ObjectID, piece.SegmentIndex, piece.RedundancyIndex) + err := gc.e.baseApp.GfSpDB().DeleteReplicatePieceChecksum(objID, segmentIdx, redundancyIdx) + if err != nil { + log.Debugf("failed to delete replicate piece checksum", "object_id", objID) + return err + } + log.CtxDebugw(ctx, "succeed to delete and piece checksum", "object_id", objID, "piece_meta", piece, "error", err) + return nil +} + +// isAllowGCCheck +func (gc *GCChecker) isAllowGCCheck(objectInfo *storagetypes.ObjectInfo, bucketInfo *metadatatypes.Bucket) bool { + // object not in sealed status + if objectInfo.GetObjectStatus() != storagetypes.OBJECT_STATUS_SEALED { + log.Infow("the object isn't sealed, do not need to gc check") + return false + } + // bucket migrating + if bucketInfo.GetBucketInfo().GetBucketStatus() == storagetypes.BUCKET_STATUS_MIGRATING { + log.Infow("bucket is migrating, do not need to gc check") + return false + } + log.Infow("the object is sealed and the bucket is not migrating, the object can gc", "object", objectInfo, "bucket", bucketInfo) + return true +} + +func (gc *GCChecker) getGvgAndSpId(ctx context.Context, objectInfo *storagetypes.ObjectInfo) (*metadatatypes.Bucket, *virtualgrouptypes.GlobalVirtualGroup, uint32, error) { + bucketInfo, err := gc.e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) + if err != nil || bucketInfo == nil { + log.Errorw("failed to get bucket by bucket name", "error", err) + return nil, nil, 0, err + } + + // piece + gvg, err := gc.e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) + if err != nil { + log.Errorw("failed to get global virtual group", "error", err) + return bucketInfo, nil, 0, err + } + + // gvg + spID, err := gc.e.getSPID() + if err != nil { + log.Errorw("failed to get sp id", "error", err) + return bucketInfo, gvg, 0, err + } + + return bucketInfo, gvg, spID, nil +} + +// checkGVGMatchSP only return ErrInvalidRedundancyIndex means the piece was dislocation +func (gc *GCChecker) checkGVGMatchSP(ctx context.Context, objectInfo *storagetypes.ObjectInfo, redundancyIndex int32) error { + bucketInfo, gvg, spID, err := gc.getGvgAndSpId(ctx, objectInfo) + if err != nil { + return err + } + + if !gc.isAllowGCCheck(objectInfo, bucketInfo) { + return nil + } + + if redundancyIndex == piecestore.PrimarySPRedundancyIndex { + if gvg.GetPrimarySpId() != spID { + log.CtxInfow(ctx, "the piece isn't in correct location, will be delete", + "object_info", objectInfo, "redundancy_index", redundancyIndex, "gvg", gvg, "sp_id", spID) + return ErrInvalidRedundancyIndex + } + } else { + if gvg.GetSecondarySpIds()[redundancyIndex] != spID { + log.CtxInfow(ctx, "the piece isn't in correct location, will be delete", + "object_info", objectInfo, "redundancy_index", redundancyIndex, "gvg", gvg, "sp_id", spID) + return ErrInvalidRedundancyIndex + } + } + return nil +} + func (e *ExecuteModular) HandleSealObjectTask(ctx context.Context, task coretask.SealObjectTask) { if task == nil || task.GetObjectInfo() == nil { log.CtxErrorw(ctx, "failed to handle seal object, task pointer dangling") @@ -355,12 +508,6 @@ func (e *ExecuteModular) HandleGCZombiePieceTask(ctx context.Context, task coret var ( err error waitingVerifyGCIntegrityObjects []*corespdb.IntegrityMeta - responseEndBlockID uint64 - gcObjectNumber int - tryAgainLater bool - taskIsCanceled bool - hasNoObject bool - isSucceed bool ) reportProgress := func() bool { @@ -370,28 +517,26 @@ func (e *ExecuteModular) HandleGCZombiePieceTask(ctx context.Context, task coret } defer func() { - if err == nil && (isSucceed || hasNoObject) { // succeed + if err == nil { // succeed reportProgress() } else { // failed task.SetError(err) reportProgress() } - log.CtxDebugw(ctx, "gc zombie piece task", "task_info", task.Info(), "is_succeed", isSucceed, - "response_end_block_id", responseEndBlockID, "waiting_gc_object_number", len(waitingVerifyGCIntegrityObjects), - "has_gc_object_number", gcObjectNumber, "try_again_later", tryAgainLater, - "task_is_canceled", taskIsCanceled, "has_no_object", hasNoObject, "error", err) + log.CtxDebugw(ctx, "gc zombie piece task", "task_info", task.Info(), + "waiting_gc_object_number", len(waitingVerifyGCIntegrityObjects), "error", err) }() - // verify zombie piece from IntegrityMetaTable - if e.gcZombiePieceFromIntegrityMeta(ctx, task) != nil { + // verify zombie piece via IntegrityMetaTable + if err = e.gcZombiePieceFromIntegrityMeta(ctx, task); err != nil { + log.CtxErrorw(ctx, "failed to gc zombie piece from integrity meta", "task_info", task.Info(), "error", err) return } - // verify and delete zombie piece via piece hash - if e.gcZombiePieceFromPieceHash(ctx, task) != nil { + if err = e.gcZombiePieceFromPieceHash(ctx, task); err != nil { + log.CtxErrorw(ctx, "failed to gc zombie piece from piece hash", "task_info", task.Info(), "error", err) return } - isSucceed = true } func (e *ExecuteModular) HandleGCMetaTask(ctx context.Context, task coretask.GCMetaTask) { @@ -400,7 +545,7 @@ func (e *ExecuteModular) HandleGCMetaTask(ctx context.Context, task coretask.GCM ) reportProgress := func() bool { reportErr := e.ReportTask(ctx, task) - log.CtxDebugw(ctx, "gc zombie piece task report progress", "task_info", task.Info(), "error", reportErr) + log.CtxDebugw(ctx, "gc meta task report progress", "task_info", task.Info(), "error", reportErr) return errors.Is(reportErr, manager.ErrCanceledTask) } @@ -411,35 +556,39 @@ func (e *ExecuteModular) HandleGCMetaTask(ctx context.Context, task coretask.GCM task.SetError(err) reportProgress() } - log.CtxDebugw(ctx, "gc meta task", "task_info", task.Info(), "error", err) + log.CtxDebugw(ctx, "succeed to run gc meta task", "task_info", task.Info(), "error", err) }() go e.gcMetaBucketTraffic(ctx, task) go e.gcMetaReadRecord(ctx, task) - log.CtxInfow(ctx, "succeed to run gc meta", "task", task) } func (e *ExecuteModular) gcMetaBucketTraffic(ctx context.Context, task coretask.GCMetaTask) error { // TODO list buckets when large dataset now := time.Now() - daysAgo := now.Add(-time.Duration(e.bucketTrafficKeepLatestDays*24) * time.Hour) + daysAgo := now.Add(-time.Duration(e.bucketTrafficKeepLatestDay) * time.Hour * 24) + yearMonth := sqldb.TimeToYearMonth(daysAgo) - err := e.baseApp.GfSpDB().DeleteAllBucketTrafficExpired(daysAgo.String()) + err := e.baseApp.GfSpDB().DeleteAllBucketTrafficExpired(yearMonth) if err != nil { + log.CtxErrorw(ctx, "failed to delete expired bucket traffic", "error", err) return err } + log.CtxInfow(ctx, "succeed to delete bucket traffic", "task", task, "days_ago", daysAgo, "year_month", yearMonth) return nil } func (e *ExecuteModular) gcMetaReadRecord(ctx context.Context, task coretask.GCMetaTask) error { now := time.Now() - daysAgo := now.Add(-time.Duration(e.readRecordKeepLatestDays*24) * time.Hour) + daysAgo := now.Add(-time.Duration(e.readRecordKeepLatestDay) * time.Hour * 24) - err := e.baseApp.GfSpDB().DeleteAllReadRecordExpired(uint64(daysAgo.Unix())) + err := e.baseApp.GfSpDB().DeleteAllReadRecordExpired(uint64(daysAgo.UnixMicro())) if err != nil { + log.CtxErrorw(ctx, "failed to delete expired read record", "error", err) return err } + log.CtxInfow(ctx, "succeed to delete read record", "task", task, "daysAgo", daysAgo) return nil } @@ -499,12 +648,11 @@ func (e *ExecuteModular) HandleGCBucketMigrationBucket(ctx context.Context, task // can delete, verify for _, obj := range objects { objectInfo := obj.GetObject().GetObjectInfo() - if e.verifyObjectLocationInfo(ctx, objectInfo) == ErrInvalidIntegrity { - e.deleteObjectPieces(ctx, objectInfo) + if e.gcChecker.checkGVGMatchSP(ctx, objectInfo, piecestore.PrimarySPRedundancyIndex) == ErrInvalidRedundancyIndex { + e.gcChecker.deleteObjectSegments(ctx, objectInfo) log.CtxInfow(ctx, "succeed to delete objects by gvg and bucket for gc", "object", objectInfo, "error", err) } } - } } @@ -885,46 +1033,48 @@ func (e *ExecuteModular) getBucketPrimarySPEndpoint(ctx context.Context, bucketN func (e *ExecuteModular) gcZombiePieceFromIntegrityMeta(ctx context.Context, task coretask.GCZombiePieceTask) error { var ( - err error - waitingVerifyGCIntegrityObjects []*corespdb.IntegrityMeta + err error + waitingVerifyGCIntegrityPieces []*corespdb.IntegrityMeta + objInfoFromMetaData *storagetypes.ObjectInfo + objInfoFromChain *storagetypes.ObjectInfo ) - if waitingVerifyGCIntegrityObjects, err = e.baseApp.GfSpDB().ListObjectsByBlockNumberRange(int64(task.GetStartObjectId()), int64(task.GetEndObjectId()), true); err != nil { + if waitingVerifyGCIntegrityPieces, err = e.baseApp.GfSpDB().ListIntegrityMetaByObjectIDRange(int64(task.GetStartObjectId()), int64(task.GetEndObjectId()), true); err != nil { log.CtxErrorw(ctx, "failed to query deleted object list", "task_info", task.Info(), "error", err) - return errors.New("xx") + return err } - if len(waitingVerifyGCIntegrityObjects) == 0 { - log.Error("no waiting gc objects") + if len(waitingVerifyGCIntegrityPieces) == 0 { + log.CtxInfow(ctx, "no waiting gc objects", "task_info", task.Info()) return nil } - for _, integrityObject := range waitingVerifyGCIntegrityObjects { + for _, integrityObject := range waitingVerifyGCIntegrityPieces { + log.CtxDebugw(ctx, "gc zombie current waiting verify gc integrity meta piece", "integrity_meta", integrityObject) // error objID := integrityObject.ObjectID - // object info - gcObjectInfo, err := e.baseApp.GfSpClient().GetObjectByID(ctx, objID) - if err != nil { - log.Errorf("failed to get object meta", "error", err) - // could delete, has integrity hash, do not have object info - // chain check verify check chain - objectInfo, err := e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)) - if err != nil { - // gvg primary sp should has integrity meta - // TODO: refine - if e.verifyObjectLocationInfo(ctx, objectInfo) == ErrInvalidIntegrity { - e.deleteObjectPiecesAndIntegrityMeta(ctx, objectInfo) + // If metadata service has object info, use objInfoFromMetaData, otherwise query from chain + if objInfoFromMetaData, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { + log.Errorf("failed to get object meta from meta data service, will check from chain", "error", err) + if strings.Contains(err.Error(), "no such object from metadata") { + // could delete, has integrity hash, do not have object info, chain check verify check chain + if objInfoFromChain, err = e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)); err != nil { + if strings.Contains(err.Error(), "No such object") { + // 1) This object does not exist on the chain + e.gcChecker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) + } + } else { + // 2) query metadata error, but chain has the object info, gvg primary sp should has integrity meta + if e.gcChecker.checkGVGMatchSP(ctx, objInfoFromChain, integrityObject.RedundancyIndex) == ErrInvalidRedundancyIndex { + e.gcChecker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) + } + continue } - continue } - - // delete - e.deleteObjectPiecesAndIntegrityMeta(ctx, objectInfo) - return errors.New("xx") } else { - // check integrity meta & chain info - if e.verifyObjectLocationInfo(ctx, gcObjectInfo) == ErrInvalidIntegrity { - e.deleteObjectPiecesAndIntegrityMeta(ctx, gcObjectInfo) + // check integrity meta & object info + if e.gcChecker.checkGVGMatchSP(ctx, objInfoFromMetaData, integrityObject.RedundancyIndex) == ErrInvalidRedundancyIndex { + e.gcChecker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) } } } @@ -933,174 +1083,56 @@ func (e *ExecuteModular) gcZombiePieceFromIntegrityMeta(ctx context.Context, tas func (e *ExecuteModular) gcZombiePieceFromPieceHash(ctx context.Context, task coretask.GCZombiePieceTask) error { var ( - err error - waitingVerifyGCPieces []*spdb.GCPieceMeta + err error + waitingVerifyGCPieces []*spdb.GCPieceMeta + objectInfoFromMetadata *storagetypes.ObjectInfo + objInfoFromChain *storagetypes.ObjectInfo ) + log.CtxDebugw(ctx, "start to gc zombie piece from piece hash", "task_info", task.Info()) - if waitingVerifyGCPieces, err = e.baseApp.GfSpDB().ListReplicatePieceChecksumByBlockNumberRange(int64(task.GetStartObjectId()), int64(task.GetEndObjectId()), 0, 0, 0); err != nil { + // replicate piece must be secondary sp + if waitingVerifyGCPieces, err = e.baseApp.GfSpDB().ListReplicatePieceChecksumByObjectIDRange( + int64(task.GetStartObjectId()), int64(task.GetEndObjectId())); err != nil { log.CtxErrorw(ctx, "failed to query replicate piece checksum", "task_info", task.Info(), "error", err) - return errors.New("failed to query replicate piece checksum") + return err } if len(waitingVerifyGCPieces) == 0 { - log.Error("no waiting gc pieces") + log.CtxErrorw(ctx, "no waiting gc pieces", "task_info", task.Info()) return nil } for _, piece := range waitingVerifyGCPieces { + log.CtxDebugw(ctx, "gc zombie current waiting verify gc meta piece", "piece", piece) // error // migrating // sealed ? timeout ? objID := piece.ObjectID // object info - objectInfo, err := e.baseApp.GfSpClient().GetObjectByID(ctx, objID) - if err != nil { - // delete ? - log.Infof("failed to get object meta, the zombie piece should be deleted", "error", err) - e.deletePieceAndPieceHash(ctx, objectInfo, piece.SegmentIndex, piece.RedundancyIndex) - continue - } - - if e.verifyPieceLocationInfo(ctx, objectInfo, piece) == ErrSecondaryMismatch { - // delete piece - // delete piece hash checksum - //task.SetError(ErrSecondaryMismatch) - err = e.baseApp.GfSpDB().DeleteObjectIntegrity(objID, piece.RedundancyIndex) - if err != nil { - log.CtxError(ctx, "failed to delete integrity") + if objectInfoFromMetadata, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { + // check from chain delete ? + if strings.Contains(err.Error(), "no such object from metadata") { + log.Infof("failed to get object meta, the zombie piece should be deleted", "error", err) + if objInfoFromChain, err = e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)); err != nil { + if strings.Contains(err.Error(), "No such object") { + // 1) This object does not exist on the chain + e.gcChecker.deletePieceAndPieceChecksum(ctx, piece) + } + } else { + // 2) query metadata error, but chain has the object info, gvg primary sp should has integrity meta + // TODO: refine + if e.gcChecker.checkGVGMatchSP(ctx, objInfoFromChain, piece.RedundancyIndex) == ErrInvalidRedundancyIndex { + e.gcChecker.deletePieceAndPieceChecksum(ctx, piece) + } + } + } + } else { + if e.gcChecker.checkGVGMatchSP(ctx, objectInfoFromMetadata, piece.RedundancyIndex) == ErrInvalidRedundancyIndex { + //task.SetError(ErrSecondaryMismatch) + // ignore error + e.gcChecker.deletePieceAndPieceChecksum(ctx, piece) } - e.deletePieceAndPieceHash(ctx, objectInfo, piece.SegmentIndex, piece.RedundancyIndex) } } return nil } - -func (e *ExecuteModular) deletePiece(ctx context.Context, objectInfo *storagetypes.ObjectInfo, segmentIdx uint32, redundancyIdx int32) { - var pieceKey string - objID := objectInfo.Id.Uint64() - if objectInfo.GetRedundancyType() == storagetypes.REDUNDANCY_EC_TYPE { - pieceKey = e.baseApp.PieceOp().ECPieceKey(objID, segmentIdx, uint32(redundancyIdx)) - } else { - pieceKey = e.baseApp.PieceOp().SegmentPieceKey(objID, segmentIdx) - } - // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. - deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) - log.CtxDebugw(ctx, "delete the primary sp pieces", "object_info", objectInfo, - "piece_key", pieceKey, "error", deleteErr) -} - -func (e *ExecuteModular) deletePieceAndPieceHash(ctx context.Context, objectInfo *storagetypes.ObjectInfo, segmentIdx uint32, redundancyIdx int32) error { - log.CtxInfow(ctx, "delete piece and piece hash", "object_info", objectInfo, "segmentIdx", segmentIdx, "redundancyIdx", redundancyIdx) - e.deletePiece(ctx, objectInfo, segmentIdx, redundancyIdx) - - err := e.baseApp.GfSpDB().DeleteReplicatePieceChecksum(objectInfo.Id.Uint64(), segmentIdx, redundancyIdx) - if err != nil { - log.Debugf("failed to delete replicate piece checksum", "object", objectInfo) - return err - } - return nil -} - -func (e *ExecuteModular) deleteObjectPiecesAndIntegrityMeta(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { - var ( - storageParams *storagetypes.Params - err error - ) - if storageParams, err = e.baseApp.Consensus().QueryStorageParamsByTimestamp( - context.Background(), objectInfo.GetCreateAt()); err != nil { - log.Errorw("failed to query storage params", "error", err) - return errors.New("failed to query storage params") - } - segmentCount := e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), - storageParams.VersionedParams.GetMaxSegmentSize()) - for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { - pieceKey := e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) - // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. - deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) - log.CtxDebugw(ctx, "delete the primary sp pieces", "object_info", objectInfo, - "piece_key", pieceKey, "error", deleteErr) - } - return nil -} - -func (e *ExecuteModular) deleteObjectPieces(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { - var ( - storageParams *storagetypes.Params - err error - ) - if storageParams, err = e.baseApp.Consensus().QueryStorageParamsByTimestamp( - context.Background(), objectInfo.GetCreateAt()); err != nil { - log.Errorw("failed to query storage params", "error", err) - return errors.New("failed to query storage params") - } - segmentCount := e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), - storageParams.VersionedParams.GetMaxSegmentSize()) - for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { - pieceKey := e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) - // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. - deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) - log.CtxDebugw(ctx, "delete the primary sp pieces", "object_info", objectInfo, - "piece_key", pieceKey, "error", deleteErr) - } - return nil -} - -func (e *ExecuteModular) verifyObjectLocationInfo(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { - // gvg primary sp should has integrity meta - bucketInfo, err := e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) - if err != nil || bucketInfo == nil { - log.Errorw("failed to get bucket by bucket name", "error", err) - return errors.New("xx") - } - gvg, err := e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) - if err != nil { - log.Errorw("failed to get global virtual group", "error", err) - return errors.New("xx") - } - spID, err := e.getSPID() - if err != nil { - log.Errorw("failed to get sp id", "error", err) - return errors.New("xx") - } - if gvg.GetPrimarySpId() != spID { - // delete - return ErrInvalidIntegrity - } - - return nil -} - -func (e *ExecuteModular) verifyPieceLocationInfo(ctx context.Context, objectInfo *storagetypes.ObjectInfo, piece *spdb.GCPieceMeta) error { - // bucket migrating - bucketInfo, err := e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) - if err != nil || bucketInfo == nil { - log.Errorw("failed to get bucket by bucket name", "error", err) - return errors.New("xx") - } - if bucketInfo.GetBucketInfo().GetBucketStatus() == storagetypes.BUCKET_STATUS_MIGRATING { - log.Errorw("bucket is migrating, do not need to delete piece", "error", err) - return nil - } - // piece - gvg, err := e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) - if err != nil { - log.Errorw("failed to get global virtual group", "error", err) - return errors.New("xx") - } - - // gvg - gvg.GetSecondarySpIds() - spID, err := e.getSPID() - if err != nil { - log.Errorw("failed to get sp id", "error", err) - return errors.New("xx") - } - - if gvg.GetSecondarySpIds()[piece.SegmentIndex] != spID { - // delete TODO error code - log.CtxErrorw(ctx, "failed to confirm receive task, secondary sp mismatch", "expect", - gvg.GetSecondarySpIds()[int(piece.RedundancyIndex)], "current", e.baseApp.OperatorAddress()) - return ErrSecondaryMismatch - } - return nil -} diff --git a/modular/executor/executor.go b/modular/executor/executor.go index 7cc2446cc..eee64c8f5 100644 --- a/modular/executor/executor.go +++ b/modular/executor/executor.go @@ -52,14 +52,15 @@ type ExecuteModular struct { doingGCBucketMigrationCnt int64 // gc meta - bucketTrafficKeepLatestDays int64 - readRecordKeepLatestDays int64 + bucketTrafficKeepLatestDay uint64 + readRecordKeepLatestDay uint64 enableSkipFailedToMigrateObject bool // only for debugging, and online config can only be false - spID uint32 - spMap map[uint32]*sptypes.StorageProvider - mutex sync.RWMutex + spID uint32 + spMap map[uint32]*sptypes.StorageProvider + mutex sync.RWMutex + gcChecker *GCChecker } func (e *ExecuteModular) Name() string { @@ -80,6 +81,7 @@ func (e *ExecuteModular) Start(ctx context.Context) error { for _, sp := range sps { e.spMap[sp.Id] = sp } + e.gcChecker = NewGCChecker(e) go e.eventLoop(ctx) return nil } diff --git a/modular/executor/executor_options.go b/modular/executor/executor_options.go index f1be12efa..904848415 100644 --- a/modular/executor/executor_options.go +++ b/modular/executor/executor_options.go @@ -42,6 +42,10 @@ const ( // DefaultSleepInterval defines the sleep interval when failed to ask task // it is millisecond level DefaultSleepInterval = 100 + // DefaultExecutorBucketTrafficKeepTimeDay defines the default max keep bucket traffic time for gc meta bucket traffic. + DefaultExecutorBucketTrafficKeepTimeDay uint64 = 30 * 6 + // DefaultExecutorReadRecordKeepTimeDay defines the default max keep read record time for gc meta read record. + DefaultExecutorReadRecordKeepTimeDay uint64 = 30 ) const ( @@ -117,9 +121,18 @@ func defaultExecutorOptions(executor *ExecuteModular, cfg *gfspconfig.GfSpConfig cfg.Executor.MaxObjectMigrationRetry = DefaultExecutorMaxObjectMigrationRetry } + if cfg.Executor.BucketTrafficKeepTimeDay == 0 { + cfg.Executor.BucketTrafficKeepTimeDay = DefaultExecutorBucketTrafficKeepTimeDay + } + if cfg.Executor.ReadRecordKeepTimeDay == 0 { + cfg.Executor.ReadRecordKeepTimeDay = DefaultExecutorReadRecordKeepTimeDay + } + executor.maxListenSealRetry = cfg.Executor.MaxListenSealRetry executor.statisticsOutputInterval = DefaultStatisticsOutputInterval executor.enableSkipFailedToMigrateObject = cfg.Executor.EnableSkipFailedToMigrateObject executor.objectMigrationRetryTimeout = cfg.Executor.ObjectMigrationRetryTimeout executor.maxObjectMigrationRetry = cfg.Executor.MaxObjectMigrationRetry + executor.bucketTrafficKeepLatestDay = cfg.Executor.BucketTrafficKeepTimeDay + executor.readRecordKeepLatestDay = cfg.Executor.ReadRecordKeepTimeDay } diff --git a/modular/executor/migrate_task.go b/modular/executor/migrate_task.go index d49ae6c9e..cf61356bc 100644 --- a/modular/executor/migrate_task.go +++ b/modular/executor/migrate_task.go @@ -76,7 +76,6 @@ func (e *ExecuteModular) HandleMigrateGVGTask(ctx context.Context, gvgTask coret } for index, object := range objectList { - time.Sleep(1 * time.Second) if err = e.checkAndTryRenewSig(gvgTask.(*gfsptask.GfSpMigrateGVGTask)); err != nil { log.CtxErrorw(ctx, "failed to check and renew gvg task signature", "gvg_task", gvgTask, "error", err) return diff --git a/modular/gater/migrate_handler.go b/modular/gater/migrate_handler.go index 0235e5f04..b8f4290bc 100644 --- a/modular/gater/migrate_handler.go +++ b/modular/gater/migrate_handler.go @@ -117,7 +117,7 @@ func (g *GateModular) checkMigrateBucketQuotaAuth(reqCtx *RequestContext, migrat // metadata service support cancel & completion migrate bucket return true, bucketMigrationInfo, nil } - log.Errorw("failed to verify migrate gvg permission", "bucket_migration_info", bucketMigrationInfo, + log.Errorw("failed to verify migrate bucket permission", "bucket_migration_info", bucketMigrationInfo, "dest_sp", sp.GetId(), "effect", effect, "error", err) return false, bucketMigrationInfo, err } @@ -134,7 +134,7 @@ func (g *GateModular) verifySignatureAndSP(reqCtx *RequestContext, migrateBucket ) migrateBucketMsg, err = hex.DecodeString(migrateBucketMsgHeader) if err != nil { - log.Errorw("failed to parse migrate gvg header", "migrate_gvg_header", migrateBucketMsg, "error", err) + log.Errorw("failed to parse migrate bucket msg header", "migrate_bucket_header", migrateBucketMsg, "error", err) return false, &gfsptask.GfSpBucketMigrationInfo{}, sp, ErrDecodeMsg } bucketMigrationInfo := gfsptask.GfSpBucketMigrationInfo{} @@ -144,7 +144,7 @@ func (g *GateModular) verifySignatureAndSP(reqCtx *RequestContext, migrateBucket return false, &bucketMigrationInfo, sp, err } if bucketMigrationInfo.GetExpireTime() < time.Now().Unix() { - log.Errorw("failed to check migrate gvg expire time", "bucket_migration_info", bucketMigrationInfo) + log.Errorw("failed to check migrate bucket expire time", "bucket_migration_info", bucketMigrationInfo) return false, &bucketMigrationInfo, sp, ErrNoPermission } destSPAddr, err := reqCtx.verifyTaskSignature(bucketMigrationInfo.GetSignBytes(), bucketMigrationInfo.GetSignature()) @@ -388,7 +388,7 @@ func (g *GateModular) getLatestBucketQuotaHandler(w http.ResponseWriter, r *http return } if !allowMigrate { - log.CtxErrorw(reqCtx.Context(), "no permission to migrate piece", "bucket_migration_info", bucketMigrationInfo) + log.CtxErrorw(reqCtx.Context(), "no permission to get latest bucket quota", "bucket_migration_info", bucketMigrationInfo) err = ErrNoPermission return } @@ -445,7 +445,7 @@ func (g *GateModular) preMigrateBucketHandler(w http.ResponseWriter, r *http.Req return } if !allowMigrate { - log.CtxErrorw(reqCtx.Context(), "no permission to migrate piece", "bucket_migration_info", bucketMigrationInfo) + log.CtxErrorw(reqCtx.Context(), "no permission to pre migrate bucket", "bucket_migration_info", bucketMigrationInfo) err = ErrNoPermission return } @@ -525,7 +525,7 @@ func (g *GateModular) postMigrateBucketHandler(w http.ResponseWriter, r *http.Re return } if !allowMigrate { - log.CtxErrorw(reqCtx.Context(), "no permission to migrate piece", "bucket_migration_info", bucketMigrationInfo) + log.CtxErrorw(reqCtx.Context(), "no permission to post migrate bucket", "bucket_migration_info", bucketMigrationInfo) err = ErrNoPermission return } @@ -611,7 +611,7 @@ func (g *GateModular) sufficientQuotaForBucketMigrationHandler(w http.ResponseWr return } if !allowMigrate { - log.CtxErrorw(reqCtx.Context(), "no permission to migrate piece", "bucket_migration_info", bucketMigrationInfo) + log.CtxErrorw(reqCtx.Context(), "no permission to check source sp has enough quota", "bucket_migration_info", bucketMigrationInfo) err = ErrNoPermission return } diff --git a/modular/manager/bucket_migrate_scheduler.go b/modular/manager/bucket_migrate_scheduler.go index f17cd634a..4ed35e4eb 100644 --- a/modular/manager/bucket_migrate_scheduler.go +++ b/modular/manager/bucket_migrate_scheduler.go @@ -689,22 +689,11 @@ func (s *BucketMigrateScheduler) PostMigrateBucket(postMsg *gfsptask.GfSpBucketM return err } log.Debugw("succeed to post migrate bucket quota", "src_sp", srcSPInfo, "postMsg", postMsg, "error", err) - // TODO gc for dest sp + // if bucket migration failed, gc for dest sp if !postMsg.GetFinished() { - // list objects and delete generate a task ? + // generate a gc bucket migration task(list objects and delete) go func() { - // src sp should wait meta data - <-time.After(10 * time.Second) - - // success generate gc task, gc for bucket migration src sp - gcBucketMigrationTask := &gfsptask.GfSpGCBucketMigrationTask{} - gcBucketMigrationTask.InitGCBucketMigrationTask(s.manager.baseApp.TaskPriority(gcBucketMigrationTask), bucketID, - s.manager.baseApp.TaskTimeout(gcBucketMigrationTask, postMsg.GetMigratedBytesSize()), s.manager.baseApp.TaskMaxRetry(gcBucketMigrationTask)) - err = s.manager.HandleCreateGCBucketMigrationTask(ctx, gcBucketMigrationTask) - if err != nil { - log.CtxErrorw(ctx, "failed to begin gc bucket migration task", "info", gcBucketMigrationTask.Info(), "error", err) - } - log.Infow("succeed to generate gc bucket migration task", "task", gcBucketMigrationTask) + s.manager.GenerateGCBucketMigrationTask(ctx, bucketID, postMsg.GetMigratedBytesSize()) }() } return nil @@ -718,7 +707,6 @@ func (s *BucketMigrateScheduler) PreMigrateBucket(bucketID uint64, srcSPInfo *sp ) log.Debugw("start to pre migrate bucket", "bucket_id", bucketID) - preMsg := &gfsptask.GfSpBucketMigrationInfo{BucketId: bucketID, Finished: false} preMsg.ExpireTime = time.Now().Unix() + SigExpireTimeSecond signature, err = s.manager.baseApp.GfSpClient().SignBucketMigrationInfo(context.Background(), preMsg) diff --git a/modular/manager/manage_task.go b/modular/manager/manage_task.go index 56f8ed8a3..6bad4ebae 100644 --- a/modular/manager/manage_task.go +++ b/modular/manager/manage_task.go @@ -40,6 +40,8 @@ var ( ErrNotifyMigrateSwapOut = gfsperrors.Register(module.ManageModularName, http.StatusNotAcceptable, 60006, "failed to notify swap out start") ) +const BucketMigrationGCWaitTime = 10 * time.Second + func ErrGfSpDBWithDetail(detail string) *gfsperrors.GfSpError { return gfsperrors.Register(module.ManageModularName, http.StatusInternalServerError, 65201, detail) } @@ -608,50 +610,47 @@ func (m *ManageModular) HandleGCObjectTask(ctx context.Context, gcTask task.GCOb func (m *ManageModular) HandleGCZombiePieceTask(ctx context.Context, gcZombiePieceTask task.GCZombiePieceTask) error { if gcZombiePieceTask == nil { - log.CtxErrorw(ctx, "failed to handle gc object due to task pointer dangling") + log.CtxErrorw(ctx, "failed to handle gc zombie due to task pointer dangling") return ErrDanglingTask } - if !m.gcObjectQueue.Has(gcZombiePieceTask.Key()) { - log.CtxErrorw(ctx, "task is not in the gc queue", "task_info", gcZombiePieceTask.Info()) + if !m.gcZombieQueue.Has(gcZombiePieceTask.Key()) { + log.CtxErrorw(ctx, "failed to handle due to task is not in the gc zombie queue", "task_info", gcZombiePieceTask.Info()) return ErrCanceledTask } if gcZombiePieceTask.Error() == nil { - log.CtxInfow(ctx, "succeed to finish the gc object task", "task_info", gcZombiePieceTask.Info()) - m.gcObjectQueue.PopByKey(gcZombiePieceTask.Key()) - m.baseApp.GfSpDB().DeleteGCObjectProgress(gcZombiePieceTask.Key().String()) + log.CtxInfow(ctx, "succeed to finish the gc zombie task", "task_info", gcZombiePieceTask.Info()) + m.gcZombieQueue.PopByKey(gcZombiePieceTask.Key()) return nil } gcZombiePieceTask.SetUpdateTime(time.Now().Unix()) - oldTask := m.gcObjectQueue.PopByKey(gcZombiePieceTask.Key()) + oldTask := m.gcZombieQueue.PopByKey(gcZombiePieceTask.Key()) if oldTask != nil { - if oldTask.(task.GCObjectTask).GetCurrentBlockNumber() > gcZombiePieceTask.GetCurrentBlockNumber() || - (oldTask.(task.GCObjectTask).GetCurrentBlockNumber() == gcZombiePieceTask.GetCurrentBlockNumber() && - oldTask.(task.GCObjectTask).GetLastDeletedObjectId() > gcZombiePieceTask.GetLastDeletedObjectId()) { - log.CtxErrorw(ctx, "the reported gc object task is expired", "report_info", gcZombiePieceTask.Info(), + if oldTask.ExceedRetry() { + log.CtxErrorw(ctx, "the reported gc zombie task is expired", "task_info", gcZombiePieceTask.Info(), "current_info", oldTask.Info()) return ErrCanceledTask } } else { - log.CtxErrorw(ctx, "the reported gc object task is canceled", "report_info", gcZombiePieceTask.Info()) + log.CtxErrorw(ctx, "the reported gc zombie task is canceled", "task_info", gcZombiePieceTask.Info()) return ErrCanceledTask } - err := m.gcObjectQueue.Push(gcZombiePieceTask) - log.CtxInfow(ctx, "push gc object task to queue again", "from", oldTask, "to", gcZombiePieceTask, "error", err) + err := m.gcZombieQueue.Push(gcZombiePieceTask) + log.CtxInfow(ctx, "succeed to push gc object task to queue again", "from", oldTask, "to", gcZombiePieceTask, "error", err) // TODO GC Zombie piece progress return nil } func (m *ManageModular) HandleGCMetaTask(ctx context.Context, gcMetaTask task.GCMetaTask) error { if gcMetaTask == nil { - log.CtxError(ctx, "failed to handle gc bucket migration due to gcMetaTask pointer dangling") + log.CtxError(ctx, "failed to handle gc meta task due to gc meta task pointer dangling") return ErrDanglingTask } if !m.gcMetaQueue.Has(gcMetaTask.Key()) { - log.CtxErrorw(ctx, "gcMetaTask is not in the gc bucket migration queue", "task_info", gcMetaTask.Info()) + log.CtxErrorw(ctx, "failed to handle gc meta task due to task is not in the gc meta queue", "task_info", gcMetaTask.Info()) return ErrCanceledTask } if gcMetaTask.Error() == nil { - log.CtxInfow(ctx, "succeed to finish the gc object gcMetaTask", "task_info", gcMetaTask.Info()) + log.CtxInfow(ctx, "succeed to finish the gc meta task", "task_info", gcMetaTask.Info()) m.gcMetaQueue.PopByKey(gcMetaTask.Key()) return nil } @@ -660,30 +659,61 @@ func (m *ManageModular) HandleGCMetaTask(ctx context.Context, gcMetaTask task.GC oldTask := m.gcMetaQueue.PopByKey(gcMetaTask.Key()) if oldTask != nil { if oldTask.ExceedRetry() { - log.CtxErrorw(ctx, "the reported gc object gcMetaTask is expired", "report_info", gcMetaTask.Info(), + log.CtxErrorw(ctx, "the reported gc meta task is expired", "report_info", gcMetaTask.Info(), "current_info", oldTask.Info()) return ErrCanceledTask } } else { - log.CtxErrorw(ctx, "the reported gc object gcMetaTask is canceled", "report_info", gcMetaTask.Info()) + log.CtxErrorw(ctx, "the reported gc meta task is canceled", "report_info", gcMetaTask.Info()) return ErrCanceledTask } err := m.gcMetaQueue.Push(gcMetaTask) - log.CtxInfow(ctx, "push gcMetaTask to queue again", "from", oldTask, "to", gcMetaTask, "error", err) + log.CtxInfow(ctx, "succeed to push gc meta task to queue again", "from", oldTask, "to", gcMetaTask, "error", err) + return nil +} + +func (m *ManageModular) GenerateGCBucketMigrationTask(ctx context.Context, bucketID, bucketSize uint64) { + // src sp should wait meta data + <-time.After(BucketMigrationGCWaitTime) + + // success generate gc task, gc for bucket migration src sp + gcBucketMigrationTask := &gfsptask.GfSpGCBucketMigrationTask{} + gcBucketMigrationTask.InitGCBucketMigrationTask(m.baseApp.TaskPriority(gcBucketMigrationTask), bucketID, + m.baseApp.TaskTimeout(gcBucketMigrationTask, bucketSize), m.baseApp.TaskMaxRetry(gcBucketMigrationTask)) + err := m.HandleCreateGCBucketMigrationTask(ctx, gcBucketMigrationTask) + if err != nil { + log.CtxErrorw(ctx, "failed to begin gc bucket migration task", "info", gcBucketMigrationTask.Info(), "error", err) + } + log.CtxInfow(ctx, "succeed to generate bucket migration gc task and push to queue", "bucket_id", bucketID, "gcBucketMigrationTask", gcBucketMigrationTask) +} + +func (m *ManageModular) HandleCreateGCBucketMigrationTask(ctx context.Context, task task.GCBucketMigrationTask) error { + if task == nil { + log.CtxErrorw(ctx, "failed to handle begin gc bucket migration due to task pointer dangling") + return ErrDanglingTask + } + if m.gcBucketMigrationQueue.Has(task.Key()) { + log.CtxErrorw(ctx, "uploading object repeated", "task_info", task.Info()) + return ErrRepeatedTask + } + if err := m.gcBucketMigrationQueue.Push(task); err != nil { + log.CtxErrorw(ctx, "failed to push upload object task to queue", "task_info", task.Info(), "error", err) + return err + } return nil } func (m *ManageModular) HandleGCBucketMigrationTask(ctx context.Context, gcBucketMigrationTask task.GCBucketMigrationTask) error { if gcBucketMigrationTask == nil { - log.CtxError(ctx, "failed to handle gc bucket migration due to gcBucketMigrationTask pointer dangling") + log.CtxError(ctx, "failed to handle gc bucket migration due to gc bucket migration task pointer dangling") return ErrDanglingTask } if !m.gcBucketMigrationQueue.Has(gcBucketMigrationTask.Key()) { - log.CtxErrorw(ctx, "gcBucketMigrationTask is not in the gc bucket migration queue", "task_info", gcBucketMigrationTask.Info()) + log.CtxErrorw(ctx, "failed to handle gc bucket migration task due to task is not in the gc bucket migration queue", "task_info", gcBucketMigrationTask.Info()) return ErrCanceledTask } if gcBucketMigrationTask.Error() == nil { - log.CtxInfow(ctx, "succeed to finish the gc object gcBucketMigrationTask", "task_info", gcBucketMigrationTask.Info()) + log.CtxInfow(ctx, "succeed to finish the gc bucket migration task", "task_info", gcBucketMigrationTask.Info()) m.gcBucketMigrationQueue.PopByKey(gcBucketMigrationTask.Key()) return nil } @@ -692,32 +722,16 @@ func (m *ManageModular) HandleGCBucketMigrationTask(ctx context.Context, gcBucke oldTask := m.gcBucketMigrationQueue.PopByKey(gcBucketMigrationTask.Key()) if oldTask != nil { if oldTask.ExceedRetry() { - log.CtxErrorw(ctx, "the reported gc object gcBucketMigrationTask is expired", "report_info", gcBucketMigrationTask.Info(), + log.CtxErrorw(ctx, "the reported gc object gc bucket migration task is expired", "report_info", gcBucketMigrationTask.Info(), "current_info", oldTask.Info()) return ErrCanceledTask } } else { - log.CtxErrorw(ctx, "the reported gc object gcBucketMigrationTask is canceled", "report_info", gcBucketMigrationTask.Info()) + log.CtxErrorw(ctx, "the reported gc object gc bucket migration task is canceled", "report_info", gcBucketMigrationTask.Info()) return ErrCanceledTask } err := m.gcBucketMigrationQueue.Push(gcBucketMigrationTask) - log.CtxInfow(ctx, "push gcBucketMigrationTask to queue again", "from", oldTask, "to", gcBucketMigrationTask, "error", err) - return nil -} - -func (m *ManageModular) HandleCreateGCBucketMigrationTask(ctx context.Context, task task.GCBucketMigrationTask) error { - if task == nil { - log.CtxErrorw(ctx, "failed to handle begin gc bucket migration due to task pointer dangling") - return ErrDanglingTask - } - if m.gcBucketMigrationQueue.Has(task.Key()) { - log.CtxErrorw(ctx, "uploading object repeated", "task_info", task.Info()) - return ErrRepeatedTask - } - if err := m.gcBucketMigrationQueue.Push(task); err != nil { - log.CtxErrorw(ctx, "failed to push upload object task to queue", "task_info", task.Info(), "error", err) - return err - } + log.CtxInfow(ctx, "succeed to push gc bucket migration task to queue again", "from", oldTask, "to", gcBucketMigrationTask, "error", err) return nil } diff --git a/modular/manager/manager.go b/modular/manager/manager.go index d3e04af34..a305a4b94 100644 --- a/modular/manager/manager.go +++ b/modular/manager/manager.go @@ -85,10 +85,14 @@ type ManageModular struct { gcObjectBlockInterval uint64 gcSafeBlockDistance uint64 - gcZombiePieceTimeInterval int - gcZombiePieceObjectID uint64 - gcZombiePieceObjectIDInterval uint64 - gcZombiePieceSafeBlockDistance uint64 + gcZombiePieceEnabled bool + gcZombiePieceTimeInterval int + gcZombiePieceObjectID uint64 + gcZombiePieceObjectIDInterval uint64 + gcZombiePieceSafeObjectIDDistance uint64 + + gcMetaEnabled bool + gcMetaTimeInterval int syncConsensusInfoInterval uint64 statisticsOutputInterval int @@ -199,7 +203,7 @@ func (m *ManageModular) eventLoop(ctx context.Context) { m.syncConsensusInfo(ctx) gcObjectTicker := time.NewTicker(time.Duration(m.gcObjectTimeInterval) * time.Second) gcZombiePieceTicker := time.NewTicker(time.Duration(m.gcZombiePieceTimeInterval) * time.Second) - gcMetaTicker := time.NewTicker(time.Duration(m.gcZombiePieceTimeInterval) * time.Second) + gcMetaTicker := time.NewTicker(time.Duration(m.gcMetaTimeInterval) * time.Second) syncConsensusInfoTicker := time.NewTicker(time.Duration(m.syncConsensusInfoInterval) * time.Second) statisticsTicker := time.NewTicker(time.Duration(m.statisticsOutputInterval) * time.Second) discontinueBucketTicker := time.NewTicker(time.Duration(m.discontinueBucketTimeInterval) * time.Second) @@ -248,6 +252,9 @@ func (m *ManageModular) eventLoop(ctx context.Context) { } log.CtxErrorw(ctx, "generate a gc object task", "task_info", task.Info(), "error", err) case <-gcZombiePieceTicker.C: + if !m.gcZombiePieceEnabled { + continue + } start := m.gcZombiePieceObjectID end := m.gcZombiePieceObjectID + m.gcZombiePieceObjectIDInterval currentBlockHeight, err := m.baseApp.Consensus().CurrentHeight(ctx) @@ -255,12 +262,12 @@ func (m *ManageModular) eventLoop(ctx context.Context) { log.CtxErrorw(ctx, "failed to get current block height for gc object and try again later", "error", err) continue } - // TODO max objectID ? - if end+m.gcZombiePieceSafeBlockDistance > currentBlockHeight { - log.CtxErrorw(ctx, "current block number less safe distance and try again later", - "start_gc_block_height", start, - "end_gc_block_height", end, - "safe_distance", m.gcSafeBlockDistance, + // TODO how to get current max objectID, we use currentBlockHeight as max object id, max object id always smaller than currentBlockHeight + if end+m.gcZombiePieceSafeObjectIDDistance > currentBlockHeight { + log.CtxErrorw(ctx, "current object id number less safe distance and try again later", + "start_gc_object_id", start, + "end_gc_object_id", end, + "safe_object_id_distance", m.gcZombiePieceSafeObjectIDDistance, "current_block_height", currentBlockHeight) // from 0 again later m.gcZombiePieceObjectID = 0 @@ -273,16 +280,21 @@ func (m *ManageModular) eventLoop(ctx context.Context) { log.CtxErrorw(ctx, "failed to push gc zombie piece task", "error", err) continue } + m.gcZombiePieceObjectID = end + 1 + log.CtxDebugw(ctx, "succeed to push gc zombie task to queue", "task_info", task.Info()) case <-gcMetaTicker.C: + if !m.gcMetaEnabled { + continue + } var err error task := &gfsptask.GfSpGCMetaTask{} task.InitGCMetaTask(m.baseApp.TaskPriority(task), m.baseApp.TaskTimeout(task, 0)) err = m.gcMetaQueue.Push(task) if err != nil { - log.CtxErrorw(ctx, "failed to push gc zombie piece task", "error", err) + log.CtxErrorw(ctx, "failed to push gc meta task", "error", err) continue } - + log.CtxDebugw(ctx, "succeed to push gc meta task to queue", "task_info", task.Info()) case <-discontinueBucketTicker.C: if !m.discontinueBucketEnabled { continue @@ -293,27 +305,6 @@ func (m *ManageModular) eventLoop(ctx context.Context) { } } -// TODO record deletion bucket id ? -//func (m *ManageModular) generateGCMetaTask(ctx context.Context) { -// var err error -// // bucket_traffic -// now := time.Now().Unix() -// task := &gfsptask.GfSpGCMetaTask{} -// task.InitGCMetaTask(m.baseApp.TaskPriority(task), m.baseApp.TaskTimeout(task, 0), uint64(now), gfsptask.GfSpGCMetaTaskType_META_TASK_BUCKET_TRAFFIC) -// err = m.gcMetaQueue.Push(task) -// if err != nil { -// log.CtxErrorw(ctx, "failed to push gc zombie piece task", "error", err) -// } -// // read_record -// // TODO config ? -// task = &gfsptask.GfSpGCMetaTask{} -// task.InitGCMetaTask(m.baseApp.TaskPriority(task), m.baseApp.TaskTimeout(task, 0), uint64(now), gfsptask.GfSpGCMetaTaskType_META_TASK_BUCKET_TRAFFIC_READ_RECORD) -// err = m.gcMetaQueue.Push(task) -// if err != nil { -// log.CtxErrorw(ctx, "failed to push gc zombie piece task", "error", err) -// } -//} - func (m *ManageModular) discontinueBuckets(ctx context.Context) { createAt := time.Now().AddDate(0, 0, -m.discontinueBucketKeepAliveDays) spID, err := m.getSPID() diff --git a/modular/manager/manager_options.go b/modular/manager/manager_options.go index 75d0e4a5b..12a5696ff 100644 --- a/modular/manager/manager_options.go +++ b/modular/manager/manager_options.go @@ -30,7 +30,7 @@ const ( // DefaultGlobalGCObjectParallel defines the default max parallel gc objects in SP // system. DefaultGlobalGCObjectParallel int = 4 - // DefaultGlobalGCZombieParallel defines the default max parallel gc zonbie pieces + // DefaultGlobalGCZombieParallel defines the default max parallel gc zombie pieces // in SP system. DefaultGlobalGCZombieParallel int = 1 // DefaultGlobalGCMetaParallel defines the default max parallel gc meta db in SP @@ -55,13 +55,22 @@ const ( DefaultGlobalBatchGcObjectTimeInterval int = 1 * 60 // DefaultGlobalBatchGcZombiePieceTimeInterval defines the default interval for generating // gc object task. - DefaultGlobalBatchGcZombiePieceTimeInterval int = 1 * 60 + DefaultGlobalBatchGcZombiePieceTimeInterval int = 1 * 3 + // DefaultGlobalBatchGcMetaTimeInterval defines the default interval for generating + // gc object task. + DefaultGlobalBatchGcMetaTimeInterval int = 1 * 10 + // DefaultGlobalGcZombiePieceObjectIDInterval defines the default object id number for getting + // deleted zombie piece. + DefaultGlobalGcZombiePieceObjectIDInterval uint64 = 100 // DefaultGlobalGcObjectBlockInterval defines the default blocks number for getting // deleted objects. DefaultGlobalGcObjectBlockInterval uint64 = 1000 // DefaultGlobalGcObjectSafeBlockDistance defines the default distance form current block // height to gc the deleted object. DefaultGlobalGcObjectSafeBlockDistance uint64 = 1000 + // DefaultGlobalGcZombieSafeObjectIDDistance defines the default distance form current object id + // to gc the deleted zombie piece. + DefaultGlobalGcZombieSafeObjectIDDistance uint64 = 1000 // DefaultGlobalSyncConsensusInfoInterval defines the default interval for sync the sp // info list to sp db. DefaultGlobalSyncConsensusInfoInterval uint64 = 600 @@ -164,15 +173,27 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( if cfg.Parallel.GlobalBatchGcObjectTimeInterval == 0 { cfg.Parallel.GlobalBatchGcObjectTimeInterval = DefaultGlobalBatchGcObjectTimeInterval } - if cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval == 0 { - cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval = DefaultGlobalBatchGcZombiePieceTimeInterval - } if cfg.Parallel.GlobalGcObjectBlockInterval == 0 { cfg.Parallel.GlobalGcObjectBlockInterval = DefaultGlobalGcObjectBlockInterval } if cfg.Parallel.GlobalGcObjectSafeBlockDistance == 0 { cfg.Parallel.GlobalGcObjectSafeBlockDistance = DefaultGlobalGcObjectSafeBlockDistance } + + if cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval == 0 { + cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval = DefaultGlobalBatchGcZombiePieceTimeInterval + } + if cfg.Parallel.GlobalGcZombiePieceObjectIDInterval == 0 { + cfg.Parallel.GlobalGcZombiePieceObjectIDInterval = DefaultGlobalGcZombiePieceObjectIDInterval + } + if cfg.Parallel.GlobalGcZombieSafeObjectIDDistance == 0 { + cfg.Parallel.GlobalGcZombieSafeObjectIDDistance = DefaultGlobalGcZombieSafeObjectIDDistance + } + + if cfg.Parallel.GlobalGcMetaTimeInterval == 0 { + cfg.Parallel.GlobalGcMetaTimeInterval = DefaultGlobalBatchGcMetaTimeInterval + } + if cfg.Parallel.GlobalSyncConsensusInfoInterval == 0 { cfg.Parallel.GlobalSyncConsensusInfoInterval = DefaultGlobalSyncConsensusInfoInterval } @@ -201,9 +222,14 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( manager.statisticsOutputInterval = DefaultStatisticsOutputInterval manager.maxUploadObjectNumber = cfg.Parallel.GlobalMaxUploadingParallel manager.gcObjectTimeInterval = cfg.Parallel.GlobalBatchGcObjectTimeInterval - manager.gcZombiePieceTimeInterval = cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval manager.gcObjectBlockInterval = cfg.Parallel.GlobalGcObjectBlockInterval manager.gcSafeBlockDistance = cfg.Parallel.GlobalGcObjectSafeBlockDistance + manager.gcZombiePieceEnabled = cfg.Parallel.GlobalGCZombieEnabled + manager.gcZombiePieceTimeInterval = cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval + manager.gcZombiePieceSafeObjectIDDistance = cfg.Parallel.GlobalGcZombieSafeObjectIDDistance + manager.gcZombiePieceObjectIDInterval = cfg.Parallel.GlobalGcZombiePieceObjectIDInterval + manager.gcMetaEnabled = cfg.Parallel.GlobalGCMetaEnabled + manager.gcMetaTimeInterval = cfg.Parallel.GlobalGcMetaTimeInterval manager.syncConsensusInfoInterval = cfg.Parallel.GlobalSyncConsensusInfoInterval manager.discontinueBucketEnabled = cfg.Parallel.DiscontinueBucketEnabled manager.discontinueBucketTimeInterval = cfg.Parallel.DiscontinueBucketTimeInterval diff --git a/modular/manager/migrate_service.go b/modular/manager/migrate_service.go index 54342f058..41f62c19b 100644 --- a/modular/manager/migrate_service.go +++ b/modular/manager/migrate_service.go @@ -3,7 +3,6 @@ package manager import ( "context" "fmt" - "time" "github.com/bnb-chain/greenfield-storage-provider/base/types/gfsptask" "github.com/bnb-chain/greenfield-storage-provider/pkg/log" @@ -83,18 +82,7 @@ func (m *ManageModular) NotifyPostMigrateBucket(ctx context.Context, bmInfo *gfs if bmInfo.GetFinished() { go func() { - // src sp should wait meta data - <-time.After(10 * time.Second) - - // success generate gc task, gc for bucket migration src sp - gcBucketMigrationTask := &gfsptask.GfSpGCBucketMigrationTask{} - gcBucketMigrationTask.InitGCBucketMigrationTask(m.baseApp.TaskPriority(gcBucketMigrationTask), bucketID, - m.baseApp.TaskTimeout(gcBucketMigrationTask, bucketSize), m.baseApp.TaskMaxRetry(gcBucketMigrationTask)) - err = m.HandleCreateGCBucketMigrationTask(ctx, gcBucketMigrationTask) - if err != nil { - log.CtxErrorw(ctx, "failed to begin gc bucket migration task", "info", gcBucketMigrationTask.Info(), "error", err) - } - log.CtxInfow(ctx, "succeed to push bucket migration gc task to queue", "bucket_migration_info", bmInfo, "gcBucketMigrationTask", gcBucketMigrationTask) + m.GenerateGCBucketMigrationTask(ctx, bucketID, bucketSize) }() } diff --git a/modular/metadata/types/metadata.pb.go b/modular/metadata/types/metadata.pb.go index 736ce3a95..6f4332fd8 100644 --- a/modular/metadata/types/metadata.pb.go +++ b/modular/metadata/types/metadata.pb.go @@ -4000,8 +4000,8 @@ func (m *GfSpListObjectsInGVGAndBucketResponse) GetObjects() []*ObjectDetails { // GfSpListObjectByGVGAndBucketForGCRequest is request type for the GfSpListObjectByGVGAndBucketForGC RPC method type GfSpListObjectsByGVGAndBucketForGCRequest struct { - // gvg_id is the unique identification for gvg - GvgId uint32 `protobuf:"varint,1,opt,name=gvg_id,json=gvgId,proto3" json:"gvg_id,omitempty"` + // dst_gvg_id defines the destination of gvg id + DstGvgId uint32 `protobuf:"varint,1,opt,name=dst_gvg_id,json=dstGvgId,proto3" json:"dst_gvg_id,omitempty"` // bucket_id is the unique identification for bucket BucketId uint64 `protobuf:"varint,2,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` // start_after is where you want to start listing from @@ -4047,9 +4047,9 @@ func (m *GfSpListObjectsByGVGAndBucketForGCRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GfSpListObjectsByGVGAndBucketForGCRequest proto.InternalMessageInfo -func (m *GfSpListObjectsByGVGAndBucketForGCRequest) GetGvgId() uint32 { +func (m *GfSpListObjectsByGVGAndBucketForGCRequest) GetDstGvgId() uint32 { if m != nil { - return m.GvgId + return m.DstGvgId } return 0 } @@ -6873,343 +6873,344 @@ func init() { } var fileDescriptor_7cdcff708e247f22 = []byte{ - // 5367 bytes of a gzipped FileDescriptorProto + // 5381 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7c, 0x4b, 0x6c, 0x1c, 0x47, - 0x7a, 0x30, 0x7b, 0x86, 0xaf, 0x29, 0x3e, 0x55, 0x96, 0x25, 0x6a, 0xb4, 0xa2, 0xa4, 0x96, 0x65, - 0x51, 0x2b, 0x8b, 0xb4, 0x25, 0xbf, 0x64, 0x5b, 0xb6, 0x48, 0x4a, 0xa2, 0x09, 0xaf, 0x2c, 0xba, - 0x47, 0x92, 0x77, 0xbd, 0xbf, 0xff, 0xde, 0x9e, 0xe9, 0x9a, 0x61, 0x87, 0x33, 0xdd, 0xed, 0xae, - 0x1e, 0x4a, 0x63, 0x64, 0x91, 0x45, 0x5e, 0xc0, 0x22, 0x01, 0xf2, 0x5e, 0x24, 0x1b, 0x60, 0x81, - 0x0d, 0x02, 0xe4, 0xb2, 0x09, 0x82, 0x64, 0x91, 0x43, 0x92, 0x4d, 0x02, 0xe4, 0x62, 0x20, 0x08, - 0x60, 0xec, 0x21, 0x09, 0x16, 0x81, 0xb1, 0xb0, 0xef, 0xb9, 0xe4, 0x9a, 0x43, 0x50, 0xf5, 0x55, - 0x77, 0x57, 0xbf, 0x87, 0x43, 0xe6, 0x71, 0xc8, 0x45, 0x9a, 0xae, 0xfa, 0xea, 0xab, 0xaa, 0xef, - 0x55, 0x5f, 0x7d, 0xdf, 0x57, 0x44, 0x17, 0x7b, 0x8e, 0xd9, 0xef, 0x1a, 0xde, 0x5a, 0x8f, 0xf8, - 0x86, 0x69, 0xf8, 0xc6, 0x9a, 0x3f, 0x70, 0x09, 0x0d, 0x3f, 0x57, 0x5d, 0xcf, 0xf1, 0x1d, 0x7c, - 0x42, 0x80, 0xad, 0x86, 0xed, 0x1c, 0xac, 0x7e, 0xbe, 0x69, 0x50, 0x22, 0x86, 0x74, 0xda, 0xd4, - 0x25, 0x9e, 0xe7, 0x78, 0x74, 0x8d, 0xff, 0x07, 0x43, 0xeb, 0xcb, 0x09, 0x10, 0xdf, 0xa0, 0x7b, - 0x6b, 0xec, 0x1f, 0xd1, 0x7f, 0xaa, 0xe5, 0xd0, 0x9e, 0x43, 0x75, 0xfe, 0xb5, 0x06, 0x1f, 0xa2, - 0xeb, 0x78, 0xc7, 0xe9, 0x38, 0xd0, 0xce, 0x7e, 0x89, 0xd6, 0x67, 0x3b, 0x1e, 0x21, 0x76, 0xdb, - 0x22, 0x5d, 0x73, 0xcd, 0x35, 0x06, 0x3d, 0x62, 0xfb, 0x6b, 0xd4, 0xf7, 0x88, 0xd1, 0xd3, 0x3d, - 0xd2, 0x72, 0x3c, 0x53, 0xc0, 0xa9, 0x32, 0x1c, 0xf1, 0x7a, 0x16, 0xa5, 0x96, 0x63, 0xaf, 0xb5, - 0x9c, 0x5e, 0xcf, 0xb1, 0x05, 0xcc, 0x59, 0x09, 0xc6, 0x23, 0xd4, 0xe9, 0x7b, 0x2d, 0xb1, 0xd6, - 0x60, 0x75, 0x12, 0x00, 0x75, 0x63, 0x5d, 0xf2, 0x58, 0xea, 0x3b, 0x9e, 0xd1, 0x21, 0x6b, 0x64, - 0x9f, 0xd8, 0x7e, 0x00, 0xb0, 0x9c, 0x01, 0xf0, 0x51, 0x9f, 0x78, 0x83, 0x82, 0x7e, 0x79, 0x82, - 0x67, 0xa4, 0xfe, 0x7d, 0xcb, 0xf3, 0xfb, 0x46, 0xb7, 0xe3, 0x39, 0x7d, 0x37, 0x3e, 0xcb, 0x85, - 0x3c, 0x28, 0x19, 0xd5, 0x49, 0x86, 0x3f, 0xe0, 0x02, 0xff, 0x0d, 0x1d, 0xea, 0xbf, 0x55, 0xd0, - 0xe4, 0x46, 0xbf, 0xb5, 0x47, 0x7c, 0xfc, 0x16, 0x9a, 0x69, 0xf2, 0x5f, 0xba, 0x65, 0xb7, 0x9d, - 0x25, 0xe5, 0x9c, 0xb2, 0x32, 0x73, 0x6d, 0x79, 0x35, 0x42, 0xbf, 0x2a, 0x16, 0xb9, 0x0a, 0x03, - 0xb6, 0xed, 0xb6, 0xa3, 0xa1, 0x66, 0xf8, 0x1b, 0x2f, 0xa1, 0x29, 0x8f, 0xf4, 0x9c, 0x7d, 0x62, - 0x2e, 0x55, 0xce, 0x29, 0x2b, 0xd3, 0x5a, 0xf0, 0x89, 0x4f, 0xa3, 0x9a, 0x49, 0xba, 0xc4, 0x27, - 0xba, 0xe1, 0x2f, 0x55, 0xcf, 0x29, 0x2b, 0x55, 0x6d, 0x1a, 0x1a, 0xd6, 0x7d, 0x7c, 0x01, 0xcd, - 0x89, 0x4e, 0x8f, 0x18, 0xd4, 0xb1, 0x97, 0xc6, 0xcf, 0x29, 0x2b, 0x35, 0x6d, 0x16, 0x1a, 0x35, - 0xde, 0x86, 0xeb, 0x68, 0xda, 0x71, 0x89, 0x67, 0xf8, 0x8e, 0xb7, 0x34, 0xc1, 0xfb, 0xc3, 0x6f, - 0xfc, 0x0c, 0x9a, 0x6f, 0x79, 0xc4, 0xf0, 0x89, 0xee, 0x3f, 0xd1, 0x77, 0x0d, 0xba, 0xbb, 0x34, - 0x09, 0x18, 0xa0, 0xf5, 0xc1, 0x93, 0xb7, 0x0d, 0xba, 0xcb, 0xa0, 0xfa, 0xae, 0x29, 0x43, 0x4d, - 0x01, 0x14, 0xb4, 0x0a, 0xa8, 0xd3, 0xa8, 0x26, 0xa0, 0x0c, 0x7f, 0x69, 0x1a, 0x56, 0x0a, 0x0d, - 0xeb, 0x3e, 0x3e, 0x8b, 0x66, 0x02, 0x14, 0x56, 0x8f, 0x2c, 0xd5, 0x78, 0x37, 0x12, 0xe3, 0xad, - 0x1e, 0xc1, 0xe7, 0xd1, 0xac, 0xa0, 0x91, 0x4e, 0xad, 0x8f, 0xc9, 0x12, 0xe2, 0x33, 0xcc, 0x88, - 0xb6, 0x86, 0xf5, 0x31, 0x51, 0xff, 0xbd, 0x82, 0x26, 0xef, 0x37, 0x7f, 0x86, 0xb4, 0x38, 0xc1, - 0x1d, 0xfe, 0xab, 0x94, 0xe0, 0x30, 0x00, 0x08, 0xee, 0x84, 0xbf, 0xf1, 0x45, 0x34, 0xdf, 0x75, - 0x5a, 0x7b, 0xc4, 0xd4, 0x9b, 0x46, 0xd7, 0xb0, 0x5b, 0x84, 0xd3, 0xbd, 0xa6, 0xcd, 0x41, 0xeb, - 0x06, 0x34, 0xca, 0x7c, 0xa9, 0xa6, 0xf8, 0x12, 0xed, 0x76, 0x3c, 0xb1, 0xdb, 0x18, 0xd3, 0x26, - 0xca, 0x98, 0x36, 0x59, 0xc2, 0xb4, 0xa9, 0x52, 0xa6, 0x4d, 0x0f, 0xc5, 0xb4, 0x5a, 0x06, 0xd3, - 0xce, 0xa1, 0x59, 0x4a, 0x8c, 0x6e, 0x08, 0x03, 0x64, 0x47, 0xac, 0x0d, 0x20, 0xd4, 0xbf, 0x51, - 0xd0, 0x1c, 0x10, 0xf1, 0x36, 0xf1, 0x0d, 0xab, 0x4b, 0xf1, 0xcb, 0x68, 0x12, 0x28, 0x19, 0xd2, - 0x3d, 0xdb, 0xc4, 0x09, 0xda, 0x6b, 0x02, 0x9a, 0x8d, 0x03, 0x91, 0xe7, 0xb4, 0x2e, 0x18, 0x07, - 0x4a, 0xa2, 0x09, 0x68, 0x7c, 0x13, 0x55, 0x3b, 0xfb, 0x1d, 0xce, 0x80, 0x99, 0x6b, 0x57, 0x64, - 0x26, 0xcb, 0x4a, 0xbb, 0xba, 0xd5, 0x75, 0x9a, 0x46, 0xf7, 0x11, 0x34, 0x6d, 0xb1, 0x26, 0x8d, - 0x8d, 0x53, 0xff, 0xb2, 0x8a, 0xe6, 0x1e, 0x6d, 0xdd, 0x65, 0x6c, 0xff, 0x3f, 0x75, 0x3d, 0x2a, - 0x75, 0xdd, 0x44, 0xd5, 0xfd, 0x4e, 0x9b, 0x8b, 0xcb, 0xcc, 0xb5, 0x17, 0x0e, 0xc0, 0x93, 0xbb, - 0x46, 0xcf, 0xea, 0x0e, 0x34, 0x36, 0x3a, 0xa5, 0xf3, 0x33, 0x69, 0x9d, 0xff, 0x9e, 0x82, 0xe6, - 0x77, 0xe0, 0xa4, 0x5a, 0x6f, 0xb5, 0x9c, 0xbe, 0xed, 0x33, 0xe2, 0x1b, 0xa6, 0xe9, 0x11, 0x4a, - 0x39, 0xe7, 0x6a, 0x5a, 0xf0, 0x89, 0x8f, 0xa3, 0x09, 0xe7, 0xb1, 0x4d, 0x3c, 0xa1, 0xcb, 0xf0, - 0x81, 0x97, 0x11, 0xf2, 0x48, 0xbb, 0x6f, 0x9b, 0x46, 0xb3, 0x4b, 0x84, 0x1a, 0x4b, 0x2d, 0xc5, - 0x9a, 0x9c, 0x20, 0xc4, 0x44, 0x92, 0x10, 0xea, 0x0f, 0x14, 0x84, 0xe3, 0x0b, 0xbc, 0x47, 0x7c, - 0x03, 0xdf, 0x47, 0x0b, 0xe2, 0x80, 0xd5, 0x0d, 0x68, 0x16, 0x62, 0xf6, 0x6c, 0x9e, 0xd0, 0xc7, - 0x91, 0x68, 0xf3, 0x6e, 0x7c, 0xd7, 0x77, 0xd0, 0x5c, 0xec, 0xa4, 0x16, 0x3a, 0x74, 0x4e, 0x26, - 0xbd, 0x18, 0xb2, 0xda, 0xe0, 0x80, 0x1a, 0x87, 0xd3, 0x66, 0xa9, 0xf4, 0xa5, 0xb6, 0xd0, 0xa9, - 0xad, 0x76, 0xc3, 0xdd, 0x22, 0xfe, 0x43, 0x4a, 0x3c, 0x10, 0x6f, 0xaa, 0x91, 0x8f, 0xfa, 0x84, - 0xfa, 0xf8, 0x0c, 0x42, 0x62, 0xb1, 0xba, 0x65, 0x0a, 0xe2, 0xd6, 0x44, 0xcb, 0xb6, 0x89, 0x2f, - 0xa1, 0x05, 0xcb, 0x6e, 0x75, 0xfb, 0x26, 0x93, 0x5f, 0x59, 0xfa, 0xe7, 0x45, 0xb3, 0x06, 0xad, - 0xea, 0x87, 0xa8, 0x9e, 0x35, 0x09, 0x75, 0x1d, 0x9b, 0x12, 0xfc, 0x16, 0x9a, 0x02, 0x55, 0x62, - 0xfc, 0xab, 0xae, 0xcc, 0x5c, 0xbb, 0x98, 0x47, 0x92, 0x98, 0xd6, 0x6a, 0xc1, 0x28, 0xf5, 0x4f, - 0x2a, 0x48, 0x65, 0xf8, 0xbf, 0x62, 0x51, 0x1f, 0x4c, 0x0c, 0xdd, 0x18, 0x00, 0xd0, 0xbb, 0x46, - 0x8f, 0x04, 0xbb, 0x39, 0x1b, 0x6a, 0xb9, 0x6d, 0xf4, 0x88, 0xd8, 0x8e, 0xd0, 0x62, 0x06, 0x97, - 0xd8, 0x6e, 0x25, 0xb9, 0xdd, 0x53, 0x68, 0xba, 0x67, 0x3c, 0xd1, 0xf7, 0xc8, 0x80, 0x72, 0xa9, - 0x19, 0xd7, 0xa6, 0x7a, 0xc6, 0x93, 0x77, 0xc8, 0x80, 0x32, 0xd4, 0xd4, 0x37, 0x3c, 0x5f, 0x37, - 0xda, 0x3e, 0xf1, 0x84, 0x1a, 0x23, 0xde, 0xb4, 0xce, 0x5a, 0xf0, 0x55, 0x84, 0x5b, 0x8e, 0xed, - 0x5b, 0x76, 0xdf, 0xf0, 0x2d, 0xc7, 0xd6, 0x7d, 0x67, 0x8f, 0xd8, 0x42, 0x9d, 0x8f, 0xc9, 0x3d, - 0x0f, 0x58, 0x07, 0xfe, 0x12, 0xb7, 0x1a, 0x56, 0xcf, 0x62, 0xd8, 0x40, 0xa5, 0xa3, 0x06, 0x7c, - 0x02, 0x4d, 0xba, 0x1e, 0x69, 0x5b, 0x4f, 0x84, 0x1e, 0x8b, 0xaf, 0x2c, 0x7e, 0x4c, 0x67, 0xf2, - 0xe3, 0xb7, 0xab, 0xe8, 0x42, 0x21, 0xc1, 0x04, 0x67, 0x5e, 0x45, 0x53, 0x60, 0xaa, 0x03, 0xce, - 0x94, 0x59, 0xf6, 0x00, 0x9c, 0xe9, 0xd0, 0x1e, 0x19, 0xe8, 0x20, 0xe8, 0x15, 0x4e, 0xac, 0xe9, - 0x3d, 0x32, 0xd8, 0xe4, 0xa2, 0x5b, 0x40, 0xc8, 0xf3, 0x68, 0xd6, 0xa2, 0xba, 0xef, 0xf5, 0xed, - 0x96, 0xe1, 0x13, 0x93, 0x53, 0x72, 0x5a, 0x9b, 0xb1, 0xe8, 0x83, 0xa0, 0x09, 0xbf, 0x8c, 0x4e, - 0xda, 0xe4, 0x89, 0xaf, 0xe7, 0xd2, 0xf3, 0x69, 0xd6, 0xbd, 0x99, 0xa2, 0x29, 0x46, 0xe3, 0x9c, - 0xef, 0x40, 0x4e, 0xfe, 0x3b, 0x97, 0x92, 0x31, 0xfa, 0x4f, 0x27, 0xe9, 0x7f, 0x09, 0x2d, 0x80, - 0xe7, 0xab, 0x03, 0x38, 0xa1, 0x4b, 0xb5, 0x73, 0xd5, 0x95, 0x9a, 0x36, 0x0f, 0xcd, 0x3b, 0xa2, - 0x35, 0x87, 0xeb, 0x28, 0x87, 0xeb, 0x6a, 0x17, 0x9d, 0x13, 0x6a, 0x02, 0xbc, 0x18, 0x49, 0x88, - 0x25, 0x21, 0x70, 0x3d, 0x6b, 0xdf, 0xf0, 0x49, 0x42, 0x29, 0x77, 0xa0, 0x55, 0xfd, 0x3a, 0x3a, - 0x5f, 0x30, 0x9b, 0x90, 0x80, 0xe8, 0x88, 0x56, 0x0e, 0x72, 0x44, 0xab, 0x6d, 0xb4, 0x9c, 0x89, - 0x7c, 0xfb, 0x76, 0xb0, 0x91, 0xd3, 0xa8, 0x16, 0x9c, 0xb9, 0x60, 0x5a, 0xaa, 0xda, 0xb4, 0x38, - 0x51, 0xcd, 0xe1, 0x37, 0xf1, 0x35, 0x74, 0x36, 0x77, 0x9e, 0x43, 0x6e, 0xe1, 0xcf, 0x14, 0xb4, - 0x16, 0x28, 0xc9, 0x6d, 0x7e, 0x20, 0x9b, 0x91, 0xae, 0x30, 0xaf, 0xf0, 0xdd, 0x7e, 0xaf, 0x49, - 0x3c, 0xcd, 0xb0, 0x3b, 0x21, 0x77, 0x9e, 0x43, 0x18, 0xec, 0x40, 0x93, 0x01, 0xe8, 0x36, 0x87, - 0x10, 0xbb, 0x5b, 0xe4, 0x3d, 0xd2, 0x48, 0xbc, 0x82, 0x16, 0x89, 0x6d, 0xc6, 0x61, 0x2b, 0x1c, - 0x76, 0x9e, 0xd8, 0xa6, 0x0c, 0x99, 0x41, 0x8f, 0x6a, 0x26, 0x3d, 0xbe, 0xa3, 0xa0, 0xe7, 0x87, - 0x5f, 0xf4, 0xa1, 0xd5, 0x7c, 0xe8, 0x1d, 0xa8, 0xbb, 0xa1, 0x40, 0x48, 0x47, 0x00, 0x37, 0x07, - 0x47, 0x7d, 0xd8, 0xbc, 0x12, 0x8a, 0x44, 0x7a, 0x26, 0xb1, 0xe1, 0xe3, 0x68, 0x22, 0x3a, 0x82, - 0xab, 0x1a, 0x7c, 0xa8, 0x1f, 0x83, 0x42, 0x30, 0xd2, 0xdd, 0x79, 0xe2, 0x5a, 0x1e, 0x31, 0xc5, - 0xe0, 0x8d, 0x41, 0xc3, 0x95, 0xc4, 0x56, 0x78, 0x5c, 0x46, 0x30, 0x7c, 0x1a, 0x1a, 0xd6, 0x7d, - 0xac, 0xa2, 0x39, 0xd7, 0xb3, 0x7a, 0x86, 0x37, 0xd0, 0xa9, 0x1b, 0x9c, 0x21, 0x73, 0xda, 0x8c, - 0x68, 0x6c, 0xb8, 0xdb, 0x26, 0x9b, 0x9b, 0xdb, 0x11, 0xe1, 0x0c, 0xc2, 0x87, 0xfa, 0xff, 0xa3, - 0x13, 0x2c, 0x6b, 0xee, 0x88, 0x51, 0xf1, 0x93, 0xb2, 0x4c, 0x96, 0xc3, 0x23, 0xf2, 0x97, 0x14, - 0xb4, 0x24, 0xa8, 0x02, 0x3c, 0x64, 0x4e, 0x89, 0x64, 0x53, 0xc4, 0xe5, 0x49, 0xb6, 0x29, 0xd0, - 0xc4, 0x6d, 0x4a, 0xc2, 0xe8, 0x54, 0x86, 0x31, 0x3a, 0xd9, 0xf2, 0xd9, 0x08, 0xdd, 0x0d, 0x79, - 0x19, 0x91, 0xa6, 0x8e, 0x72, 0x8f, 0x50, 0x7b, 0xa1, 0x25, 0x13, 0x3e, 0xd3, 0x7f, 0xad, 0xe1, - 0xdc, 0x03, 0x5e, 0xe5, 0x4d, 0x27, 0x36, 0x93, 0xf2, 0xcf, 0x94, 0x91, 0xfc, 0xb3, 0x4e, 0x28, - 0xcd, 0x89, 0xc9, 0x8e, 0xda, 0x92, 0x5a, 0xe1, 0xe1, 0x93, 0x31, 0xd1, 0xd1, 0xee, 0xc9, 0x0c, - 0x65, 0x11, 0x66, 0x48, 0xc8, 0xe2, 0x11, 0xb1, 0xe9, 0xfb, 0x4a, 0x28, 0x6b, 0xf2, 0x34, 0x62, - 0x2b, 0x37, 0x13, 0xa7, 0xc2, 0x90, 0x3e, 0x67, 0x70, 0x05, 0x3d, 0x22, 0xef, 0xfb, 0x3a, 0xfa, - 0x92, 0x58, 0xe2, 0x1d, 0xdb, 0x74, 0x1d, 0x8b, 0x51, 0xbd, 0xe1, 0x46, 0xac, 0x7d, 0x0a, 0x4d, - 0x80, 0x21, 0x51, 0xb8, 0x21, 0x19, 0xa7, 0xee, 0xb6, 0xa9, 0xbe, 0x8e, 0xce, 0xe4, 0x0c, 0x12, - 0x7b, 0xab, 0xa3, 0x69, 0x22, 0x7a, 0x04, 0x01, 0xc3, 0x6f, 0xf5, 0xe7, 0xc2, 0xc1, 0x62, 0x47, - 0xc4, 0x30, 0xdf, 0xeb, 0x3b, 0x11, 0x03, 0x0e, 0x7d, 0x17, 0x3e, 0x83, 0xd0, 0x80, 0x18, 0x9e, - 0xde, 0x73, 0x6c, 0x7f, 0x37, 0xf0, 0xa2, 0x59, 0xcb, 0x3d, 0xd6, 0xa0, 0xfe, 0x4a, 0x25, 0xe1, - 0x1a, 0x48, 0x2b, 0x10, 0xeb, 0xbf, 0x86, 0xaa, 0xc4, 0xf3, 0x42, 0xe1, 0x6a, 0x1a, 0x94, 0x08, - 0x66, 0x44, 0x71, 0xd1, 0x55, 0x86, 0xe3, 0x0e, 0xfb, 0xa9, 0x31, 0x60, 0x76, 0xf2, 0xb6, 0x76, - 0x0d, 0xaf, 0x43, 0x4c, 0xfd, 0x23, 0x86, 0x0c, 0x2e, 0x90, 0xe0, 0x79, 0x2e, 0x8a, 0x1e, 0x3e, - 0x0b, 0xbb, 0x45, 0xe2, 0x2b, 0x08, 0x53, 0x57, 0x6f, 0x7b, 0x84, 0xc8, 0xd0, 0xe0, 0x8b, 0x2e, - 0x50, 0xf7, 0xae, 0x47, 0x48, 0x04, 0x7c, 0x01, 0xcd, 0xb5, 0x1c, 0x9b, 0xf6, 0x7b, 0xc4, 0x04, - 0xb8, 0x71, 0x0e, 0x37, 0x1b, 0x34, 0x72, 0xa0, 0x97, 0xd0, 0x49, 0x09, 0x9d, 0xe8, 0x02, 0xf0, - 0x09, 0x0e, 0x7e, 0xbc, 0x1d, 0x20, 0xdd, 0x84, 0x4e, 0x7e, 0x9d, 0xdd, 0x00, 0x47, 0x7c, 0x8b, - 0xf8, 0x5f, 0x31, 0x7c, 0x42, 0xf3, 0x98, 0x92, 0x52, 0xf1, 0xf1, 0x48, 0xc5, 0xd5, 0xef, 0x2a, - 0xe8, 0x99, 0x62, 0x24, 0x87, 0xa0, 0xeb, 0x9b, 0x68, 0x82, 0x6f, 0x49, 0x08, 0xf8, 0x4a, 0x72, - 0x14, 0x8f, 0x3e, 0xb3, 0x31, 0x30, 0x29, 0x9f, 0x90, 0x8b, 0x04, 0x0c, 0x53, 0x7f, 0xaa, 0x80, - 0x01, 0x63, 0x27, 0x5b, 0xb4, 0x2e, 0xa1, 0x0c, 0x47, 0x25, 0x72, 0xa1, 0xdb, 0xc5, 0xee, 0xe4, - 0xd4, 0x37, 0x7a, 0xae, 0xde, 0xa7, 0xc2, 0x11, 0x01, 0xb7, 0xeb, 0x41, 0xd0, 0xf1, 0x30, 0x74, - 0x5a, 0x62, 0xb0, 0xd5, 0xd0, 0x69, 0x91, 0x21, 0x9f, 0x41, 0xf3, 0xec, 0xa2, 0x02, 0x2a, 0xce, - 0xfc, 0x1b, 0x11, 0x0e, 0x98, 0xed, 0x19, 0x4f, 0x60, 0x0b, 0xef, 0xf6, 0x7b, 0xea, 0x9f, 0x2b, - 0x08, 0x45, 0x9b, 0x2a, 0x3f, 0x4d, 0x4f, 0xa3, 0x5a, 0x10, 0xab, 0x34, 0x83, 0xbb, 0x91, 0x88, - 0x44, 0x72, 0x7b, 0x1d, 0x78, 0x41, 0x41, 0x50, 0xa3, 0xca, 0x31, 0xcc, 0x8b, 0xe6, 0x75, 0x11, - 0xdb, 0x38, 0x8f, 0x66, 0x63, 0x3b, 0x80, 0x95, 0xcd, 0xf8, 0xd2, 0xf2, 0x4f, 0xa3, 0x9a, 0x47, - 0x0c, 0x53, 0x96, 0xc2, 0x69, 0xd6, 0xc0, 0x25, 0xef, 0x27, 0x0a, 0x18, 0xfc, 0x6c, 0xc6, 0x1c, - 0x42, 0x62, 0xde, 0x41, 0xb3, 0x7c, 0x56, 0xa0, 0x1a, 0x63, 0x03, 0xf3, 0x54, 0xd4, 0x3c, 0xfb, - 0x1a, 0xcd, 0xba, 0x31, 0xfe, 0xc9, 0x67, 0x67, 0x15, 0x6d, 0xc6, 0x0b, 0x5b, 0x28, 0x53, 0x2b, - 0x7e, 0xd9, 0xcb, 0x60, 0x2f, 0xb0, 0xec, 0x38, 0xeb, 0x6e, 0x24, 0x58, 0xac, 0xde, 0x04, 0x1b, - 0xf3, 0x5e, 0x9f, 0x78, 0x83, 0x87, 0x6e, 0xd7, 0x31, 0xcc, 0x1d, 0xcf, 0xe9, 0x30, 0xba, 0x49, - 0x1a, 0x15, 0x31, 0x41, 0x89, 0x33, 0x41, 0xfd, 0x81, 0x10, 0xda, 0xcc, 0xf1, 0x87, 0x32, 0x52, - 0x13, 0xd4, 0x0f, 0x4e, 0xac, 0xf9, 0x6b, 0x27, 0x56, 0x21, 0x7d, 0x00, 0xc3, 0x1e, 0x18, 0x74, - 0xaf, 0xc1, 0x7a, 0x35, 0x00, 0x62, 0xa2, 0x40, 0x3c, 0x4f, 0x37, 0x09, 0x6d, 0x79, 0x96, 0xcb, - 0xae, 0x89, 0x81, 0x28, 0x10, 0xcf, 0xbb, 0x1d, 0xb5, 0xaa, 0x77, 0xd0, 0xb3, 0xe1, 0x6a, 0x35, - 0x42, 0xfb, 0x3d, 0xa3, 0xd9, 0x25, 0xb0, 0xec, 0x06, 0xe9, 0xb0, 0x33, 0x68, 0xa8, 0x5d, 0xff, - 0xbc, 0x82, 0x2e, 0x95, 0xe2, 0x39, 0xc4, 0xee, 0x2f, 0xa0, 0x39, 0x0a, 0x68, 0xa4, 0xb8, 0xc0, - 0x9c, 0x36, 0x2b, 0x1a, 0xb9, 0x8b, 0xae, 0x7e, 0xb7, 0x82, 0x26, 0x78, 0x5c, 0x10, 0x5f, 0x47, - 0x13, 0x3c, 0x66, 0x28, 0x26, 0x39, 0x93, 0x65, 0x0f, 0x38, 0x24, 0x98, 0x1b, 0x0e, 0x1b, 0x0b, - 0x96, 0x56, 0x12, 0xc1, 0xd2, 0x98, 0xeb, 0x5e, 0x4d, 0xb8, 0xee, 0x67, 0xd1, 0x4c, 0x10, 0x49, - 0xb5, 0x7a, 0x44, 0x68, 0x13, 0x12, 0x61, 0x54, 0xab, 0x97, 0x88, 0x0a, 0x4e, 0x14, 0x47, 0x05, - 0x27, 0x53, 0xe1, 0xd1, 0x2f, 0xa3, 0x63, 0x70, 0x3d, 0xd2, 0x9d, 0xb6, 0xde, 0x23, 0xec, 0x17, - 0xe5, 0x31, 0x87, 0xaa, 0xb6, 0x00, 0x1d, 0xf7, 0xdb, 0xf7, 0xa0, 0x59, 0x0e, 0x26, 0x4f, 0xc7, - 0x82, 0xc9, 0xea, 0x5f, 0x57, 0xd0, 0x0c, 0xdf, 0x32, 0x80, 0x8e, 0x46, 0xa2, 0x92, 0x28, 0x97, - 0x4c, 0xc1, 0x6a, 0x11, 0x05, 0xc7, 0x8b, 0x29, 0x38, 0x51, 0x4c, 0xc1, 0xc9, 0x62, 0x0a, 0x4e, - 0xa5, 0x28, 0x98, 0x4b, 0x15, 0xae, 0x27, 0xec, 0xce, 0x24, 0x62, 0x2c, 0x51, 0x7c, 0x7a, 0x3e, - 0x6a, 0xe6, 0xa1, 0xd9, 0x1f, 0x29, 0xe8, 0xa4, 0x38, 0x28, 0x39, 0x55, 0x98, 0xe9, 0x0b, 0x34, - 0x23, 0x88, 0x0e, 0x29, 0x99, 0xd1, 0xa1, 0x4a, 0x2c, 0x3a, 0x74, 0x16, 0xcd, 0x40, 0x7a, 0x53, - 0x67, 0x22, 0x2f, 0xa8, 0x84, 0xa0, 0xe9, 0xc1, 0xc0, 0x25, 0xd1, 0x1d, 0x6f, 0x5c, 0xba, 0xe3, - 0x31, 0x74, 0x4e, 0xbb, 0x4d, 0x49, 0x20, 0x3e, 0xe2, 0x2b, 0xeb, 0x66, 0x3b, 0x99, 0x79, 0xb3, - 0xed, 0x84, 0x7e, 0xb3, 0xb4, 0x7c, 0xa1, 0x90, 0x2f, 0xa1, 0x49, 0xce, 0xde, 0xe0, 0x66, 0x78, - 0x26, 0xcf, 0xde, 0x42, 0x22, 0x44, 0x00, 0x47, 0x37, 0xe1, 0x8a, 0x7c, 0x13, 0x26, 0xe8, 0x74, - 0xfc, 0x68, 0xa0, 0x1b, 0x83, 0xed, 0xdb, 0x72, 0x58, 0x38, 0xf4, 0x46, 0x60, 0xbe, 0x71, 0xad, - 0x16, 0xb8, 0x23, 0x74, 0xf8, 0x9b, 0xfa, 0x3f, 0x2b, 0xe0, 0xfe, 0xa6, 0xe7, 0x11, 0x9b, 0xfa, - 0x7a, 0xf2, 0xbe, 0xbb, 0x9e, 0xbb, 0xab, 0x02, 0x34, 0xc2, 0x6b, 0xa0, 0x77, 0x6c, 0xdf, 0x1b, - 0x84, 0x57, 0xe2, 0xfa, 0x07, 0x68, 0x56, 0xee, 0xc0, 0x8b, 0xa8, 0xba, 0x47, 0x06, 0xc2, 0x2a, - 0xb2, 0x9f, 0xf8, 0x45, 0x34, 0xb1, 0x6f, 0x74, 0xfb, 0x64, 0xc8, 0xf4, 0x14, 0x00, 0xbf, 0x56, - 0x79, 0x55, 0x91, 0x09, 0x18, 0x86, 0x5f, 0xe2, 0x04, 0x0c, 0xcd, 0x70, 0x48, 0xc0, 0xc0, 0x0e, - 0x8f, 0x48, 0xc0, 0xf8, 0x3c, 0x11, 0x01, 0xe3, 0x91, 0x9d, 0x52, 0x02, 0x66, 0xa1, 0x11, 0xf7, - 0xed, 0x80, 0x80, 0x02, 0x23, 0x23, 0xa0, 0xdc, 0x71, 0x08, 0x02, 0x8a, 0xfb, 0xbc, 0x44, 0xc0, - 0x5f, 0xac, 0xc0, 0x09, 0xfc, 0x88, 0x78, 0x56, 0x7b, 0xb0, 0x13, 0x96, 0x1c, 0xb0, 0x75, 0x05, - 0x54, 0x7c, 0x51, 0xb2, 0x54, 0x5c, 0x6d, 0x37, 0x96, 0x7e, 0xfc, 0xc3, 0xab, 0xc7, 0x45, 0xd9, - 0x83, 0xf0, 0x93, 0x1a, 0xbe, 0x67, 0xd9, 0x1d, 0xc9, 0x86, 0xdd, 0x45, 0x73, 0x41, 0x75, 0x02, - 0xa8, 0x2f, 0x9c, 0xc5, 0xe7, 0x65, 0xdb, 0x19, 0x00, 0xac, 0x6a, 0x24, 0xd2, 0x6a, 0x6d, 0xd6, - 0x93, 0xbe, 0x98, 0x11, 0x08, 0xf1, 0x58, 0xa6, 0xb8, 0x3b, 0xa0, 0xa0, 0x69, 0xdb, 0xc4, 0x1b, - 0x68, 0xc6, 0x68, 0x81, 0x49, 0x62, 0xd3, 0x8c, 0xa7, 0xa7, 0x89, 0x2a, 0x29, 0x56, 0xd7, 0x39, - 0x24, 0x9f, 0x06, 0x19, 0xe1, 0x6f, 0xf5, 0x6b, 0xe0, 0xa3, 0x65, 0x53, 0x21, 0xd2, 0x7c, 0xd2, - 0x6e, 0x07, 0x51, 0x93, 0xf9, 0xf8, 0x29, 0x20, 0x4d, 0x71, 0x87, 0x03, 0x69, 0x02, 0x58, 0xbd, - 0x85, 0x2e, 0x07, 0x3c, 0x4f, 0xa5, 0xe3, 0x2c, 0x42, 0x87, 0xb8, 0x87, 0xfe, 0x81, 0x82, 0xbe, - 0x3c, 0x0c, 0x0a, 0xb1, 0x4e, 0x1f, 0x9d, 0xe9, 0xf0, 0xec, 0x9f, 0x2e, 0x32, 0x82, 0x3a, 0xb7, - 0x41, 0x7a, 0x5b, 0x80, 0x0b, 0x09, 0x1d, 0x21, 0x77, 0x58, 0xef, 0x64, 0xf7, 0x58, 0x84, 0xaa, - 0xb7, 0xc0, 0xa7, 0x61, 0x36, 0x33, 0x05, 0xb4, 0x31, 0xd8, 0xda, 0xef, 0x44, 0x9b, 0x7c, 0x1a, - 0x4d, 0x76, 0xf6, 0x3b, 0xd1, 0x2e, 0x27, 0x3a, 0xfb, 0x9d, 0x6d, 0x53, 0xfd, 0xb6, 0x82, 0x56, - 0xca, 0x51, 0x88, 0x4d, 0x7e, 0x88, 0x8e, 0x67, 0x6d, 0x52, 0x1c, 0xd0, 0x07, 0xca, 0x55, 0xe3, - 0xf4, 0xae, 0xd4, 0x1b, 0x61, 0x90, 0x26, 0x83, 0x0c, 0xd1, 0x36, 0xf6, 0x3b, 0x6d, 0x69, 0x1b, - 0xfb, 0x9d, 0xf6, 0xb6, 0xa9, 0xee, 0x86, 0x41, 0xb2, 0xac, 0xa1, 0x62, 0xf9, 0x22, 0x8b, 0xab, - 0x1c, 0x26, 0x8b, 0xab, 0x3e, 0x0a, 0x17, 0x99, 0xb1, 0xab, 0x21, 0x2e, 0xb4, 0x6c, 0x07, 0x5d, - 0x60, 0x04, 0x78, 0x88, 0x13, 0x5d, 0xce, 0x88, 0x66, 0xb8, 0x83, 0x2c, 0xbc, 0x61, 0x5c, 0x87, - 0xd7, 0x06, 0x28, 0x23, 0xd6, 0x06, 0xec, 0xa5, 0x0c, 0xf7, 0xb6, 0xbd, 0xf5, 0x68, 0xab, 0x58, - 0x44, 0x92, 0xe9, 0x3f, 0x61, 0x0b, 0xa4, 0xf4, 0x5f, 0xcc, 0x21, 0x98, 0x0b, 0x82, 0xbe, 0x7a, - 0xca, 0x7a, 0x8b, 0xc9, 0xa2, 0xc4, 0x68, 0xdc, 0x7a, 0x5f, 0x2c, 0x36, 0xa0, 0xa2, 0x1e, 0x23, - 0xb4, 0xd0, 0xea, 0x6f, 0x88, 0xc8, 0x40, 0x72, 0x86, 0x75, 0xdb, 0x0c, 0xae, 0x7c, 0x85, 0xfb, - 0x8a, 0x71, 0xa9, 0x92, 0xe0, 0xd2, 0x88, 0x9b, 0xde, 0x45, 0x17, 0x4b, 0x96, 0x74, 0x54, 0xbb, - 0xff, 0x8e, 0x12, 0x99, 0xb8, 0xf0, 0x58, 0x93, 0xa7, 0xba, 0xeb, 0x78, 0x5b, 0x9b, 0xff, 0x03, - 0x24, 0xe8, 0x45, 0x76, 0xb3, 0x68, 0x5d, 0x47, 0x45, 0x87, 0x07, 0x51, 0x6e, 0xe1, 0x9e, 0xd5, - 0xf1, 0x0c, 0x9f, 0xc0, 0x34, 0x77, 0x78, 0xe9, 0x5b, 0xb0, 0xff, 0x53, 0x68, 0x1a, 0xd2, 0x38, - 0xa1, 0x42, 0x4e, 0xf1, 0xef, 0x6d, 0x33, 0xb2, 0xfe, 0x15, 0xc9, 0xfa, 0xff, 0x53, 0x05, 0x9d, - 0xcc, 0x41, 0x89, 0xdf, 0x44, 0x13, 0xbc, 0xae, 0x4e, 0xa8, 0xe1, 0x4a, 0xd6, 0xbd, 0x84, 0x83, - 0xc2, 0x60, 0x76, 0xa2, 0x09, 0x17, 0x8a, 0x0f, 0xc3, 0xef, 0xa1, 0xd9, 0x96, 0x61, 0xb7, 0x48, - 0x57, 0x07, 0x34, 0xe0, 0x3e, 0xac, 0xe6, 0xa2, 0xd9, 0xe4, 0xc0, 0x49, 0x64, 0x33, 0x80, 0x83, - 0x43, 0xe0, 0xf7, 0xd1, 0x7c, 0xcb, 0xe9, 0xb9, 0xbc, 0xd8, 0x06, 0x90, 0x42, 0xf9, 0xd0, 0xf3, - 0xf9, 0x48, 0x05, 0x78, 0x12, 0xed, 0x5c, 0x80, 0x07, 0x10, 0xdf, 0x47, 0xb3, 0x1e, 0xe1, 0xbe, - 0x1c, 0xa0, 0x1d, 0xe7, 0x68, 0x9f, 0xcb, 0x45, 0xab, 0x71, 0xe0, 0x18, 0xd5, 0xb4, 0x19, 0xc0, - 0xc0, 0xfb, 0x55, 0x3b, 0xca, 0xcd, 0x67, 0xb2, 0x4b, 0x88, 0xc5, 0x16, 0x9a, 0x84, 0xda, 0x45, - 0x21, 0x15, 0x6b, 0x79, 0x52, 0x91, 0x87, 0x48, 0x0c, 0x57, 0xdf, 0x8d, 0xac, 0x50, 0xe3, 0xb1, - 0xe1, 0xde, 0xef, 0x1f, 0x52, 0x30, 0xfe, 0x43, 0x41, 0xc7, 0x52, 0xc8, 0xf0, 0x4d, 0x69, 0xb9, - 0x10, 0x6f, 0xcf, 0x33, 0xcd, 0x7c, 0x80, 0x18, 0x1c, 0x2c, 0x12, 0xef, 0xa0, 0x39, 0x59, 0x22, - 0xa8, 0x10, 0x89, 0x2b, 0xc5, 0x58, 0x40, 0x2e, 0x02, 0x5c, 0xb3, 0x92, 0x3c, 0x50, 0xfc, 0x88, - 0x27, 0xf1, 0x25, 0x81, 0xa0, 0x42, 0x22, 0xae, 0x96, 0xe0, 0x14, 0x83, 0x02, 0xac, 0xf3, 0x31, - 0x71, 0xa0, 0x6a, 0x13, 0x02, 0xec, 0x19, 0xe4, 0x14, 0x8c, 0x5b, 0x4f, 0x30, 0xee, 0x72, 0x11, - 0xe3, 0xe2, 0x28, 0x02, 0x96, 0xdd, 0x8d, 0x32, 0xd3, 0xe9, 0x83, 0x8c, 0xf9, 0x5d, 0xa4, 0xe5, - 0xd8, 0xa6, 0xe1, 0x0d, 0x1a, 0x3b, 0x85, 0x1e, 0xdc, 0xe3, 0x28, 0x59, 0x5c, 0x8e, 0x27, 0x74, - 0x11, 0xe2, 0x17, 0xcd, 0x03, 0x9d, 0xb1, 0x62, 0xa8, 0xba, 0x1d, 0x59, 0xc0, 0xcc, 0x89, 0xe3, - 0xa7, 0x53, 0x61, 0xf4, 0xdb, 0x43, 0x57, 0x86, 0x42, 0x75, 0x94, 0xcb, 0xbf, 0x17, 0x79, 0x09, - 0x0d, 0xf7, 0xce, 0x13, 0xeb, 0x90, 0x1a, 0xf3, 0x23, 0x05, 0x2d, 0x26, 0x71, 0xe1, 0xad, 0xb8, - 0x0d, 0x7d, 0xa1, 0x44, 0x5f, 0xc0, 0xc4, 0xec, 0x78, 0xce, 0xbe, 0x65, 0x12, 0x8f, 0xe1, 0x09, - 0x8c, 0xe9, 0x37, 0x52, 0x96, 0x0f, 0x74, 0xe7, 0xc6, 0x90, 0x72, 0x9e, 0x81, 0x39, 0x6e, 0x02, - 0xd5, 0x6f, 0x48, 0x16, 0x24, 0x46, 0x0e, 0x41, 0xf3, 0x5b, 0x09, 0xdd, 0x5f, 0x29, 0x94, 0x78, - 0x19, 0x43, 0x20, 0xf0, 0xeb, 0xe8, 0xb8, 0x70, 0xfd, 0x1a, 0x3b, 0x3c, 0x96, 0x25, 0x28, 0x7d, - 0x19, 0x2d, 0x06, 0x17, 0x3b, 0x3d, 0x5e, 0x03, 0xb8, 0x10, 0xb4, 0x8b, 0x7b, 0xa0, 0xda, 0x44, - 0x4f, 0x27, 0x50, 0x88, 0xd5, 0x6d, 0xa3, 0xc5, 0xa0, 0xe8, 0xd0, 0x15, 0x9b, 0xcc, 0x4c, 0x41, - 0xb8, 0xab, 0x09, 0x52, 0x68, 0x0b, 0x34, 0xde, 0xa0, 0xbe, 0x0a, 0x1e, 0xea, 0x4e, 0x98, 0xee, - 0xb7, 0x5b, 0x4e, 0x8f, 0x04, 0x07, 0x72, 0x91, 0x26, 0xfe, 0x95, 0x02, 0x87, 0x74, 0xde, 0x50, - 0xb1, 0xd6, 0x2b, 0xe8, 0x58, 0xab, 0xef, 0x79, 0xc4, 0x96, 0x62, 0xe1, 0x41, 0x79, 0x89, 0xe8, - 0x08, 0xc3, 0xe0, 0x78, 0x17, 0x9d, 0x92, 0xab, 0x11, 0x38, 0x42, 0xdd, 0x04, 0x8c, 0x22, 0x2a, - 0x7f, 0x35, 0xb7, 0xf8, 0x30, 0x6b, 0x1d, 0xda, 0x09, 0x37, 0x73, 0x79, 0xea, 0x3f, 0x28, 0xe8, - 0xe9, 0xcc, 0x11, 0x39, 0x97, 0x91, 0x23, 0x4a, 0x9f, 0xe2, 0x07, 0x68, 0x12, 0xb6, 0xc5, 0x4d, - 0xf7, 0xec, 0xc6, 0x1b, 0x9f, 0x7c, 0x76, 0x76, 0xec, 0x27, 0x9f, 0x9d, 0x7d, 0xb6, 0x63, 0xf9, - 0xbb, 0xfd, 0xe6, 0x6a, 0xcb, 0xe9, 0x89, 0x57, 0x10, 0xe2, 0xbf, 0xab, 0xd4, 0xdc, 0x13, 0xc5, - 0xfc, 0xdb, 0xb6, 0xff, 0xe3, 0x1f, 0x5e, 0x45, 0x22, 0x5a, 0xb0, 0x6d, 0xfb, 0x9a, 0xc0, 0xa5, - 0xbe, 0x06, 0x07, 0x70, 0x64, 0xfc, 0x0e, 0xc0, 0xc7, 0xbf, 0x17, 0x1e, 0x77, 0xfe, 0xe0, 0x51, - 0x38, 0x69, 0xa3, 0xd3, 0x34, 0x40, 0x98, 0xcb, 0xcb, 0x5c, 0x07, 0x20, 0x67, 0x2d, 0xda, 0x12, - 0xcd, 0x59, 0xa4, 0xfa, 0x8f, 0x0a, 0x3a, 0x99, 0x33, 0x2a, 0xcf, 0x4f, 0xfe, 0x5f, 0xcd, 0xd1, - 0x6f, 0x55, 0xd0, 0x64, 0xc3, 0x37, 0xfc, 0x3e, 0xc5, 0x3a, 0x7a, 0x3a, 0xa9, 0xed, 0x72, 0xd6, - 0xf1, 0x4a, 0x2e, 0x11, 0xe3, 0xaa, 0xce, 0x2d, 0xc8, 0x53, 0x34, 0xdd, 0x88, 0x1b, 0xe8, 0x18, - 0x18, 0x7f, 0x3a, 0xb0, 0x5b, 0x01, 0x72, 0x20, 0xc6, 0xa5, 0xdc, 0x00, 0x22, 0x1b, 0xd0, 0xe0, - 0xf0, 0x1c, 0xf1, 0x42, 0x33, 0xde, 0x80, 0x6f, 0x21, 0xd4, 0xda, 0x35, 0x2c, 0x1b, 0xb0, 0x81, - 0x9f, 0x72, 0x3e, 0x0f, 0xdb, 0x26, 0x83, 0xe4, 0x78, 0x6a, 0xad, 0xe0, 0xa7, 0xfa, 0x5b, 0x55, - 0xb4, 0x90, 0x98, 0x06, 0x3f, 0x8b, 0x16, 0x9a, 0x54, 0x14, 0x6f, 0xed, 0x12, 0xab, 0xb3, 0x1b, - 0x54, 0x34, 0xcd, 0x35, 0x29, 0x87, 0x7d, 0x9b, 0x37, 0x62, 0x15, 0xcd, 0x45, 0x70, 0x06, 0x0d, - 0x92, 0xfa, 0x33, 0x01, 0x94, 0xa8, 0x31, 0x6f, 0x52, 0x5d, 0x0e, 0xe1, 0x43, 0x86, 0x65, 0xb6, - 0x49, 0x1f, 0x46, 0x41, 0xfc, 0x15, 0xb4, 0xd8, 0xa4, 0x7a, 0x6f, 0x40, 0x3f, 0xea, 0xea, 0xfb, - 0xc4, 0xa3, 0x56, 0x58, 0xf3, 0x3e, 0xdf, 0xa4, 0xf7, 0x58, 0xf3, 0x23, 0x68, 0xc5, 0xb7, 0xd0, - 0x99, 0x26, 0xd5, 0x4d, 0xd2, 0x36, 0xfa, 0x5d, 0x5f, 0x6f, 0xed, 0x1a, 0x9e, 0xd1, 0xf2, 0x89, - 0xa7, 0xd3, 0xa0, 0x32, 0x04, 0x6a, 0x3d, 0x4f, 0x35, 0xe9, 0x6d, 0x80, 0xd9, 0x0c, 0x40, 0x1a, - 0xa2, 0x50, 0xe4, 0x06, 0x3a, 0x25, 0x63, 0x70, 0xba, 0x5d, 0x48, 0x10, 0x48, 0x45, 0xa0, 0x27, - 0xa2, 0xd1, 0x41, 0x77, 0x50, 0x08, 0xcc, 0x96, 0xc9, 0xc8, 0x4b, 0xe8, 0xd2, 0x14, 0xaf, 0xed, - 0xac, 0x35, 0xe9, 0x3d, 0x68, 0x10, 0xdd, 0x8f, 0x1d, 0x6f, 0x8f, 0x78, 0x94, 0x67, 0x23, 0xe6, - 0x58, 0xf7, 0xfb, 0xd0, 0x80, 0x2f, 0xa3, 0x63, 0x4d, 0xaa, 0x13, 0xdb, 0x68, 0x76, 0x89, 0x6e, - 0xf6, 0x8d, 0xae, 0x6e, 0x36, 0x79, 0x46, 0x62, 0x9a, 0xed, 0xf2, 0x0e, 0x6f, 0xbf, 0xdd, 0x37, - 0xba, 0xb7, 0x9b, 0xea, 0x3b, 0xa8, 0x16, 0x72, 0x8b, 0xb9, 0x0d, 0x82, 0xc9, 0x41, 0xf9, 0xdb, - 0x14, 0xf0, 0xcf, 0xe4, 0x25, 0x08, 0xbc, 0x2b, 0x38, 0xe4, 0x2a, 0x7c, 0x4d, 0xb3, 0xbc, 0x31, - 0x38, 0xe1, 0xfe, 0xa2, 0x82, 0x9e, 0xca, 0x10, 0x53, 0xc6, 0x66, 0xea, 0xea, 0x2d, 0xc7, 0x24, - 0x21, 0xcd, 0x01, 0xfd, 0x1c, 0x75, 0x37, 0x1d, 0x93, 0x04, 0x24, 0x7f, 0x06, 0xcd, 0x07, 0x70, - 0x2d, 0xa7, 0xc7, 0x6e, 0xad, 0xc0, 0xe7, 0x59, 0x00, 0xdb, 0xe4, 0x6d, 0xf8, 0x12, 0xc7, 0x66, - 0x78, 0xad, 0x5d, 0xcb, 0x27, 0x2d, 0xbf, 0xef, 0x05, 0x09, 0x90, 0x79, 0xea, 0xae, 0x4b, 0xad, - 0x4c, 0x6a, 0xa8, 0xab, 0x77, 0x9c, 0x04, 0xa3, 0x67, 0xa8, 0xbb, 0xe5, 0x04, 0x53, 0xae, 0xa2, - 0xa7, 0xa8, 0xab, 0xc3, 0x51, 0x6d, 0xd9, 0x1d, 0x9d, 0x0e, 0xa8, 0x4f, 0x7a, 0x41, 0x5d, 0x34, - 0x75, 0xef, 0x07, 0x3d, 0x0d, 0xde, 0x11, 0x83, 0x97, 0x8e, 0xfc, 0xc9, 0x38, 0x7c, 0x78, 0xe8, - 0x8b, 0x2d, 0x99, 0x4e, 0x8f, 0xd1, 0x8e, 0x33, 0x7e, 0x2a, 0xd8, 0xd2, 0x6d, 0xde, 0xc8, 0xd8, - 0xad, 0x9e, 0x88, 0xbc, 0x0b, 0x6e, 0x24, 0x84, 0x85, 0x57, 0xef, 0x47, 0x2e, 0x83, 0x68, 0x8f, - 0x0a, 0xd5, 0x28, 0x6f, 0x29, 0x2b, 0x54, 0x13, 0xe3, 0x04, 0xb4, 0xea, 0x86, 0x09, 0x9c, 0x87, - 0x94, 0x78, 0xe0, 0xa1, 0x0e, 0x59, 0xfe, 0x18, 0x46, 0x12, 0x2a, 0x52, 0x24, 0xa1, 0x34, 0x00, - 0xa1, 0x7e, 0x35, 0x56, 0xde, 0x1f, 0xcc, 0x28, 0xb6, 0xf1, 0x7a, 0xc2, 0x17, 0xbe, 0x50, 0x98, - 0x33, 0x82, 0x9c, 0x63, 0xe8, 0x03, 0xdb, 0x61, 0x4d, 0xbf, 0xd4, 0x2b, 0xbb, 0xc0, 0x10, 0xdd, - 0x8d, 0x5c, 0x60, 0xfe, 0x7d, 0x90, 0x9d, 0xc4, 0x2a, 0xe8, 0xd5, 0x0f, 0xc0, 0xe7, 0x4e, 0xcd, - 0x77, 0x14, 0x7b, 0xe9, 0x87, 0x45, 0x51, 0x8c, 0x4a, 0xf7, 0x1f, 0xdb, 0xc4, 0xfc, 0xef, 0x60, - 0xce, 0x87, 0xb1, 0x9a, 0xd8, 0xd8, 0xb4, 0x47, 0xb1, 0xab, 0xbf, 0xab, 0xa0, 0xc9, 0x1d, 0xa7, - 0x6b, 0xb5, 0x06, 0xf8, 0x22, 0x9a, 0x77, 0x3d, 0xcb, 0x6e, 0x59, 0xae, 0xd1, 0x85, 0x74, 0x04, - 0xdb, 0xc3, 0x84, 0x36, 0x17, 0xb6, 0xf2, 0x9c, 0xc6, 0x25, 0xb4, 0x10, 0x81, 0x45, 0x99, 0x9b, - 0x9a, 0x16, 0x8d, 0x7e, 0xc4, 0x5a, 0xd3, 0x49, 0x94, 0xea, 0x91, 0x24, 0x51, 0xc4, 0xbb, 0x09, - 0x29, 0x89, 0x72, 0x19, 0x2d, 0x4a, 0x49, 0x65, 0xf0, 0x92, 0x20, 0x7b, 0xba, 0x10, 0x65, 0x96, - 0xc1, 0x49, 0xba, 0x8c, 0x16, 0xa5, 0xe3, 0x07, 0x40, 0x21, 0xcb, 0xbc, 0x10, 0xa5, 0x91, 0x01, - 0x34, 0x23, 0x63, 0x3c, 0x95, 0x99, 0x31, 0xfe, 0x57, 0x25, 0xba, 0xcd, 0x43, 0x74, 0x8d, 0x13, - 0xd4, 0x22, 0xf4, 0xe8, 0x6a, 0x67, 0x13, 0x79, 0xa2, 0xea, 0x08, 0x79, 0xa2, 0xec, 0x38, 0x63, - 0x52, 0x00, 0x27, 0x52, 0x02, 0xf8, 0xff, 0x40, 0x00, 0xb3, 0x76, 0x27, 0x04, 0xf0, 0x35, 0x34, - 0xed, 0x8a, 0xb6, 0xb2, 0x92, 0x63, 0x10, 0x35, 0x2d, 0x84, 0x57, 0xef, 0x47, 0xc1, 0xe7, 0xf8, - 0x5b, 0x26, 0xf0, 0xff, 0x42, 0x12, 0x5e, 0xca, 0x7e, 0x1a, 0x55, 0x4b, 0x3e, 0x79, 0x52, 0x8d, - 0x28, 0x74, 0x9c, 0x83, 0xf0, 0xd0, 0x75, 0xd2, 0x9b, 0x51, 0xac, 0x94, 0xe9, 0x64, 0x7c, 0x9a, - 0x21, 0xcd, 0x81, 0xfa, 0xb3, 0x51, 0x04, 0x2f, 0x13, 0x89, 0x58, 0xe5, 0x43, 0xb4, 0x98, 0xd8, - 0x77, 0xe0, 0xca, 0x7f, 0x79, 0xb8, 0x37, 0x61, 0xbc, 0xa0, 0x75, 0x21, 0x4e, 0x24, 0xaa, 0xde, - 0x00, 0xc3, 0xcc, 0x03, 0x22, 0x22, 0x06, 0x22, 0xa5, 0x9e, 0x4f, 0xa3, 0x5a, 0x60, 0x98, 0x83, - 0xcc, 0xf3, 0xb4, 0xb0, 0xcc, 0x54, 0xfd, 0x54, 0x89, 0x02, 0x1b, 0xb1, 0xb1, 0x62, 0xc5, 0xef, - 0x27, 0xcc, 0xd1, 0x5b, 0x65, 0xd9, 0xe4, 0x0c, 0x24, 0x60, 0xaa, 0x44, 0x2e, 0x59, 0xa0, 0xab, - 0x7f, 0x55, 0xd4, 0xb5, 0xe4, 0x66, 0x92, 0xaf, 0xc7, 0x33, 0xc9, 0x25, 0xd5, 0x0d, 0x52, 0x22, - 0xf9, 0x0d, 0x90, 0x19, 0x7e, 0xed, 0x17, 0x91, 0x5c, 0xbb, 0x23, 0xca, 0xb5, 0xe1, 0x29, 0x44, - 0xd1, 0x75, 0xee, 0x4d, 0xa8, 0xac, 0x2a, 0x1a, 0x9d, 0xf5, 0xa4, 0x60, 0x3c, 0x28, 0xa4, 0x78, - 0x0c, 0xb3, 0x43, 0xfe, 0x56, 0x04, 0x61, 0xb7, 0x1e, 0x6d, 0x45, 0x99, 0xdc, 0x61, 0xf3, 0x61, - 0x9d, 0x58, 0x3e, 0x0c, 0xae, 0x5c, 0x75, 0x54, 0x33, 0xa9, 0x2f, 0x5e, 0x1a, 0x54, 0x79, 0xcf, - 0x94, 0x49, 0xfd, 0x06, 0x5b, 0xb8, 0x0e, 0x0b, 0x2f, 0x9a, 0xf8, 0x70, 0xe9, 0xe3, 0x57, 0x12, - 0x35, 0xdc, 0x0d, 0xeb, 0x63, 0x32, 0x54, 0xbc, 0xee, 0x8d, 0x44, 0x55, 0x36, 0x0c, 0x14, 0x8b, - 0x89, 0x8c, 0x25, 0xaf, 0x59, 0x8c, 0x55, 0x7f, 0x33, 0xc0, 0x6b, 0xbf, 0xf7, 0x0a, 0x7a, 0x8a, - 0x0d, 0xbf, 0x27, 0xd8, 0xde, 0x20, 0xde, 0xbe, 0xd5, 0x22, 0xf8, 0x9b, 0x08, 0xa7, 0x1f, 0x7d, - 0xe0, 0x17, 0x8a, 0xe4, 0x33, 0xf3, 0xc9, 0x63, 0xfd, 0xda, 0x41, 0x86, 0xc0, 0xaa, 0xd5, 0x31, - 0xfc, 0xbb, 0x4a, 0x46, 0xc1, 0x47, 0xf4, 0x28, 0x00, 0xbf, 0x36, 0x74, 0xd9, 0x45, 0xea, 0xe1, - 0x42, 0xfd, 0xf5, 0x91, 0xc6, 0x86, 0x4b, 0xfb, 0xcd, 0x64, 0x19, 0x7c, 0x6c, 0x61, 0xaf, 0x96, - 0x6c, 0x37, 0xf7, 0x21, 0x5a, 0xfd, 0xc6, 0x08, 0x23, 0xc3, 0x45, 0xfd, 0x6a, 0x54, 0x89, 0x95, - 0x7c, 0xb7, 0x85, 0x5f, 0x3e, 0x10, 0xe2, 0x30, 0x7d, 0x5f, 0x7f, 0xe5, 0xc0, 0xe3, 0xc2, 0xe5, - 0xfc, 0xad, 0x48, 0xf1, 0x0f, 0xf3, 0x6a, 0x0a, 0x6f, 0x95, 0xf1, 0x63, 0xc8, 0xc7, 0x62, 0xf5, - 0xb7, 0x0f, 0x8f, 0x28, 0x8b, 0xa0, 0xc9, 0x57, 0x4f, 0xa5, 0x04, 0xcd, 0x79, 0x90, 0x55, 0x4a, - 0xd0, 0xbc, 0xe7, 0x55, 0xea, 0x18, 0xfe, 0x1d, 0x25, 0x3a, 0x84, 0xd2, 0xef, 0x99, 0xf0, 0x8d, - 0xb2, 0x9d, 0xe7, 0xbe, 0xbf, 0xaa, 0xbf, 0x36, 0xca, 0xd0, 0x70, 0x5d, 0x1f, 0xa3, 0x63, 0xa9, - 0xe7, 0x47, 0xf8, 0xf9, 0x92, 0x7d, 0xa6, 0x1e, 0x4c, 0xd5, 0x5f, 0x38, 0xc0, 0x88, 0x14, 0x4d, - 0xb2, 0xdf, 0x0d, 0xe1, 0x32, 0x7d, 0xca, 0x7f, 0xda, 0x54, 0x4c, 0x93, 0xe2, 0x67, 0x4a, 0xea, - 0x18, 0xfe, 0xb5, 0xe8, 0x69, 0x58, 0xea, 0xe5, 0x0f, 0x7e, 0xe5, 0x60, 0xa8, 0x23, 0x6d, 0x7c, - 0xf5, 0xe0, 0x03, 0xc3, 0x15, 0x7d, 0x13, 0xee, 0xe3, 0xc9, 0xaa, 0x27, 0x9c, 0x99, 0xab, 0xe5, - 0xd5, 0xca, 0x49, 0xd0, 0x88, 0x51, 0xc3, 0x8f, 0xc8, 0x10, 0x92, 0xe8, 0xdd, 0x50, 0xa9, 0x90, - 0xa4, 0x5e, 0x32, 0x95, 0x0a, 0x49, 0xfa, 0x51, 0x92, 0x3a, 0x86, 0x7f, 0x59, 0x09, 0x63, 0x0e, - 0xf1, 0xc7, 0x3d, 0xf8, 0xc5, 0x12, 0x74, 0x99, 0x0f, 0x88, 0xea, 0x2f, 0x1d, 0x70, 0x54, 0xb8, - 0x90, 0x6f, 0x2b, 0xe8, 0x44, 0xf6, 0x33, 0x1d, 0xfc, 0xd2, 0x50, 0x1b, 0x4b, 0xbe, 0x61, 0xa9, - 0xbf, 0x7c, 0xd0, 0x61, 0xe1, 0x5a, 0x7e, 0x5f, 0x09, 0x9f, 0x49, 0x65, 0x3e, 0x70, 0xc1, 0xaf, - 0x97, 0xa0, 0x2e, 0x7a, 0x5b, 0x53, 0x7f, 0x63, 0xb4, 0xc1, 0x29, 0xfd, 0xc9, 0x7a, 0x48, 0x51, - 0xac, 0x3f, 0x05, 0x6f, 0x62, 0x8a, 0xf5, 0xa7, 0xe8, 0xcd, 0x86, 0x74, 0x18, 0x64, 0x3c, 0x5f, - 0x28, 0x3e, 0x0c, 0xf2, 0xdf, 0x4b, 0x14, 0x1f, 0x06, 0x05, 0xef, 0x24, 0xd4, 0x31, 0xfc, 0x87, - 0xf2, 0x6b, 0x8a, 0xec, 0x77, 0x05, 0xf8, 0xcd, 0x52, 0xf4, 0x85, 0x0f, 0x1b, 0xea, 0x6f, 0x8d, - 0x3c, 0x3e, 0x5c, 0xe6, 0x63, 0xb4, 0x98, 0xac, 0xae, 0xc6, 0x6b, 0x25, 0xb2, 0x91, 0x2c, 0x23, - 0xaf, 0x3f, 0x3f, 0xfc, 0x80, 0x70, 0xe2, 0x5f, 0x50, 0xc0, 0xde, 0x25, 0xeb, 0x97, 0xf1, 0xf5, - 0x83, 0x55, 0x3b, 0xc3, 0x0a, 0x5e, 0x1c, 0xa5, 0x44, 0x3a, 0xb1, 0x0a, 0xb9, 0x08, 0xb8, 0x7c, - 0x15, 0x19, 0x15, 0xce, 0xe5, 0xab, 0xc8, 0xaa, 0x33, 0x96, 0x94, 0x29, 0xab, 0xe2, 0xb5, 0x58, - 0x99, 0x0a, 0x2a, 0x85, 0x8b, 0x95, 0xa9, 0xa8, 0xb8, 0x56, 0x1d, 0xc3, 0x7f, 0xac, 0x44, 0x21, - 0x81, 0xfc, 0x2a, 0x57, 0x5c, 0x5a, 0x58, 0x5d, 0x5a, 0x64, 0x5b, 0xdf, 0x38, 0x0c, 0x8a, 0x70, - 0xbd, 0x7f, 0xa4, 0x14, 0x94, 0x5f, 0x8a, 0x72, 0x55, 0xfc, 0x56, 0x99, 0x98, 0x96, 0xd4, 0xca, - 0xd6, 0x6f, 0x8d, 0x8e, 0x20, 0xeb, 0x66, 0x92, 0x2e, 0x25, 0x2d, 0xbd, 0x99, 0xe4, 0x16, 0xc0, - 0x96, 0xde, 0x4c, 0xf2, 0xeb, 0x5f, 0xe3, 0x8b, 0x4a, 0xef, 0xa1, 0x74, 0x51, 0xb9, 0x05, 0xaf, - 0xa5, 0x8b, 0xca, 0x2f, 0x69, 0xcd, 0xd6, 0x4d, 0x5e, 0x34, 0x39, 0xb4, 0x6e, 0xca, 0x45, 0xac, - 0x43, 0xeb, 0x66, 0xac, 0x18, 0x55, 0x1d, 0xc3, 0xdf, 0x4b, 0x05, 0x43, 0x13, 0xa5, 0x9b, 0xf8, - 0x8d, 0x83, 0x60, 0x4e, 0x16, 0xa1, 0xd6, 0x6f, 0x8e, 0x38, 0x3a, 0x53, 0x55, 0xf3, 0x0b, 0x2b, - 0xf1, 0xf0, 0x6f, 0x20, 0xf2, 0x8a, 0x45, 0xcb, 0x55, 0xb5, 0xbc, 0xae, 0x33, 0x71, 0xed, 0x2c, - 0xab, 0xbf, 0x2a, 0xbf, 0x76, 0x0e, 0x59, 0x09, 0x56, 0x7e, 0xed, 0x1c, 0xb6, 0x14, 0x4c, 0x1d, - 0xc3, 0x7f, 0xaa, 0x44, 0xa1, 0xce, 0x82, 0xea, 0x2b, 0xbc, 0x31, 0xd2, 0x9c, 0x71, 0xf1, 0xd8, - 0x3c, 0x14, 0x8e, 0xcc, 0x50, 0x4d, 0x56, 0xed, 0x6a, 0xe9, 0x05, 0x33, 0xbf, 0x86, 0xb6, 0x3c, - 0x54, 0x53, 0x50, 0xd0, 0x29, 0x39, 0xff, 0xe9, 0xea, 0xc9, 0x52, 0x95, 0xcd, 0xaa, 0xdc, 0x2c, - 0x76, 0xfe, 0x73, 0x0b, 0x14, 0x13, 0xf6, 0x26, 0x56, 0x94, 0x56, 0x6a, 0x6f, 0x32, 0xca, 0xe1, - 0xca, 0xed, 0x4d, 0x56, 0xd1, 0x98, 0x3a, 0x86, 0x6d, 0x34, 0x17, 0xab, 0xd8, 0xc2, 0xcf, 0x95, - 0xd8, 0xd0, 0x58, 0x6d, 0x58, 0xfd, 0xea, 0x90, 0xd0, 0x59, 0xf3, 0x41, 0xad, 0x48, 0xe9, 0x7c, - 0x72, 0xb6, 0xb8, 0x7c, 0xbe, 0x58, 0x0e, 0x39, 0x76, 0xcf, 0x8c, 0x72, 0xb3, 0xa5, 0xf7, 0xcc, - 0x54, 0xe2, 0xb8, 0xfe, 0xc2, 0x01, 0x46, 0x84, 0x73, 0x7f, 0x4b, 0x81, 0x38, 0x6a, 0x22, 0x9d, - 0x8a, 0xaf, 0x0d, 0xe3, 0xbf, 0xc6, 0x73, 0xbd, 0xf5, 0xeb, 0x07, 0x1a, 0x93, 0x75, 0xc3, 0x4c, - 0xa4, 0x3f, 0x4b, 0x6f, 0x98, 0xd9, 0x59, 0xda, 0xfa, 0xcb, 0x07, 0x1d, 0x96, 0x5a, 0x4b, 0x3a, - 0x13, 0x86, 0x5f, 0x1a, 0xce, 0xd4, 0x27, 0xf2, 0x82, 0xc5, 0x6b, 0xc9, 0x4f, 0xb8, 0x25, 0x8e, - 0xd9, 0xcc, 0x34, 0x57, 0xf9, 0x31, 0x5b, 0x94, 0x6e, 0x2b, 0x3f, 0x66, 0x0b, 0x73, 0x6b, 0x09, - 0x0b, 0x9a, 0x91, 0xdf, 0x2a, 0xb7, 0xa0, 0xf9, 0x99, 0xb5, 0x72, 0x0b, 0x5a, 0x90, 0x50, 0x93, - 0xc4, 0x3a, 0x91, 0x7b, 0x2a, 0x16, 0xeb, 0xec, 0x4c, 0x59, 0xfd, 0xfa, 0x08, 0xc9, 0x2d, 0x75, - 0x0c, 0x7f, 0x5f, 0x09, 0xb3, 0xfa, 0x39, 0x39, 0x23, 0x7c, 0xb3, 0xd4, 0x32, 0x15, 0x65, 0xaa, - 0xea, 0x6f, 0x8e, 0x3a, 0x3c, 0xb5, 0xc6, 0xfc, 0xf4, 0x50, 0xf1, 0x1a, 0x4b, 0xf3, 0x59, 0xc5, - 0x6b, 0x2c, 0xcf, 0x4a, 0x65, 0x44, 0xe1, 0xf8, 0x5f, 0x59, 0x19, 0x2e, 0x0a, 0x27, 0xe5, 0xa2, - 0x86, 0x8c, 0xc2, 0xc9, 0x49, 0x28, 0x29, 0x54, 0x9b, 0x5d, 0x8d, 0x5b, 0x1c, 0xaa, 0x2d, 0x2c, - 0xfe, 0x2d, 0x0e, 0xd5, 0x16, 0x17, 0xff, 0x4a, 0x81, 0xb0, 0xbc, 0xea, 0xd2, 0xe2, 0x40, 0x58, - 0x49, 0x41, 0x6b, 0x71, 0x20, 0xac, 0xac, 0xa0, 0x55, 0x1d, 0xdb, 0x30, 0x3e, 0xf9, 0x7c, 0x59, - 0xf9, 0xf4, 0xf3, 0x65, 0xe5, 0xa7, 0x9f, 0x2f, 0x2b, 0xbf, 0xfe, 0xc5, 0xf2, 0xd8, 0xa7, 0x5f, - 0x2c, 0x8f, 0xfd, 0xcb, 0x17, 0xcb, 0x63, 0x1f, 0x6c, 0x49, 0xd5, 0x9b, 0x4d, 0xbb, 0x79, 0x95, - 0x97, 0xad, 0xad, 0x45, 0xa1, 0xd9, 0xab, 0x22, 0x34, 0x7b, 0x35, 0x28, 0xc9, 0x5c, 0xcb, 0xfe, - 0x53, 0xea, 0xcd, 0x49, 0xfe, 0x97, 0xb6, 0xaf, 0xff, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8c, - 0x70, 0x0e, 0x9d, 0x6b, 0x5d, 0x00, 0x00, + 0x7a, 0x30, 0x7b, 0x86, 0x8f, 0x99, 0x1a, 0x0e, 0x49, 0x95, 0x65, 0x89, 0x1a, 0x59, 0x94, 0xd4, + 0xb2, 0x2c, 0xca, 0xb2, 0x48, 0x5b, 0xf2, 0x4b, 0xb6, 0x65, 0x8b, 0xa4, 0x28, 0x9a, 0xf0, 0xca, + 0xa2, 0x7b, 0x24, 0x79, 0xd7, 0xfb, 0xfb, 0xef, 0xed, 0x99, 0xae, 0x19, 0x76, 0x38, 0xd3, 0xdd, + 0xee, 0xea, 0xa1, 0x34, 0x42, 0x16, 0x59, 0xe4, 0x05, 0x2c, 0x12, 0x20, 0xef, 0x20, 0xd9, 0x20, + 0x0b, 0x6c, 0x10, 0x20, 0x97, 0x4d, 0x10, 0x24, 0x8b, 0x1c, 0x92, 0x6c, 0x12, 0x20, 0x17, 0x03, + 0x41, 0x00, 0x63, 0x0f, 0x49, 0xb0, 0x08, 0x8c, 0x85, 0x7d, 0xcf, 0x25, 0xd7, 0x1c, 0x82, 0x7a, + 0x75, 0x57, 0xbf, 0x87, 0x43, 0x6e, 0x90, 0x43, 0x2e, 0xd2, 0x74, 0xd5, 0x57, 0x5f, 0x55, 0x7d, + 0xaf, 0xfa, 0xea, 0xfb, 0xbe, 0x22, 0xb8, 0xd8, 0x77, 0xcc, 0x41, 0xcf, 0xf0, 0x56, 0xfb, 0xc8, + 0x37, 0x4c, 0xc3, 0x37, 0x56, 0xfd, 0xa1, 0x8b, 0x70, 0xf0, 0xb9, 0xe2, 0x7a, 0x8e, 0xef, 0xc0, + 0x13, 0x1c, 0x6c, 0x25, 0x68, 0xa7, 0x60, 0x8d, 0xf3, 0x2d, 0x03, 0x23, 0x3e, 0xa4, 0xdb, 0xc1, + 0x2e, 0xf2, 0x3c, 0xc7, 0xc3, 0xab, 0xf4, 0x3f, 0x36, 0xb4, 0xb1, 0x14, 0x03, 0xf1, 0x0d, 0xbc, + 0xb7, 0x4a, 0xfe, 0xe1, 0xfd, 0xa7, 0xda, 0x0e, 0xee, 0x3b, 0x58, 0xa7, 0x5f, 0xab, 0xec, 0x83, + 0x77, 0x1d, 0xef, 0x3a, 0x5d, 0x87, 0xb5, 0x93, 0x5f, 0xbc, 0xf5, 0xb9, 0xae, 0x87, 0x90, 0xdd, + 0xb1, 0x50, 0xcf, 0x5c, 0x75, 0x8d, 0x61, 0x1f, 0xd9, 0xfe, 0x2a, 0xf6, 0x3d, 0x64, 0xf4, 0x75, + 0x0f, 0xb5, 0x1d, 0xcf, 0xe4, 0x70, 0xaa, 0x0c, 0x87, 0xbc, 0xbe, 0x85, 0xb1, 0xe5, 0xd8, 0xab, + 0x6d, 0xa7, 0xdf, 0x77, 0x6c, 0x0e, 0x73, 0x56, 0x82, 0xf1, 0x10, 0x76, 0x06, 0x5e, 0x9b, 0xaf, + 0x55, 0xac, 0x4e, 0x02, 0xc0, 0x6e, 0xa4, 0x4b, 0x1e, 0x8b, 0x7d, 0xc7, 0x33, 0xba, 0x68, 0x15, + 0xed, 0x23, 0xdb, 0x17, 0x00, 0x4b, 0x29, 0x00, 0x9f, 0x0c, 0x90, 0x37, 0xcc, 0xe9, 0x97, 0x27, + 0x78, 0x56, 0xea, 0xdf, 0xb7, 0x3c, 0x7f, 0x60, 0xf4, 0xba, 0x9e, 0x33, 0x70, 0xa3, 0xb3, 0x5c, + 0xc8, 0x82, 0x92, 0x51, 0x9d, 0x24, 0xf8, 0x05, 0x17, 0xe8, 0x6f, 0xd6, 0xa1, 0xfe, 0x47, 0x09, + 0x4c, 0xaf, 0x0f, 0xda, 0x7b, 0xc8, 0x87, 0xef, 0x80, 0x5a, 0x8b, 0xfe, 0xd2, 0x2d, 0xbb, 0xe3, + 0x2c, 0x2a, 0xe7, 0x94, 0xe5, 0xda, 0xb5, 0xa5, 0x95, 0x10, 0xfd, 0x0a, 0x5f, 0xe4, 0x0a, 0x1b, + 0xb0, 0x6d, 0x77, 0x1c, 0x0d, 0xb4, 0x82, 0xdf, 0x70, 0x11, 0xcc, 0x78, 0xa8, 0xef, 0xec, 0x23, + 0x73, 0xb1, 0x74, 0x4e, 0x59, 0xae, 0x68, 0xe2, 0x13, 0x9e, 0x06, 0x55, 0x13, 0xf5, 0x90, 0x8f, + 0x74, 0xc3, 0x5f, 0x2c, 0x9f, 0x53, 0x96, 0xcb, 0x5a, 0x85, 0x35, 0xac, 0xf9, 0xf0, 0x02, 0xa8, + 0xf3, 0x4e, 0x0f, 0x19, 0xd8, 0xb1, 0x17, 0x27, 0xcf, 0x29, 0xcb, 0x55, 0x6d, 0x96, 0x35, 0x6a, + 0xb4, 0x0d, 0x36, 0x40, 0xc5, 0x71, 0x91, 0x67, 0xf8, 0x8e, 0xb7, 0x38, 0x45, 0xfb, 0x83, 0x6f, + 0xf8, 0x2c, 0x98, 0x6b, 0x7b, 0xc8, 0xf0, 0x91, 0xee, 0x3f, 0xd6, 0x77, 0x0d, 0xbc, 0xbb, 0x38, + 0xcd, 0x30, 0xb0, 0xd6, 0xfb, 0x8f, 0xdf, 0x35, 0xf0, 0x2e, 0x81, 0x1a, 0xb8, 0xa6, 0x0c, 0x35, + 0xc3, 0xa0, 0x58, 0x2b, 0x87, 0x3a, 0x0d, 0xaa, 0x1c, 0xca, 0xf0, 0x17, 0x2b, 0x6c, 0xa5, 0xac, + 0x61, 0xcd, 0x87, 0x67, 0x41, 0x4d, 0xa0, 0xb0, 0xfa, 0x68, 0xb1, 0x4a, 0xbb, 0x01, 0x1f, 0x6f, + 0xf5, 0x11, 0x3c, 0x0f, 0x66, 0x39, 0x8d, 0x74, 0x6c, 0x3d, 0x41, 0x8b, 0x80, 0xce, 0x50, 0xe3, + 0x6d, 0x4d, 0xeb, 0x09, 0x52, 0xff, 0xb3, 0x04, 0xa6, 0xef, 0xb5, 0x7e, 0x06, 0xb5, 0x29, 0xc1, + 0x1d, 0xfa, 0xab, 0x90, 0xe0, 0x6c, 0x00, 0x23, 0xb8, 0x13, 0xfc, 0x86, 0x17, 0xc1, 0x5c, 0xcf, + 0x69, 0xef, 0x21, 0x53, 0x6f, 0x19, 0x3d, 0xc3, 0x6e, 0x23, 0x4a, 0xf7, 0xaa, 0x56, 0x67, 0xad, + 0xeb, 0xac, 0x51, 0xe6, 0x4b, 0x39, 0xc1, 0x97, 0x70, 0xb7, 0x93, 0xb1, 0xdd, 0x46, 0x98, 0x36, + 0x55, 0xc4, 0xb4, 0xe9, 0x02, 0xa6, 0xcd, 0x14, 0x32, 0xad, 0x32, 0x12, 0xd3, 0xaa, 0x29, 0x4c, + 0x3b, 0x07, 0x66, 0x31, 0x32, 0x7a, 0x01, 0x0c, 0x23, 0x3b, 0x20, 0x6d, 0x0c, 0x42, 0xfd, 0x3b, + 0x05, 0xd4, 0x19, 0x11, 0x6f, 0x23, 0xdf, 0xb0, 0x7a, 0x18, 0xbe, 0x0a, 0xa6, 0x19, 0x25, 0x03, + 0xba, 0xa7, 0x9b, 0x38, 0x4e, 0x7b, 0x8d, 0x43, 0x93, 0x71, 0x4c, 0xe4, 0x29, 0xad, 0x73, 0xc6, + 0x31, 0x25, 0xd1, 0x38, 0x34, 0xbc, 0x09, 0xca, 0xdd, 0xfd, 0x2e, 0x65, 0x40, 0xed, 0xda, 0x15, + 0x99, 0xc9, 0xb2, 0xd2, 0xae, 0x6c, 0xf5, 0x9c, 0x96, 0xd1, 0x7b, 0xc8, 0x9a, 0xb6, 0x48, 0x93, + 0x46, 0xc6, 0xa9, 0x7f, 0x5d, 0x06, 0xf5, 0x87, 0x5b, 0x77, 0x08, 0xdb, 0xff, 0x4f, 0x5d, 0x8f, + 0x4a, 0x5d, 0x37, 0x40, 0x79, 0xbf, 0xdb, 0xa1, 0xe2, 0x52, 0xbb, 0xf6, 0xd2, 0x01, 0x78, 0x72, + 0xc7, 0xe8, 0x5b, 0xbd, 0xa1, 0x46, 0x46, 0x27, 0x74, 0xbe, 0x96, 0xd4, 0xf9, 0xef, 0x2a, 0x60, + 0x6e, 0x87, 0x9d, 0x54, 0x6b, 0xed, 0xb6, 0x33, 0xb0, 0x7d, 0x42, 0x7c, 0xc3, 0x34, 0x3d, 0x84, + 0x31, 0xe5, 0x5c, 0x55, 0x13, 0x9f, 0xf0, 0x38, 0x98, 0x72, 0x1e, 0xd9, 0xc8, 0xe3, 0xba, 0xcc, + 0x3e, 0xe0, 0x12, 0x00, 0x1e, 0xea, 0x0c, 0x6c, 0xd3, 0x68, 0xf5, 0x10, 0x57, 0x63, 0xa9, 0x25, + 0x5f, 0x93, 0x63, 0x84, 0x98, 0x8a, 0x13, 0x42, 0xfd, 0xbe, 0x02, 0x60, 0x74, 0x81, 0x77, 0x91, + 0x6f, 0xc0, 0x7b, 0x60, 0x9e, 0x1f, 0xb0, 0xba, 0xc1, 0x9a, 0xb9, 0x98, 0x3d, 0x97, 0x25, 0xf4, + 0x51, 0x24, 0xda, 0x9c, 0x1b, 0xdd, 0xf5, 0x26, 0xa8, 0x47, 0x4e, 0x6a, 0xae, 0x43, 0xe7, 0x64, + 0xd2, 0xf3, 0x21, 0x2b, 0x4d, 0x0a, 0xa8, 0x51, 0x38, 0x6d, 0x16, 0x4b, 0x5f, 0x6a, 0x1b, 0x9c, + 0xda, 0xea, 0x34, 0xdd, 0x2d, 0xe4, 0x3f, 0xc0, 0xc8, 0x63, 0xe2, 0x8d, 0x35, 0xf4, 0xc9, 0x00, + 0x61, 0x1f, 0x9e, 0x01, 0x80, 0x2f, 0x56, 0xb7, 0x4c, 0x4e, 0xdc, 0x2a, 0x6f, 0xd9, 0x36, 0xe1, + 0x25, 0x30, 0x6f, 0xd9, 0xed, 0xde, 0xc0, 0x24, 0xf2, 0x2b, 0x4b, 0xff, 0x1c, 0x6f, 0xd6, 0x58, + 0xab, 0xfa, 0x31, 0x68, 0xa4, 0x4d, 0x82, 0x5d, 0xc7, 0xc6, 0x08, 0xbe, 0x03, 0x66, 0x98, 0x2a, + 0x11, 0xfe, 0x95, 0x97, 0x6b, 0xd7, 0x2e, 0x66, 0x91, 0x24, 0xa2, 0xb5, 0x9a, 0x18, 0xa5, 0xfe, + 0x59, 0x09, 0xa8, 0x04, 0xff, 0x57, 0x2c, 0xec, 0x33, 0x13, 0x83, 0xd7, 0x87, 0x0c, 0xe8, 0x7d, + 0xa3, 0x8f, 0xc4, 0x6e, 0xce, 0x06, 0x5a, 0x6e, 0x1b, 0x7d, 0xc4, 0xb7, 0xc3, 0xb5, 0x98, 0xc0, + 0xc5, 0xb6, 0x5b, 0x8a, 0x6f, 0xf7, 0x14, 0xa8, 0xf4, 0x8d, 0xc7, 0xfa, 0x1e, 0x1a, 0x62, 0x2a, + 0x35, 0x93, 0xda, 0x4c, 0xdf, 0x78, 0xfc, 0x1e, 0x1a, 0x62, 0x82, 0x1a, 0xfb, 0x86, 0xe7, 0xeb, + 0x46, 0xc7, 0x47, 0x1e, 0x57, 0x63, 0x40, 0x9b, 0xd6, 0x48, 0x0b, 0xbc, 0x0a, 0x60, 0xdb, 0xb1, + 0x7d, 0xcb, 0x1e, 0x18, 0xbe, 0xe5, 0xd8, 0xba, 0xef, 0xec, 0x21, 0x9b, 0xab, 0xf3, 0x31, 0xb9, + 0xe7, 0x3e, 0xe9, 0x80, 0xcf, 0x50, 0xab, 0x61, 0xf5, 0x2d, 0x82, 0x8d, 0xa9, 0x74, 0xd8, 0x00, + 0x4f, 0x80, 0x69, 0xd7, 0x43, 0x1d, 0xeb, 0x31, 0xd7, 0x63, 0xfe, 0x95, 0xc6, 0x8f, 0x4a, 0x2a, + 0x3f, 0x7e, 0xbb, 0x0c, 0x2e, 0xe4, 0x12, 0x8c, 0x73, 0xe6, 0x75, 0x30, 0xc3, 0x4c, 0xb5, 0xe0, + 0x4c, 0x91, 0x65, 0x17, 0xe0, 0x44, 0x87, 0xf6, 0xd0, 0x50, 0x67, 0x82, 0x5e, 0xa2, 0xc4, 0xaa, + 0xec, 0xa1, 0xe1, 0x06, 0x15, 0xdd, 0x1c, 0x42, 0x9e, 0x07, 0xb3, 0x16, 0xd6, 0x7d, 0x6f, 0x60, + 0xb7, 0x0d, 0x1f, 0x99, 0x94, 0x92, 0x15, 0xad, 0x66, 0xe1, 0xfb, 0xa2, 0x09, 0xbe, 0x0a, 0x4e, + 0xda, 0xe8, 0xb1, 0xaf, 0x67, 0xd2, 0xf3, 0x69, 0xd2, 0xbd, 0x91, 0xa0, 0x29, 0x04, 0x93, 0x94, + 0xef, 0x8c, 0x9c, 0xf4, 0x77, 0x26, 0x25, 0x23, 0xf4, 0xaf, 0xc4, 0xe9, 0x7f, 0x09, 0xcc, 0x33, + 0xcf, 0x57, 0x67, 0xe0, 0x08, 0x2f, 0x56, 0xcf, 0x95, 0x97, 0xab, 0xda, 0x1c, 0x6b, 0xde, 0xe1, + 0xad, 0x19, 0x5c, 0x07, 0x19, 0x5c, 0x57, 0x7b, 0xe0, 0x1c, 0x57, 0x13, 0xc6, 0x8b, 0xb1, 0x84, + 0x58, 0x12, 0x02, 0xd7, 0xb3, 0xf6, 0x0d, 0x1f, 0xc5, 0x94, 0x72, 0x87, 0xb5, 0xaa, 0x5f, 0x07, + 0xe7, 0x73, 0x66, 0xe3, 0x12, 0x10, 0x1e, 0xd1, 0xca, 0x41, 0x8e, 0x68, 0xb5, 0x03, 0x96, 0x52, + 0x91, 0x6f, 0xdf, 0x16, 0x1b, 0x39, 0x0d, 0xaa, 0xe2, 0xcc, 0x65, 0xa6, 0xa5, 0xac, 0x55, 0xf8, + 0x89, 0x6a, 0x8e, 0xbe, 0x89, 0xaf, 0x81, 0xb3, 0x99, 0xf3, 0x1c, 0x72, 0x0b, 0x7f, 0xa1, 0x80, + 0x55, 0xa1, 0x24, 0xb7, 0xe9, 0x81, 0x6c, 0x86, 0xba, 0x42, 0xbc, 0xc2, 0xf7, 0x07, 0xfd, 0x16, + 0xf2, 0x34, 0xc3, 0xee, 0x06, 0xdc, 0x79, 0x01, 0x40, 0x66, 0x07, 0x5a, 0x04, 0x40, 0xb7, 0x29, + 0x04, 0xdf, 0xdd, 0x02, 0xed, 0x91, 0x46, 0xc2, 0x65, 0xb0, 0x80, 0x6c, 0x33, 0x0a, 0x5b, 0xa2, + 0xb0, 0x73, 0xc8, 0x36, 0x65, 0xc8, 0x14, 0x7a, 0x94, 0x53, 0xe9, 0xf1, 0xbb, 0x0a, 0x78, 0x71, + 0xf4, 0x45, 0x1f, 0x5a, 0xcd, 0x47, 0xde, 0x81, 0xba, 0x1b, 0x08, 0x84, 0x74, 0x04, 0x50, 0x73, + 0x70, 0xd4, 0x87, 0xcd, 0x6b, 0x81, 0x48, 0x24, 0x67, 0xe2, 0x1b, 0x3e, 0x0e, 0xa6, 0xc2, 0x23, + 0xb8, 0xac, 0xb1, 0x0f, 0xf5, 0x09, 0x53, 0x08, 0x42, 0xba, 0xcd, 0xc7, 0xae, 0xe5, 0x21, 0x93, + 0x0f, 0x5e, 0x1f, 0x36, 0x5d, 0x49, 0x6c, 0xb9, 0xc7, 0x65, 0x88, 0xe1, 0x15, 0xd6, 0xb0, 0xe6, + 0x43, 0x15, 0xd4, 0x5d, 0xcf, 0xea, 0x1b, 0xde, 0x50, 0xc7, 0xae, 0x38, 0x43, 0xea, 0x5a, 0x8d, + 0x37, 0x36, 0xdd, 0x6d, 0x93, 0xcc, 0x4d, 0xed, 0x08, 0x77, 0x06, 0xd9, 0x87, 0xfa, 0xff, 0xc3, + 0x13, 0x2c, 0x6d, 0xee, 0x90, 0x51, 0xd1, 0x93, 0xb2, 0x48, 0x96, 0x83, 0x23, 0xf2, 0x97, 0x14, + 0xb0, 0xc8, 0xa9, 0xc2, 0x78, 0x48, 0x9c, 0x12, 0xc9, 0xa6, 0xf0, 0xcb, 0x93, 0x6c, 0x53, 0x58, + 0x13, 0xb5, 0x29, 0x31, 0xa3, 0x53, 0x1a, 0xc5, 0xe8, 0xa4, 0xcb, 0x67, 0x33, 0x70, 0x37, 0xe4, + 0x65, 0x84, 0x9a, 0x3a, 0xce, 0x3d, 0x42, 0xed, 0x07, 0x96, 0x8c, 0xfb, 0x4c, 0x3f, 0x5d, 0xc3, + 0xb9, 0xc7, 0x78, 0x95, 0x35, 0x1d, 0xdf, 0x4c, 0xc2, 0x3f, 0x53, 0xc6, 0xf2, 0xcf, 0xba, 0x81, + 0x34, 0xc7, 0x26, 0x3b, 0x6a, 0x4b, 0x6a, 0x05, 0x87, 0x4f, 0xca, 0x44, 0x47, 0xbb, 0x27, 0x33, + 0x90, 0x45, 0x36, 0x43, 0x4c, 0x16, 0x8f, 0x88, 0x4d, 0xdf, 0x53, 0x02, 0x59, 0x93, 0xa7, 0xe1, + 0x5b, 0xb9, 0x19, 0x3b, 0x15, 0x46, 0xf4, 0x39, 0xc5, 0x15, 0xf4, 0x88, 0xbc, 0xef, 0xeb, 0xe0, + 0x19, 0xbe, 0xc4, 0x4d, 0xdb, 0x74, 0x1d, 0x8b, 0x50, 0xbd, 0xe9, 0x86, 0xac, 0x7d, 0x0a, 0x4c, + 0x31, 0x43, 0xa2, 0x50, 0x43, 0x32, 0x89, 0xdd, 0x6d, 0x53, 0x7d, 0x13, 0x9c, 0xc9, 0x18, 0xc4, + 0xf7, 0xd6, 0x00, 0x15, 0xc4, 0x7b, 0x38, 0x01, 0x83, 0x6f, 0xf5, 0xe7, 0x82, 0xc1, 0x7c, 0x47, + 0xc8, 0x30, 0x3f, 0x18, 0x38, 0x21, 0x03, 0x0e, 0x7d, 0x17, 0x3e, 0x03, 0xc0, 0x10, 0x19, 0x9e, + 0xde, 0x77, 0x6c, 0x7f, 0x57, 0x78, 0xd1, 0xa4, 0xe5, 0x2e, 0x69, 0x50, 0x7f, 0xa5, 0x14, 0x73, + 0x0d, 0xa4, 0x15, 0xf0, 0xf5, 0x5f, 0x03, 0x65, 0xe4, 0x79, 0x81, 0x70, 0xb5, 0x0c, 0x8c, 0x38, + 0x33, 0xc2, 0xb8, 0xe8, 0x0a, 0xc1, 0xb1, 0x49, 0x7e, 0x6a, 0x04, 0x98, 0x9c, 0xbc, 0xed, 0x5d, + 0xc3, 0xeb, 0x22, 0x53, 0xff, 0x84, 0x20, 0x63, 0x17, 0x48, 0xe6, 0x79, 0x2e, 0xf0, 0x1e, 0x3a, + 0x0b, 0xb9, 0x45, 0xc2, 0x2b, 0x00, 0x62, 0x57, 0xef, 0x78, 0x08, 0xc9, 0xd0, 0xcc, 0x17, 0x9d, + 0xc7, 0xee, 0x1d, 0x0f, 0xa1, 0x10, 0xf8, 0x02, 0xa8, 0xb7, 0x1d, 0x1b, 0x0f, 0xfa, 0xc8, 0x64, + 0x70, 0x93, 0x14, 0x6e, 0x56, 0x34, 0x52, 0xa0, 0x57, 0xc0, 0x49, 0x09, 0x1d, 0xef, 0x62, 0xe0, + 0x53, 0x14, 0xfc, 0x78, 0x47, 0x20, 0xdd, 0x60, 0x9d, 0xf4, 0x3a, 0xbb, 0xce, 0x1c, 0xf1, 0x2d, + 0xe4, 0x7f, 0xc5, 0xf0, 0x11, 0xce, 0x62, 0x4a, 0x42, 0xc5, 0x27, 0x43, 0x15, 0x57, 0xbf, 0xa3, + 0x80, 0x67, 0xf3, 0x91, 0x1c, 0x82, 0xae, 0x6f, 0x83, 0x29, 0xba, 0x25, 0x2e, 0xe0, 0xcb, 0xf1, + 0x51, 0x34, 0xfa, 0x4c, 0xc6, 0xb0, 0x49, 0xe9, 0x84, 0x54, 0x24, 0xd8, 0x30, 0xf5, 0x27, 0x0a, + 0x33, 0x60, 0xe4, 0x64, 0x0b, 0xd7, 0xc5, 0x95, 0xe1, 0xa8, 0x44, 0x2e, 0x70, 0xbb, 0xc8, 0x9d, + 0x1c, 0xfb, 0x46, 0xdf, 0xd5, 0x07, 0x98, 0x3b, 0x22, 0xcc, 0xed, 0xba, 0x2f, 0x3a, 0x1e, 0x04, + 0x4e, 0x4b, 0x04, 0xb6, 0x1c, 0x38, 0x2d, 0x32, 0xe4, 0xb3, 0x60, 0x8e, 0x5c, 0x54, 0x98, 0x8a, + 0x13, 0xff, 0x86, 0x87, 0x03, 0x66, 0xfb, 0xc6, 0x63, 0xb6, 0x85, 0xf7, 0x07, 0x7d, 0xf5, 0x2f, + 0x15, 0x00, 0xc2, 0x4d, 0x15, 0x9f, 0xa6, 0xa7, 0x41, 0x55, 0xc4, 0x2a, 0x4d, 0x71, 0x37, 0xe2, + 0x91, 0x48, 0x6a, 0xaf, 0x85, 0x17, 0x24, 0x82, 0x1a, 0x65, 0x8a, 0x61, 0x8e, 0x37, 0xaf, 0xf1, + 0xd8, 0xc6, 0x79, 0x30, 0x1b, 0xd9, 0x01, 0x5b, 0x59, 0xcd, 0x97, 0x96, 0x7f, 0x1a, 0x54, 0x3d, + 0x64, 0x98, 0xb2, 0x14, 0x56, 0x48, 0x03, 0x95, 0xbc, 0x1f, 0x2b, 0xcc, 0xe0, 0xa7, 0x33, 0xe6, + 0x10, 0x12, 0xf3, 0x1e, 0x98, 0xa5, 0xb3, 0x32, 0xaa, 0x11, 0x36, 0x10, 0x4f, 0x45, 0xcd, 0xb2, + 0xaf, 0xe1, 0xac, 0xeb, 0x93, 0x9f, 0x7e, 0x7e, 0x56, 0xd1, 0x6a, 0x5e, 0xd0, 0x82, 0x89, 0x5a, + 0xd1, 0xcb, 0x5e, 0x0a, 0x7b, 0x19, 0xcb, 0x8e, 0x93, 0xee, 0x66, 0x8c, 0xc5, 0xea, 0x4d, 0x66, + 0x63, 0x3e, 0x18, 0x20, 0x6f, 0xf8, 0xc0, 0xed, 0x39, 0x86, 0xb9, 0xe3, 0x39, 0x5d, 0x42, 0x37, + 0x49, 0xa3, 0x42, 0x26, 0x28, 0x51, 0x26, 0xa8, 0xdf, 0xe7, 0x42, 0x9b, 0x3a, 0xfe, 0x50, 0x46, + 0x6a, 0x0a, 0xfb, 0xe2, 0xc4, 0x9a, 0xbb, 0x76, 0x62, 0x85, 0xa5, 0x0f, 0xd8, 0xb0, 0xfb, 0x06, + 0xde, 0x6b, 0x92, 0x5e, 0x8d, 0x01, 0x11, 0x51, 0x40, 0x9e, 0xa7, 0x9b, 0x08, 0xb7, 0x3d, 0xcb, + 0x25, 0xd7, 0x44, 0x21, 0x0a, 0xc8, 0xf3, 0x6e, 0x87, 0xad, 0xea, 0x26, 0x78, 0x2e, 0x58, 0xad, + 0x86, 0xf0, 0xa0, 0x6f, 0xb4, 0x7a, 0x88, 0x2d, 0xbb, 0x89, 0xba, 0xe4, 0x0c, 0x1a, 0x69, 0xd7, + 0x3f, 0xaf, 0x80, 0x4b, 0x85, 0x78, 0x0e, 0xb1, 0xfb, 0x0b, 0xa0, 0x8e, 0x19, 0x1a, 0x29, 0x2e, + 0x50, 0xd7, 0x66, 0x79, 0x23, 0x75, 0xd1, 0xd5, 0xef, 0x94, 0xc0, 0x14, 0x8d, 0x0b, 0xc2, 0xeb, + 0x60, 0x8a, 0xc6, 0x0c, 0xf9, 0x24, 0x67, 0xd2, 0xec, 0x01, 0x85, 0x64, 0xe6, 0x86, 0xc2, 0x46, + 0x82, 0xa5, 0xa5, 0x58, 0xb0, 0x34, 0xe2, 0xba, 0x97, 0x63, 0xae, 0xfb, 0x59, 0x50, 0x13, 0x91, + 0x54, 0xab, 0x8f, 0xb8, 0x36, 0x01, 0x1e, 0x46, 0xb5, 0xfa, 0xb1, 0xa8, 0xe0, 0x54, 0x7e, 0x54, + 0x70, 0x3a, 0x11, 0x1e, 0x7d, 0x1e, 0x1c, 0x63, 0xd7, 0x23, 0xdd, 0xe9, 0xe8, 0x7d, 0x44, 0x7e, + 0x61, 0x1a, 0x73, 0x28, 0x6b, 0xf3, 0xac, 0xe3, 0x5e, 0xe7, 0x2e, 0x6b, 0x96, 0x83, 0xc9, 0x95, + 0x48, 0x30, 0x59, 0xfd, 0xdb, 0x12, 0xa8, 0xd1, 0x2d, 0x33, 0xd0, 0xf1, 0x48, 0x54, 0x10, 0xe5, + 0x92, 0x29, 0x58, 0xce, 0xa3, 0xe0, 0x64, 0x3e, 0x05, 0xa7, 0xf2, 0x29, 0x38, 0x9d, 0x4f, 0xc1, + 0x99, 0x04, 0x05, 0x33, 0xa9, 0x42, 0xf5, 0x84, 0xdc, 0x99, 0x78, 0x8c, 0x25, 0x8c, 0x4f, 0xcf, + 0x85, 0xcd, 0x34, 0x34, 0xfb, 0x43, 0x05, 0x9c, 0xe4, 0x07, 0x25, 0xa5, 0x0a, 0x31, 0x7d, 0x42, + 0x33, 0x44, 0x74, 0x48, 0x49, 0x8d, 0x0e, 0x95, 0x22, 0xd1, 0xa1, 0xb3, 0xa0, 0xc6, 0xd2, 0x9b, + 0x3a, 0x11, 0x79, 0x4e, 0x25, 0xc0, 0x9a, 0xee, 0x0f, 0x5d, 0x14, 0xde, 0xf1, 0x26, 0xa5, 0x3b, + 0x1e, 0x41, 0xe7, 0x74, 0x3a, 0x18, 0x09, 0xf1, 0xe1, 0x5f, 0x69, 0x37, 0xdb, 0xe9, 0xd4, 0x9b, + 0x6d, 0x37, 0xf0, 0x9b, 0xa5, 0xe5, 0x73, 0x85, 0x7c, 0x05, 0x4c, 0x53, 0xf6, 0x8a, 0x9b, 0xe1, + 0x99, 0x2c, 0x7b, 0xcb, 0x12, 0x21, 0x1c, 0x38, 0xbc, 0x09, 0x97, 0xe4, 0x9b, 0x30, 0x02, 0xa7, + 0xa3, 0x47, 0x03, 0x5e, 0x1f, 0x6e, 0xdf, 0x96, 0xc3, 0xc2, 0x81, 0x37, 0xc2, 0xe6, 0x9b, 0xd4, + 0xaa, 0xc2, 0x1d, 0xc1, 0xa3, 0xdf, 0xd4, 0xff, 0x55, 0x61, 0xee, 0x6f, 0x72, 0x1e, 0xbe, 0xa9, + 0xaf, 0xc7, 0xef, 0xbb, 0x6b, 0x99, 0xbb, 0xca, 0x41, 0xc3, 0xbd, 0x06, 0xbc, 0x69, 0xfb, 0xde, + 0x30, 0xb8, 0x12, 0x37, 0x3e, 0x02, 0xb3, 0x72, 0x07, 0x5c, 0x00, 0xe5, 0x3d, 0x34, 0xe4, 0x56, + 0x91, 0xfc, 0x84, 0x2f, 0x83, 0xa9, 0x7d, 0xa3, 0x37, 0x40, 0x23, 0xa6, 0xa7, 0x18, 0xf0, 0x1b, + 0xa5, 0xd7, 0x15, 0x99, 0x80, 0x41, 0xf8, 0x25, 0x4a, 0xc0, 0xc0, 0x0c, 0x07, 0x04, 0x14, 0x76, + 0x78, 0x4c, 0x02, 0x46, 0xe7, 0x09, 0x09, 0x18, 0x8d, 0xec, 0x14, 0x12, 0x30, 0x0d, 0x0d, 0xbf, + 0x6f, 0x0b, 0x02, 0x72, 0x8c, 0x84, 0x80, 0x72, 0xc7, 0x21, 0x08, 0xc8, 0xef, 0xf3, 0x12, 0x01, + 0x7f, 0xb1, 0xc4, 0x4e, 0xe0, 0x87, 0xc8, 0xb3, 0x3a, 0xc3, 0x9d, 0xa0, 0xe4, 0x80, 0xac, 0x4b, + 0x50, 0xf1, 0x65, 0xc9, 0x52, 0x51, 0xb5, 0x5d, 0x5f, 0xfc, 0xd1, 0x0f, 0xae, 0x1e, 0xe7, 0x65, + 0x0f, 0xdc, 0x4f, 0x6a, 0xfa, 0x9e, 0x65, 0x77, 0x25, 0x1b, 0x76, 0x07, 0xd4, 0x45, 0x75, 0x02, + 0x53, 0x5f, 0x76, 0x16, 0x9f, 0x97, 0x6d, 0xa7, 0x00, 0x58, 0xd1, 0x50, 0xa8, 0xd5, 0xda, 0xac, + 0x27, 0x7d, 0x11, 0x23, 0x10, 0xe0, 0xb1, 0x4c, 0x7e, 0x77, 0x00, 0xa2, 0x69, 0xdb, 0x84, 0xeb, + 0xa0, 0x66, 0xb4, 0x99, 0x49, 0x22, 0xd3, 0x4c, 0x26, 0xa7, 0x09, 0x2b, 0x29, 0x56, 0xd6, 0x28, + 0x24, 0x9d, 0x06, 0x18, 0xc1, 0x6f, 0xf5, 0x6b, 0xcc, 0x47, 0x4b, 0xa7, 0x42, 0xa8, 0xf9, 0xa8, + 0xd3, 0x11, 0x51, 0x93, 0xb9, 0xe8, 0x29, 0x20, 0x4d, 0xb1, 0x49, 0x81, 0x34, 0x0e, 0xac, 0xde, + 0x02, 0x97, 0x05, 0xcf, 0x13, 0xe9, 0x38, 0x0b, 0xe1, 0x11, 0xee, 0xa1, 0x7f, 0xa4, 0x80, 0xe7, + 0x47, 0x41, 0xc1, 0xd7, 0xe9, 0x83, 0x33, 0x5d, 0x9a, 0xfd, 0xd3, 0x79, 0x46, 0x50, 0xa7, 0x36, + 0x48, 0xef, 0x70, 0x70, 0x2e, 0xa1, 0x63, 0xe4, 0x0e, 0x1b, 0xdd, 0xf4, 0x1e, 0x0b, 0x61, 0xf5, + 0x16, 0xf3, 0x69, 0x88, 0xcd, 0x4c, 0x00, 0xad, 0x0f, 0xb7, 0xf6, 0xbb, 0xe1, 0x26, 0x9f, 0x06, + 0xd3, 0xdd, 0xfd, 0x6e, 0xb8, 0xcb, 0xa9, 0xee, 0x7e, 0x77, 0xdb, 0x54, 0xbf, 0xad, 0x80, 0xe5, + 0x62, 0x14, 0x7c, 0x93, 0x1f, 0x83, 0xe3, 0x69, 0x9b, 0xe4, 0x07, 0xf4, 0x81, 0x72, 0xd5, 0x30, + 0xb9, 0x2b, 0xf5, 0x46, 0x10, 0xa4, 0x49, 0x21, 0x43, 0xb8, 0x8d, 0xfd, 0x6e, 0x47, 0xda, 0xc6, + 0x7e, 0xb7, 0xb3, 0x6d, 0xaa, 0xbb, 0x41, 0x90, 0x2c, 0x6d, 0x28, 0x5f, 0x3e, 0xcf, 0xe2, 0x2a, + 0x87, 0xc9, 0xe2, 0xaa, 0x0f, 0x83, 0x45, 0xa6, 0xec, 0x6a, 0x84, 0x0b, 0x2d, 0xd9, 0x41, 0x8f, + 0x31, 0x82, 0x79, 0x88, 0x53, 0x3d, 0xca, 0x88, 0x56, 0xb0, 0x83, 0x34, 0xbc, 0x41, 0x5c, 0x87, + 0xd6, 0x06, 0x28, 0x63, 0xd6, 0x06, 0xec, 0x25, 0x0c, 0xf7, 0xb6, 0xbd, 0xf5, 0x70, 0x2b, 0x5f, + 0x44, 0xe2, 0xe9, 0x3f, 0x6e, 0x0b, 0xa4, 0xf4, 0x5f, 0xc4, 0x21, 0xa8, 0x8b, 0xa0, 0xaf, 0x9e, + 0xb0, 0xde, 0x7c, 0xb2, 0x30, 0x31, 0x1a, 0xb5, 0xde, 0x17, 0xf3, 0x0d, 0x28, 0xaf, 0xc7, 0x08, + 0x2c, 0xb4, 0xfa, 0x1b, 0x3c, 0x32, 0x10, 0x9f, 0x61, 0xcd, 0x36, 0xc5, 0x95, 0x2f, 0x77, 0x5f, + 0x11, 0x2e, 0x95, 0x62, 0x5c, 0x1a, 0x73, 0xd3, 0xbb, 0xe0, 0x62, 0xc1, 0x92, 0x8e, 0x6a, 0xf7, + 0x7f, 0xa8, 0x84, 0x26, 0x2e, 0x38, 0xd6, 0xe4, 0xa9, 0xee, 0x38, 0xde, 0xd6, 0x86, 0x20, 0xc1, + 0x33, 0x00, 0x98, 0xd8, 0xd7, 0x23, 0x64, 0xa8, 0x98, 0xd8, 0xdf, 0xfa, 0xa9, 0x51, 0xa2, 0x1f, + 0x9a, 0xcf, 0xbc, 0xe5, 0x1d, 0x15, 0x39, 0xee, 0x87, 0x29, 0x86, 0xbb, 0x56, 0xd7, 0x33, 0x7c, + 0xc4, 0xa6, 0xd9, 0xa4, 0x15, 0x70, 0x82, 0x0c, 0xa7, 0x40, 0x85, 0x65, 0x73, 0x02, 0xbd, 0x9c, + 0xa1, 0xdf, 0xdb, 0x66, 0x78, 0x08, 0x94, 0xa4, 0x43, 0xe0, 0x5f, 0x4a, 0xe0, 0x64, 0x06, 0x4a, + 0xf8, 0x36, 0x98, 0xa2, 0xe5, 0x75, 0x5c, 0x1b, 0x97, 0xd3, 0xae, 0x27, 0x14, 0x94, 0x0d, 0x26, + 0x07, 0x1b, 0xf7, 0xa4, 0xe8, 0x30, 0xf8, 0x01, 0x98, 0x6d, 0x1b, 0x76, 0x1b, 0xf5, 0x74, 0x86, + 0x86, 0x79, 0x11, 0x2b, 0x99, 0x68, 0x36, 0x28, 0x70, 0x1c, 0x59, 0x8d, 0xe1, 0xa0, 0x10, 0xf0, + 0x43, 0x30, 0xd7, 0x76, 0xfa, 0x2e, 0xad, 0xb9, 0x61, 0x48, 0x59, 0x15, 0xd1, 0x8b, 0xd9, 0x48, + 0x39, 0x78, 0x1c, 0x6d, 0x5d, 0xe0, 0x61, 0x88, 0xef, 0x81, 0x59, 0x0f, 0x51, 0x97, 0x8e, 0xa1, + 0x9d, 0xa4, 0x68, 0x5f, 0xc8, 0x44, 0xab, 0x51, 0xe0, 0x08, 0xd5, 0xb4, 0x1a, 0xc3, 0x40, 0xfb, + 0x55, 0x3b, 0x4c, 0xd1, 0xa7, 0xb2, 0x8b, 0x8b, 0xc5, 0x16, 0x98, 0x66, 0x25, 0x8c, 0x5c, 0x2a, + 0x56, 0xb3, 0xa4, 0x22, 0x0b, 0x11, 0x1f, 0xae, 0xbe, 0x1f, 0x1a, 0xa3, 0xe6, 0x23, 0xc3, 0xbd, + 0x37, 0x38, 0xa4, 0x60, 0xfc, 0x97, 0x02, 0x8e, 0x25, 0x90, 0xc1, 0x9b, 0xd2, 0x72, 0x59, 0xd8, + 0x3d, 0xcb, 0x42, 0xd3, 0x01, 0x7c, 0xb0, 0x58, 0x24, 0xdc, 0x01, 0x75, 0x59, 0x22, 0x30, 0x17, + 0x89, 0x2b, 0xf9, 0x58, 0x98, 0x5c, 0x08, 0x5c, 0xb3, 0x92, 0x3c, 0x60, 0xf8, 0x90, 0xe6, 0xf2, + 0x25, 0x81, 0xc0, 0x5c, 0x22, 0xae, 0x16, 0xe0, 0xe4, 0x83, 0x04, 0xd6, 0xb9, 0x88, 0x38, 0x60, + 0xb5, 0xc5, 0xe2, 0xec, 0x29, 0xe4, 0xe4, 0x8c, 0x5b, 0x8b, 0x31, 0xee, 0x72, 0x1e, 0xe3, 0xa2, + 0x28, 0x04, 0xcb, 0xee, 0x84, 0x09, 0xea, 0xe4, 0x79, 0x46, 0xdc, 0x2f, 0xd4, 0x76, 0x6c, 0xd3, + 0xf0, 0x86, 0xcd, 0x9d, 0x5c, 0x47, 0xee, 0x51, 0x98, 0x33, 0x2e, 0xc6, 0x13, 0x78, 0x0a, 0xd1, + 0xfb, 0xe6, 0x81, 0x8e, 0x5a, 0x3e, 0x54, 0xdd, 0x0e, 0x2d, 0x60, 0xea, 0xc4, 0xd1, 0x43, 0x2a, + 0x37, 0x08, 0xee, 0x81, 0x2b, 0x23, 0xa1, 0x3a, 0xca, 0xe5, 0xdf, 0x0d, 0x9d, 0x85, 0xa6, 0xbb, + 0xf9, 0xd8, 0x3a, 0xa4, 0xc6, 0xfc, 0x50, 0x01, 0x0b, 0x71, 0x5c, 0x70, 0x2b, 0x6a, 0x43, 0x5f, + 0x2a, 0xd0, 0x17, 0x66, 0x62, 0x76, 0x3c, 0x67, 0xdf, 0x32, 0x91, 0x47, 0xf0, 0x08, 0x63, 0xfa, + 0x8d, 0x84, 0xe5, 0x63, 0xba, 0x73, 0x63, 0x44, 0x39, 0x4f, 0xc1, 0x1c, 0x35, 0x81, 0xea, 0x37, + 0x24, 0x0b, 0x12, 0x21, 0x07, 0xa7, 0xf9, 0xad, 0x98, 0xee, 0x2f, 0xe7, 0x4a, 0xbc, 0x8c, 0x41, + 0x08, 0xfc, 0x1a, 0x38, 0xce, 0x3d, 0xc0, 0xe6, 0x0e, 0x0d, 0x69, 0x71, 0x4a, 0x5f, 0x06, 0x0b, + 0xe2, 0x7e, 0xa7, 0x47, 0x4b, 0x01, 0xe7, 0x45, 0x3b, 0xbf, 0x0e, 0xaa, 0x2d, 0xf0, 0x74, 0x0c, + 0x05, 0x5f, 0xdd, 0x36, 0x58, 0x10, 0xb5, 0x87, 0x2e, 0xdf, 0x64, 0x6a, 0x26, 0xc2, 0x5d, 0x89, + 0x91, 0x42, 0x9b, 0xc7, 0xd1, 0x06, 0xf5, 0x75, 0xe6, 0xa8, 0xee, 0x04, 0x59, 0x7f, 0xbb, 0xed, + 0xf4, 0x91, 0x38, 0x90, 0xf3, 0x34, 0xf1, 0x6f, 0x14, 0x76, 0x48, 0x67, 0x0d, 0xe5, 0x6b, 0xbd, + 0x02, 0x8e, 0xb5, 0x07, 0x9e, 0x87, 0x6c, 0x29, 0x24, 0x2e, 0xaa, 0x4c, 0x78, 0x47, 0x10, 0x0d, + 0x87, 0xbb, 0xe0, 0x94, 0x5c, 0x94, 0x40, 0x11, 0xea, 0x26, 0xc3, 0xc8, 0x83, 0xf3, 0x57, 0x33, + 0x6b, 0x10, 0xd3, 0xd6, 0xa1, 0x9d, 0x70, 0x53, 0x97, 0xa7, 0xfe, 0x93, 0x02, 0x9e, 0x4e, 0x1d, + 0x91, 0x71, 0x27, 0x39, 0xa2, 0x2c, 0x2a, 0xbc, 0x0f, 0xa6, 0xd9, 0xb6, 0xa8, 0xe9, 0x9e, 0x5d, + 0x7f, 0xeb, 0xd3, 0xcf, 0xcf, 0x4e, 0xfc, 0xf8, 0xf3, 0xb3, 0xcf, 0x75, 0x2d, 0x7f, 0x77, 0xd0, + 0x5a, 0x69, 0x3b, 0x7d, 0xfe, 0x18, 0x82, 0xff, 0x77, 0x15, 0x9b, 0x7b, 0xbc, 0xa6, 0x7f, 0xdb, + 0xf6, 0x7f, 0xf4, 0x83, 0xab, 0x80, 0x07, 0x0d, 0xb6, 0x6d, 0x5f, 0xe3, 0xb8, 0xd4, 0x37, 0xd8, + 0x01, 0x1c, 0x1a, 0xbf, 0x03, 0xf0, 0xf1, 0x1f, 0xb9, 0xe3, 0x9d, 0x3d, 0x78, 0x1c, 0x4e, 0xda, + 0xe0, 0x34, 0x16, 0x08, 0x33, 0x79, 0x99, 0xe9, 0x00, 0x64, 0xac, 0x45, 0x5b, 0xc4, 0x19, 0x8b, + 0x54, 0xff, 0x59, 0x01, 0x27, 0x33, 0x46, 0x65, 0xdd, 0x18, 0xfe, 0x57, 0x73, 0xf4, 0x5b, 0x25, + 0x30, 0xdd, 0xf4, 0x0d, 0x7f, 0x80, 0xa1, 0x0e, 0x9e, 0x8e, 0x6b, 0xbb, 0x9c, 0x7c, 0xbc, 0x92, + 0x49, 0xc4, 0xa8, 0xaa, 0x53, 0x0b, 0xf2, 0x14, 0x4e, 0x36, 0xc2, 0x26, 0x38, 0xc6, 0x8c, 0x3f, + 0x1e, 0xda, 0x6d, 0x81, 0x9c, 0x11, 0xe3, 0x52, 0x66, 0x1c, 0x91, 0x0c, 0x68, 0x52, 0x78, 0x8a, + 0x78, 0xbe, 0x15, 0x6d, 0x80, 0xb7, 0x00, 0x68, 0xef, 0x1a, 0x96, 0xcd, 0xb0, 0x31, 0x3f, 0xe5, + 0x7c, 0x16, 0xb6, 0x0d, 0x02, 0x49, 0xf1, 0x54, 0xdb, 0xe2, 0xa7, 0xfa, 0x5b, 0x65, 0x30, 0x1f, + 0x9b, 0x06, 0x3e, 0x07, 0xe6, 0x5b, 0x98, 0xd7, 0x70, 0xed, 0x22, 0xab, 0xbb, 0x2b, 0x0a, 0x9b, + 0xea, 0x2d, 0x4c, 0x61, 0xdf, 0xa5, 0x8d, 0x50, 0x05, 0xf5, 0x10, 0xce, 0xc0, 0x22, 0xb7, 0x5f, + 0x13, 0x50, 0xbc, 0xd4, 0xbc, 0x85, 0x75, 0x39, 0x92, 0xcf, 0x12, 0x2d, 0xb3, 0x2d, 0xfc, 0x20, + 0x8c, 0xe5, 0x2f, 0x83, 0x85, 0x16, 0xd6, 0xfb, 0x43, 0xfc, 0x49, 0x4f, 0xdf, 0x47, 0x1e, 0xb6, + 0x82, 0xd2, 0xf7, 0xb9, 0x16, 0xbe, 0x4b, 0x9a, 0x1f, 0xb2, 0x56, 0x78, 0x0b, 0x9c, 0x69, 0x61, + 0xdd, 0x44, 0x1d, 0x63, 0xd0, 0xf3, 0xf5, 0xf6, 0xae, 0xe1, 0x19, 0x6d, 0x1f, 0x79, 0x3a, 0x16, + 0x05, 0x22, 0xac, 0xe4, 0xf3, 0x54, 0x0b, 0xdf, 0x66, 0x30, 0x1b, 0x02, 0xa4, 0xc9, 0xeb, 0x45, + 0x6e, 0x80, 0x53, 0x32, 0x06, 0xa7, 0xd7, 0x63, 0x79, 0x02, 0xa9, 0x16, 0xf4, 0x44, 0x38, 0x5a, + 0x74, 0x8b, 0x7a, 0x60, 0xb2, 0x4c, 0x42, 0x5e, 0x84, 0x17, 0x67, 0x68, 0x89, 0x67, 0xb5, 0x85, + 0xef, 0xb2, 0x06, 0xde, 0xfd, 0xc8, 0xf1, 0xf6, 0x90, 0x87, 0x69, 0x52, 0xa2, 0x4e, 0xba, 0x3f, + 0x64, 0x0d, 0xf0, 0x32, 0x38, 0xd6, 0xc2, 0x3a, 0xb2, 0x8d, 0x56, 0x0f, 0xe9, 0xe6, 0xc0, 0xe8, + 0xe9, 0x66, 0x8b, 0x26, 0x26, 0x2a, 0x64, 0x97, 0x9b, 0xb4, 0xfd, 0xf6, 0xc0, 0xe8, 0xdd, 0x6e, + 0xa9, 0xef, 0x81, 0x6a, 0xc0, 0x2d, 0xe2, 0x36, 0x70, 0x26, 0x8b, 0x2a, 0xb8, 0x19, 0xc6, 0x3f, + 0x93, 0x56, 0x22, 0xd0, 0x2e, 0x71, 0xc8, 0x95, 0xe8, 0x9a, 0x66, 0x69, 0xa3, 0x38, 0xe1, 0xfe, + 0xaa, 0x04, 0x9e, 0x4a, 0x11, 0x53, 0xc2, 0x66, 0xec, 0xea, 0x6d, 0xc7, 0x44, 0x01, 0xcd, 0x19, + 0xfa, 0x3a, 0x76, 0x37, 0x1c, 0x13, 0x09, 0x92, 0x3f, 0x0b, 0xe6, 0x04, 0x5c, 0xdb, 0xe9, 0x93, + 0x5b, 0x2b, 0xe3, 0xf3, 0x2c, 0x03, 0xdb, 0xa0, 0x6d, 0xf0, 0x12, 0xc5, 0x66, 0x78, 0xed, 0x5d, + 0xcb, 0x47, 0x6d, 0x7f, 0xe0, 0x89, 0x3c, 0xc8, 0x1c, 0x76, 0xd7, 0xa4, 0x56, 0x22, 0x35, 0xd8, + 0xd5, 0xbb, 0x4e, 0x8c, 0xd1, 0x35, 0xec, 0x6e, 0x39, 0x62, 0xca, 0x15, 0xf0, 0x14, 0x76, 0x75, + 0x76, 0x54, 0x5b, 0x76, 0x57, 0xc7, 0x43, 0xec, 0xa3, 0xbe, 0x28, 0x8f, 0xc6, 0xee, 0x3d, 0xd1, + 0xd3, 0xa4, 0x1d, 0x11, 0x78, 0xe9, 0xc8, 0x9f, 0x8e, 0xc2, 0x07, 0x87, 0x3e, 0xdf, 0x92, 0xe9, + 0xf4, 0x09, 0xed, 0x28, 0xe3, 0x67, 0xc4, 0x96, 0x6e, 0xd3, 0x46, 0xc2, 0x6e, 0xf5, 0x44, 0xe8, + 0x5d, 0x50, 0x23, 0xc1, 0x2d, 0xbc, 0x7a, 0x2f, 0x74, 0x19, 0x78, 0x7b, 0x58, 0xaf, 0x86, 0x69, + 0x4b, 0x51, 0xbd, 0x1a, 0x1f, 0xc7, 0xa1, 0x55, 0x37, 0xc8, 0xe3, 0x3c, 0xc0, 0xc8, 0x63, 0x1e, + 0xea, 0x88, 0x55, 0x90, 0x41, 0x24, 0xa1, 0x24, 0x45, 0x12, 0x0a, 0x03, 0x10, 0xea, 0x57, 0x23, + 0x55, 0xfe, 0x62, 0x46, 0xbe, 0x8d, 0x37, 0x63, 0xbe, 0xf0, 0x85, 0xdc, 0xd4, 0x11, 0x4b, 0x3d, + 0x06, 0x3e, 0xb0, 0x1d, 0x94, 0xf6, 0x4b, 0xbd, 0xb2, 0x0b, 0xcc, 0x82, 0xbc, 0xa1, 0x0b, 0x4c, + 0xbf, 0x0f, 0xb2, 0x93, 0x48, 0x21, 0xbd, 0xfa, 0x11, 0xf3, 0xb9, 0x13, 0xf3, 0x1d, 0xc5, 0x5e, + 0x06, 0x41, 0x6d, 0x14, 0xa1, 0xd2, 0xbd, 0x47, 0x36, 0x32, 0xff, 0x27, 0x98, 0xf3, 0x71, 0xa4, + 0x34, 0x36, 0x32, 0xed, 0x51, 0xec, 0xea, 0x1f, 0x4a, 0x60, 0x7a, 0xc7, 0xe9, 0x59, 0xed, 0x21, + 0xbc, 0x08, 0xe6, 0x5c, 0xcf, 0xb2, 0xdb, 0x96, 0x6b, 0xf4, 0x58, 0x56, 0x82, 0xec, 0x61, 0x4a, + 0xab, 0x07, 0xad, 0x34, 0xb5, 0x71, 0x09, 0xcc, 0x87, 0x60, 0x61, 0x02, 0xa7, 0xaa, 0x85, 0xa3, + 0x1f, 0x92, 0xd6, 0x64, 0x2e, 0xa5, 0x7c, 0x24, 0xb9, 0x14, 0xfe, 0x7c, 0x42, 0xca, 0xa5, 0x5c, + 0x06, 0x0b, 0x52, 0x6e, 0x99, 0x79, 0x49, 0x2c, 0x89, 0x3a, 0x1f, 0x26, 0x98, 0x99, 0x93, 0x74, + 0x19, 0x2c, 0x48, 0xc7, 0x0f, 0x03, 0x65, 0xc9, 0xe6, 0xf9, 0x30, 0x9b, 0xcc, 0x40, 0x53, 0x12, + 0xc7, 0x33, 0xa9, 0x89, 0xe3, 0x7f, 0x57, 0xc2, 0xdb, 0x3c, 0x8b, 0xae, 0x51, 0x82, 0x5a, 0x08, + 0x1f, 0x5d, 0x09, 0x6d, 0x2c, 0x5d, 0x54, 0x1e, 0x23, 0x5d, 0x94, 0x1e, 0x67, 0x8c, 0x0b, 0xe0, + 0x54, 0x42, 0x00, 0xff, 0x1f, 0x13, 0xc0, 0xb4, 0xdd, 0x71, 0x01, 0x7c, 0x03, 0x54, 0x5c, 0xde, + 0x56, 0x54, 0x79, 0xcc, 0x44, 0x4d, 0x0b, 0xe0, 0xd5, 0x7b, 0x61, 0x0c, 0x3a, 0xfa, 0xa4, 0x89, + 0xf9, 0x7f, 0x01, 0x09, 0x2f, 0xa5, 0xbf, 0x90, 0xaa, 0xc6, 0x5f, 0x3e, 0xa9, 0x46, 0x18, 0x41, + 0xce, 0x40, 0x78, 0xe8, 0x72, 0xe9, 0x8d, 0x30, 0x56, 0x4a, 0x74, 0x32, 0x3a, 0xcd, 0x88, 0xe6, + 0x40, 0xfd, 0xd9, 0x30, 0x82, 0x97, 0x8a, 0x84, 0xaf, 0xf2, 0x01, 0x58, 0x88, 0xed, 0x5b, 0xb8, + 0xf2, 0xcf, 0x8f, 0xf6, 0x34, 0x8c, 0xd6, 0xb5, 0xce, 0x47, 0x89, 0x84, 0xd5, 0x1b, 0xcc, 0x30, + 0xd3, 0x80, 0x08, 0x8f, 0x81, 0x48, 0x19, 0xe8, 0xd3, 0xa0, 0x2a, 0x0c, 0xb3, 0x48, 0x40, 0x57, + 0xb8, 0x65, 0xc6, 0xea, 0x67, 0x4a, 0x18, 0xd8, 0x88, 0x8c, 0xe5, 0x2b, 0xfe, 0x30, 0x66, 0x8e, + 0xde, 0x29, 0x4a, 0x2a, 0xa7, 0x20, 0x61, 0xa6, 0x8a, 0xa7, 0x94, 0x39, 0xba, 0xc6, 0x57, 0x79, + 0x79, 0x4b, 0x66, 0x42, 0xf9, 0x7a, 0x34, 0xa1, 0x5c, 0x50, 0xe4, 0x20, 0xe5, 0x93, 0xdf, 0x62, + 0x32, 0x43, 0xaf, 0xfd, 0x3c, 0x92, 0x6b, 0x77, 0x79, 0xd5, 0x36, 0x7b, 0x11, 0x91, 0x77, 0x9d, + 0x7b, 0x9b, 0x15, 0x58, 0xe5, 0x8d, 0x4e, 0x7b, 0x59, 0x30, 0x29, 0xea, 0x29, 0x1e, 0xb1, 0xd9, + 0x59, 0x1a, 0x97, 0x07, 0x61, 0xb7, 0x1e, 0x6e, 0x85, 0x09, 0xdd, 0x51, 0xd3, 0x62, 0xdd, 0x48, + 0x5a, 0x8c, 0x5d, 0xb9, 0x1a, 0xa0, 0x6a, 0x62, 0x9f, 0x3f, 0x38, 0x28, 0xd3, 0x9e, 0x19, 0x13, + 0xfb, 0x4d, 0xb2, 0x70, 0x9d, 0x2d, 0x3c, 0x6f, 0xe2, 0xc3, 0x65, 0x91, 0x5f, 0x8b, 0x95, 0x72, + 0x37, 0xad, 0x27, 0x68, 0xa4, 0x78, 0xdd, 0x5b, 0xb1, 0xe2, 0x6c, 0x36, 0x90, 0x2f, 0x26, 0x34, + 0x96, 0xb4, 0x74, 0x31, 0x52, 0x04, 0x4e, 0x00, 0xaf, 0xfd, 0xfe, 0x6b, 0xe0, 0x29, 0x32, 0xfc, + 0x2e, 0x67, 0x7b, 0x13, 0x79, 0xfb, 0x56, 0x1b, 0xc1, 0x6f, 0x02, 0x98, 0x7c, 0xfb, 0x01, 0x5f, + 0xca, 0x93, 0xcf, 0xd4, 0x97, 0x8f, 0x8d, 0x6b, 0x07, 0x19, 0xc2, 0x56, 0xad, 0x4e, 0xc0, 0xdf, + 0x53, 0x52, 0xea, 0x3e, 0xc2, 0xb7, 0x01, 0xf0, 0x8d, 0x91, 0xab, 0x2f, 0x12, 0xef, 0x17, 0x1a, + 0x6f, 0x8e, 0x35, 0x36, 0x58, 0xda, 0x6f, 0xc6, 0xab, 0xe1, 0x23, 0x0b, 0x7b, 0xbd, 0x60, 0xbb, + 0x99, 0xef, 0xd1, 0x1a, 0x37, 0xc6, 0x18, 0x19, 0x2c, 0xea, 0x57, 0xc3, 0x82, 0xac, 0xf8, 0xf3, + 0x2d, 0xf8, 0xea, 0x81, 0x10, 0x07, 0x59, 0xfc, 0xc6, 0x6b, 0x07, 0x1e, 0x17, 0x2c, 0xe7, 0xef, + 0x79, 0xa6, 0x7f, 0x94, 0xc7, 0x53, 0x70, 0xab, 0x88, 0x1f, 0x23, 0xbe, 0x19, 0x6b, 0xbc, 0x7b, + 0x78, 0x44, 0x69, 0x04, 0x8d, 0x3f, 0x7e, 0x2a, 0x24, 0x68, 0xc6, 0xbb, 0xac, 0x42, 0x82, 0x66, + 0xbd, 0xb2, 0x52, 0x27, 0xe0, 0xef, 0x28, 0xe1, 0x21, 0x94, 0x7c, 0xd6, 0x04, 0x6f, 0x14, 0xed, + 0x3c, 0xf3, 0x19, 0x56, 0xe3, 0x8d, 0x71, 0x86, 0x06, 0xeb, 0x7a, 0x02, 0x8e, 0x25, 0x5e, 0x21, + 0xc1, 0x17, 0x0b, 0xf6, 0x99, 0x78, 0x37, 0xd5, 0x78, 0xe9, 0x00, 0x23, 0x12, 0x34, 0x49, 0x7f, + 0x3e, 0x04, 0x8b, 0xf4, 0x29, 0xfb, 0x85, 0x53, 0x3e, 0x4d, 0xf2, 0x5f, 0x2b, 0xa9, 0x13, 0xf0, + 0xd7, 0xc2, 0x17, 0x62, 0x89, 0x07, 0x40, 0xf0, 0xb5, 0x83, 0xa1, 0x0e, 0xb5, 0xf1, 0xf5, 0x83, + 0x0f, 0x0c, 0x56, 0xf4, 0x4d, 0x76, 0x1f, 0x8f, 0x17, 0x3f, 0xc1, 0xd4, 0x5c, 0x2d, 0x2d, 0x5a, + 0x8e, 0x83, 0x86, 0x8c, 0x1a, 0x7d, 0x44, 0x8a, 0x90, 0x84, 0xcf, 0x87, 0x0a, 0x85, 0x24, 0xf1, + 0xa0, 0xa9, 0x50, 0x48, 0x92, 0x6f, 0x93, 0xd4, 0x09, 0xf8, 0xcb, 0x4a, 0x10, 0x73, 0x88, 0xbe, + 0xf1, 0x81, 0x2f, 0x17, 0xa0, 0x4b, 0x7d, 0x47, 0xd4, 0x78, 0xe5, 0x80, 0xa3, 0x82, 0x85, 0x7c, + 0x5b, 0x01, 0x27, 0xd2, 0x5f, 0xeb, 0xc0, 0x57, 0x46, 0xda, 0x58, 0xfc, 0x29, 0x4b, 0xe3, 0xd5, + 0x83, 0x0e, 0x0b, 0xd6, 0xf2, 0x07, 0x4a, 0xf0, 0x5a, 0x2a, 0xf5, 0x9d, 0x0b, 0x7c, 0xb3, 0x00, + 0x75, 0xde, 0x13, 0x9b, 0xc6, 0x5b, 0xe3, 0x0d, 0x4e, 0xe8, 0x4f, 0xda, 0x7b, 0x8a, 0x7c, 0xfd, + 0xc9, 0x79, 0x1a, 0x93, 0xaf, 0x3f, 0x79, 0x4f, 0x37, 0xa4, 0xc3, 0x20, 0xe5, 0x15, 0x43, 0xfe, + 0x61, 0x90, 0xfd, 0x6c, 0x22, 0xff, 0x30, 0xc8, 0x79, 0x2e, 0xa1, 0x4e, 0xc0, 0x3f, 0x96, 0x1f, + 0x55, 0xa4, 0x3f, 0x2f, 0x80, 0x6f, 0x17, 0xa2, 0xcf, 0x7d, 0xdf, 0xd0, 0x78, 0x67, 0xec, 0xf1, + 0xc1, 0x32, 0x1f, 0x81, 0x85, 0x78, 0x91, 0x35, 0x5c, 0x2d, 0x90, 0x8d, 0x78, 0x35, 0x79, 0xe3, + 0xc5, 0xd1, 0x07, 0x04, 0x13, 0xff, 0x82, 0xc2, 0xec, 0x5d, 0xbc, 0x8c, 0x19, 0x5e, 0x3f, 0x58, + 0xd1, 0x33, 0x5b, 0xc1, 0xcb, 0xe3, 0x54, 0x4a, 0xc7, 0x56, 0x21, 0xd7, 0x02, 0x17, 0xaf, 0x22, + 0xa5, 0xd0, 0xb9, 0x78, 0x15, 0x69, 0xe5, 0xc6, 0x92, 0x32, 0xa5, 0x15, 0xbe, 0xe6, 0x2b, 0x53, + 0x4e, 0xc1, 0x70, 0xbe, 0x32, 0xe5, 0xd5, 0xd8, 0xaa, 0x13, 0xf0, 0x4f, 0x95, 0x30, 0x24, 0x90, + 0x5d, 0xec, 0x0a, 0x0b, 0xeb, 0xab, 0x0b, 0x6b, 0x6d, 0x1b, 0xeb, 0x87, 0x41, 0x11, 0xac, 0xf7, + 0x4f, 0x94, 0x9c, 0x2a, 0x4c, 0x5e, 0xb5, 0x0a, 0xdf, 0x29, 0x12, 0xd3, 0x82, 0x92, 0xd9, 0xc6, + 0xad, 0xf1, 0x11, 0xa4, 0xdd, 0x4c, 0x92, 0x15, 0xa5, 0x85, 0x37, 0x93, 0xcc, 0x3a, 0xd8, 0xc2, + 0x9b, 0x49, 0x76, 0x19, 0x6c, 0x74, 0x51, 0xc9, 0x3d, 0x14, 0x2e, 0x2a, 0xb3, 0xee, 0xb5, 0x70, + 0x51, 0xd9, 0x95, 0xad, 0xe9, 0xba, 0x49, 0x6b, 0x27, 0x47, 0xd6, 0x4d, 0xb9, 0x96, 0x75, 0x64, + 0xdd, 0x8c, 0xd4, 0xa4, 0xaa, 0x13, 0xf0, 0xbb, 0x89, 0x60, 0x68, 0xac, 0x82, 0x13, 0xbe, 0x75, + 0x10, 0xcc, 0xf1, 0x5a, 0xd4, 0xc6, 0xcd, 0x31, 0x47, 0xa7, 0xaa, 0x6a, 0x76, 0x61, 0x25, 0x1c, + 0xfd, 0x29, 0x44, 0x56, 0xcd, 0x68, 0xb1, 0xaa, 0x16, 0xd7, 0x75, 0xc6, 0xae, 0x9d, 0x45, 0xf5, + 0x57, 0xc5, 0xd7, 0xce, 0x11, 0x2b, 0xc1, 0x8a, 0xaf, 0x9d, 0xa3, 0x96, 0x82, 0xa9, 0x13, 0xf0, + 0xcf, 0x95, 0x30, 0xd4, 0x99, 0x53, 0x7d, 0x05, 0xd7, 0xc7, 0x9a, 0x33, 0x2a, 0x1e, 0x1b, 0x87, + 0xc2, 0x91, 0x1a, 0xaa, 0x49, 0xab, 0x5d, 0x2d, 0xbc, 0x60, 0x66, 0xd7, 0xd0, 0x16, 0x87, 0x6a, + 0x72, 0x0a, 0x3a, 0x25, 0xe7, 0x3f, 0x59, 0x3d, 0x59, 0xa8, 0xb2, 0x69, 0x95, 0x9b, 0xf9, 0xce, + 0x7f, 0x66, 0x81, 0x62, 0xcc, 0xde, 0x44, 0x8a, 0xd2, 0x0a, 0xed, 0x4d, 0x4a, 0x39, 0x5c, 0xb1, + 0xbd, 0x49, 0x2b, 0x1a, 0x53, 0x27, 0xa0, 0x0d, 0xea, 0x91, 0x8a, 0x2d, 0xf8, 0x42, 0x81, 0x0d, + 0x8d, 0xd4, 0x86, 0x35, 0xae, 0x8e, 0x08, 0x9d, 0x36, 0x1f, 0xab, 0x15, 0x29, 0x9c, 0x4f, 0xce, + 0x16, 0x17, 0xcf, 0x17, 0xc9, 0x21, 0x47, 0xee, 0x99, 0x61, 0x6e, 0xb6, 0xf0, 0x9e, 0x99, 0x48, + 0x1c, 0x37, 0x5e, 0x3a, 0xc0, 0x88, 0x60, 0xee, 0x6f, 0x29, 0x2c, 0x8e, 0x1a, 0x4b, 0xa7, 0xc2, + 0x6b, 0xa3, 0xf8, 0xaf, 0xd1, 0x5c, 0x6f, 0xe3, 0xfa, 0x81, 0xc6, 0xa4, 0xdd, 0x30, 0x63, 0xe9, + 0xcf, 0xc2, 0x1b, 0x66, 0x7a, 0x96, 0xb6, 0xf1, 0xea, 0x41, 0x87, 0x25, 0xd6, 0x92, 0xcc, 0x84, + 0xc1, 0x57, 0x46, 0x33, 0xf5, 0xb1, 0xbc, 0x60, 0xfe, 0x5a, 0xb2, 0x13, 0x6e, 0xb1, 0x63, 0x36, + 0x35, 0xcd, 0x55, 0x7c, 0xcc, 0xe6, 0xa5, 0xdb, 0x8a, 0x8f, 0xd9, 0xdc, 0xdc, 0x5a, 0xcc, 0x82, + 0xa6, 0xe4, 0xb7, 0x8a, 0x2d, 0x68, 0x76, 0x66, 0xad, 0xd8, 0x82, 0xe6, 0x24, 0xd4, 0x24, 0xb1, + 0x8e, 0xe5, 0x9e, 0xf2, 0xc5, 0x3a, 0x3d, 0x53, 0xd6, 0xb8, 0x3e, 0x46, 0x72, 0x4b, 0x9d, 0x80, + 0xdf, 0x53, 0x82, 0xac, 0x7e, 0x46, 0xce, 0x08, 0xde, 0x2c, 0xb4, 0x4c, 0x79, 0x99, 0xaa, 0xc6, + 0xdb, 0xe3, 0x0e, 0x4f, 0xac, 0x31, 0x3b, 0x3d, 0x94, 0xbf, 0xc6, 0xc2, 0x7c, 0x56, 0xfe, 0x1a, + 0x8b, 0xb3, 0x52, 0x29, 0x51, 0x38, 0xfa, 0xc7, 0x56, 0x46, 0x8b, 0xc2, 0x49, 0xb9, 0xa8, 0x11, + 0xa3, 0x70, 0x72, 0x12, 0x4a, 0x0a, 0xd5, 0xa6, 0x57, 0xe3, 0xe6, 0x87, 0x6a, 0x73, 0x8b, 0x7f, + 0xf3, 0x43, 0xb5, 0xf9, 0xc5, 0xbf, 0x52, 0x20, 0x2c, 0xab, 0xba, 0x34, 0x3f, 0x10, 0x56, 0x50, + 0xd0, 0x9a, 0x1f, 0x08, 0x2b, 0x2a, 0x68, 0x55, 0x27, 0xd6, 0x8d, 0x4f, 0xbf, 0x58, 0x52, 0x3e, + 0xfb, 0x62, 0x49, 0xf9, 0xc9, 0x17, 0x4b, 0xca, 0xaf, 0x7f, 0xb9, 0x34, 0xf1, 0xd9, 0x97, 0x4b, + 0x13, 0xff, 0xf6, 0xe5, 0xd2, 0xc4, 0x47, 0x5b, 0x52, 0xf5, 0x66, 0xcb, 0x6e, 0x5d, 0xa5, 0x65, + 0x6b, 0xab, 0x61, 0x68, 0xf6, 0x2a, 0x0f, 0xcd, 0x5e, 0x15, 0x25, 0x99, 0xab, 0xe9, 0x7f, 0x51, + 0xbd, 0x35, 0x4d, 0xff, 0xe0, 0xf6, 0xf5, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x02, 0xde, 0xee, + 0x9e, 0x72, 0x5d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -11911,8 +11912,8 @@ func (m *GfSpListObjectsByGVGAndBucketForGCRequest) MarshalToSizedBuffer(dAtA [] i-- dAtA[i] = 0x10 } - if m.GvgId != 0 { - i = encodeVarintMetadata(dAtA, i, uint64(m.GvgId)) + if m.DstGvgId != 0 { + i = encodeVarintMetadata(dAtA, i, uint64(m.DstGvgId)) i-- dAtA[i] = 0x8 } @@ -15129,8 +15130,8 @@ func (m *GfSpListObjectsByGVGAndBucketForGCRequest) Size() (n int) { } var l int _ = l - if m.GvgId != 0 { - n += 1 + sovMetadata(uint64(m.GvgId)) + if m.DstGvgId != 0 { + n += 1 + sovMetadata(uint64(m.DstGvgId)) } if m.BucketId != 0 { n += 1 + sovMetadata(uint64(m.BucketId)) @@ -24155,9 +24156,9 @@ func (m *GfSpListObjectsByGVGAndBucketForGCRequest) Unmarshal(dAtA []byte) error switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field GvgId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DstGvgId", wireType) } - m.GvgId = 0 + m.DstGvgId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMetadata @@ -24167,7 +24168,7 @@ func (m *GfSpListObjectsByGVGAndBucketForGCRequest) Unmarshal(dAtA []byte) error } b := dAtA[iNdEx] iNdEx++ - m.GvgId |= uint32(b&0x7F) << shift + m.DstGvgId |= uint32(b&0x7F) << shift if b < 0x80 { break } diff --git a/proto/base/types/gfsptask/task.proto b/proto/base/types/gfsptask/task.proto index ea65a8871..abbbc6aa8 100644 --- a/proto/base/types/gfsptask/task.proto +++ b/proto/base/types/gfsptask/task.proto @@ -162,14 +162,10 @@ message GfSpGCObjectTask { message GfSpGCZombiePieceTask { GfSpTask task = 1; - uint64 start_block_number = 2; - uint64 end_block_number = 3; - uint64 current_block_number = 4; - uint64 last_deleted_object_id = 5; - bool running = 6; - uint64 start_object_id = 7; - uint64 end_object_id = 8; - bool finished = 9; + bool running = 2; + uint64 start_object_id = 3; + uint64 end_object_id = 4; + bool finished = 5; } enum GfSpGCMetaTaskType { diff --git a/store/sqldb/object_integrity.go b/store/sqldb/object_integrity.go index 7c3e86d96..0502733db 100644 --- a/store/sqldb/object_integrity.go +++ b/store/sqldb/object_integrity.go @@ -58,6 +58,11 @@ const ( SPDBSuccessDelAllReplicatePieceChecksum = "del_all_replicate_piece_checksum_success" // SPDBFailureDelAllReplicatePieceChecksum defines the metrics label of unsuccessfully del all replicate piece checksum SPDBFailureDelAllReplicatePieceChecksum = "del_all_replicate_piece_checksum_failure" + + // SPDBSuccessListReplicatePieceChecksumByObjectID defines the metrics label of successfully list replicate piece checksum by object id + SPDBSuccessListReplicatePieceChecksumByObjectID = "list_replicate_piece_checksum_by_object_id_success" + // SPDBFailureListReplicatePieceChecksumByObjectID defines the metrics label of unsuccessfully list replicate piece checksum by object id + SPDBFailureListReplicatePieceChecksumByObjectID = "list_replicate_piece_checksum_by_object_id_failure" ) // GetObjectIntegrity returns the integrity hash info @@ -213,8 +218,8 @@ func (a ByRedundancyIndexAndObjectID) Less(i, j int) bool { } func (a ByRedundancyIndexAndObjectID) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -// ListObjectsByBlockNumberRange list objects info by a block number range -func (s *SpDBImpl) ListObjectsByBlockNumberRange(startObjectID int64, endObjectID int64, includePrivate bool) ([]*corespdb.IntegrityMeta, error) { +// ListIntegrityMetaByObjectIDRange list objects info by a block number range +func (s *SpDBImpl) ListIntegrityMetaByObjectIDRange(startObjectID int64, endObjectID int64, includePrivate bool) ([]*corespdb.IntegrityMeta, error) { var ( totalObjects []*corespdb.IntegrityMeta objects []*corespdb.IntegrityMeta @@ -239,22 +244,22 @@ func (s *SpDBImpl) ListObjectsByBlockNumberRange(startObjectID int64, endObjectI Select("*"). Where("object_id >= ? and object_id <= ?", startObjectID, endObjectID). Limit(ListObjectsDefaultSize). - Order("update_at,object_id asc"). + Order("object_id,redundancy_index asc"). Find(&objects).Error totalObjects = append(totalObjects, objects...) } } else { for i := 0; i < IntegrityMetasNumberOfShards; i++ { - objectTableName := GetIntegrityMetasTableNameByShardNumber(i) - joins := fmt.Sprintf("right join buckets on buckets.bucket_id = %s.bucket_id", objectTableName) - order := fmt.Sprintf("%s.update_at, %s.object_id asc", objectTableName, objectTableName) - where := fmt.Sprintf("%s.update_at >= ? and %s.update_at <= ? and "+ + integrityMetasTableName := GetIntegrityMetasTableNameByShardNumber(i) + joins := fmt.Sprintf("right join buckets on buckets.bucket_id = %s.bucket_id", integrityMetasTableName) + order := fmt.Sprintf("%s.object_id, %s.redundancy_index asc", integrityMetasTableName, integrityMetasTableName) + where := fmt.Sprintf("%s.object_id >= ? and %s.object_id <= ? and "+ "((%s.visibility='VISIBILITY_TYPE_PUBLIC_READ') or "+ "(%s.visibility='VISIBILITY_TYPE_INHERIT' and buckets.visibility='VISIBILITY_TYPE_PUBLIC_READ'))", - objectTableName, objectTableName, objectTableName, objectTableName) + integrityMetasTableName, integrityMetasTableName, integrityMetasTableName, integrityMetasTableName) - err = s.db.Table(objectTableName). - Select(objectTableName+".*"). + err = s.db.Table(integrityMetasTableName). + Select(integrityMetasTableName+".*"). Joins(joins). Where(where, startObjectID, endObjectID). Limit(ListObjectsDefaultSize). @@ -531,8 +536,8 @@ func (s *SpDBImpl) DeleteAllReplicatePieceChecksumOptimized(objectID uint64, red return err } -// ListReplicatePieceChecksumByBlockNumberRange gets all replicate piece checksums for a given objectID and redundancyIdx. -func (s *SpDBImpl) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, objectID uint64, redundancyIdx int32, pieceCount uint32) ([]*corespdb.GCPieceMeta, error) { +// ListReplicatePieceChecksumByObjectIDRange gets all replicate piece checksums for a given objectID and redundancyIdx. +func (s *SpDBImpl) ListReplicatePieceChecksumByObjectIDRange(startObjectID int64, endObjectID int64) ([]*corespdb.GCPieceMeta, error) { var ( err error queryReturns []PieceHashTable @@ -540,19 +545,19 @@ func (s *SpDBImpl) ListReplicatePieceChecksumByBlockNumberRange(startBlockNumber startTime := time.Now() defer func() { if err != nil { - metrics.SPDBCounter.WithLabelValues(SPDBFailureGetAllReplicatePieceChecksum).Inc() - metrics.SPDBTime.WithLabelValues(SPDBFailureGetAllReplicatePieceChecksum).Observe( + metrics.SPDBCounter.WithLabelValues(SPDBFailureListReplicatePieceChecksumByObjectID).Inc() + metrics.SPDBTime.WithLabelValues(SPDBFailureListReplicatePieceChecksumByObjectID).Observe( time.Since(startTime).Seconds()) return } - metrics.SPDBCounter.WithLabelValues(SPDBSuccessGetAllReplicatePieceChecksum).Inc() - metrics.SPDBTime.WithLabelValues(SPDBSuccessGetAllReplicatePieceChecksum).Observe( + metrics.SPDBCounter.WithLabelValues(SPDBSuccessListReplicatePieceChecksumByObjectID).Inc() + metrics.SPDBTime.WithLabelValues(SPDBSuccessListReplicatePieceChecksumByObjectID).Observe( time.Since(startTime).Seconds()) }() if err = s.db.Model(&PieceHashTable{}). - Where("object_id >= ? and object_id <= ?", startBlockNumber, endBlockNumber). - Limit(int(pieceCount)). + Where("object_id >= ? and object_id <= ?", startObjectID, endObjectID). + Limit(ListObjectsDefaultSize). Find(&queryReturns).Error; err != nil { return nil, err } diff --git a/store/sqldb/traffic.go b/store/sqldb/traffic.go index d70f40aef..e3b997569 100644 --- a/store/sqldb/traffic.go +++ b/store/sqldb/traffic.go @@ -453,9 +453,9 @@ func (s *SpDBImpl) UpdateBucketTraffic(bucketID uint64, update *corespdb.BucketT // DeleteAllBucketTrafficExpired update the bucket traffic in traffic db with the new traffic func (s *SpDBImpl) DeleteAllBucketTrafficExpired(yearMonth string) (err error) { - result := s.db.Where("YearMonth < ?", yearMonth).Delete(&BucketTrafficTable{}) + result := s.db.Where("month < ?", yearMonth).Delete(&BucketTrafficTable{}) if result.Error != nil { - return fmt.Errorf("failed to delete bucket traffic record in subscribe progress table: %s, yearMonth:%s", result.Error, yearMonth) + return fmt.Errorf("failed to delete bucket traffic record in bucket traffic table: %s, year_month:%s", result.Error, yearMonth) } return nil } @@ -640,11 +640,11 @@ func (s *SpDBImpl) GetUserReadRecord(userAddress string, timeRange *corespdb.Tra return records, nil } -// DeleteAllReadRecordExpired update the bucket traffic in traffic db with the new traffic +// DeleteAllReadRecordExpired delete all read record before ts(ts is UnixMicro) func (s *SpDBImpl) DeleteAllReadRecordExpired(ts uint64) (err error) { - result := s.db.Where("read_timestamp_us < ?", ts).Delete(&corespdb.ReadRecord{}) + result := s.db.Where("read_timestamp_us < ?", ts).Delete(&ReadRecordTable{}) if result.Error != nil { - return fmt.Errorf("failed to delete read record in subscribe progress table: %s, yearMonth:%d", result.Error, ts) + return fmt.Errorf("failed to delete read record in read record table: %s, ts:%d", result.Error, ts) } return nil } From acfe31b003bf634421f3ff076f1835e7ead07336 Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Fri, 17 Nov 2023 16:58:34 +0800 Subject: [PATCH 03/10] feat: modified some code based on review feedback --- base/gfspapp/task_options.go | 10 +- base/gfspconfig/config.go | 50 ++- base/types/gfsptask/gc.go | 4 - base/types/gfsptask/task.pb.go | 360 +++++++---------- deployment/localup/localup.sh | 1 - modular/executor/execute_gc.go | 553 +++++++++++++++++++++++++++ modular/executor/execute_task.go | 544 -------------------------- modular/executor/executor.go | 10 +- modular/manager/manage_task.go | 4 +- modular/manager/manager_options.go | 54 +-- proto/base/types/gfsptask/task.proto | 5 +- store/sqldb/object_integrity.go | 12 +- 12 files changed, 769 insertions(+), 838 deletions(-) create mode 100644 modular/executor/execute_gc.go diff --git a/base/gfspapp/task_options.go b/base/gfspapp/task_options.go index 10244c8b6..1e0a80bf3 100644 --- a/base/gfspapp/task_options.go +++ b/base/gfspapp/task_options.go @@ -84,8 +84,8 @@ const ( MaxMigrateGVGRetry = 3 // MinGCBucketMigrationRetry defines the min retry number to gc bucket migration. MinGCBucketMigrationRetry = 3 - // MaxBucketMigrationRetry defines the max retry number to gc bucket migration. - MaxBucketMigrationRetry = 5 + // MaxGCBucketMigrationRetry defines the max retry number to gc bucket migration. + MaxGCBucketMigrationRetry = 5 ) // TaskTimeout returns the task timeout by task type and some task need payload size @@ -285,10 +285,10 @@ func (g *GfSpBaseApp) TaskMaxRetry(task coretask.Task) int64 { return g.migrateGVGRetry case coretask.TypeTaskGCBucketMigration: if g.gcBucketMigrationRetry < MinGCBucketMigrationRetry { - return MinMigrateGVGRetry + return MinGCBucketMigrationRetry } - if g.gcBucketMigrationRetry > MaxBucketMigrationRetry { - return MaxMigrateGVGRetry + if g.gcBucketMigrationRetry > MaxGCBucketMigrationRetry { + return MaxGCBucketMigrationRetry } return g.gcBucketMigrationRetry default: diff --git a/base/gfspconfig/config.go b/base/gfspconfig/config.go index bfa7b3714..085e6ae41 100644 --- a/base/gfspconfig/config.go +++ b/base/gfspconfig/config.go @@ -59,6 +59,7 @@ type GfSpConfig struct { BlockSyncer BlockSyncerConfig APIRateLimiter mwhttp.RateLimiterConfig Manager ManagerConfig + GC GCConfig } // Apply sets the customized implement to the GfSp configuration, it will be called @@ -161,6 +162,23 @@ type P2PConfig struct { P2PPingPeriod int `comment:"optional"` } +type GCConfig struct { + // gc object + GCObjectTimeInterval int `comment:"optional"` + GCObjectBlockInterval uint64 `comment:"optional"` + GCObjectSafeBlockDistance uint64 `comment:"optional"` + + // gc zombie + EnableGCZombie bool `comment:"optional"` + GCZombieSafeObjectIDDistance uint64 `comment:"optional"` + GCZombiePieceTimeInterval int `comment:"optional"` + GCZombiePieceObjectIDInterval uint64 `comment:"optional"` + + // gc meta + EnableGCMeta bool `comment:"optional"` + GCMetaTimeInterval int `comment:"optional"` +} + type ParallelConfig struct { GlobalCreateBucketApprovalParallel int `comment:"optional"` GlobalCreateObjectApprovalParallel int `comment:"optional"` @@ -179,21 +197,10 @@ type ParallelConfig struct { GlobalSyncConsensusInfoInterval uint64 `comment:"optional"` // gc - GlobalGCObjectParallel int `comment:"optional"` - GlobalGCBucketMigrationParallel int `comment:"optional"` - GlobalBatchGcObjectTimeInterval int `comment:"optional"` - GlobalGcObjectBlockInterval uint64 `comment:"optional"` - GlobalGcObjectSafeBlockDistance uint64 `comment:"optional"` - - GlobalGCZombieEnabled bool `comment:"optional"` - GlobalGCZombieParallel int `comment:"optional"` - GlobalGcZombieSafeObjectIDDistance uint64 `comment:"optional"` - GlobalBatchGcZombiePieceTimeInterval int `comment:"optional"` - GlobalGcZombiePieceObjectIDInterval uint64 `comment:"optional"` - - GlobalGCMetaEnabled bool `comment:"optional"` - GlobalGCMetaParallel int `comment:"optional"` - GlobalGcMetaTimeInterval int `comment:"optional"` + GlobalGCObjectParallel int `comment:"optional"` + GlobalGCBucketMigrationParallel int `comment:"optional"` + GlobalGCZombieParallel int `comment:"optional"` + GlobalGCMetaParallel int `comment:"optional"` UploadObjectParallelPerNode int `comment:"optional"` ReceivePieceParallelPerNode int `comment:"optional"` @@ -216,15 +223,16 @@ type TaskConfig struct { ReplicateTaskSpeed int64 `comment:"optional"` ReceiveTaskSpeed int64 `comment:"optional"` SealObjectTaskTimeout int64 `comment:"optional"` - GcObjectTaskTimeout int64 `comment:"optional"` - GcZombieTaskTimeout int64 `comment:"optional"` - GcMetaTaskTimeout int64 `comment:"optional"` SealObjectTaskRetry int64 `comment:"optional"` ReplicateTaskRetry int64 `comment:"optional"` ReceiveConfirmTaskRetry int64 `comment:"optional"` - GcObjectTaskRetry int64 `comment:"optional"` - GcZombieTaskRetry int64 `comment:"optional"` - GcMetaTaskRetry int64 `comment:"optional"` + // gc + GcObjectTaskTimeout int64 `comment:"optional"` + GcZombieTaskTimeout int64 `comment:"optional"` + GcMetaTaskTimeout int64 `comment:"optional"` + GcObjectTaskRetry int64 `comment:"optional"` + GcZombieTaskRetry int64 `comment:"optional"` + GcMetaTaskRetry int64 `comment:"optional"` } type MonitorConfig struct { diff --git a/base/types/gfsptask/gc.go b/base/types/gfsptask/gc.go index 377d007db..467ce33ad 100644 --- a/base/types/gfsptask/gc.go +++ b/base/types/gfsptask/gc.go @@ -451,7 +451,3 @@ func (m *GfSpGCMetaTask) SetGCMetaTaskType(metaTaskType GfSpGCMetaTaskType) { func (m *GfSpGCMetaTask) GetGCMetaTaskType() GfSpGCMetaTaskType { return m.GetMetaTaskType() } - -func (m *GfSpGCMetaTask) SetDeletionTime(tx uint64) { - m.DeletionTime = int64(tx) -} diff --git a/base/types/gfsptask/task.pb.go b/base/types/gfsptask/task.pb.go index 10b031e17..d456ad2bb 100644 --- a/base/types/gfsptask/task.pb.go +++ b/base/types/gfsptask/task.pb.go @@ -1511,13 +1511,10 @@ func (m *GfSpGCZombiePieceTask) GetFinished() bool { } type GfSpGCMetaTask struct { - Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` - CurrentIdx uint64 `protobuf:"varint,2,opt,name=current_idx,json=currentIdx,proto3" json:"current_idx,omitempty"` - DeleteCount uint64 `protobuf:"varint,3,opt,name=delete_count,json=deleteCount,proto3" json:"delete_count,omitempty"` - Running bool `protobuf:"varint,4,opt,name=running,proto3" json:"running,omitempty"` - // delete meta record before deletion time - DeletionTime int64 `protobuf:"varint,5,opt,name=deletion_time,json=deletionTime,proto3" json:"deletion_time,omitempty"` - MetaTaskType GfSpGCMetaTaskType `protobuf:"varint,6,opt,name=meta_task_type,json=metaTaskType,proto3,enum=base.types.gfsptask.GfSpGCMetaTaskType" json:"meta_task_type,omitempty"` + Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` + CurrentIdx uint64 `protobuf:"varint,2,opt,name=current_idx,json=currentIdx,proto3" json:"current_idx,omitempty"` + DeleteCount uint64 `protobuf:"varint,3,opt,name=delete_count,json=deleteCount,proto3" json:"delete_count,omitempty"` + MetaTaskType GfSpGCMetaTaskType `protobuf:"varint,4,opt,name=meta_task_type,json=metaTaskType,proto3,enum=base.types.gfsptask.GfSpGCMetaTaskType" json:"meta_task_type,omitempty"` } func (m *GfSpGCMetaTask) Reset() { *m = GfSpGCMetaTask{} } @@ -1574,20 +1571,6 @@ func (m *GfSpGCMetaTask) GetDeleteCount() uint64 { return 0 } -func (m *GfSpGCMetaTask) GetRunning() bool { - if m != nil { - return m.Running - } - return false -} - -func (m *GfSpGCMetaTask) GetDeletionTime() int64 { - if m != nil { - return m.DeletionTime - } - return 0 -} - func (m *GfSpGCMetaTask) GetMetaTaskType() GfSpGCMetaTaskType { if m != nil { return m.MetaTaskType @@ -2091,144 +2074,143 @@ func init() { func init() { proto.RegisterFile("base/types/gfsptask/task.proto", fileDescriptor_0d22df708e229306) } var fileDescriptor_0d22df708e229306 = []byte{ - // 2183 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6f, 0xdb, 0xc8, - 0x15, 0x8f, 0xbe, 0x2c, 0xe9, 0x49, 0x72, 0x14, 0x46, 0x9b, 0x28, 0x5f, 0x8a, 0x43, 0x37, 0x59, - 0x37, 0xbb, 0x91, 0x76, 0xbd, 0x08, 0x7a, 0x0c, 0x6c, 0xd9, 0xd6, 0x1a, 0xa9, 0x13, 0x2f, 0xe5, - 0x2c, 0xd0, 0x3d, 0x94, 0x18, 0x91, 0x23, 0x8a, 0x35, 0xbf, 0x3a, 0xa4, 0x1c, 0x2b, 0xe7, 0xde, - 0x5b, 0x14, 0x28, 0x0a, 0xf4, 0xd0, 0x73, 0xaf, 0x05, 0x8a, 0xde, 0x7a, 0x2a, 0xb0, 0x28, 0xd0, - 0x1e, 0xf6, 0x58, 0xa0, 0x97, 0x45, 0xd2, 0x4b, 0xff, 0x8b, 0x62, 0xde, 0x0c, 0x45, 0x4a, 0x91, - 0xdd, 0x7c, 0xb8, 0x6d, 0x52, 0xf4, 0x62, 0x73, 0xde, 0x7b, 0x33, 0xf3, 0xe6, 0xf7, 0x3e, 0x67, - 0x04, 0xad, 0x01, 0x09, 0x69, 0x27, 0x9a, 0x04, 0x34, 0xec, 0x58, 0xc3, 0x30, 0x88, 0x48, 0x78, - 0xd8, 0xe1, 0x7f, 0xda, 0x01, 0xf3, 0x23, 0x5f, 0xb9, 0xc8, 0xf9, 0x6d, 0xe4, 0xb7, 0x63, 0xfe, - 0xd5, 0x5b, 0x73, 0x93, 0x28, 0x63, 0x3e, 0x0b, 0x3b, 0xf8, 0x4f, 0xcc, 0xbb, 0x7a, 0xc5, 0x62, - 0x94, 0x7a, 0x43, 0x9b, 0x3a, 0x66, 0x27, 0x0c, 0x84, 0xac, 0x64, 0xdd, 0x4c, 0xb3, 0x22, 0x9f, - 0x11, 0x8b, 0x76, 0x02, 0xc2, 0x88, 0x1b, 0x0b, 0x5c, 0x5b, 0x20, 0x10, 0x1d, 0x4b, 0x66, 0x6b, - 0x11, 0x33, 0xb5, 0xfa, 0x6a, 0x8a, 0x7f, 0x64, 0xb3, 0x68, 0x4c, 0x1c, 0x8b, 0xf9, 0xe3, 0x19, - 0x15, 0xd4, 0x3f, 0x66, 0xa1, 0xd4, 0x1b, 0xf6, 0x83, 0x03, 0x12, 0x1e, 0x2a, 0x4d, 0x28, 0x12, - 0xd3, 0x64, 0x34, 0x0c, 0x9b, 0x99, 0x95, 0xcc, 0x5a, 0x59, 0x8b, 0x87, 0xca, 0x4d, 0xa8, 0x18, - 0x8c, 0x92, 0x88, 0xea, 0x91, 0xed, 0xd2, 0x66, 0x76, 0x25, 0xb3, 0x96, 0xd3, 0x40, 0x90, 0x0e, - 0x6c, 0x97, 0x72, 0x81, 0x71, 0x60, 0x4e, 0x05, 0x72, 0x42, 0x40, 0x90, 0x50, 0xa0, 0x09, 0x45, - 0xce, 0xf1, 0xc7, 0x51, 0x33, 0x8f, 0xcc, 0x78, 0xa8, 0xac, 0x42, 0x8d, 0x63, 0xa9, 0x07, 0xcc, - 0xf6, 0x99, 0x1d, 0x4d, 0x9a, 0x85, 0x95, 0xcc, 0x5a, 0x41, 0xab, 0x72, 0xe2, 0xbe, 0xa4, 0x29, - 0x0d, 0x28, 0x30, 0x1a, 0xb1, 0x49, 0x73, 0x09, 0x27, 0x8b, 0x81, 0x72, 0x0d, 0xca, 0x2e, 0x39, - 0xd6, 0x05, 0xa7, 0x88, 0x9c, 0x92, 0x4b, 0x8e, 0x35, 0x64, 0xde, 0x82, 0xea, 0x38, 0xa4, 0x4c, - 0x8f, 0x8f, 0x54, 0xc2, 0x23, 0x55, 0x38, 0x6d, 0x43, 0x1e, 0x4b, 0x81, 0xbc, 0xe3, 0x5b, 0x61, - 0xb3, 0x8c, 0x2c, 0xfc, 0x56, 0xd6, 0x21, 0x47, 0x19, 0x6b, 0xc2, 0x4a, 0x66, 0xad, 0xb2, 0xbe, - 0xd2, 0x9e, 0xb3, 0xba, 0x30, 0x70, 0x9b, 0x43, 0xb6, 0xcd, 0x3f, 0x35, 0x2e, 0xac, 0x7e, 0x9d, - 0x81, 0xeb, 0x9c, 0xd4, 0x45, 0x40, 0x36, 0xc7, 0xc6, 0x21, 0x8d, 0x36, 0x82, 0x80, 0xf9, 0x47, - 0xc4, 0x41, 0x64, 0x3f, 0x85, 0x3c, 0x3f, 0x0e, 0xc2, 0x5a, 0x59, 0xbf, 0xd1, 0x5e, 0xe0, 0x4b, - 0xed, 0xd8, 0x0c, 0x1a, 0x8a, 0x2a, 0x5f, 0x80, 0x22, 0x21, 0x1f, 0xe0, 0x7a, 0xba, 0xed, 0x0d, - 0x7d, 0x44, 0xbe, 0xb2, 0xbe, 0xda, 0x4e, 0x6c, 0xdb, 0x96, 0xb6, 0x6f, 0xef, 0x85, 0x56, 0x7a, - 0x7f, 0xad, 0x6e, 0xa4, 0x46, 0xbb, 0xde, 0xd0, 0x57, 0x56, 0xa0, 0x32, 0xb4, 0x3d, 0x8b, 0xb2, - 0x80, 0xd9, 0x5e, 0x84, 0x46, 0xaa, 0x6a, 0x69, 0x92, 0xfa, 0x9b, 0x0c, 0xdc, 0xe0, 0x7a, 0xec, - 0xd9, 0x16, 0x3b, 0xb3, 0x93, 0x1c, 0xc0, 0x45, 0x57, 0xac, 0xb7, 0xe0, 0x28, 0xdf, 0x39, 0xe1, - 0x28, 0x33, 0x1a, 0x68, 0x17, 0xdc, 0xf4, 0x90, 0x1f, 0x66, 0x0e, 0xf3, 0xc7, 0x83, 0x1f, 0x51, - 0xe3, 0x0c, 0x31, 0xf7, 0x71, 0xbd, 0x57, 0xc7, 0x5c, 0xec, 0x1f, 0x63, 0x2e, 0x46, 0xaf, 0x88, - 0xf9, 0x1f, 0xf2, 0xd0, 0xe2, 0x7a, 0x68, 0x34, 0x70, 0x6c, 0x83, 0x44, 0x74, 0xdf, 0xa6, 0x06, - 0x7d, 0xdb, 0xa3, 0x3c, 0x80, 0xca, 0xcb, 0x67, 0x68, 0x2d, 0x3a, 0x43, 0xa2, 0xac, 0x06, 0x7e, - 0xa2, 0xf8, 0x06, 0x2c, 0x4b, 0x09, 0x5d, 0xe4, 0x24, 0xd4, 0xbd, 0xb2, 0x7e, 0x75, 0xd1, 0x1a, - 0xfb, 0x28, 0xa1, 0xd5, 0xe4, 0x58, 0x0c, 0x95, 0xfb, 0x70, 0x99, 0x07, 0x76, 0x18, 0xe8, 0x7e, - 0x40, 0x19, 0x89, 0xfc, 0x24, 0x18, 0xf3, 0x18, 0x71, 0x0d, 0x12, 0x1e, 0xf6, 0x83, 0xc7, 0x92, - 0x19, 0x47, 0xe5, 0x2a, 0xd4, 0x70, 0x9a, 0x6d, 0x79, 0x24, 0x1a, 0x33, 0x8a, 0x09, 0xa1, 0xaa, - 0x55, 0xb9, 0x70, 0x4c, 0x53, 0x3e, 0x81, 0x06, 0x41, 0x88, 0xa8, 0xc9, 0x37, 0xa0, 0x9e, 0x19, - 0xf8, 0x1c, 0xe0, 0x25, 0x5c, 0x58, 0x89, 0x79, 0xfd, 0x60, 0x5b, 0x72, 0x94, 0x07, 0x70, 0x3d, - 0x3d, 0xe3, 0x25, 0x95, 0x8a, 0x38, 0xf3, 0x4a, 0x32, 0x73, 0x5e, 0xaf, 0x7b, 0xa0, 0x24, 0x0b, - 0x4c, 0x95, 0x2b, 0xa1, 0x72, 0x17, 0xa6, 0xd3, 0xa6, 0x1a, 0xce, 0xed, 0x47, 0xa4, 0x41, 0xa7, - 0xfb, 0x95, 0xe7, 0xf7, 0x8b, 0x4d, 0x1e, 0xef, 0x77, 0x1b, 0x96, 0xe9, 0x71, 0x60, 0x33, 0x6a, - 0xea, 0x23, 0x6a, 0x5b, 0xa3, 0x08, 0x93, 0x52, 0x5e, 0xab, 0x49, 0xea, 0xe7, 0x48, 0x54, 0x7f, - 0x92, 0x85, 0x06, 0x37, 0xfe, 0x93, 0xc0, 0xf1, 0x89, 0x29, 0xac, 0xf9, 0xa6, 0x5e, 0x73, 0x1f, - 0x2e, 0xcb, 0x52, 0xa1, 0x63, 0xad, 0xd0, 0x87, 0xc4, 0xb5, 0x9d, 0x89, 0x6e, 0x9b, 0xe8, 0x41, - 0x35, 0xad, 0x21, 0xd9, 0x3d, 0xce, 0xdd, 0x41, 0xe6, 0xae, 0x39, 0xef, 0x6c, 0xb9, 0x33, 0x70, - 0xb6, 0xfc, 0x6b, 0x3a, 0x9b, 0xfa, 0xb7, 0xac, 0x48, 0x5d, 0x1a, 0x0d, 0xc7, 0x2e, 0x19, 0x38, - 0xf4, 0x2c, 0xf0, 0x78, 0x17, 0xa2, 0xe8, 0x12, 0x2c, 0xf9, 0xc3, 0x61, 0x48, 0x45, 0xe1, 0xcc, - 0x6b, 0x72, 0xc4, 0xe9, 0x0e, 0xf5, 0xac, 0x68, 0x84, 0xf1, 0x91, 0xd7, 0xe4, 0x48, 0xb9, 0x0e, - 0x65, 0xc3, 0x77, 0x03, 0x87, 0x46, 0xd4, 0xc4, 0x70, 0x28, 0x69, 0x09, 0xe1, 0x34, 0x0b, 0x17, - 0x4f, 0xb6, 0xb0, 0xfa, 0xf7, 0x1c, 0x5c, 0x7a, 0x39, 0x49, 0xbd, 0xcf, 0xb0, 0x76, 0xe0, 0x62, - 0x48, 0x0d, 0xdf, 0x33, 0x09, 0x9b, 0xc4, 0x31, 0x49, 0xb9, 0xdf, 0xe5, 0x78, 0xfe, 0x98, 0xb2, - 0x36, 0x62, 0x8e, 0xf2, 0x29, 0x34, 0x92, 0x09, 0xd3, 0xf8, 0x0f, 0x9b, 0x85, 0x95, 0xdc, 0x5a, - 0x55, 0x4b, 0x16, 0x9b, 0x66, 0x00, 0x34, 0x5d, 0x48, 0x89, 0x33, 0xb5, 0x83, 0x1c, 0x71, 0x23, - 0x58, 0x8e, 0x3f, 0x20, 0x8e, 0x3e, 0x6b, 0x8b, 0xc4, 0x08, 0x82, 0xfd, 0x65, 0xca, 0x14, 0xbb, - 0xe6, 0xac, 0xca, 0x71, 0xc6, 0xe3, 0x8d, 0xcd, 0xac, 0xca, 0x71, 0xc6, 0xe3, 0x67, 0x6c, 0x78, - 0x7e, 0xa4, 0x93, 0x23, 0x62, 0x3b, 0x3c, 0x24, 0x78, 0x1e, 0xb2, 0xcd, 0x63, 0x4c, 0x3d, 0x05, - 0xed, 0x82, 0xe7, 0x47, 0x1b, 0x31, 0xab, 0x1f, 0xec, 0x9a, 0xc7, 0xea, 0xb7, 0x32, 0x97, 0x68, - 0xd4, 0xf0, 0x8f, 0x28, 0x7b, 0xef, 0x8d, 0x7c, 0x13, 0x2a, 0x21, 0xb5, 0x5c, 0xea, 0x45, 0x78, - 0xee, 0x3c, 0x82, 0x0b, 0x92, 0xb4, 0x6b, 0x1e, 0x2b, 0x1f, 0xc0, 0x12, 0x35, 0x90, 0x27, 0xba, - 0xce, 0x02, 0x35, 0x38, 0xf9, 0x06, 0x40, 0xc0, 0xcf, 0xae, 0x87, 0xf6, 0x33, 0x8a, 0xc6, 0xcb, - 0x6b, 0x65, 0xa4, 0xf4, 0xed, 0x67, 0x94, 0x87, 0x58, 0x52, 0x00, 0x8a, 0x58, 0x00, 0x12, 0x02, - 0xe7, 0x32, 0x81, 0x1f, 0x35, 0xb1, 0x3c, 0x94, 0xb4, 0x84, 0xa0, 0xfe, 0x34, 0x3f, 0x85, 0x98, - 0xda, 0x47, 0xf4, 0x7f, 0x1f, 0xe2, 0xdb, 0xb0, 0xcc, 0xa8, 0x39, 0xf6, 0x4c, 0xe2, 0x19, 0x93, - 0x14, 0xd4, 0xb5, 0x84, 0xba, 0x18, 0xf2, 0x5c, 0x1a, 0xf2, 0xdb, 0xb0, 0x2c, 0xd8, 0xc6, 0x88, - 0x1a, 0x87, 0xe1, 0xd8, 0x95, 0xb8, 0xd7, 0x90, 0xda, 0x95, 0xc4, 0x59, 0xcb, 0x94, 0xe6, 0x2d, - 0x93, 0xc4, 0x63, 0x79, 0x26, 0x1e, 0xaf, 0x42, 0x69, 0x68, 0x7b, 0x76, 0x38, 0xa2, 0x26, 0xd6, - 0xd8, 0x92, 0x36, 0x1d, 0x9f, 0x16, 0xab, 0x95, 0x53, 0x62, 0xf5, 0xbb, 0x50, 0x97, 0xcd, 0xae, - 0x68, 0x5d, 0x6d, 0xdf, 0x6b, 0x56, 0x71, 0xe9, 0xf3, 0x82, 0xbe, 0x17, 0x93, 0xd5, 0x5f, 0xe6, - 0x40, 0xe1, 0x86, 0xed, 0x53, 0xe2, 0xbc, 0xff, 0xe5, 0xea, 0x3f, 0x91, 0x57, 0x4f, 0xb1, 0xc9, - 0xd2, 0xeb, 0xe7, 0xcf, 0xe2, 0x49, 0xf9, 0x53, 0xfd, 0x7d, 0x56, 0x54, 0xbd, 0x2d, 0xff, 0xa9, - 0xf7, 0x0e, 0x34, 0x13, 0x0f, 0xa0, 0x92, 0xbe, 0x40, 0x9d, 0xd2, 0x66, 0x25, 0xf7, 0x24, 0x0d, - 0x06, 0xc9, 0x05, 0xf0, 0xed, 0xdb, 0x2c, 0xa5, 0x0e, 0x39, 0xc7, 0x7f, 0x8a, 0x21, 0x9c, 0xd3, - 0xf8, 0x27, 0xbf, 0x44, 0x8f, 0x6c, 0x6b, 0x24, 0x43, 0x16, 0xbf, 0xd5, 0xdf, 0xe5, 0xe0, 0x83, - 0x34, 0x70, 0xff, 0xdd, 0x2c, 0xf7, 0x2e, 0xe0, 0x76, 0x0b, 0xaa, 0xd4, 0xc3, 0x1a, 0x8c, 0x09, - 0x0c, 0x01, 0x2c, 0x69, 0x15, 0x41, 0xc3, 0xf4, 0xc5, 0x33, 0x60, 0xe4, 0x47, 0xc4, 0x99, 0x29, - 0x3a, 0x48, 0xc1, 0x0c, 0x78, 0x0d, 0x44, 0x3a, 0xd4, 0x0f, 0xe9, 0x44, 0x5e, 0x56, 0x4a, 0x48, - 0x78, 0x48, 0xf1, 0xb1, 0x43, 0x30, 0x65, 0xab, 0x58, 0xc2, 0xd9, 0x15, 0xa4, 0x3d, 0x16, 0xfd, - 0xe2, 0x54, 0x44, 0x76, 0x8d, 0xe5, 0x94, 0xc8, 0xf7, 0x91, 0xa4, 0x7e, 0x2d, 0xbb, 0xbc, 0xee, - 0x88, 0x38, 0x5c, 0x8a, 0xfe, 0xdf, 0x6e, 0x73, 0xe5, 0xad, 0xf0, 0x0a, 0xe5, 0x6d, 0x69, 0x51, - 0x79, 0xbb, 0x0d, 0xcb, 0xb6, 0x17, 0x51, 0x8b, 0xd9, 0xd1, 0x44, 0x1f, 0x91, 0x70, 0x14, 0xd7, - 0xaf, 0x29, 0xf5, 0x73, 0x12, 0x8e, 0x92, 0x2a, 0x88, 0x22, 0x25, 0x4c, 0x81, 0xc2, 0xec, 0xc8, - 0xbe, 0x03, 0xe7, 0x05, 0xdb, 0x24, 0x11, 0x11, 0x7e, 0x52, 0xc6, 0xb0, 0x13, 0x65, 0x70, 0x8b, - 0x44, 0x84, 0xfb, 0x8a, 0xfa, 0xeb, 0x2c, 0xd4, 0xb9, 0x35, 0x7a, 0xdd, 0xb7, 0x4b, 0x59, 0x1f, - 0x83, 0x12, 0x46, 0x84, 0x45, 0xfa, 0xc0, 0xf1, 0x8d, 0x43, 0xdd, 0x1b, 0xbb, 0x03, 0xca, 0xd0, - 0x92, 0x79, 0xad, 0x8e, 0x9c, 0x4d, 0xce, 0x78, 0x84, 0x74, 0x65, 0x0d, 0xea, 0xd4, 0x33, 0x67, - 0x65, 0x73, 0x28, 0xbb, 0x4c, 0x3d, 0x33, 0x2d, 0xf9, 0x09, 0x34, 0x8c, 0x31, 0x63, 0x1c, 0xd5, - 0x19, 0x69, 0x71, 0xc3, 0x51, 0x24, 0x2f, 0x3d, 0xe3, 0x33, 0xb8, 0xe4, 0x90, 0x30, 0xd2, 0x4d, - 0x8a, 0xf7, 0x98, 0xe9, 0x03, 0x8d, 0x29, 0x6f, 0x3f, 0x17, 0x39, 0x77, 0x4b, 0x30, 0xa5, 0x3b, - 0x99, 0x4a, 0x13, 0x8a, 0x6c, 0xec, 0x79, 0xb6, 0x67, 0xc9, 0x06, 0x3c, 0x1e, 0xaa, 0x7f, 0xc9, - 0x88, 0x04, 0xd5, 0xeb, 0x7e, 0xe5, 0xbb, 0x03, 0xfb, 0xed, 0x1c, 0x3d, 0xb5, 0x4d, 0x76, 0x66, - 0x1b, 0x6e, 0x2f, 0x81, 0x5f, 0xa2, 0xae, 0x00, 0xa4, 0x86, 0xe4, 0xa9, 0xa2, 0x2a, 0xd4, 0x38, - 0x72, 0x89, 0x94, 0x00, 0xa2, 0x42, 0xbd, 0xe4, 0x30, 0xe9, 0x26, 0xa5, 0x30, 0xdb, 0xa4, 0xa8, - 0xbf, 0xc8, 0xc2, 0xb2, 0x38, 0xce, 0x1e, 0x8d, 0xc8, 0x9b, 0x9e, 0xe3, 0x26, 0x54, 0x62, 0xab, - 0x70, 0x3f, 0x16, 0x66, 0x06, 0x49, 0xe2, 0x4e, 0x7c, 0x0b, 0xaa, 0x02, 0x7f, 0xdd, 0xf0, 0xc7, - 0xf2, 0x35, 0x2b, 0xaf, 0x55, 0x04, 0xad, 0xcb, 0x49, 0x69, 0x2c, 0xf2, 0xb3, 0x58, 0xac, 0x42, - 0x0d, 0x05, 0x6d, 0xdf, 0x13, 0x8f, 0xc4, 0xa2, 0x86, 0x54, 0x63, 0x22, 0x3e, 0x13, 0xef, 0xc1, - 0xb2, 0x4b, 0x23, 0xa2, 0xe3, 0x8b, 0x30, 0xd7, 0x16, 0x0d, 0xb7, 0xbc, 0xfe, 0xe1, 0x89, 0xfa, - 0x27, 0x47, 0x3e, 0x98, 0x04, 0x54, 0xab, 0xba, 0xa9, 0x91, 0xfa, 0xf3, 0xbc, 0x68, 0xad, 0xe4, - 0x6b, 0x62, 0xef, 0xcb, 0xde, 0x9b, 0x62, 0x73, 0x0d, 0xca, 0x71, 0x2e, 0x32, 0x25, 0x32, 0x25, - 0x99, 0x69, 0x4c, 0x65, 0x0b, 0x8a, 0x21, 0x33, 0x74, 0xeb, 0xc8, 0x92, 0x49, 0xea, 0xa3, 0x74, - 0x82, 0x49, 0x3f, 0xbe, 0xb7, 0x7b, 0x2f, 0x35, 0x26, 0xda, 0x52, 0xc8, 0x8c, 0xde, 0x91, 0xa5, - 0xec, 0x40, 0xc9, 0xa4, 0x61, 0x84, 0xcb, 0xe4, 0x5f, 0x7f, 0x99, 0x22, 0x9f, 0xcc, 0xd7, 0x79, - 0xc5, 0x86, 0xfb, 0x3e, 0xf0, 0x8d, 0xf5, 0x30, 0x40, 0x88, 0xe7, 0x13, 0x6b, 0xd0, 0xee, 0xcb, - 0x3c, 0xc8, 0xfc, 0x23, 0xdb, 0xa4, 0x4c, 0x2b, 0x84, 0xcc, 0xe8, 0x07, 0xbc, 0xf7, 0xc2, 0x40, - 0x94, 0x2f, 0xb2, 0x69, 0xa7, 0x2d, 0x22, 0x2c, 0x0d, 0xce, 0x96, 0x80, 0x2f, 0xf6, 0xde, 0xd2, - 0x5c, 0x8b, 0x7d, 0x13, 0x2a, 0xe2, 0x49, 0x4b, 0xf8, 0x85, 0xc8, 0x68, 0x20, 0x48, 0xe8, 0x15, - 0x33, 0x5d, 0x3d, 0xcc, 0x77, 0xf5, 0xed, 0xe9, 0xfb, 0xb2, 0xa9, 0x0f, 0x26, 0x11, 0x0d, 0x45, - 0x62, 0xac, 0xa0, 0x36, 0xf1, 0xcb, 0xb1, 0xb9, 0xc9, 0x39, 0x98, 0x1c, 0xff, 0x21, 0x2f, 0xb9, - 0x52, 0xc7, 0xf7, 0xfe, 0x06, 0xc6, 0x93, 0x0c, 0x1a, 0x32, 0x79, 0x05, 0x15, 0xcf, 0xab, 0x35, - 0xb4, 0xd8, 0xf4, 0x01, 0xf4, 0xac, 0x4a, 0xd9, 0x5d, 0xb8, 0x60, 0x87, 0xfa, 0xcc, 0xed, 0x46, - 0xdc, 0x82, 0x4b, 0xda, 0x79, 0x3b, 0xdc, 0x4c, 0xdd, 0x6e, 0xa8, 0x7a, 0x08, 0x57, 0x44, 0x90, - 0x6e, 0xce, 0x5e, 0x7a, 0xfe, 0x1d, 0x61, 0xa8, 0xfe, 0x36, 0x0b, 0x97, 0xb9, 0xfc, 0xdc, 0x5e, - 0x88, 0xf3, 0xcc, 0xc4, 0xcc, 0x5c, 0xfc, 0xa6, 0x9d, 0x33, 0x3b, 0xe7, 0x9c, 0x27, 0x78, 0x57, - 0xee, 0x04, 0xef, 0x52, 0xbe, 0x07, 0x18, 0x88, 0x3c, 0xae, 0xf2, 0xaf, 0x14, 0x57, 0x4b, 0x5c, - 0x1c, 0x03, 0x2b, 0x8e, 0xc7, 0xc2, 0xeb, 0xc4, 0xe3, 0x5c, 0xf0, 0x2c, 0x9d, 0x1e, 0x3c, 0xf3, - 0x8f, 0x15, 0xea, 0x9f, 0xb3, 0x70, 0x31, 0xc1, 0xec, 0x8b, 0xb1, 0x1f, 0x91, 0x7f, 0x8d, 0x57, - 0x03, 0x0a, 0xae, 0xef, 0x45, 0x23, 0x04, 0xab, 0xac, 0x89, 0x01, 0xd7, 0x44, 0x4e, 0xf1, 0x88, - 0xfc, 0x0d, 0xb0, 0x1c, 0xb7, 0x63, 0x8f, 0x88, 0x4b, 0x79, 0x37, 0xc1, 0x28, 0x31, 0x75, 0xc3, - 0xf7, 0xc2, 0xb1, 0x8b, 0xaf, 0xe8, 0xcf, 0xa8, 0x2c, 0x75, 0x75, 0xce, 0xe9, 0x4a, 0x86, 0x04, - 0xb2, 0x39, 0x64, 0x94, 0xea, 0x3f, 0xe6, 0x3a, 0xcd, 0xcd, 0x11, 0x35, 0xff, 0x03, 0xce, 0x47, - 0x95, 0x67, 0x26, 0xde, 0x81, 0xf3, 0xa9, 0x89, 0xa9, 0x66, 0xba, 0x36, 0x95, 0x47, 0xb9, 0x8f, - 0x41, 0x31, 0x46, 0x84, 0x59, 0xd4, 0x4c, 0x8b, 0x8a, 0x24, 0x56, 0x97, 0x9c, 0x44, 0x7a, 0x15, - 0x6a, 0xc4, 0x71, 0xfc, 0xa7, 0x53, 0x8f, 0x17, 0x59, 0xac, 0x8a, 0x44, 0xe9, 0xee, 0x77, 0x7f, - 0x95, 0x11, 0xf5, 0x66, 0xb6, 0x28, 0x29, 0x1f, 0xc2, 0x6a, 0x6f, 0x47, 0xef, 0xef, 0xeb, 0xbd, - 0xae, 0xbe, 0xb7, 0x7d, 0xb0, 0xa1, 0x1f, 0x6c, 0xf4, 0x1f, 0xea, 0x07, 0x3f, 0xd8, 0xdf, 0xd6, - 0x9f, 0x3c, 0xea, 0xef, 0x6f, 0x77, 0x77, 0x77, 0x76, 0xb7, 0xb7, 0xea, 0xe7, 0x94, 0xbb, 0x70, - 0xe7, 0x24, 0xc1, 0xcd, 0x27, 0xdd, 0x87, 0xdb, 0x07, 0xfa, 0x81, 0xb6, 0xb1, 0xb3, 0xb3, 0xdb, - 0xad, 0x67, 0x94, 0x0e, 0x7c, 0x74, 0x92, 0xac, 0x14, 0xd2, 0xb5, 0xed, 0x8d, 0x2d, 0x5d, 0xdb, - 0xee, 0x3e, 0xd6, 0xb6, 0xea, 0xd9, 0xcd, 0x1f, 0xfe, 0xe9, 0x79, 0x2b, 0xf3, 0xcd, 0xf3, 0x56, - 0xe6, 0xdb, 0xe7, 0xad, 0xcc, 0xcf, 0x5e, 0xb4, 0xce, 0x7d, 0xf3, 0xa2, 0x75, 0xee, 0xaf, 0x2f, - 0x5a, 0xe7, 0xbe, 0xda, 0xb2, 0xec, 0x68, 0x34, 0x1e, 0xb4, 0x0d, 0xdf, 0xed, 0x0c, 0xbc, 0xc1, - 0x3d, 0x63, 0x44, 0x6c, 0xaf, 0x93, 0xb8, 0xdf, 0x3d, 0x99, 0x70, 0xee, 0x05, 0xd2, 0xf9, 0x3a, - 0x0b, 0x7e, 0x2c, 0x1f, 0x2c, 0xe1, 0x4f, 0xca, 0x9f, 0xfd, 0x33, 0x00, 0x00, 0xff, 0xff, 0x7c, - 0x11, 0xb7, 0x27, 0x4a, 0x1f, 0x00, 0x00, + // 2164 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xbd, 0x6f, 0x1b, 0xc9, + 0x15, 0x37, 0xbf, 0x44, 0xf2, 0x91, 0x94, 0xe9, 0x35, 0xcf, 0xa6, 0xbf, 0x68, 0x79, 0x15, 0xfb, + 0x14, 0xdf, 0x99, 0xbc, 0xd3, 0xc1, 0x48, 0x69, 0x48, 0x94, 0xc4, 0x13, 0x1c, 0xd9, 0xba, 0xa5, + 0x7c, 0x40, 0xae, 0xc8, 0x62, 0xb8, 0x3b, 0x5c, 0x6e, 0xb4, 0x5f, 0x99, 0x5d, 0xca, 0xa2, 0xeb, + 0xf4, 0x09, 0xd2, 0x04, 0x48, 0x91, 0x3a, 0x6d, 0x80, 0x20, 0x5d, 0xaa, 0x00, 0x87, 0x00, 0x49, + 0x71, 0x55, 0x10, 0x20, 0xcd, 0xc1, 0x4e, 0x93, 0xff, 0x22, 0x98, 0x37, 0xb3, 0xdc, 0x25, 0x4d, + 0x29, 0xfe, 0x50, 0x12, 0x3b, 0x48, 0x23, 0xed, 0xbc, 0xdf, 0x9b, 0x99, 0x37, 0xef, 0x7b, 0x86, + 0xd0, 0x1a, 0x90, 0x90, 0x76, 0xa2, 0x49, 0x40, 0xc3, 0x8e, 0x35, 0x0c, 0x83, 0x88, 0x84, 0x87, + 0x1d, 0xfe, 0xa7, 0x1d, 0x30, 0x3f, 0xf2, 0x95, 0x8b, 0x1c, 0x6f, 0x23, 0xde, 0x8e, 0xf1, 0xab, + 0xb7, 0xe6, 0x26, 0x51, 0xc6, 0x7c, 0x16, 0x76, 0xf0, 0x9f, 0x98, 0x77, 0xf5, 0x8a, 0xc5, 0x28, + 0xf5, 0x86, 0x36, 0x75, 0xcc, 0x4e, 0x18, 0x08, 0x5e, 0x09, 0xdd, 0x4c, 0x43, 0x91, 0xcf, 0x88, + 0x45, 0x3b, 0x01, 0x61, 0xc4, 0x8d, 0x19, 0xae, 0x2d, 0x60, 0x88, 0x8e, 0x25, 0xd8, 0x5a, 0x04, + 0xa6, 0x56, 0x5f, 0x4d, 0xe1, 0x47, 0x36, 0x8b, 0xc6, 0xc4, 0xb1, 0x98, 0x3f, 0x9e, 0x11, 0x41, + 0xfd, 0x43, 0x16, 0x4a, 0xbd, 0x61, 0x3f, 0x38, 0x20, 0xe1, 0xa1, 0xd2, 0x84, 0x22, 0x31, 0x4d, + 0x46, 0xc3, 0xb0, 0x99, 0x59, 0xc9, 0xac, 0x95, 0xb5, 0x78, 0xa8, 0xdc, 0x84, 0x8a, 0xc1, 0x28, + 0x89, 0xa8, 0x1e, 0xd9, 0x2e, 0x6d, 0x66, 0x57, 0x32, 0x6b, 0x39, 0x0d, 0x04, 0xe9, 0xc0, 0x76, + 0x29, 0x67, 0x18, 0x07, 0xe6, 0x94, 0x21, 0x27, 0x18, 0x04, 0x09, 0x19, 0x9a, 0x50, 0xe4, 0x88, + 0x3f, 0x8e, 0x9a, 0x79, 0x04, 0xe3, 0xa1, 0xb2, 0x0a, 0x35, 0xae, 0x4b, 0x3d, 0x60, 0xb6, 0xcf, + 0xec, 0x68, 0xd2, 0x2c, 0xac, 0x64, 0xd6, 0x0a, 0x5a, 0x95, 0x13, 0xf7, 0x25, 0x4d, 0x69, 0x40, + 0x81, 0xd1, 0x88, 0x4d, 0x9a, 0x4b, 0x38, 0x59, 0x0c, 0x94, 0x6b, 0x50, 0x76, 0xc9, 0xb1, 0x2e, + 0x90, 0x22, 0x22, 0x25, 0x97, 0x1c, 0x6b, 0x08, 0xde, 0x82, 0xea, 0x38, 0xa4, 0x4c, 0x8f, 0x8f, + 0x54, 0xc2, 0x23, 0x55, 0x38, 0x6d, 0x43, 0x1e, 0x4b, 0x81, 0xbc, 0xe3, 0x5b, 0x61, 0xb3, 0x8c, + 0x10, 0x7e, 0x2b, 0xeb, 0x90, 0xa3, 0x8c, 0x35, 0x61, 0x25, 0xb3, 0x56, 0x59, 0x5f, 0x69, 0xcf, + 0x59, 0x5d, 0x18, 0xb8, 0xcd, 0x55, 0xb6, 0xcd, 0x3f, 0x35, 0xce, 0xac, 0x7e, 0x9d, 0x81, 0xeb, + 0x9c, 0xd4, 0x45, 0x85, 0x6c, 0x8e, 0x8d, 0x43, 0x1a, 0x6d, 0x04, 0x01, 0xf3, 0x8f, 0x88, 0x83, + 0x9a, 0xfd, 0x14, 0xf2, 0xfc, 0x38, 0xa8, 0xd6, 0xca, 0xfa, 0x8d, 0xf6, 0x02, 0x5f, 0x6a, 0xc7, + 0x66, 0xd0, 0x90, 0x55, 0xf9, 0x02, 0x14, 0xa9, 0xf2, 0x01, 0xae, 0xa7, 0xdb, 0xde, 0xd0, 0x47, + 0xcd, 0x57, 0xd6, 0x57, 0xdb, 0x89, 0x6d, 0xdb, 0xd2, 0xf6, 0xed, 0xbd, 0xd0, 0x4a, 0xef, 0xaf, + 0xd5, 0x8d, 0xd4, 0x68, 0xd7, 0x1b, 0xfa, 0xca, 0x0a, 0x54, 0x86, 0xb6, 0x67, 0x51, 0x16, 0x30, + 0xdb, 0x8b, 0xd0, 0x48, 0x55, 0x2d, 0x4d, 0x52, 0x7f, 0x9d, 0x81, 0x1b, 0x5c, 0x8e, 0x3d, 0xdb, + 0x62, 0x67, 0x76, 0x92, 0x03, 0xb8, 0xe8, 0x8a, 0xf5, 0x16, 0x1c, 0xe5, 0x3b, 0x27, 0x1c, 0x65, + 0x46, 0x02, 0xed, 0x82, 0x9b, 0x1e, 0xf2, 0xc3, 0xcc, 0xe9, 0xfc, 0xf1, 0xe0, 0x47, 0xd4, 0x38, + 0x43, 0x9d, 0xfb, 0xb8, 0xde, 0xab, 0xeb, 0x5c, 0xec, 0x1f, 0xeb, 0x5c, 0x8c, 0x5e, 0x51, 0xe7, + 0xbf, 0xcf, 0x43, 0x8b, 0xcb, 0xa1, 0xd1, 0xc0, 0xb1, 0x0d, 0x12, 0xd1, 0x7d, 0x9b, 0x1a, 0xf4, + 0x6d, 0x8f, 0xf2, 0x00, 0x2a, 0x2f, 0x9f, 0xa1, 0xb5, 0xe8, 0x0c, 0x89, 0xb0, 0x1a, 0xf8, 0x89, + 0xe0, 0x1b, 0xb0, 0x2c, 0x39, 0x74, 0x91, 0x93, 0x50, 0xf6, 0xca, 0xfa, 0xd5, 0x45, 0x6b, 0xec, + 0x23, 0x87, 0x56, 0x93, 0x63, 0x31, 0x54, 0xee, 0xc3, 0x65, 0x1e, 0xd8, 0x61, 0xa0, 0xfb, 0x01, + 0x65, 0x24, 0xf2, 0x93, 0x60, 0xcc, 0x63, 0xc4, 0x35, 0x48, 0x78, 0xd8, 0x0f, 0x1e, 0x4b, 0x30, + 0x8e, 0xca, 0x55, 0xa8, 0xe1, 0x34, 0xdb, 0xf2, 0x48, 0x34, 0x66, 0x14, 0x13, 0x42, 0x55, 0xab, + 0x72, 0xe6, 0x98, 0xa6, 0x7c, 0x02, 0x0d, 0x82, 0x2a, 0xa2, 0x26, 0xdf, 0x80, 0x7a, 0x66, 0xe0, + 0x73, 0x05, 0x2f, 0xe1, 0xc2, 0x4a, 0x8c, 0xf5, 0x83, 0x6d, 0x89, 0x28, 0x0f, 0xe0, 0x7a, 0x7a, + 0xc6, 0x4b, 0x22, 0x15, 0x71, 0xe6, 0x95, 0x64, 0xe6, 0xbc, 0x5c, 0xf7, 0x40, 0x49, 0x16, 0x98, + 0x0a, 0x57, 0x42, 0xe1, 0x2e, 0x4c, 0xa7, 0x4d, 0x25, 0x9c, 0xdb, 0x8f, 0x48, 0x83, 0x4e, 0xf7, + 0x2b, 0xcf, 0xef, 0x17, 0x9b, 0x3c, 0xde, 0xef, 0x36, 0x2c, 0xd3, 0xe3, 0xc0, 0x66, 0xd4, 0xd4, + 0x47, 0xd4, 0xb6, 0x46, 0x11, 0x26, 0xa5, 0xbc, 0x56, 0x93, 0xd4, 0xcf, 0x91, 0xa8, 0xfe, 0x24, + 0x0b, 0x0d, 0x6e, 0xfc, 0x27, 0x81, 0xe3, 0x13, 0x53, 0x58, 0xf3, 0x4d, 0xbd, 0xe6, 0x3e, 0x5c, + 0x96, 0xa5, 0x42, 0xc7, 0x5a, 0xa1, 0x0f, 0x89, 0x6b, 0x3b, 0x13, 0xdd, 0x36, 0xd1, 0x83, 0x6a, + 0x5a, 0x43, 0xc2, 0x3d, 0x8e, 0xee, 0x20, 0xb8, 0x6b, 0xce, 0x3b, 0x5b, 0xee, 0x0c, 0x9c, 0x2d, + 0xff, 0x9a, 0xce, 0xa6, 0xfe, 0x2d, 0x2b, 0x52, 0x97, 0x46, 0xc3, 0xb1, 0x4b, 0x06, 0x0e, 0x3d, + 0x0b, 0x7d, 0xbc, 0x0b, 0x51, 0x74, 0x09, 0x96, 0xfc, 0xe1, 0x30, 0xa4, 0xa2, 0x70, 0xe6, 0x35, + 0x39, 0xe2, 0x74, 0x87, 0x7a, 0x56, 0x34, 0xc2, 0xf8, 0xc8, 0x6b, 0x72, 0xa4, 0x5c, 0x87, 0xb2, + 0xe1, 0xbb, 0x81, 0x43, 0x23, 0x6a, 0x62, 0x38, 0x94, 0xb4, 0x84, 0x70, 0x9a, 0x85, 0x8b, 0x27, + 0x5b, 0x58, 0xfd, 0x7b, 0x0e, 0x2e, 0xbd, 0x9c, 0xa4, 0xde, 0x67, 0xb5, 0x76, 0xe0, 0x62, 0x48, + 0x0d, 0xdf, 0x33, 0x09, 0x9b, 0xc4, 0x31, 0x49, 0xb9, 0xdf, 0xe5, 0x78, 0xfe, 0x98, 0x42, 0x1b, + 0x31, 0xa2, 0x7c, 0x0a, 0x8d, 0x64, 0xc2, 0x34, 0xfe, 0xc3, 0x66, 0x61, 0x25, 0xb7, 0x56, 0xd5, + 0x92, 0xc5, 0xa6, 0x19, 0x00, 0x4d, 0x17, 0x52, 0xe2, 0x4c, 0xed, 0x20, 0x47, 0xdc, 0x08, 0x96, + 0xe3, 0x0f, 0x88, 0xa3, 0xcf, 0xda, 0x22, 0x31, 0x82, 0x80, 0xbf, 0x4c, 0x99, 0x62, 0xd7, 0x9c, + 0x15, 0x39, 0xce, 0x78, 0xbc, 0xb1, 0x99, 0x15, 0x39, 0xce, 0x78, 0xfc, 0x8c, 0x0d, 0xcf, 0x8f, + 0x74, 0x72, 0x44, 0x6c, 0x87, 0x87, 0x04, 0xcf, 0x43, 0xb6, 0x79, 0x8c, 0xa9, 0xa7, 0xa0, 0x5d, + 0xf0, 0xfc, 0x68, 0x23, 0x86, 0xfa, 0xc1, 0xae, 0x79, 0xac, 0x7e, 0x2b, 0x73, 0x89, 0x46, 0x0d, + 0xff, 0x88, 0xb2, 0xf7, 0xde, 0xc8, 0x37, 0xa1, 0x12, 0x52, 0xcb, 0xa5, 0x5e, 0x84, 0xe7, 0xce, + 0xa3, 0x72, 0x41, 0x92, 0x76, 0xcd, 0x63, 0xe5, 0x03, 0x58, 0xa2, 0x06, 0x62, 0xa2, 0xeb, 0x2c, + 0x50, 0x83, 0x93, 0x6f, 0x00, 0x04, 0xfc, 0xec, 0x7a, 0x68, 0x3f, 0xa3, 0x68, 0xbc, 0xbc, 0x56, + 0x46, 0x4a, 0xdf, 0x7e, 0x46, 0x79, 0x88, 0x25, 0x05, 0xa0, 0x88, 0x05, 0x20, 0x21, 0x70, 0x94, + 0x09, 0xfd, 0x51, 0x13, 0xcb, 0x43, 0x49, 0x4b, 0x08, 0xea, 0x4f, 0xf3, 0x53, 0x15, 0x53, 0xfb, + 0x88, 0xfe, 0xef, 0xab, 0xf8, 0x36, 0x2c, 0x33, 0x6a, 0x8e, 0x3d, 0x93, 0x78, 0xc6, 0x24, 0xa5, + 0xea, 0x5a, 0x42, 0x5d, 0xac, 0xf2, 0x5c, 0x5a, 0xe5, 0xb7, 0x61, 0x59, 0xc0, 0xc6, 0x88, 0x1a, + 0x87, 0xe1, 0xd8, 0x95, 0x7a, 0xaf, 0x21, 0xb5, 0x2b, 0x89, 0xb3, 0x96, 0x29, 0xcd, 0x5b, 0x26, + 0x89, 0xc7, 0xf2, 0x4c, 0x3c, 0x5e, 0x85, 0xd2, 0xd0, 0xf6, 0xec, 0x70, 0x44, 0x4d, 0xac, 0xb1, + 0x25, 0x6d, 0x3a, 0x3e, 0x2d, 0x56, 0x2b, 0xa7, 0xc4, 0xea, 0x77, 0xa1, 0x2e, 0x9b, 0x5d, 0xd1, + 0xba, 0xda, 0xbe, 0xd7, 0xac, 0xe2, 0xd2, 0xe7, 0x05, 0x7d, 0x2f, 0x26, 0xab, 0xbf, 0xc8, 0x81, + 0xc2, 0x0d, 0xdb, 0xa7, 0xc4, 0x79, 0xff, 0xcb, 0xd5, 0x7f, 0x22, 0xaf, 0x9e, 0x62, 0x93, 0xa5, + 0xd7, 0xcf, 0x9f, 0xc5, 0x93, 0xf2, 0xa7, 0xfa, 0xbb, 0xac, 0xa8, 0x7a, 0x5b, 0xfe, 0x53, 0xef, + 0x1d, 0x68, 0x26, 0x1e, 0x40, 0x25, 0x7d, 0x81, 0x3a, 0xa5, 0xcd, 0x4a, 0xee, 0x49, 0x1a, 0x0c, + 0x92, 0x0b, 0xe0, 0xdb, 0xb7, 0x59, 0x4a, 0x1d, 0x72, 0x8e, 0xff, 0x14, 0x43, 0x38, 0xa7, 0xf1, + 0x4f, 0x7e, 0x89, 0x1e, 0xd9, 0xd6, 0x48, 0x86, 0x2c, 0x7e, 0xab, 0xbf, 0xcd, 0xc1, 0x07, 0x69, + 0xc5, 0xfd, 0x77, 0xb3, 0xdc, 0xbb, 0xa0, 0xb7, 0x5b, 0x50, 0xa5, 0x1e, 0xd6, 0x60, 0x4c, 0x60, + 0xa8, 0xc0, 0x92, 0x56, 0x11, 0x34, 0x4c, 0x5f, 0x3c, 0x03, 0x46, 0x7e, 0x44, 0x9c, 0x99, 0xa2, + 0x83, 0x14, 0xcc, 0x80, 0xd7, 0x40, 0xa4, 0x43, 0xfd, 0x90, 0x4e, 0xe4, 0x65, 0xa5, 0x84, 0x84, + 0x87, 0x14, 0x1f, 0x3b, 0x04, 0x28, 0x5b, 0xc5, 0x12, 0xce, 0xae, 0x20, 0xed, 0xb1, 0xe8, 0x17, + 0xa7, 0x2c, 0xb2, 0x6b, 0x2c, 0xa7, 0x58, 0xbe, 0x8f, 0x24, 0xf5, 0x6b, 0xd9, 0xe5, 0x75, 0x47, + 0xc4, 0xe1, 0x5c, 0xf4, 0xff, 0x76, 0x9b, 0x2b, 0x6f, 0x85, 0x57, 0x28, 0x6f, 0x4b, 0x8b, 0xca, + 0xdb, 0x6d, 0x58, 0xb6, 0xbd, 0x88, 0x5a, 0xcc, 0x8e, 0x26, 0xfa, 0x88, 0x84, 0xa3, 0xb8, 0x7e, + 0x4d, 0xa9, 0x9f, 0x93, 0x70, 0x94, 0x54, 0x41, 0x64, 0x29, 0x61, 0x0a, 0x14, 0x66, 0x47, 0xf8, + 0x0e, 0x9c, 0x17, 0xb0, 0x49, 0x22, 0x22, 0xfc, 0xa4, 0x8c, 0x61, 0x27, 0xca, 0xe0, 0x16, 0x89, + 0x08, 0xf7, 0x15, 0xf5, 0x57, 0x59, 0xa8, 0x73, 0x6b, 0xf4, 0xba, 0x6f, 0x97, 0xb2, 0x3e, 0x06, + 0x25, 0x8c, 0x08, 0x8b, 0xf4, 0x81, 0xe3, 0x1b, 0x87, 0xba, 0x37, 0x76, 0x07, 0x94, 0xa1, 0x25, + 0xf3, 0x5a, 0x1d, 0x91, 0x4d, 0x0e, 0x3c, 0x42, 0xba, 0xb2, 0x06, 0x75, 0xea, 0x99, 0xb3, 0xbc, + 0x39, 0xe4, 0x5d, 0xa6, 0x9e, 0x99, 0xe6, 0xfc, 0x04, 0x1a, 0xc6, 0x98, 0x31, 0xae, 0xd5, 0x19, + 0x6e, 0x71, 0xc3, 0x51, 0x24, 0x96, 0x9e, 0xf1, 0x19, 0x5c, 0x72, 0x48, 0x18, 0xe9, 0x26, 0xc5, + 0x7b, 0xcc, 0xf4, 0x81, 0xc6, 0x94, 0xb7, 0x9f, 0x8b, 0x1c, 0xdd, 0x12, 0xa0, 0x74, 0x27, 0x53, + 0x69, 0x42, 0x91, 0x8d, 0x3d, 0xcf, 0xf6, 0x2c, 0xd9, 0x80, 0xc7, 0x43, 0xf5, 0xcf, 0x19, 0x91, + 0xa0, 0x7a, 0xdd, 0xaf, 0x7c, 0x77, 0x60, 0xbf, 0x9d, 0xa3, 0xa7, 0xb6, 0xc9, 0xce, 0x6c, 0xc3, + 0xed, 0x25, 0xf4, 0x97, 0x88, 0x2b, 0x14, 0x52, 0x43, 0xf2, 0x54, 0x50, 0x15, 0x6a, 0x5c, 0x73, + 0x09, 0x97, 0x50, 0x44, 0x85, 0x7a, 0xc9, 0x61, 0xd2, 0x4d, 0x4a, 0x61, 0xb6, 0x49, 0x51, 0xff, + 0x92, 0x81, 0x65, 0x71, 0x9c, 0x3d, 0x1a, 0x91, 0x37, 0x3d, 0xc7, 0x4d, 0xa8, 0xc4, 0x56, 0xe1, + 0x7e, 0x2c, 0xcc, 0x0c, 0x92, 0xc4, 0x9d, 0xf8, 0x16, 0x54, 0x85, 0xfe, 0x75, 0xc3, 0x1f, 0xcb, + 0xd7, 0xac, 0xbc, 0x56, 0x11, 0xb4, 0x2e, 0x27, 0x29, 0x7b, 0xb0, 0xec, 0xd2, 0x88, 0xe8, 0xf8, + 0xa4, 0xcb, 0xb7, 0xc3, 0xa3, 0x2c, 0xaf, 0x7f, 0x78, 0xa2, 0x00, 0x89, 0xcc, 0x07, 0x93, 0x80, + 0x6a, 0x55, 0x37, 0x35, 0x52, 0x7f, 0x9e, 0x17, 0xbd, 0x91, 0x7c, 0x0e, 0xec, 0x7d, 0xd9, 0x7b, + 0xd3, 0xc3, 0x5d, 0x83, 0x72, 0x9c, 0x4c, 0x4c, 0x79, 0xb4, 0x92, 0x4c, 0x15, 0xa6, 0xb2, 0x05, + 0xc5, 0x90, 0x19, 0xba, 0x75, 0x64, 0xc9, 0x2c, 0xf3, 0x51, 0x3a, 0x43, 0xa4, 0x5f, 0xcf, 0xdb, + 0xbd, 0x97, 0x3a, 0x0b, 0x6d, 0x29, 0x64, 0x46, 0xef, 0xc8, 0x52, 0x76, 0xa0, 0x64, 0xd2, 0x30, + 0xc2, 0x65, 0xf2, 0xaf, 0xbf, 0x4c, 0x91, 0x4f, 0xe6, 0xeb, 0xbc, 0x62, 0xc7, 0x7c, 0x1f, 0xf8, + 0xc6, 0x7a, 0x18, 0xa0, 0x73, 0xcf, 0x67, 0xc6, 0xa0, 0xdd, 0x97, 0x89, 0x8c, 0xf9, 0x47, 0xb6, + 0x49, 0x99, 0x56, 0x08, 0x99, 0xd1, 0x0f, 0x78, 0xf3, 0x84, 0x91, 0x24, 0x9f, 0x54, 0xd3, 0x5e, + 0x57, 0x44, 0xb5, 0x34, 0x38, 0x2c, 0x15, 0xbe, 0xd8, 0xfd, 0x4a, 0x73, 0x3d, 0xf2, 0x4d, 0xa8, + 0x88, 0x37, 0x29, 0xf1, 0xfa, 0x2f, 0x52, 0x12, 0x08, 0x12, 0xbe, 0xfe, 0xcf, 0xb4, 0xe5, 0x30, + 0xdf, 0x96, 0xb7, 0xa7, 0x0f, 0xc4, 0xa6, 0x3e, 0x98, 0x44, 0x34, 0x14, 0x99, 0xad, 0x82, 0xd2, + 0xc4, 0x4f, 0xbf, 0xe6, 0x26, 0x47, 0x30, 0xbb, 0xfd, 0x43, 0xde, 0x52, 0xa5, 0x8c, 0xef, 0xfd, + 0x15, 0x8a, 0x67, 0x09, 0x34, 0x64, 0xf2, 0x8c, 0x29, 0xde, 0x47, 0x6b, 0x68, 0xb1, 0xe9, 0x0b, + 0xe6, 0x59, 0xd5, 0xa2, 0xbb, 0x70, 0xc1, 0x0e, 0xf5, 0x99, 0xeb, 0x89, 0xb8, 0xc6, 0x96, 0xb4, + 0xf3, 0x76, 0xb8, 0x99, 0xba, 0x9e, 0x50, 0xf5, 0x10, 0xae, 0x88, 0x20, 0xdd, 0x9c, 0xbd, 0xb5, + 0xfc, 0x3b, 0xc2, 0x50, 0xfd, 0x4d, 0x16, 0x2e, 0x73, 0xfe, 0xb9, 0xbd, 0x50, 0xcf, 0x33, 0x13, + 0x33, 0x73, 0xf1, 0x9b, 0x76, 0xce, 0xec, 0x9c, 0x73, 0x9e, 0xe0, 0x5d, 0xb9, 0x13, 0xbc, 0x4b, + 0xf9, 0x1e, 0x60, 0x20, 0xf2, 0xb8, 0xca, 0xbf, 0x52, 0x5c, 0x2d, 0x71, 0x76, 0x0c, 0xac, 0x38, + 0x1e, 0x0b, 0xaf, 0x13, 0x8f, 0x73, 0xc1, 0xb3, 0x74, 0x7a, 0xf0, 0xcc, 0xbf, 0x36, 0xa8, 0x7f, + 0xca, 0xc2, 0xc5, 0x44, 0x67, 0x5f, 0x8c, 0xfd, 0x88, 0xfc, 0x6b, 0x7d, 0x35, 0xa0, 0xe0, 0xfa, + 0x5e, 0x34, 0x42, 0x65, 0x95, 0x35, 0x31, 0xe0, 0x92, 0xc8, 0x29, 0x1e, 0x91, 0x3f, 0xe2, 0x95, + 0xe3, 0x7e, 0xea, 0x11, 0x71, 0x29, 0x6f, 0x07, 0x18, 0x25, 0xa6, 0x6e, 0xf8, 0x5e, 0x38, 0x76, + 0xf1, 0x19, 0xfc, 0x19, 0x95, 0xb5, 0xaa, 0xce, 0x91, 0xae, 0x04, 0xa4, 0x22, 0x9b, 0x43, 0x46, + 0xa9, 0xfe, 0x63, 0x2e, 0xd3, 0xdc, 0x1c, 0x51, 0xb4, 0x3f, 0xe0, 0x38, 0x8a, 0x3c, 0x33, 0xf1, + 0x0e, 0x9c, 0x4f, 0x4d, 0x4c, 0x75, 0xc3, 0xb5, 0x29, 0x3f, 0xf2, 0x7d, 0x0c, 0x8a, 0x31, 0x22, + 0xcc, 0xa2, 0x66, 0x9a, 0x55, 0x24, 0xb1, 0xba, 0x44, 0x12, 0xee, 0x55, 0xa8, 0x11, 0xc7, 0xf1, + 0x9f, 0x4e, 0x3d, 0x5e, 0x64, 0xb1, 0x2a, 0x12, 0xa5, 0xbb, 0xdf, 0xfd, 0x65, 0x46, 0xd4, 0x9b, + 0xd9, 0xa2, 0xa4, 0x7c, 0x08, 0xab, 0xbd, 0x1d, 0xbd, 0xbf, 0xaf, 0xf7, 0xba, 0xfa, 0xde, 0xf6, + 0xc1, 0x86, 0x7e, 0xb0, 0xd1, 0x7f, 0xa8, 0x1f, 0xfc, 0x60, 0x7f, 0x5b, 0x7f, 0xf2, 0xa8, 0xbf, + 0xbf, 0xdd, 0xdd, 0xdd, 0xd9, 0xdd, 0xde, 0xaa, 0x9f, 0x53, 0xee, 0xc2, 0x9d, 0x93, 0x18, 0x37, + 0x9f, 0x74, 0x1f, 0x6e, 0x1f, 0xe8, 0x07, 0xda, 0xc6, 0xce, 0xce, 0x6e, 0xb7, 0x9e, 0x51, 0x3a, + 0xf0, 0xd1, 0x49, 0xbc, 0x92, 0x49, 0xd7, 0xb6, 0x37, 0xb6, 0x74, 0x6d, 0xbb, 0xfb, 0x58, 0xdb, + 0xaa, 0x67, 0x37, 0x7f, 0xf8, 0xc7, 0xe7, 0xad, 0xcc, 0x37, 0xcf, 0x5b, 0x99, 0x6f, 0x9f, 0xb7, + 0x32, 0x3f, 0x7b, 0xd1, 0x3a, 0xf7, 0xcd, 0x8b, 0xd6, 0xb9, 0xbf, 0xbe, 0x68, 0x9d, 0xfb, 0x6a, + 0xcb, 0xb2, 0xa3, 0xd1, 0x78, 0xd0, 0x36, 0x7c, 0xb7, 0x33, 0xf0, 0x06, 0xf7, 0x8c, 0x11, 0xb1, + 0xbd, 0x4e, 0xe2, 0x7e, 0xf7, 0x64, 0xc2, 0xb9, 0x17, 0x48, 0xe7, 0xeb, 0x2c, 0xf8, 0xb5, 0x7b, + 0xb0, 0x84, 0xbf, 0x09, 0x7f, 0xf6, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xa2, 0x2d, 0x47, + 0x0b, 0x1f, 0x00, 0x00, } func (m *GfSpTask) Marshal() (dAtA []byte, err error) { @@ -3576,21 +3558,6 @@ func (m *GfSpGCMetaTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { if m.MetaTaskType != 0 { i = encodeVarintTask(dAtA, i, uint64(m.MetaTaskType)) i-- - dAtA[i] = 0x30 - } - if m.DeletionTime != 0 { - i = encodeVarintTask(dAtA, i, uint64(m.DeletionTime)) - i-- - dAtA[i] = 0x28 - } - if m.Running { - i-- - if m.Running { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- dAtA[i] = 0x20 } if m.DeleteCount != 0 { @@ -4588,12 +4555,6 @@ func (m *GfSpGCMetaTask) Size() (n int) { if m.DeleteCount != 0 { n += 1 + sovTask(uint64(m.DeleteCount)) } - if m.Running { - n += 2 - } - if m.DeletionTime != 0 { - n += 1 + sovTask(uint64(m.DeletionTime)) - } if m.MetaTaskType != 0 { n += 1 + sovTask(uint64(m.MetaTaskType)) } @@ -8804,45 +8765,6 @@ func (m *GfSpGCMetaTask) Unmarshal(dAtA []byte) error { } } case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Running", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTask - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Running = bool(v != 0) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletionTime", wireType) - } - m.DeletionTime = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTask - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.DeletionTime |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field MetaTaskType", wireType) } diff --git a/deployment/localup/localup.sh b/deployment/localup/localup.sh index 9218c8139..d4ba87a06 100644 --- a/deployment/localup/localup.sh +++ b/deployment/localup/localup.sh @@ -170,7 +170,6 @@ function make_config() { ############# function start_sp() { index=0 - sleep 5 for sp_dir in ${workspace}/${SP_DEPLOY_DIR}/* ; do cd ${sp_dir} || exit 1 nohup ./${sp_bin_name}${index} --config config.toml log.txt 2>&1& diff --git a/modular/executor/execute_gc.go b/modular/executor/execute_gc.go new file mode 100644 index 000000000..70b9d03f4 --- /dev/null +++ b/modular/executor/execute_gc.go @@ -0,0 +1,553 @@ +package executor + +import ( + "context" + "errors" + "strconv" + "strings" + "time" + + "cosmossdk.io/math" + "github.com/bnb-chain/greenfield-storage-provider/core/piecestore" + "github.com/bnb-chain/greenfield-storage-provider/core/spdb" + corespdb "github.com/bnb-chain/greenfield-storage-provider/core/spdb" + coretask "github.com/bnb-chain/greenfield-storage-provider/core/task" + "github.com/bnb-chain/greenfield-storage-provider/modular/manager" + metadatatypes "github.com/bnb-chain/greenfield-storage-provider/modular/metadata/types" + "github.com/bnb-chain/greenfield-storage-provider/pkg/log" + "github.com/bnb-chain/greenfield-storage-provider/pkg/metrics" + "github.com/bnb-chain/greenfield-storage-provider/store/bsdb" + "github.com/bnb-chain/greenfield-storage-provider/store/sqldb" + storagetypes "github.com/bnb-chain/greenfield/x/storage/types" + virtualgrouptypes "github.com/bnb-chain/greenfield/x/virtualgroup/types" + "github.com/forbole/juno/v4/common" +) + +type GCWorker struct { + e *ExecuteModular +} + +// NewGCWorker returns gc worker instance. +func NewGCWorker(e *ExecuteModular) *GCWorker { + return &GCWorker{ + e: e, + } +} + +// deleteObjectPiecesAndIntegrityMetaByObjectInfo used by gcZombiePiece +func (gc *GCWorker) deleteObjectPiecesAndIntegrityMeta(ctx context.Context, integrityMeta *corespdb.IntegrityMeta) error { + objID := integrityMeta.ObjectID + redundancyIdx := integrityMeta.RedundancyIndex + maxSegment := len(integrityMeta.PieceChecksumList) + + // delete object pieces + for segmentIdx := uint32(0); segmentIdx <= uint32(maxSegment); segmentIdx++ { + gc.deletePiece(ctx, objID, segmentIdx, redundancyIdx) + } + + // delete integrity meta + _ = gc.e.baseApp.GfSpDB().DeleteObjectIntegrity(objID, redundancyIdx) + log.CtxDebugw(ctx, "succeed to delete all object segment and integrity meta", "object_id", objID, "integrity_meta", integrityMeta) + + return nil +} + +func (gc *GCWorker) deleteObjectSegments(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { + var ( + storageParams *storagetypes.Params + err error + ) + if storageParams, err = gc.e.baseApp.Consensus().QueryStorageParamsByTimestamp( + context.Background(), objectInfo.GetCreateAt()); err != nil { + log.Errorw("failed to query storage params", "error", err) + return errors.New("failed to query storage params") + } + segmentCount := gc.e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), + storageParams.VersionedParams.GetMaxSegmentSize()) + for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { + pieceKey := gc.e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) + // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. + deleteErr := gc.e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "succeed to delete the primary sp segment", "object_info", objectInfo, + "piece_key", pieceKey, "error", deleteErr) + } + return nil +} + +// deletePiece delete single piece if meta data or chain has object info +func (gc *GCWorker) deletePiece(ctx context.Context, objID uint64, segmentIdx uint32, redundancyIdx int32) { + var pieceKey string + if redundancyIdx != piecestore.PrimarySPRedundancyIndex { + pieceKey = gc.e.baseApp.PieceOp().ECPieceKey(objID, segmentIdx, uint32(redundancyIdx)) + } else { + pieceKey = gc.e.baseApp.PieceOp().SegmentPieceKey(objID, segmentIdx) + } + deleteErr := gc.e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "succeed to delete the sp piece", "object_id", objID, + "piece_key", pieceKey, "error", deleteErr) +} + +// deletePieceAndPieceChecksum delete single piece and it's corresponding piece checksum +func (gc *GCWorker) deletePieceAndPieceChecksum(ctx context.Context, piece *spdb.GCPieceMeta) error { + objID := piece.ObjectID + segmentIdx := piece.SegmentIndex + redundancyIdx := piece.RedundancyIndex + log.CtxInfow(ctx, "start to delete piece and piece checksum", "object_id", objID, "segmentIdx", segmentIdx, "redundancyIdx", redundancyIdx) + + gc.deletePiece(ctx, piece.ObjectID, piece.SegmentIndex, piece.RedundancyIndex) + err := gc.e.baseApp.GfSpDB().DeleteReplicatePieceChecksum(objID, segmentIdx, redundancyIdx) + if err != nil { + log.Debugf("failed to delete replicate piece checksum", "object_id", objID) + return err + } + log.CtxDebugw(ctx, "succeed to delete and piece checksum", "object_id", objID, "piece_meta", piece, "error", err) + return nil +} + +// isAllowGCCheck +func (gc *GCWorker) isAllowGCCheck(objectInfo *storagetypes.ObjectInfo, bucketInfo *metadatatypes.Bucket) bool { + // object not in sealed status + if objectInfo.GetObjectStatus() != storagetypes.OBJECT_STATUS_SEALED { + log.Infow("the object isn't sealed, do not need to gc check") + return false + } + // bucket migrating + if bucketInfo.GetBucketInfo().GetBucketStatus() == storagetypes.BUCKET_STATUS_MIGRATING { + log.Infow("bucket is migrating, do not need to gc check") + return false + } + log.Infow("the object is sealed and the bucket is not migrating, the object can gc", "object", objectInfo, "bucket", bucketInfo) + return true +} + +func (gc *GCWorker) getGvgAndSpId(ctx context.Context, objectInfo *storagetypes.ObjectInfo) (*metadatatypes.Bucket, *virtualgrouptypes.GlobalVirtualGroup, uint32, error) { + bucketInfo, err := gc.e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) + if err != nil || bucketInfo == nil { + log.Errorw("failed to get bucket by bucket name", "bucket", bucketInfo, "error", err) + return nil, nil, 0, err + } + + // piece + gvg, err := gc.e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) + if err != nil { + log.Errorw("failed to get global virtual group", "bucket", bucketInfo, "object", objectInfo, "error", err) + return bucketInfo, nil, 0, err + } + + // gvg + spID, err := gc.e.getSPID() + if err != nil { + log.Errorw("failed to get sp id", "error", err) + return bucketInfo, gvg, 0, err + } + + return bucketInfo, gvg, spID, nil +} + +// checkGVGMatchSP only return ErrInvalidRedundancyIndex means the piece was dislocation +func (gc *GCWorker) checkGVGMatchSP(ctx context.Context, objectInfo *storagetypes.ObjectInfo, redundancyIndex int32) error { + bucketInfo, gvg, spID, err := gc.getGvgAndSpId(ctx, objectInfo) + if err != nil { + return err + } + + if !gc.isAllowGCCheck(objectInfo, bucketInfo) { + return nil + } + + if redundancyIndex == piecestore.PrimarySPRedundancyIndex { + if gvg.GetPrimarySpId() != spID { + log.CtxInfow(ctx, "the piece isn't in correct location, will be delete", + "object_info", objectInfo, "redundancy_index", redundancyIndex, "gvg", gvg, "sp_id", spID) + return ErrInvalidRedundancyIndex + } + } else { + if gvg.GetSecondarySpIds()[redundancyIndex] != spID { + log.CtxInfow(ctx, "the piece isn't in correct location, will be delete", + "object_info", objectInfo, "redundancy_index", redundancyIndex, "gvg", gvg, "sp_id", spID) + return ErrInvalidRedundancyIndex + } + } + return nil +} + +func (e *ExecuteModular) HandleGCObjectTask(ctx context.Context, task coretask.GCObjectTask) { + var ( + err error + waitingGCObjects []*metadatatypes.Object + currentGCBlockID uint64 + currentGCObjectID uint64 + responseEndBlockID uint64 + storageParams *storagetypes.Params + gcObjectNumber int + tryAgainLater bool + taskIsCanceled bool + hasNoObject bool + isSucceed bool + ) + + reportProgress := func() bool { + reportErr := e.ReportTask(ctx, task) + log.CtxDebugw(ctx, "gc object task report progress", "task_info", task.Info(), "error", reportErr) + return errors.Is(reportErr, manager.ErrCanceledTask) + } + + defer func() { + if err == nil && (isSucceed || hasNoObject) { // succeed + task.SetCurrentBlockNumber(task.GetEndBlockNumber() + 1) + reportProgress() + } else { // failed + task.SetError(err) + reportProgress() + } + log.CtxDebugw(ctx, "gc object task", "task_info", task.Info(), "is_succeed", isSucceed, + "response_end_block_id", responseEndBlockID, "waiting_gc_object_number", len(waitingGCObjects), + "has_gc_object_number", gcObjectNumber, "try_again_later", tryAgainLater, + "task_is_canceled", taskIsCanceled, "has_no_object", hasNoObject, "error", err) + }() + + if waitingGCObjects, responseEndBlockID, err = e.baseApp.GfSpClient().ListDeletedObjectsByBlockNumberRange(ctx, + e.baseApp.OperatorAddress(), task.GetStartBlockNumber(), task.GetEndBlockNumber(), true); err != nil { + log.CtxErrorw(ctx, "failed to query deleted object list", "task_info", task.Info(), "error", err) + return + } + if responseEndBlockID < task.GetStartBlockNumber() || responseEndBlockID < task.GetEndBlockNumber() { + tryAgainLater = true + log.CtxInfow(ctx, "metadata is not latest, try again later", "response_end_block_id", + responseEndBlockID, "task_info", task.Info()) + return + } + if len(waitingGCObjects) == 0 { + log.Error("no waiting gc objects") + hasNoObject = true + return + } + + for _, object := range waitingGCObjects { + if storageParams, err = e.baseApp.Consensus().QueryStorageParamsByTimestamp( + context.Background(), object.GetObjectInfo().GetCreateAt()); err != nil { + log.Errorw("failed to query storage params", "task_info", task.Info(), "error", err) + return + } + + currentGCBlockID = uint64(object.GetDeleteAt()) + objectInfo := object.GetObjectInfo() + currentGCObjectID = objectInfo.Id.Uint64() + if currentGCBlockID < task.GetCurrentBlockNumber() { + log.Errorw("skip gc object", "object_info", objectInfo, + "task_current_gc_block_id", task.GetCurrentBlockNumber()) + continue + } + segmentCount := e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), + storageParams.VersionedParams.GetMaxSegmentSize()) + for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { + pieceKey := e.baseApp.PieceOp().SegmentPieceKey(currentGCObjectID, segIdx) + // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. + deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "delete the primary sp pieces", "object_info", objectInfo, + "piece_key", pieceKey, "error", deleteErr) + } + bucketInfo, err := e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) + if err != nil || bucketInfo == nil { + log.Errorw("failed to get bucket by bucket name", "error", err) + return + } + gvg, err := e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) + if err != nil { + log.Errorw("failed to get global virtual group", "error", err) + return + } + // TODO get sp id from config + spId, err := e.getSPID() + if err != nil { + log.Errorw("failed to get sp id", "error", err) + return + } + var redundancyIndex int32 = -1 + for rIdx, sspId := range gvg.GetSecondarySpIds() { + if spId == sspId { + redundancyIndex = int32(rIdx) + for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { + pieceKey := e.baseApp.PieceOp().ECPieceKey(currentGCObjectID, segIdx, uint32(rIdx)) + if objectInfo.GetRedundancyType() == storagetypes.REDUNDANCY_REPLICA_TYPE { + pieceKey = e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) + } + // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. + deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) + log.CtxDebugw(ctx, "delete the secondary sp pieces", + "object_info", objectInfo, "piece_key", pieceKey, "error", deleteErr) + } + } + } + // ignore this delete api error, TODO: refine gc workflow by enrich metadata index + deleteErr := e.baseApp.GfSpDB().DeleteObjectIntegrity(objectInfo.Id.Uint64(), redundancyIndex) + log.CtxDebugw(ctx, "delete the object integrity meta", "object_info", objectInfo, "error", deleteErr) + task.SetCurrentBlockNumber(currentGCBlockID) + task.SetLastDeletedObjectId(currentGCObjectID) + metrics.GCObjectCounter.WithLabelValues(e.Name()).Inc() + if taskIsCanceled = reportProgress(); taskIsCanceled { + log.CtxErrorw(ctx, "gc object task has been canceled", "current_gc_object_info", objectInfo, "task_info", task.Info()) + return + } + log.CtxDebugw(ctx, "succeed to gc an object", "object_info", objectInfo, "deleted_at_block_id", currentGCBlockID) + gcObjectNumber++ + } + isSucceed = true +} + +func (e *ExecuteModular) HandleGCZombiePieceTask(ctx context.Context, task coretask.GCZombiePieceTask) { + var ( + err error + waitingVerifyGCIntegrityObjects []*corespdb.IntegrityMeta + ) + + reportProgress := func() { + reportErr := e.ReportTask(ctx, task) + log.CtxDebugw(ctx, "gc zombie piece task report progress", "task_info", task.Info(), "error", reportErr) + } + + defer func() { + if err == nil { // succeed + reportProgress() + } else { // failed + task.SetError(err) + reportProgress() + } + log.CtxDebugw(ctx, "gc zombie piece task", "task_info", task.Info(), + "waiting_gc_object_number", len(waitingVerifyGCIntegrityObjects), "error", err) + }() + + // verify zombie piece via IntegrityMetaTable + if err = e.gcZombiePieceFromIntegrityMeta(ctx, task); err != nil { + log.CtxErrorw(ctx, "failed to gc zombie piece from integrity meta", "task_info", task.Info(), "error", err) + return + } + // verify and delete zombie piece via piece hash + if err = e.gcZombiePieceFromPieceHash(ctx, task); err != nil { + log.CtxErrorw(ctx, "failed to gc zombie piece from piece hash", "task_info", task.Info(), "error", err) + return + } +} + +func (e *ExecuteModular) HandleGCMetaTask(ctx context.Context, task coretask.GCMetaTask) { + var ( + err error + ) + reportProgress := func() { + reportErr := e.ReportTask(ctx, task) + log.CtxDebugw(ctx, "gc meta task report progress", "task_info", task.Info(), "error", reportErr) + } + + defer func() { + if err == nil { // succeed + reportProgress() + } else { // failed + task.SetError(err) + reportProgress() + } + log.CtxDebugw(ctx, "succeed to run gc meta task", "task_info", task.Info(), "error", err) + }() + + go e.gcMetaBucketTraffic(ctx, task) + go e.gcMetaReadRecord(ctx, task) +} + +func (e *ExecuteModular) gcMetaBucketTraffic(ctx context.Context, task coretask.GCMetaTask) error { + // TODO list buckets when large dataset + now := time.Now() + daysAgo := now.Add(-time.Duration(e.bucketTrafficKeepLatestDay) * time.Hour * 24) + yearMonth := sqldb.TimeToYearMonth(daysAgo) + + err := e.baseApp.GfSpDB().DeleteAllBucketTrafficExpired(yearMonth) + if err != nil { + log.CtxErrorw(ctx, "failed to delete expired bucket traffic", "error", err) + return err + } + + log.CtxInfow(ctx, "succeed to delete bucket traffic", "task", task, "days_ago", daysAgo, "year_month", yearMonth) + return nil +} + +func (e *ExecuteModular) gcMetaReadRecord(ctx context.Context, task coretask.GCMetaTask) error { + now := time.Now() + daysAgo := now.Add(-time.Duration(e.readRecordKeepLatestDay) * time.Hour * 24) + + err := e.baseApp.GfSpDB().DeleteAllReadRecordExpired(uint64(daysAgo.UnixMicro())) + if err != nil { + log.CtxErrorw(ctx, "failed to delete expired read record", "error", err) + return err + } + log.CtxInfow(ctx, "succeed to delete read record", "task", task, "daysAgo", daysAgo) + return nil +} + +func (e *ExecuteModular) HandleGCBucketMigrationBucket(ctx context.Context, task coretask.GCBucketMigrationTask) { + // TODO gc progress persist in db + var ( + groups []*bsdb.GlobalVirtualGroup + err error + startAfter uint64 = 0 + limit uint32 + objects []*metadatatypes.ObjectDetails + ) + bucketID := task.GetBucketID() + + reportProgress := func() bool { + reportErr := e.ReportTask(ctx, task) + log.CtxDebugw(ctx, "gc object task report progress", "task_info", task.Info(), "error", reportErr) + return errors.Is(reportErr, manager.ErrCanceledTask) + } + defer func() { + if err == nil { // succeed + reportProgress() + } else { // failed + task.SetError(err) + reportProgress() + } + log.CtxDebugw(ctx, "succeed to report gc bucket migration task", "task_info", task.Info(), "bucket_id", bucketID, "error", err) + }() + + // list gvg + groups, err = e.baseApp.GfBsDB().ListGvgByBucketID(common.BigToHash(math.NewUint(bucketID).BigInt())) + if err != nil { + log.CtxErrorw(ctx, "failed to list global virtual group by bucket id", "error", err) + return + } + + // current chain's gvg info compare metadata info + bucketInfo, err := e.baseApp.Consensus().QueryBucketInfoById(ctx, bucketID) + if err != nil || bucketInfo == nil { + log.Errorw("failed to get bucket by bucket name", "error", err) + return + } + vgfID := bucketInfo.GetGlobalVirtualGroupFamilyId() + log.CtxInfow(ctx, "begin to gc bucket migration by bucket id", "bucket_id", bucketID, "gvgs", groups, "vgfID", vgfID, "error", err) + + for _, gvg := range groups { + if gvg.FamilyId != vgfID { + log.CtxErrorw(ctx, "failed to check gvg's status with chain's status, the gvg may be old data", "error", err) + err = errors.New("gvg family id mismatch") + return + } + objects, err = e.baseApp.GfSpClient().ListObjectsByGVGAndBucketForGC(ctx, gvg.GlobalVirtualGroupId, bucketID, startAfter, limit) + if err != nil { + log.CtxErrorw(ctx, "failed to list objects by gvg and bucket for gc", "error", err) + return + } + // can delete, verify + for _, obj := range objects { + objectInfo := obj.GetObject().GetObjectInfo() + if e.gcWorker.checkGVGMatchSP(ctx, objectInfo, piecestore.PrimarySPRedundancyIndex) == ErrInvalidRedundancyIndex { + e.gcWorker.deleteObjectSegments(ctx, objectInfo) + log.CtxInfow(ctx, "succeed to delete objects by gvg and bucket for gc", "object", objectInfo, "error", err) + } + } + } + +} + +func (e *ExecuteModular) gcZombiePieceFromIntegrityMeta(ctx context.Context, task coretask.GCZombiePieceTask) error { + var ( + err error + waitingVerifyGCIntegrityPieces []*corespdb.IntegrityMeta + objInfoFromMetaData *storagetypes.ObjectInfo + objInfoFromChain *storagetypes.ObjectInfo + ) + + if waitingVerifyGCIntegrityPieces, err = e.baseApp.GfSpDB().ListIntegrityMetaByObjectIDRange(int64(task.GetStartObjectId()), int64(task.GetEndObjectId()), true); err != nil { + log.CtxErrorw(ctx, "failed to query deleted object list", "task_info", task.Info(), "error", err) + return err + } + + if len(waitingVerifyGCIntegrityPieces) == 0 { + log.CtxInfow(ctx, "no waiting gc objects", "task_info", task.Info()) + return nil + } + + for _, integrityObject := range waitingVerifyGCIntegrityPieces { + log.CtxDebugw(ctx, "gc zombie current waiting verify gc integrity meta piece", "integrity_meta", integrityObject) + // error + objID := integrityObject.ObjectID + // If metadata service has object info, use objInfoFromMetaData, otherwise query from chain + if objInfoFromMetaData, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { + log.Errorf("failed to get object meta from meta data service, will check from chain", "error", err) + if strings.Contains(err.Error(), "no such object from metadata") { + // could delete, has integrity hash, do not have object info, chain check verify check chain + if objInfoFromChain, err = e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)); err != nil { + if strings.Contains(err.Error(), "No such object") { + // 1) This object does not exist on the chain + e.gcWorker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) + } + } else { + // 2) query metadata error, but chain has the object info, gvg primary sp should has integrity meta + if e.gcWorker.checkGVGMatchSP(ctx, objInfoFromChain, integrityObject.RedundancyIndex) == ErrInvalidRedundancyIndex { + e.gcWorker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) + } + continue + } + } + } else { + // check integrity meta & object info + if e.gcWorker.checkGVGMatchSP(ctx, objInfoFromMetaData, integrityObject.RedundancyIndex) == ErrInvalidRedundancyIndex { + e.gcWorker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) + } + } + } + return nil +} + +func (e *ExecuteModular) gcZombiePieceFromPieceHash(ctx context.Context, task coretask.GCZombiePieceTask) error { + var ( + err error + waitingVerifyGCPieces []*spdb.GCPieceMeta + objectInfoFromMetadata *storagetypes.ObjectInfo + objInfoFromChain *storagetypes.ObjectInfo + ) + log.CtxDebugw(ctx, "start to gc zombie piece from piece hash", "task_info", task.Info()) + + // replicate piece must be secondary sp + if waitingVerifyGCPieces, err = e.baseApp.GfSpDB().ListReplicatePieceChecksumByObjectIDRange( + int64(task.GetStartObjectId()), int64(task.GetEndObjectId())); err != nil { + log.CtxErrorw(ctx, "failed to query replicate piece checksum", "task_info", task.Info(), "error", err) + return err + } + + if len(waitingVerifyGCPieces) == 0 { + log.CtxErrorw(ctx, "no waiting gc pieces", "task_info", task.Info()) + return nil + } + + for _, piece := range waitingVerifyGCPieces { + log.CtxDebugw(ctx, "gc zombie current waiting verify gc meta piece", "piece", piece) + // error + // migrating + // sealed ? timeout ? + objID := piece.ObjectID + // object info + if objectInfoFromMetadata, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { + // check from chain delete ? + if strings.Contains(err.Error(), "no such object from metadata") { + log.Infof("failed to get object meta, the zombie piece should be deleted", "error", err) + if objInfoFromChain, err = e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)); err != nil { + if strings.Contains(err.Error(), "No such object") { + // 1) This object does not exist on the chain + e.gcWorker.deletePieceAndPieceChecksum(ctx, piece) + } + } else { + // 2) query metadata error, but chain has the object info, gvg primary sp should has integrity meta + // TODO: refine + if e.gcWorker.checkGVGMatchSP(ctx, objInfoFromChain, piece.RedundancyIndex) == ErrInvalidRedundancyIndex { + e.gcWorker.deletePieceAndPieceChecksum(ctx, piece) + } + } + } + } else { + if e.gcWorker.checkGVGMatchSP(ctx, objectInfoFromMetadata, piece.RedundancyIndex) == ErrInvalidRedundancyIndex { + //task.SetError(ErrSecondaryMismatch) + // ignore error + e.gcWorker.deletePieceAndPieceChecksum(ctx, piece) + } + } + } + return nil +} diff --git a/modular/executor/execute_task.go b/modular/executor/execute_task.go index 787cbf9cc..4a73771d6 100644 --- a/modular/executor/execute_task.go +++ b/modular/executor/execute_task.go @@ -4,34 +4,22 @@ import ( "bytes" "context" "encoding/hex" - "errors" "fmt" "io" "net/http" - "strconv" - "strings" "sync/atomic" "time" - "cosmossdk.io/math" "github.com/bnb-chain/greenfield-common/go/hash" "github.com/bnb-chain/greenfield-common/go/redundancy" "github.com/bnb-chain/greenfield-storage-provider/base/types/gfsperrors" "github.com/bnb-chain/greenfield-storage-provider/core/module" - "github.com/bnb-chain/greenfield-storage-provider/core/piecestore" "github.com/bnb-chain/greenfield-storage-provider/core/spdb" - corespdb "github.com/bnb-chain/greenfield-storage-provider/core/spdb" coretask "github.com/bnb-chain/greenfield-storage-provider/core/task" - "github.com/bnb-chain/greenfield-storage-provider/modular/manager" - metadatatypes "github.com/bnb-chain/greenfield-storage-provider/modular/metadata/types" "github.com/bnb-chain/greenfield-storage-provider/pkg/log" "github.com/bnb-chain/greenfield-storage-provider/pkg/metrics" - "github.com/bnb-chain/greenfield-storage-provider/store/bsdb" - "github.com/bnb-chain/greenfield-storage-provider/store/sqldb" "github.com/bnb-chain/greenfield-storage-provider/util" storagetypes "github.com/bnb-chain/greenfield/x/storage/types" - virtualgrouptypes "github.com/bnb-chain/greenfield/x/virtualgroup/types" - "github.com/forbole/juno/v4/common" "github.com/prysmaticlabs/prysm/crypto/bls" ) @@ -70,155 +58,6 @@ func ErrConsensusWithDetail(detail string) *gfsperrors.GfSpError { return gfsperrors.Register(module.ExecuteModularName, http.StatusBadRequest, 45211, detail) } -type GCChecker struct { - e *ExecuteModular -} - -// NewGCChecker returns a family conflicted checker instance. -func NewGCChecker(e *ExecuteModular) *GCChecker { - return &GCChecker{ - e: e, - } -} - -// deleteObjectPiecesAndIntegrityMetaByObjectInfo used by gcZombiePiece -func (gc *GCChecker) deleteObjectPiecesAndIntegrityMeta(ctx context.Context, integrityMeta *corespdb.IntegrityMeta) error { - objID := integrityMeta.ObjectID - redundancyIdx := integrityMeta.RedundancyIndex - maxSegment := len(integrityMeta.PieceChecksumList) - - // delete object pieces - for segmentIdx := uint32(0); segmentIdx <= uint32(maxSegment); segmentIdx++ { - gc.deletePiece(ctx, objID, segmentIdx, redundancyIdx) - } - - // delete integrity meta - _ = gc.e.baseApp.GfSpDB().DeleteObjectIntegrity(objID, redundancyIdx) - log.CtxDebugw(ctx, "succeed to delete all object segment and integrity meta", "object_id", objID, "integrity_meta", integrityMeta) - - return nil -} - -func (gc *GCChecker) deleteObjectSegments(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { - var ( - storageParams *storagetypes.Params - err error - ) - if storageParams, err = gc.e.baseApp.Consensus().QueryStorageParamsByTimestamp( - context.Background(), objectInfo.GetCreateAt()); err != nil { - log.Errorw("failed to query storage params", "error", err) - return errors.New("failed to query storage params") - } - segmentCount := gc.e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), - storageParams.VersionedParams.GetMaxSegmentSize()) - for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { - pieceKey := gc.e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) - // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. - deleteErr := gc.e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) - log.CtxDebugw(ctx, "succeed to delete the primary sp segment", "object_info", objectInfo, - "piece_key", pieceKey, "error", deleteErr) - } - return nil -} - -// deletePiece delete single piece if meta data or chain has object info -func (gc *GCChecker) deletePiece(ctx context.Context, objID uint64, segmentIdx uint32, redundancyIdx int32) { - var pieceKey string - // TODO -1 means REDUNDANCY_EC_TYPE - if redundancyIdx != piecestore.PrimarySPRedundancyIndex { - pieceKey = gc.e.baseApp.PieceOp().ECPieceKey(objID, segmentIdx, uint32(redundancyIdx)) - } else { - pieceKey = gc.e.baseApp.PieceOp().SegmentPieceKey(objID, segmentIdx) - } - deleteErr := gc.e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) - log.CtxDebugw(ctx, "succeed to delete the sp piece", "object_id", objID, - "piece_key", pieceKey, "error", deleteErr) -} - -// deletePieceAndPieceChecksum delete single piece and it's corresponding piece checksum -func (gc *GCChecker) deletePieceAndPieceChecksum(ctx context.Context, piece *spdb.GCPieceMeta) error { - objID := piece.ObjectID - segmentIdx := piece.SegmentIndex - redundancyIdx := piece.RedundancyIndex - log.CtxInfow(ctx, "start to delete piece and piece checksum", "object_id", objID, "segmentIdx", segmentIdx, "redundancyIdx", redundancyIdx) - - gc.deletePiece(ctx, piece.ObjectID, piece.SegmentIndex, piece.RedundancyIndex) - err := gc.e.baseApp.GfSpDB().DeleteReplicatePieceChecksum(objID, segmentIdx, redundancyIdx) - if err != nil { - log.Debugf("failed to delete replicate piece checksum", "object_id", objID) - return err - } - log.CtxDebugw(ctx, "succeed to delete and piece checksum", "object_id", objID, "piece_meta", piece, "error", err) - return nil -} - -// isAllowGCCheck -func (gc *GCChecker) isAllowGCCheck(objectInfo *storagetypes.ObjectInfo, bucketInfo *metadatatypes.Bucket) bool { - // object not in sealed status - if objectInfo.GetObjectStatus() != storagetypes.OBJECT_STATUS_SEALED { - log.Infow("the object isn't sealed, do not need to gc check") - return false - } - // bucket migrating - if bucketInfo.GetBucketInfo().GetBucketStatus() == storagetypes.BUCKET_STATUS_MIGRATING { - log.Infow("bucket is migrating, do not need to gc check") - return false - } - log.Infow("the object is sealed and the bucket is not migrating, the object can gc", "object", objectInfo, "bucket", bucketInfo) - return true -} - -func (gc *GCChecker) getGvgAndSpId(ctx context.Context, objectInfo *storagetypes.ObjectInfo) (*metadatatypes.Bucket, *virtualgrouptypes.GlobalVirtualGroup, uint32, error) { - bucketInfo, err := gc.e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) - if err != nil || bucketInfo == nil { - log.Errorw("failed to get bucket by bucket name", "error", err) - return nil, nil, 0, err - } - - // piece - gvg, err := gc.e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) - if err != nil { - log.Errorw("failed to get global virtual group", "error", err) - return bucketInfo, nil, 0, err - } - - // gvg - spID, err := gc.e.getSPID() - if err != nil { - log.Errorw("failed to get sp id", "error", err) - return bucketInfo, gvg, 0, err - } - - return bucketInfo, gvg, spID, nil -} - -// checkGVGMatchSP only return ErrInvalidRedundancyIndex means the piece was dislocation -func (gc *GCChecker) checkGVGMatchSP(ctx context.Context, objectInfo *storagetypes.ObjectInfo, redundancyIndex int32) error { - bucketInfo, gvg, spID, err := gc.getGvgAndSpId(ctx, objectInfo) - if err != nil { - return err - } - - if !gc.isAllowGCCheck(objectInfo, bucketInfo) { - return nil - } - - if redundancyIndex == piecestore.PrimarySPRedundancyIndex { - if gvg.GetPrimarySpId() != spID { - log.CtxInfow(ctx, "the piece isn't in correct location, will be delete", - "object_info", objectInfo, "redundancy_index", redundancyIndex, "gvg", gvg, "sp_id", spID) - return ErrInvalidRedundancyIndex - } - } else { - if gvg.GetSecondarySpIds()[redundancyIndex] != spID { - log.CtxInfow(ctx, "the piece isn't in correct location, will be delete", - "object_info", objectInfo, "redundancy_index", redundancyIndex, "gvg", gvg, "sp_id", spID) - return ErrInvalidRedundancyIndex - } - } - return nil -} - func (e *ExecuteModular) HandleSealObjectTask(ctx context.Context, task coretask.SealObjectTask) { if task == nil || task.GetObjectInfo() == nil { log.CtxErrorw(ctx, "failed to handle seal object, task pointer dangling") @@ -380,283 +219,6 @@ func (e *ExecuteModular) HandleReceivePieceTask(ctx context.Context, task coreta log.CtxDebug(ctx, "succeed to handle confirm receive piece task") } -func (e *ExecuteModular) HandleGCObjectTask(ctx context.Context, task coretask.GCObjectTask) { - var ( - err error - waitingGCObjects []*metadatatypes.Object - currentGCBlockID uint64 - currentGCObjectID uint64 - responseEndBlockID uint64 - storageParams *storagetypes.Params - gcObjectNumber int - tryAgainLater bool - taskIsCanceled bool - hasNoObject bool - isSucceed bool - ) - - reportProgress := func() bool { - reportErr := e.ReportTask(ctx, task) - log.CtxDebugw(ctx, "gc object task report progress", "task_info", task.Info(), "error", reportErr) - return errors.Is(reportErr, manager.ErrCanceledTask) - } - - defer func() { - if err == nil && (isSucceed || hasNoObject) { // succeed - task.SetCurrentBlockNumber(task.GetEndBlockNumber() + 1) - reportProgress() - } else { // failed - task.SetError(err) - reportProgress() - } - log.CtxDebugw(ctx, "gc object task", "task_info", task.Info(), "is_succeed", isSucceed, - "response_end_block_id", responseEndBlockID, "waiting_gc_object_number", len(waitingGCObjects), - "has_gc_object_number", gcObjectNumber, "try_again_later", tryAgainLater, - "task_is_canceled", taskIsCanceled, "has_no_object", hasNoObject, "error", err) - }() - - if waitingGCObjects, responseEndBlockID, err = e.baseApp.GfSpClient().ListDeletedObjectsByBlockNumberRange(ctx, - e.baseApp.OperatorAddress(), task.GetStartBlockNumber(), task.GetEndBlockNumber(), true); err != nil { - log.CtxErrorw(ctx, "failed to query deleted object list", "task_info", task.Info(), "error", err) - return - } - if responseEndBlockID < task.GetStartBlockNumber() || responseEndBlockID < task.GetEndBlockNumber() { - tryAgainLater = true - log.CtxInfow(ctx, "metadata is not latest, try again later", "response_end_block_id", - responseEndBlockID, "task_info", task.Info()) - return - } - if len(waitingGCObjects) == 0 { - log.Error("no waiting gc objects") - hasNoObject = true - return - } - - for _, object := range waitingGCObjects { - if storageParams, err = e.baseApp.Consensus().QueryStorageParamsByTimestamp( - context.Background(), object.GetObjectInfo().GetCreateAt()); err != nil { - log.Errorw("failed to query storage params", "task_info", task.Info(), "error", err) - return - } - - currentGCBlockID = uint64(object.GetDeleteAt()) - objectInfo := object.GetObjectInfo() - currentGCObjectID = objectInfo.Id.Uint64() - if currentGCBlockID < task.GetCurrentBlockNumber() { - log.Errorw("skip gc object", "object_info", objectInfo, - "task_current_gc_block_id", task.GetCurrentBlockNumber()) - continue - } - segmentCount := e.baseApp.PieceOp().SegmentPieceCount(objectInfo.GetPayloadSize(), - storageParams.VersionedParams.GetMaxSegmentSize()) - for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { - pieceKey := e.baseApp.PieceOp().SegmentPieceKey(currentGCObjectID, segIdx) - // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. - deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) - log.CtxDebugw(ctx, "delete the primary sp pieces", "object_info", objectInfo, - "piece_key", pieceKey, "error", deleteErr) - } - bucketInfo, err := e.baseApp.GfSpClient().GetBucketByBucketName(ctx, objectInfo.BucketName, true) - if err != nil || bucketInfo == nil { - log.Errorw("failed to get bucket by bucket name", "error", err) - return - } - gvg, err := e.baseApp.GfSpClient().GetGlobalVirtualGroup(ctx, bucketInfo.BucketInfo.Id.Uint64(), objectInfo.LocalVirtualGroupId) - if err != nil { - log.Errorw("failed to get global virtual group", "error", err) - return - } - // TODO get sp id from config - spId, err := e.getSPID() - if err != nil { - log.Errorw("failed to get sp id", "error", err) - return - } - var redundancyIndex int32 = -1 - for rIdx, sspId := range gvg.GetSecondarySpIds() { - if spId == sspId { - redundancyIndex = int32(rIdx) - for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { - pieceKey := e.baseApp.PieceOp().ECPieceKey(currentGCObjectID, segIdx, uint32(rIdx)) - if objectInfo.GetRedundancyType() == storagetypes.REDUNDANCY_REPLICA_TYPE { - pieceKey = e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) - } - // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. - deleteErr := e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) - log.CtxDebugw(ctx, "delete the secondary sp pieces", - "object_info", objectInfo, "piece_key", pieceKey, "error", deleteErr) - } - } - } - // ignore this delete api error, TODO: refine gc workflow by enrich metadata index - deleteErr := e.baseApp.GfSpDB().DeleteObjectIntegrity(objectInfo.Id.Uint64(), redundancyIndex) - log.CtxDebugw(ctx, "delete the object integrity meta", "object_info", objectInfo, "error", deleteErr) - task.SetCurrentBlockNumber(currentGCBlockID) - task.SetLastDeletedObjectId(currentGCObjectID) - metrics.GCObjectCounter.WithLabelValues(e.Name()).Inc() - if taskIsCanceled = reportProgress(); taskIsCanceled { - log.CtxErrorw(ctx, "gc object task has been canceled", "current_gc_object_info", objectInfo, "task_info", task.Info()) - return - } - log.CtxDebugw(ctx, "succeed to gc an object", "object_info", objectInfo, "deleted_at_block_id", currentGCBlockID) - gcObjectNumber++ - } - isSucceed = true -} - -func (e *ExecuteModular) HandleGCZombiePieceTask(ctx context.Context, task coretask.GCZombiePieceTask) { - var ( - err error - waitingVerifyGCIntegrityObjects []*corespdb.IntegrityMeta - ) - - reportProgress := func() bool { - reportErr := e.ReportTask(ctx, task) - log.CtxDebugw(ctx, "gc zombie piece task report progress", "task_info", task.Info(), "error", reportErr) - return errors.Is(reportErr, manager.ErrCanceledTask) - } - - defer func() { - if err == nil { // succeed - reportProgress() - } else { // failed - task.SetError(err) - reportProgress() - } - log.CtxDebugw(ctx, "gc zombie piece task", "task_info", task.Info(), - "waiting_gc_object_number", len(waitingVerifyGCIntegrityObjects), "error", err) - }() - - // verify zombie piece via IntegrityMetaTable - if err = e.gcZombiePieceFromIntegrityMeta(ctx, task); err != nil { - log.CtxErrorw(ctx, "failed to gc zombie piece from integrity meta", "task_info", task.Info(), "error", err) - return - } - // verify and delete zombie piece via piece hash - if err = e.gcZombiePieceFromPieceHash(ctx, task); err != nil { - log.CtxErrorw(ctx, "failed to gc zombie piece from piece hash", "task_info", task.Info(), "error", err) - return - } -} - -func (e *ExecuteModular) HandleGCMetaTask(ctx context.Context, task coretask.GCMetaTask) { - var ( - err error - ) - reportProgress := func() bool { - reportErr := e.ReportTask(ctx, task) - log.CtxDebugw(ctx, "gc meta task report progress", "task_info", task.Info(), "error", reportErr) - return errors.Is(reportErr, manager.ErrCanceledTask) - } - - defer func() { - if err == nil { // succeed - reportProgress() - } else { // failed - task.SetError(err) - reportProgress() - } - log.CtxDebugw(ctx, "succeed to run gc meta task", "task_info", task.Info(), "error", err) - }() - - go e.gcMetaBucketTraffic(ctx, task) - go e.gcMetaReadRecord(ctx, task) -} - -func (e *ExecuteModular) gcMetaBucketTraffic(ctx context.Context, task coretask.GCMetaTask) error { - // TODO list buckets when large dataset - now := time.Now() - daysAgo := now.Add(-time.Duration(e.bucketTrafficKeepLatestDay) * time.Hour * 24) - yearMonth := sqldb.TimeToYearMonth(daysAgo) - - err := e.baseApp.GfSpDB().DeleteAllBucketTrafficExpired(yearMonth) - if err != nil { - log.CtxErrorw(ctx, "failed to delete expired bucket traffic", "error", err) - return err - } - - log.CtxInfow(ctx, "succeed to delete bucket traffic", "task", task, "days_ago", daysAgo, "year_month", yearMonth) - return nil -} - -func (e *ExecuteModular) gcMetaReadRecord(ctx context.Context, task coretask.GCMetaTask) error { - now := time.Now() - daysAgo := now.Add(-time.Duration(e.readRecordKeepLatestDay) * time.Hour * 24) - - err := e.baseApp.GfSpDB().DeleteAllReadRecordExpired(uint64(daysAgo.UnixMicro())) - if err != nil { - log.CtxErrorw(ctx, "failed to delete expired read record", "error", err) - return err - } - log.CtxInfow(ctx, "succeed to delete read record", "task", task, "daysAgo", daysAgo) - return nil -} - -func (e *ExecuteModular) HandleGCBucketMigrationBucket(ctx context.Context, task coretask.GCBucketMigrationTask) { - // TODO gc progress persist in db - var ( - groups []*bsdb.GlobalVirtualGroup - err error - startAfter uint64 = 0 - limit uint32 - objects []*metadatatypes.ObjectDetails - ) - bucketID := task.GetBucketID() - - reportProgress := func() bool { - reportErr := e.ReportTask(ctx, task) - log.CtxDebugw(ctx, "gc object task report progress", "task_info", task.Info(), "error", reportErr) - return errors.Is(reportErr, manager.ErrCanceledTask) - } - defer func() { - if err == nil { // succeed - reportProgress() - } else { // failed - task.SetError(err) - reportProgress() - } - log.CtxDebugw(ctx, "succeed to report gc bucket migration task", "task_info", task.Info(), "bucket_id", bucketID, "error", err) - }() - - // list gvg - groups, err = e.baseApp.GfBsDB().ListGvgByBucketID(common.BigToHash(math.NewUint(bucketID).BigInt())) - if err != nil { - log.CtxErrorw(ctx, "failed to list global virtual group by bucket id", "error", err) - return - } - - // current chain's gvg info compare metadata info - bucketInfo, err := e.baseApp.Consensus().QueryBucketInfoById(ctx, bucketID) - if err != nil || bucketInfo == nil { - log.Errorw("failed to get bucket by bucket name", "error", err) - return - } - vgfID := bucketInfo.GetGlobalVirtualGroupFamilyId() - log.CtxInfow(ctx, "begin to gc bucket migration by bucket id", "bucket_id", bucketID, "gvgs", groups, "vgfID", vgfID, "error", err) - - for _, gvg := range groups { - if gvg.FamilyId != vgfID { - log.CtxErrorw(ctx, "failed to check gvg's status with chain's status, the gvg may be old data", "error", err) - err = errors.New("gvg family id mismatch") - return - } - objects, err = e.baseApp.GfSpClient().ListObjectsByGVGAndBucketForGC(ctx, gvg.GlobalVirtualGroupId, bucketID, startAfter, limit) - if err != nil { - log.CtxErrorw(ctx, "failed to list objects by gvg and bucket for gc", "error", err) - return - } - // can delete, verify - for _, obj := range objects { - objectInfo := obj.GetObject().GetObjectInfo() - if e.gcChecker.checkGVGMatchSP(ctx, objectInfo, piecestore.PrimarySPRedundancyIndex) == ErrInvalidRedundancyIndex { - e.gcChecker.deleteObjectSegments(ctx, objectInfo) - log.CtxInfow(ctx, "succeed to delete objects by gvg and bucket for gc", "object", objectInfo, "error", err) - } - } - } - -} - // HandleRecoverPieceTask handle the recovery piece task, it will send request to other SPs to get piece data to recovery, // recovery the original data, and write the recovered data to piece store func (e *ExecuteModular) HandleRecoverPieceTask(ctx context.Context, task coretask.RecoveryPieceTask) { @@ -1030,109 +592,3 @@ func (e *ExecuteModular) getBucketPrimarySPEndpoint(ctx context.Context, bucketN } return "", ErrPrimaryNotFound } - -func (e *ExecuteModular) gcZombiePieceFromIntegrityMeta(ctx context.Context, task coretask.GCZombiePieceTask) error { - var ( - err error - waitingVerifyGCIntegrityPieces []*corespdb.IntegrityMeta - objInfoFromMetaData *storagetypes.ObjectInfo - objInfoFromChain *storagetypes.ObjectInfo - ) - - if waitingVerifyGCIntegrityPieces, err = e.baseApp.GfSpDB().ListIntegrityMetaByObjectIDRange(int64(task.GetStartObjectId()), int64(task.GetEndObjectId()), true); err != nil { - log.CtxErrorw(ctx, "failed to query deleted object list", "task_info", task.Info(), "error", err) - return err - } - - if len(waitingVerifyGCIntegrityPieces) == 0 { - log.CtxInfow(ctx, "no waiting gc objects", "task_info", task.Info()) - return nil - } - - for _, integrityObject := range waitingVerifyGCIntegrityPieces { - log.CtxDebugw(ctx, "gc zombie current waiting verify gc integrity meta piece", "integrity_meta", integrityObject) - // error - objID := integrityObject.ObjectID - // If metadata service has object info, use objInfoFromMetaData, otherwise query from chain - if objInfoFromMetaData, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { - log.Errorf("failed to get object meta from meta data service, will check from chain", "error", err) - if strings.Contains(err.Error(), "no such object from metadata") { - // could delete, has integrity hash, do not have object info, chain check verify check chain - if objInfoFromChain, err = e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)); err != nil { - if strings.Contains(err.Error(), "No such object") { - // 1) This object does not exist on the chain - e.gcChecker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) - } - } else { - // 2) query metadata error, but chain has the object info, gvg primary sp should has integrity meta - if e.gcChecker.checkGVGMatchSP(ctx, objInfoFromChain, integrityObject.RedundancyIndex) == ErrInvalidRedundancyIndex { - e.gcChecker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) - } - continue - } - } - } else { - // check integrity meta & object info - if e.gcChecker.checkGVGMatchSP(ctx, objInfoFromMetaData, integrityObject.RedundancyIndex) == ErrInvalidRedundancyIndex { - e.gcChecker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) - } - } - } - return nil -} - -func (e *ExecuteModular) gcZombiePieceFromPieceHash(ctx context.Context, task coretask.GCZombiePieceTask) error { - var ( - err error - waitingVerifyGCPieces []*spdb.GCPieceMeta - objectInfoFromMetadata *storagetypes.ObjectInfo - objInfoFromChain *storagetypes.ObjectInfo - ) - log.CtxDebugw(ctx, "start to gc zombie piece from piece hash", "task_info", task.Info()) - - // replicate piece must be secondary sp - if waitingVerifyGCPieces, err = e.baseApp.GfSpDB().ListReplicatePieceChecksumByObjectIDRange( - int64(task.GetStartObjectId()), int64(task.GetEndObjectId())); err != nil { - log.CtxErrorw(ctx, "failed to query replicate piece checksum", "task_info", task.Info(), "error", err) - return err - } - - if len(waitingVerifyGCPieces) == 0 { - log.CtxErrorw(ctx, "no waiting gc pieces", "task_info", task.Info()) - return nil - } - - for _, piece := range waitingVerifyGCPieces { - log.CtxDebugw(ctx, "gc zombie current waiting verify gc meta piece", "piece", piece) - // error - // migrating - // sealed ? timeout ? - objID := piece.ObjectID - // object info - if objectInfoFromMetadata, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { - // check from chain delete ? - if strings.Contains(err.Error(), "no such object from metadata") { - log.Infof("failed to get object meta, the zombie piece should be deleted", "error", err) - if objInfoFromChain, err = e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)); err != nil { - if strings.Contains(err.Error(), "No such object") { - // 1) This object does not exist on the chain - e.gcChecker.deletePieceAndPieceChecksum(ctx, piece) - } - } else { - // 2) query metadata error, but chain has the object info, gvg primary sp should has integrity meta - // TODO: refine - if e.gcChecker.checkGVGMatchSP(ctx, objInfoFromChain, piece.RedundancyIndex) == ErrInvalidRedundancyIndex { - e.gcChecker.deletePieceAndPieceChecksum(ctx, piece) - } - } - } - } else { - if e.gcChecker.checkGVGMatchSP(ctx, objectInfoFromMetadata, piece.RedundancyIndex) == ErrInvalidRedundancyIndex { - //task.SetError(ErrSecondaryMismatch) - // ignore error - e.gcChecker.deletePieceAndPieceChecksum(ctx, piece) - } - } - } - return nil -} diff --git a/modular/executor/executor.go b/modular/executor/executor.go index eee64c8f5..18bdcaa62 100644 --- a/modular/executor/executor.go +++ b/modular/executor/executor.go @@ -57,10 +57,10 @@ type ExecuteModular struct { enableSkipFailedToMigrateObject bool // only for debugging, and online config can only be false - spID uint32 - spMap map[uint32]*sptypes.StorageProvider - mutex sync.RWMutex - gcChecker *GCChecker + spID uint32 + spMap map[uint32]*sptypes.StorageProvider + mutex sync.RWMutex + gcWorker *GCWorker } func (e *ExecuteModular) Name() string { @@ -81,7 +81,7 @@ func (e *ExecuteModular) Start(ctx context.Context) error { for _, sp := range sps { e.spMap[sp.Id] = sp } - e.gcChecker = NewGCChecker(e) + e.gcWorker = NewGCWorker(e) go e.eventLoop(ctx) return nil } diff --git a/modular/manager/manage_task.go b/modular/manager/manage_task.go index 6bad4ebae..3a13a6585 100644 --- a/modular/manager/manage_task.go +++ b/modular/manager/manage_task.go @@ -40,7 +40,7 @@ var ( ErrNotifyMigrateSwapOut = gfsperrors.Register(module.ManageModularName, http.StatusNotAcceptable, 60006, "failed to notify swap out start") ) -const BucketMigrationGCWaitTime = 10 * time.Second +const bucketMigrationGCWaitTime = 10 * time.Second func ErrGfSpDBWithDetail(detail string) *gfsperrors.GfSpError { return gfsperrors.Register(module.ManageModularName, http.StatusInternalServerError, 65201, detail) @@ -674,7 +674,7 @@ func (m *ManageModular) HandleGCMetaTask(ctx context.Context, gcMetaTask task.GC func (m *ManageModular) GenerateGCBucketMigrationTask(ctx context.Context, bucketID, bucketSize uint64) { // src sp should wait meta data - <-time.After(BucketMigrationGCWaitTime) + <-time.After(bucketMigrationGCWaitTime) // success generate gc task, gc for bucket migration src sp gcBucketMigrationTask := &gfsptask.GfSpGCBucketMigrationTask{} diff --git a/modular/manager/manager_options.go b/modular/manager/manager_options.go index 12a5696ff..8e080e81b 100644 --- a/modular/manager/manager_options.go +++ b/modular/manager/manager_options.go @@ -170,28 +170,28 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( cfg.Parallel.GlobalChallengePieceTaskCacheSize = DefaultGlobalChallengePieceTaskCacheSize } - if cfg.Parallel.GlobalBatchGcObjectTimeInterval == 0 { - cfg.Parallel.GlobalBatchGcObjectTimeInterval = DefaultGlobalBatchGcObjectTimeInterval + if cfg.GC.GCObjectTimeInterval == 0 { + cfg.GC.GCObjectTimeInterval = DefaultGlobalBatchGcObjectTimeInterval } - if cfg.Parallel.GlobalGcObjectBlockInterval == 0 { - cfg.Parallel.GlobalGcObjectBlockInterval = DefaultGlobalGcObjectBlockInterval + if cfg.GC.GCObjectBlockInterval == 0 { + cfg.GC.GCObjectBlockInterval = DefaultGlobalGcObjectBlockInterval } - if cfg.Parallel.GlobalGcObjectSafeBlockDistance == 0 { - cfg.Parallel.GlobalGcObjectSafeBlockDistance = DefaultGlobalGcObjectSafeBlockDistance + if cfg.GC.GCObjectSafeBlockDistance == 0 { + cfg.GC.GCObjectSafeBlockDistance = DefaultGlobalGcObjectSafeBlockDistance } - if cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval == 0 { - cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval = DefaultGlobalBatchGcZombiePieceTimeInterval + if cfg.GC.GCZombiePieceTimeInterval == 0 { + cfg.GC.GCZombiePieceTimeInterval = DefaultGlobalBatchGcZombiePieceTimeInterval } - if cfg.Parallel.GlobalGcZombiePieceObjectIDInterval == 0 { - cfg.Parallel.GlobalGcZombiePieceObjectIDInterval = DefaultGlobalGcZombiePieceObjectIDInterval + if cfg.GC.GCZombiePieceObjectIDInterval == 0 { + cfg.GC.GCZombiePieceObjectIDInterval = DefaultGlobalGcZombiePieceObjectIDInterval } - if cfg.Parallel.GlobalGcZombieSafeObjectIDDistance == 0 { - cfg.Parallel.GlobalGcZombieSafeObjectIDDistance = DefaultGlobalGcZombieSafeObjectIDDistance + if cfg.GC.GCZombieSafeObjectIDDistance == 0 { + cfg.GC.GCZombieSafeObjectIDDistance = DefaultGlobalGcZombieSafeObjectIDDistance } - if cfg.Parallel.GlobalGcMetaTimeInterval == 0 { - cfg.Parallel.GlobalGcMetaTimeInterval = DefaultGlobalBatchGcMetaTimeInterval + if cfg.GC.GCMetaTimeInterval == 0 { + cfg.GC.GCMetaTimeInterval = DefaultGlobalBatchGcMetaTimeInterval } if cfg.Parallel.GlobalSyncConsensusInfoInterval == 0 { @@ -221,15 +221,15 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( manager.statisticsOutputInterval = DefaultStatisticsOutputInterval manager.maxUploadObjectNumber = cfg.Parallel.GlobalMaxUploadingParallel - manager.gcObjectTimeInterval = cfg.Parallel.GlobalBatchGcObjectTimeInterval - manager.gcObjectBlockInterval = cfg.Parallel.GlobalGcObjectBlockInterval - manager.gcSafeBlockDistance = cfg.Parallel.GlobalGcObjectSafeBlockDistance - manager.gcZombiePieceEnabled = cfg.Parallel.GlobalGCZombieEnabled - manager.gcZombiePieceTimeInterval = cfg.Parallel.GlobalBatchGcZombiePieceTimeInterval - manager.gcZombiePieceSafeObjectIDDistance = cfg.Parallel.GlobalGcZombieSafeObjectIDDistance - manager.gcZombiePieceObjectIDInterval = cfg.Parallel.GlobalGcZombiePieceObjectIDInterval - manager.gcMetaEnabled = cfg.Parallel.GlobalGCMetaEnabled - manager.gcMetaTimeInterval = cfg.Parallel.GlobalGcMetaTimeInterval + manager.gcObjectTimeInterval = cfg.GC.GCObjectTimeInterval + manager.gcObjectBlockInterval = cfg.GC.GCObjectBlockInterval + manager.gcSafeBlockDistance = cfg.GC.GCObjectSafeBlockDistance + manager.gcZombiePieceEnabled = cfg.GC.EnableGCZombie + manager.gcZombiePieceTimeInterval = cfg.GC.GCZombiePieceTimeInterval + manager.gcZombiePieceSafeObjectIDDistance = cfg.GC.GCZombieSafeObjectIDDistance + manager.gcZombiePieceObjectIDInterval = cfg.GC.GCZombiePieceObjectIDInterval + manager.gcMetaEnabled = cfg.GC.EnableGCMeta + manager.gcMetaTimeInterval = cfg.GC.GCMetaTimeInterval manager.syncConsensusInfoInterval = cfg.Parallel.GlobalSyncConsensusInfoInterval manager.discontinueBucketEnabled = cfg.Parallel.DiscontinueBucketEnabled manager.discontinueBucketTimeInterval = cfg.Parallel.DiscontinueBucketTimeInterval @@ -253,16 +253,16 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( manager.Name()+"-gc-object", cfg.Parallel.GlobalGCObjectParallel) manager.gcZombieQueue = cfg.Customize.NewStrategyTQueueWithLimitFunc( manager.Name()+"-gc-zombie", cfg.Parallel.GlobalGCZombieParallel) - manager.migrateGVGQueue = cfg.Customize.NewStrategyTQueueWithLimitFunc( - manager.Name()+"-migrate-gvg", cfg.Parallel.GlobalMigrateGVGParallel) manager.gcMetaQueue = cfg.Customize.NewStrategyTQueueWithLimitFunc( manager.Name()+"-gc-meta", cfg.Parallel.GlobalGCMetaParallel) + manager.gcBucketMigrationQueue = cfg.Customize.NewStrategyTQueueWithLimitFunc( + manager.Name()+"-gc-bucket-migration", cfg.Parallel.GlobalGCBucketMigrationParallel) + manager.migrateGVGQueue = cfg.Customize.NewStrategyTQueueWithLimitFunc( + manager.Name()+"-migrate-gvg", cfg.Parallel.GlobalMigrateGVGParallel) manager.downloadQueue = cfg.Customize.NewStrategyTQueueFunc( manager.Name()+"-cache-download-object", cfg.Parallel.GlobalDownloadObjectTaskCacheSize) manager.challengeQueue = cfg.Customize.NewStrategyTQueueFunc( manager.Name()+"-cache-challenge-piece", cfg.Parallel.GlobalChallengePieceTaskCacheSize) - manager.gcBucketMigrationQueue = cfg.Customize.NewStrategyTQueueWithLimitFunc( - manager.Name()+"-gc-bucket-migration", cfg.Parallel.GlobalGCBucketMigrationParallel) if manager.virtualGroupManager, err = cfg.Customize.NewVirtualGroupManagerFunc(manager.baseApp.OperatorAddress(), manager.baseApp.Consensus(), manager.enableHealthyChecker); err != nil { return err diff --git a/proto/base/types/gfsptask/task.proto b/proto/base/types/gfsptask/task.proto index abbbc6aa8..956b739c1 100644 --- a/proto/base/types/gfsptask/task.proto +++ b/proto/base/types/gfsptask/task.proto @@ -178,10 +178,7 @@ message GfSpGCMetaTask { GfSpTask task = 1; uint64 current_idx = 2; uint64 delete_count = 3; - bool running = 4; - // delete meta record before deletion time - int64 deletion_time = 5; - GfSpGCMetaTaskType meta_task_type = 6; + GfSpGCMetaTaskType meta_task_type = 4; } message GfSpMigrateGVGTask { diff --git a/store/sqldb/object_integrity.go b/store/sqldb/object_integrity.go index 0502733db..50efd22dd 100644 --- a/store/sqldb/object_integrity.go +++ b/store/sqldb/object_integrity.go @@ -207,16 +207,16 @@ func (s *SpDBImpl) DeleteObjectIntegrity(objectID uint64, redundancyIndex int32) type ByRedundancyIndexAndObjectID []*corespdb.IntegrityMeta -func (a ByRedundancyIndexAndObjectID) Len() int { return len(a) } +func (b ByRedundancyIndexAndObjectID) Len() int { return len(b) } // Less we want to sort as ascending here -func (a ByRedundancyIndexAndObjectID) Less(i, j int) bool { - if a[i].ObjectID == a[j].ObjectID { - return a[i].RedundancyIndex < a[j].RedundancyIndex +func (b ByRedundancyIndexAndObjectID) Less(i, j int) bool { + if b[i].ObjectID == b[j].ObjectID { + return b[i].RedundancyIndex < b[j].RedundancyIndex } - return a[i].ObjectID < a[j].ObjectID + return b[i].ObjectID < b[j].ObjectID } -func (a ByRedundancyIndexAndObjectID) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (b ByRedundancyIndexAndObjectID) Swap(i, j int) { b[i], b[j] = b[j], b[i] } // ListIntegrityMetaByObjectIDRange list objects info by a block number range func (s *SpDBImpl) ListIntegrityMetaByObjectIDRange(startObjectID int64, endObjectID int64, includePrivate bool) ([]*corespdb.IntegrityMeta, error) { From 21cbc3fff5ef8f0576444b95dd3cb10d573ad50a Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Mon, 20 Nov 2023 15:35:44 +0800 Subject: [PATCH 04/10] feat: add GetLatestObjectID api for metadata and some unit tests --- base/gfspclient/interface.go | 2 +- base/gfspclient/interface_mock.go | 82 +- base/gfspclient/metadata.go | 39 +- core/spdb/spdb.go | 8 +- core/spdb/spdb_mock.go | 72 +- deployment/localup/localup.sh | 6 +- modular/executor/execute_gc.go | 44 +- modular/executor/executor_task_test.go | 228 ++++- modular/manager/manage_task.go | 1 - modular/manager/manager.go | 13 +- modular/manager/manager_options.go | 50 +- modular/metadata/metadata_object_service.go | 13 + modular/metadata/types/metadata.pb.go | 986 +++++++++++++------- proto/modular/metadata/types/metadata.proto | 10 + store/bsdb/database.go | 2 + store/bsdb/database_mock.go | 274 +++--- store/bsdb/object.go | 56 -- store/bsdb/object_id_map.go | 16 + store/sqldb/traffic.go | 16 +- 19 files changed, 1224 insertions(+), 694 deletions(-) diff --git a/base/gfspclient/interface.go b/base/gfspclient/interface.go index 73d5114a5..626939cdf 100644 --- a/base/gfspclient/interface.go +++ b/base/gfspclient/interface.go @@ -96,7 +96,6 @@ type ManagerAPI interface { type MetadataAPI interface { GetUserBucketsCount(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) (int64, error) ListDeletedObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber uint64, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) - ListObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber uint64, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) GetUserBuckets(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.VGFInfoBucket, error) ListObjectsByBucketName(ctx context.Context, bucketName string, accountID string, maxKeys uint64, startAfter string, continuationToken string, delimiter string, prefix string, includeRemoved bool, opts ...grpc.DialOption) (objects []*types.Object, keyCount, maxKeysRe uint64, isTruncated bool, nextContinuationToken, name, prefixRe, delimiterRe string, commonPrefixes []string, continuationTokenRe string, err error) @@ -104,6 +103,7 @@ type MetadataAPI interface { GetBucketByBucketID(ctx context.Context, bucketID int64, includePrivate bool, opts ...grpc.DialOption) (*types.Bucket, error) ListExpiredBucketsBySp(ctx context.Context, createAt int64, primarySpID uint32, limit int64, opts ...grpc.DialOption) ([]*types.Bucket, error) GetObjectMeta(ctx context.Context, objectName string, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*types.Object, error) + GetLatestObjectID(ctx context.Context, opts ...grpc.DialOption) (uint64, error) GetPaymentByBucketName(ctx context.Context, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*payment_types.StreamRecord, error) GetPaymentByBucketID(ctx context.Context, bucketID int64, includePrivate bool, opts ...grpc.DialOption) (*payment_types.StreamRecord, error) VerifyPermission(ctx context.Context, Operator string, bucketName string, objectName string, actionType permission_types.ActionType, opts ...grpc.DialOption) (*permission_types.Effect, error) diff --git a/base/gfspclient/interface_mock.go b/base/gfspclient/interface_mock.go index 60abd80cc..8eca94184 100644 --- a/base/gfspclient/interface_mock.go +++ b/base/gfspclient/interface_mock.go @@ -609,6 +609,26 @@ func (mr *MockGfSpClientAPIMockRecorder) GetLatestBucketReadQuota(ctx, bucketID return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestBucketReadQuota", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetLatestBucketReadQuota), varargs...) } +// GetLatestObjectID mocks base method. +func (m *MockGfSpClientAPI) GetLatestObjectID(ctx context.Context, opts ...grpc.DialOption) (uint64, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetLatestObjectID", varargs...) + ret0, _ := ret[0].(uint64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestObjectID indicates an expected call of GetLatestObjectID. +func (mr *MockGfSpClientAPIMockRecorder) GetLatestObjectID(ctx interface{}, opts ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestObjectID", reflect.TypeOf((*MockGfSpClientAPI)(nil).GetLatestObjectID), varargs...) +} + // GetObject mocks base method. func (m *MockGfSpClientAPI) GetObject(ctx context.Context, downloadObjectTask task.DownloadObjectTask, opts ...grpc.DialOption) ([]byte, error) { m.ctrl.T.Helper() @@ -1186,27 +1206,6 @@ func (mr *MockGfSpClientAPIMockRecorder) ListObjectPolicies(ctx, objectName, buc return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectPolicies", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectPolicies), varargs...) } -// ListObjectsByBlockNumberRange mocks base method. -func (m *MockGfSpClientAPI) ListObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) { - m.ctrl.T.Helper() - varargs := []interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListObjectsByBlockNumberRange", varargs...) - ret0, _ := ret[0].([]*types.Object) - ret1, _ := ret[1].(uint64) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// ListObjectsByBlockNumberRange indicates an expected call of ListObjectsByBlockNumberRange. -func (mr *MockGfSpClientAPIMockRecorder) ListObjectsByBlockNumberRange(ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate interface{}, opts ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBlockNumberRange", reflect.TypeOf((*MockGfSpClientAPI)(nil).ListObjectsByBlockNumberRange), varargs...) -} - // ListObjectsByBucketName mocks base method. func (m *MockGfSpClientAPI) ListObjectsByBucketName(ctx context.Context, bucketName, accountID string, maxKeys uint64, startAfter, continuationToken, delimiter, prefix string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.Object, uint64, uint64, bool, string, string, string, string, []string, string, error) { m.ctrl.T.Helper() @@ -3132,6 +3131,26 @@ func (mr *MockMetadataAPIMockRecorder) GetLatestBucketReadQuota(ctx, bucketID in return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestBucketReadQuota", reflect.TypeOf((*MockMetadataAPI)(nil).GetLatestBucketReadQuota), varargs...) } +// GetLatestObjectID mocks base method. +func (m *MockMetadataAPI) GetLatestObjectID(ctx context.Context, opts ...grpc.DialOption) (uint64, error) { + m.ctrl.T.Helper() + varargs := []interface{}{ctx} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetLatestObjectID", varargs...) + ret0, _ := ret[0].(uint64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestObjectID indicates an expected call of GetLatestObjectID. +func (mr *MockMetadataAPIMockRecorder) GetLatestObjectID(ctx interface{}, opts ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{ctx}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestObjectID", reflect.TypeOf((*MockMetadataAPI)(nil).GetLatestObjectID), varargs...) +} + // GetObjectByID mocks base method. func (m *MockMetadataAPI) GetObjectByID(ctx context.Context, objectID uint64, opts ...grpc.DialOption) (*types3.ObjectInfo, error) { m.ctrl.T.Helper() @@ -3595,27 +3614,6 @@ func (mr *MockMetadataAPIMockRecorder) ListObjectPolicies(ctx, objectName, bucke return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectPolicies", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectPolicies), varargs...) } -// ListObjectsByBlockNumberRange mocks base method. -func (m *MockMetadataAPI) ListObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber, endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) { - m.ctrl.T.Helper() - varargs := []interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListObjectsByBlockNumberRange", varargs...) - ret0, _ := ret[0].([]*types.Object) - ret1, _ := ret[1].(uint64) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// ListObjectsByBlockNumberRange indicates an expected call of ListObjectsByBlockNumberRange. -func (mr *MockMetadataAPIMockRecorder) ListObjectsByBlockNumberRange(ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate interface{}, opts ...interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{ctx, spOperatorAddress, startBlockNumber, endBlockNumber, includePrivate}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBlockNumberRange", reflect.TypeOf((*MockMetadataAPI)(nil).ListObjectsByBlockNumberRange), varargs...) -} - // ListObjectsByBucketName mocks base method. func (m *MockMetadataAPI) ListObjectsByBucketName(ctx context.Context, bucketName, accountID string, maxKeys uint64, startAfter, continuationToken, delimiter, prefix string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.Object, uint64, uint64, bool, string, string, string, string, []string, string, error) { m.ctrl.T.Helper() diff --git a/base/gfspclient/metadata.go b/base/gfspclient/metadata.go index 67e24bcfb..831b3564b 100644 --- a/base/gfspclient/metadata.go +++ b/base/gfspclient/metadata.go @@ -54,26 +54,6 @@ func (s *GfSpClient) ListDeletedObjectsByBlockNumberRange(ctx context.Context, s return resp.GetObjects(), uint64(resp.GetEndBlockNumber()), nil } -func (s *GfSpClient) ListObjectsByBlockNumberRange(ctx context.Context, spOperatorAddress string, startBlockNumber uint64, - endBlockNumber uint64, includePrivate bool, opts ...grpc.DialOption) ([]*types.Object, uint64, error) { - conn, err := s.Connection(ctx, s.metadataEndpoint, opts...) - if err != nil { - return nil, uint64(0), ErrRPCUnknownWithDetail("client failed to connect metadata, error: " + err.Error()) - } - defer conn.Close() - req := &types.GfSpListDeletedObjectsByBlockNumberRangeRequest{ - StartBlockNumber: int64(startBlockNumber), - EndBlockNumber: int64(endBlockNumber), - IncludePrivate: includePrivate, - } - resp, err := types.NewGfSpMetadataServiceClient(conn).GfSpListDeletedObjectsByBlockNumberRange(ctx, req) - if err != nil { - log.CtxErrorw(ctx, "failed to list deleted objects by block number range", "error", err) - return nil, uint64(0), ErrRPCUnknownWithDetail("failed to list deleted objects by block number range, error: " + err.Error()) - } - return resp.GetObjects(), uint64(resp.GetEndBlockNumber()), nil -} - func (s *GfSpClient) GetUserBuckets(ctx context.Context, account string, includeRemoved bool, opts ...grpc.DialOption) ([]*types.VGFInfoBucket, error) { conn, err := s.Connection(ctx, s.metadataEndpoint, opts...) if err != nil { @@ -218,6 +198,25 @@ func (s *GfSpClient) GetObjectMeta(ctx context.Context, objectName string, bucke return resp.GetObject(), nil } +// GetLatestObjectID get latest object id +func (s *GfSpClient) GetLatestObjectID(ctx context.Context, opts ...grpc.DialOption) (uint64, error) { + conn, err := s.Connection(ctx, s.metadataEndpoint, opts...) + if err != nil { + return 0, ErrRPCUnknownWithDetail("client failed to connect metadata, error: " + err.Error()) + } + defer conn.Close() + + req := &types.GfSpGetLatestObjectIDRequest{} + + resp, err := types.NewGfSpMetadataServiceClient(conn).GfSpGetLatestObjectID(ctx, req) + ctx = log.Context(ctx, resp) + if err != nil { + log.CtxErrorw(ctx, "failed to send get latest object id rpc", "error", err) + return 0, ErrRPCUnknownWithDetail("failed to send get latest object id rpc, error: " + err.Error()) + } + return resp.GetObjectId(), nil +} + // GetPaymentByBucketName get bucket payment info by a bucket name func (s *GfSpClient) GetPaymentByBucketName(ctx context.Context, bucketName string, includePrivate bool, opts ...grpc.DialOption) (*payment_types.StreamRecord, error) { diff --git a/core/spdb/spdb.go b/core/spdb/spdb.go index 092e738d6..0e5dd587a 100644 --- a/core/spdb/spdb.go +++ b/core/spdb/spdb.go @@ -116,10 +116,10 @@ type TrafficDB interface { // GetUserReadRecord return user record list by time range. GetUserReadRecord(userAddress string, timeRange *TrafficTimeRange) ([]*ReadRecord, error) - // DeleteAllReadRecordExpired delete all read record before ts - DeleteAllReadRecordExpired(ts uint64) (err error) - // DeleteAllBucketTrafficExpired delete all bucket traffic before yearMonth - DeleteAllBucketTrafficExpired(yearMonth string) (err error) + // DeleteExpiredReadRecord delete all read record before ts + DeleteExpiredReadRecord(ts uint64) (err error) + // DeleteExpiredBucketTraffic delete all bucket traffic before yearMonth, when large dataset + DeleteExpiredBucketTraffic(yearMonth string) (err error) } // SPInfoDB defines a series of sp interfaces. diff --git a/core/spdb/spdb_mock.go b/core/spdb/spdb_mock.go index bd78a0e63..5f8919131 100644 --- a/core/spdb/spdb_mock.go +++ b/core/spdb/spdb_mock.go @@ -51,60 +51,60 @@ func (mr *MockSPDBMockRecorder) CheckQuotaAndAddReadRecord(record, quota interfa return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckQuotaAndAddReadRecord", reflect.TypeOf((*MockSPDB)(nil).CheckQuotaAndAddReadRecord), record, quota) } -// DeleteAllBucketTrafficExpired mocks base method. -func (m *MockSPDB) DeleteAllBucketTrafficExpired(yearMonth string) error { +// DeleteAllReplicatePieceChecksum mocks base method. +func (m *MockSPDB) DeleteAllReplicatePieceChecksum(objectID uint64, redundancyIdx int32, pieceCount uint32) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllBucketTrafficExpired", yearMonth) + ret := m.ctrl.Call(m, "DeleteAllReplicatePieceChecksum", objectID, redundancyIdx, pieceCount) ret0, _ := ret[0].(error) return ret0 } -// DeleteAllBucketTrafficExpired indicates an expected call of DeleteAllBucketTrafficExpired. -func (mr *MockSPDBMockRecorder) DeleteAllBucketTrafficExpired(yearMonth interface{}) *gomock.Call { +// DeleteAllReplicatePieceChecksum indicates an expected call of DeleteAllReplicatePieceChecksum. +func (mr *MockSPDBMockRecorder) DeleteAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllBucketTrafficExpired", reflect.TypeOf((*MockSPDB)(nil).DeleteAllBucketTrafficExpired), yearMonth) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReplicatePieceChecksum", reflect.TypeOf((*MockSPDB)(nil).DeleteAllReplicatePieceChecksum), objectID, redundancyIdx, pieceCount) } -// DeleteAllReadRecordExpired mocks base method. -func (m *MockSPDB) DeleteAllReadRecordExpired(ts uint64) error { +// DeleteAllReplicatePieceChecksumOptimized mocks base method. +func (m *MockSPDB) DeleteAllReplicatePieceChecksumOptimized(objectID uint64, redundancyIdx int32) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllReadRecordExpired", ts) + ret := m.ctrl.Call(m, "DeleteAllReplicatePieceChecksumOptimized", objectID, redundancyIdx) ret0, _ := ret[0].(error) return ret0 } -// DeleteAllReadRecordExpired indicates an expected call of DeleteAllReadRecordExpired. -func (mr *MockSPDBMockRecorder) DeleteAllReadRecordExpired(ts interface{}) *gomock.Call { +// DeleteAllReplicatePieceChecksumOptimized indicates an expected call of DeleteAllReplicatePieceChecksumOptimized. +func (mr *MockSPDBMockRecorder) DeleteAllReplicatePieceChecksumOptimized(objectID, redundancyIdx interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReadRecordExpired", reflect.TypeOf((*MockSPDB)(nil).DeleteAllReadRecordExpired), ts) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReplicatePieceChecksumOptimized", reflect.TypeOf((*MockSPDB)(nil).DeleteAllReplicatePieceChecksumOptimized), objectID, redundancyIdx) } -// DeleteAllReplicatePieceChecksum mocks base method. -func (m *MockSPDB) DeleteAllReplicatePieceChecksum(objectID uint64, redundancyIdx int32, pieceCount uint32) error { +// DeleteExpiredBucketTraffic mocks base method. +func (m *MockSPDB) DeleteExpiredBucketTraffic(yearMonth string) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllReplicatePieceChecksum", objectID, redundancyIdx, pieceCount) + ret := m.ctrl.Call(m, "DeleteExpiredBucketTraffic", yearMonth) ret0, _ := ret[0].(error) return ret0 } -// DeleteAllReplicatePieceChecksum indicates an expected call of DeleteAllReplicatePieceChecksum. -func (mr *MockSPDBMockRecorder) DeleteAllReplicatePieceChecksum(objectID, redundancyIdx, pieceCount interface{}) *gomock.Call { +// DeleteExpiredBucketTraffic indicates an expected call of DeleteExpiredBucketTraffic. +func (mr *MockSPDBMockRecorder) DeleteExpiredBucketTraffic(yearMonth interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReplicatePieceChecksum", reflect.TypeOf((*MockSPDB)(nil).DeleteAllReplicatePieceChecksum), objectID, redundancyIdx, pieceCount) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredBucketTraffic", reflect.TypeOf((*MockSPDB)(nil).DeleteExpiredBucketTraffic), yearMonth) } -// DeleteAllReplicatePieceChecksumOptimized mocks base method. -func (m *MockSPDB) DeleteAllReplicatePieceChecksumOptimized(objectID uint64, redundancyIdx int32) error { +// DeleteExpiredReadRecord mocks base method. +func (m *MockSPDB) DeleteExpiredReadRecord(ts uint64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllReplicatePieceChecksumOptimized", objectID, redundancyIdx) + ret := m.ctrl.Call(m, "DeleteExpiredReadRecord", ts) ret0, _ := ret[0].(error) return ret0 } -// DeleteAllReplicatePieceChecksumOptimized indicates an expected call of DeleteAllReplicatePieceChecksumOptimized. -func (mr *MockSPDBMockRecorder) DeleteAllReplicatePieceChecksumOptimized(objectID, redundancyIdx interface{}) *gomock.Call { +// DeleteExpiredReadRecord indicates an expected call of DeleteExpiredReadRecord. +func (mr *MockSPDBMockRecorder) DeleteExpiredReadRecord(ts interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReplicatePieceChecksumOptimized", reflect.TypeOf((*MockSPDB)(nil).DeleteAllReplicatePieceChecksumOptimized), objectID, redundancyIdx) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredReadRecord", reflect.TypeOf((*MockSPDB)(nil).DeleteExpiredReadRecord), ts) } // DeleteGCObjectProgress mocks base method. @@ -1437,32 +1437,32 @@ func (mr *MockTrafficDBMockRecorder) CheckQuotaAndAddReadRecord(record, quota in return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckQuotaAndAddReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).CheckQuotaAndAddReadRecord), record, quota) } -// DeleteAllBucketTrafficExpired mocks base method. -func (m *MockTrafficDB) DeleteAllBucketTrafficExpired(yearMonth string) error { +// DeleteExpiredBucketTraffic mocks base method. +func (m *MockTrafficDB) DeleteExpiredBucketTraffic(yearMonth string) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllBucketTrafficExpired", yearMonth) + ret := m.ctrl.Call(m, "DeleteExpiredBucketTraffic", yearMonth) ret0, _ := ret[0].(error) return ret0 } -// DeleteAllBucketTrafficExpired indicates an expected call of DeleteAllBucketTrafficExpired. -func (mr *MockTrafficDBMockRecorder) DeleteAllBucketTrafficExpired(yearMonth interface{}) *gomock.Call { +// DeleteExpiredBucketTraffic indicates an expected call of DeleteExpiredBucketTraffic. +func (mr *MockTrafficDBMockRecorder) DeleteExpiredBucketTraffic(yearMonth interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllBucketTrafficExpired", reflect.TypeOf((*MockTrafficDB)(nil).DeleteAllBucketTrafficExpired), yearMonth) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredBucketTraffic", reflect.TypeOf((*MockTrafficDB)(nil).DeleteExpiredBucketTraffic), yearMonth) } -// DeleteAllReadRecordExpired mocks base method. -func (m *MockTrafficDB) DeleteAllReadRecordExpired(ts uint64) error { +// DeleteExpiredReadRecord mocks base method. +func (m *MockTrafficDB) DeleteExpiredReadRecord(ts uint64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteAllReadRecordExpired", ts) + ret := m.ctrl.Call(m, "DeleteExpiredReadRecord", ts) ret0, _ := ret[0].(error) return ret0 } -// DeleteAllReadRecordExpired indicates an expected call of DeleteAllReadRecordExpired. -func (mr *MockTrafficDBMockRecorder) DeleteAllReadRecordExpired(ts interface{}) *gomock.Call { +// DeleteExpiredReadRecord indicates an expected call of DeleteExpiredReadRecord. +func (mr *MockTrafficDBMockRecorder) DeleteExpiredReadRecord(ts interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteAllReadRecordExpired", reflect.TypeOf((*MockTrafficDB)(nil).DeleteAllReadRecordExpired), ts) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).DeleteExpiredReadRecord), ts) } // GetBucketReadRecord mocks base method. diff --git a/deployment/localup/localup.sh b/deployment/localup/localup.sh index d4ba87a06..b1f8e19dd 100644 --- a/deployment/localup/localup.sh +++ b/deployment/localup/localup.sh @@ -156,8 +156,10 @@ function make_config() { sed -i -e "s/SubscribeSwapOutExitEventIntervalMillisecond = .*/SubscribeSwapOutExitEventIntervalMillisecond = 100/g" config.toml sed -i -e "s/SubscribeBucketMigrateEventIntervalMillisecond = .*/SubscribeBucketMigrateEventIntervalMillisecond = 20/g" config.toml sed -i -e "s/GVGPreferSPList = \[\]/GVGPreferSPList = \[1,2,3,4,5,6,7,8\]/g" config.toml - sed -i -e "s/GCZombieEnabled = .*/GCZombieEnabled = true/g" config.toml - sed -i -e "s/GCMetaEnabled = .*/GCMetaEnabled = true/g" config.toml + sed -i -e "s/EnableGCZombie = .*/EnableGCZombie = true/g" config.toml + sed -i -e "s/EnableGCMeta = .*/EnableGCMeta = true/g" config.toml + sed -i -e "s/GCMetaTimeInterval = .*/GCMetaTimeInterval = 3/g" config.toml + sed -i -e "s/GCZombiePieceTimeInterval = .*/GCZombiePieceTimeInterval = 3/g" config.toml echo "succeed to generate config.toml in "${sp_dir} cd - >/dev/null diff --git a/modular/executor/execute_gc.go b/modular/executor/execute_gc.go index 70b9d03f4..97d952865 100644 --- a/modular/executor/execute_gc.go +++ b/modular/executor/execute_gc.go @@ -106,17 +106,17 @@ func (gc *GCWorker) deletePieceAndPieceChecksum(ctx context.Context, piece *spdb // isAllowGCCheck func (gc *GCWorker) isAllowGCCheck(objectInfo *storagetypes.ObjectInfo, bucketInfo *metadatatypes.Bucket) bool { - // object not in sealed status + // the object is not in a sealed status if objectInfo.GetObjectStatus() != storagetypes.OBJECT_STATUS_SEALED { log.Infow("the object isn't sealed, do not need to gc check") return false } - // bucket migrating + // the bucket is in the process of migration if bucketInfo.GetBucketInfo().GetBucketStatus() == storagetypes.BUCKET_STATUS_MIGRATING { log.Infow("bucket is migrating, do not need to gc check") return false } - log.Infow("the object is sealed and the bucket is not migrating, the object can gc", "object", objectInfo, "bucket", bucketInfo) + log.Debugw("the object is sealed and the bucket is not migrating, the object can gc", "object", objectInfo, "bucket", bucketInfo) return true } @@ -353,12 +353,10 @@ func (e *ExecuteModular) HandleGCMetaTask(ctx context.Context, task coretask.GCM } func (e *ExecuteModular) gcMetaBucketTraffic(ctx context.Context, task coretask.GCMetaTask) error { - // TODO list buckets when large dataset now := time.Now() - daysAgo := now.Add(-time.Duration(e.bucketTrafficKeepLatestDay) * time.Hour * 24) + daysAgo := now.Add(-time.Duration(e.bucketTrafficKeepLatestDay) * 24 * time.Hour) yearMonth := sqldb.TimeToYearMonth(daysAgo) - - err := e.baseApp.GfSpDB().DeleteAllBucketTrafficExpired(yearMonth) + err := e.baseApp.GfSpDB().DeleteExpiredBucketTraffic(yearMonth) if err != nil { log.CtxErrorw(ctx, "failed to delete expired bucket traffic", "error", err) return err @@ -372,12 +370,12 @@ func (e *ExecuteModular) gcMetaReadRecord(ctx context.Context, task coretask.GCM now := time.Now() daysAgo := now.Add(-time.Duration(e.readRecordKeepLatestDay) * time.Hour * 24) - err := e.baseApp.GfSpDB().DeleteAllReadRecordExpired(uint64(daysAgo.UnixMicro())) + err := e.baseApp.GfSpDB().DeleteExpiredReadRecord(uint64(daysAgo.UnixMicro())) if err != nil { log.CtxErrorw(ctx, "failed to delete expired read record", "error", err) return err } - log.CtxInfow(ctx, "succeed to delete read record", "task", task, "daysAgo", daysAgo) + log.CtxInfow(ctx, "succeed to delete expired read record", "task", task, "daysAgo", daysAgo) return nil } @@ -455,31 +453,30 @@ func (e *ExecuteModular) gcZombiePieceFromIntegrityMeta(ctx context.Context, tas ) if waitingVerifyGCIntegrityPieces, err = e.baseApp.GfSpDB().ListIntegrityMetaByObjectIDRange(int64(task.GetStartObjectId()), int64(task.GetEndObjectId()), true); err != nil { - log.CtxErrorw(ctx, "failed to query deleted object list", "task_info", task.Info(), "error", err) + log.CtxErrorw(ctx, "failed to query gc integrity pieces list", "task_info", task.Info(), "error", err) return err } if len(waitingVerifyGCIntegrityPieces) == 0 { - log.CtxInfow(ctx, "no waiting gc objects", "task_info", task.Info()) + log.CtxInfow(ctx, "no waiting gc integrity pieces", "task_info", task.Info()) return nil } for _, integrityObject := range waitingVerifyGCIntegrityPieces { log.CtxDebugw(ctx, "gc zombie current waiting verify gc integrity meta piece", "integrity_meta", integrityObject) - // error objID := integrityObject.ObjectID // If metadata service has object info, use objInfoFromMetaData, otherwise query from chain if objInfoFromMetaData, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { log.Errorf("failed to get object meta from meta data service, will check from chain", "error", err) if strings.Contains(err.Error(), "no such object from metadata") { - // could delete, has integrity hash, do not have object info, chain check verify check chain + // If deletion is possible, has integrity hash, lacks object info, perform a chain check, and verify against the chain. if objInfoFromChain, err = e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)); err != nil { if strings.Contains(err.Error(), "No such object") { // 1) This object does not exist on the chain e.gcWorker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) } } else { - // 2) query metadata error, but chain has the object info, gvg primary sp should has integrity meta + // 2) query metadata error, but chain has the object info, gvg primary sp should have integrity meta if e.gcWorker.checkGVGMatchSP(ctx, objInfoFromChain, integrityObject.RedundancyIndex) == ErrInvalidRedundancyIndex { e.gcWorker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) } @@ -487,7 +484,7 @@ func (e *ExecuteModular) gcZombiePieceFromIntegrityMeta(ctx context.Context, tas } } } else { - // check integrity meta & object info + // 3) check integrity meta & object info if e.gcWorker.checkGVGMatchSP(ctx, objInfoFromMetaData, integrityObject.RedundancyIndex) == ErrInvalidRedundancyIndex { e.gcWorker.deleteObjectPiecesAndIntegrityMeta(ctx, integrityObject) } @@ -505,7 +502,7 @@ func (e *ExecuteModular) gcZombiePieceFromPieceHash(ctx context.Context, task co ) log.CtxDebugw(ctx, "start to gc zombie piece from piece hash", "task_info", task.Info()) - // replicate piece must be secondary sp + // replicate piece checksum must on secondary sp if waitingVerifyGCPieces, err = e.baseApp.GfSpDB().ListReplicatePieceChecksumByObjectIDRange( int64(task.GetStartObjectId()), int64(task.GetEndObjectId())); err != nil { log.CtxErrorw(ctx, "failed to query replicate piece checksum", "task_info", task.Info(), "error", err) @@ -519,32 +516,27 @@ func (e *ExecuteModular) gcZombiePieceFromPieceHash(ctx context.Context, task co for _, piece := range waitingVerifyGCPieces { log.CtxDebugw(ctx, "gc zombie current waiting verify gc meta piece", "piece", piece) - // error - // migrating - // sealed ? timeout ? objID := piece.ObjectID - // object info + // Get object information from metadata if objectInfoFromMetadata, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { - // check from chain delete ? + // If the object doesn't exist in metadata, recheck from the chain before proceeding with the deletion. if strings.Contains(err.Error(), "no such object from metadata") { - log.Infof("failed to get object meta, the zombie piece should be deleted", "error", err) if objInfoFromChain, err = e.baseApp.Consensus().QueryObjectInfoByID(ctx, strconv.FormatUint(objID, 10)); err != nil { if strings.Contains(err.Error(), "No such object") { // 1) This object does not exist on the chain + log.Infof("the object doesn't exist in metadata and chain, the zombie piece should be deleted", "piece", piece) e.gcWorker.deletePieceAndPieceChecksum(ctx, piece) } } else { - // 2) query metadata error, but chain has the object info, gvg primary sp should has integrity meta - // TODO: refine + // 2) If there is an error querying metadata but the chain contains object information, recheck the meta. if e.gcWorker.checkGVGMatchSP(ctx, objInfoFromChain, piece.RedundancyIndex) == ErrInvalidRedundancyIndex { e.gcWorker.deletePieceAndPieceChecksum(ctx, piece) } } } } else { + // 3) Validate using Metadata information. if e.gcWorker.checkGVGMatchSP(ctx, objectInfoFromMetadata, piece.RedundancyIndex) == ErrInvalidRedundancyIndex { - //task.SetError(ErrSecondaryMismatch) - // ignore error e.gcWorker.deletePieceAndPieceChecksum(ctx, piece) } } diff --git a/modular/executor/executor_task_test.go b/modular/executor/executor_task_test.go index 92814cfdb..327fd279b 100644 --- a/modular/executor/executor_task_test.go +++ b/modular/executor/executor_task_test.go @@ -14,6 +14,7 @@ import ( "github.com/bnb-chain/greenfield-storage-provider/base/types/gfsptask" "github.com/bnb-chain/greenfield-storage-provider/core/consensus" "github.com/bnb-chain/greenfield-storage-provider/core/piecestore" + corercmgr "github.com/bnb-chain/greenfield-storage-provider/core/rcmgr" "github.com/bnb-chain/greenfield-storage-provider/core/spdb" corespdb "github.com/bnb-chain/greenfield-storage-provider/core/spdb" coretask "github.com/bnb-chain/greenfield-storage-provider/core/task" @@ -23,6 +24,11 @@ import ( virtual_types "github.com/bnb-chain/greenfield/x/virtualgroup/types" ) +const ( + mockBucketName = "mock-bucket-name" + mockObjectName = "mock-object-name" +) + func TestErrGfSpDBWithDetail(t *testing.T) { err := ErrGfSpDBWithDetail("test") assert.NotNil(t, err) @@ -710,16 +716,218 @@ func TestExecuteModular_HandleGCObjectTask(t *testing.T) { } } -// TODO add unit test -//func TestExecuteModular_HandleGCZombiePieceTask(t *testing.T) { -// e := setup(t) -// e.HandleGCZombiePieceTask(context.TODO(), nil) -//} -// -//func TestExecuteModular_HandleGCMetaTask(t *testing.T) { -// e := setup(t) -// e.HandleGCMetaTask(context.TODO(), nil) -//} +func TestExecuteModular_HandleGCZombiePieceTask(t *testing.T) { + cases := []struct { + name string + task coretask.GCZombiePieceTask + fn func() *ExecuteModular + }{ + { + name: "succeed to gc an zombie piece", + task: &gfsptask.GfSpGCZombiePieceTask{ + Task: &gfsptask.GfSpTask{}, + }, + fn: func() *ExecuteModular { + e := setup(t) + + ctrl := gomock.NewController(t) + m := gfspclient.NewMockGfSpClientAPI(ctrl) + waitingIntegrityPieces := []*corespdb.IntegrityMeta{ + { + ObjectID: 1, + RedundancyIndex: 1, + IntegrityChecksum: []byte("mock integrity checksum"), + PieceChecksumList: [][]byte{[]byte{35, 13, 131, 88, 220, 142, 136, 144, 180, 197, 141, 238, 182, 41, 18, 238, 47, + 32, 53, 122, 233, 42, 92, 200, 97, 185, 142, 104, 254, 49, 172, 181}}, + }, + } + + objectInfo := &storagetypes.ObjectInfo{ + ObjectStatus: storagetypes.OBJECT_STATUS_SEALED, Id: sdkmath.NewUint(1), BucketName: mockBucketName} + + bucketInfo := &storagetypes.BucketInfo{Id: sdkmath.NewUint(1), BucketStatus: storagetypes.BUCKET_STATUS_CREATED} + + m.EXPECT().ReportTask(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + m.EXPECT().GetObjectByID(gomock.Any(), gomock.Any()).Return(objectInfo, nil).AnyTimes() + m.EXPECT().GetBucketByBucketName(gomock.Any(), gomock.Any(), gomock.Any()).Return(&metadatatypes.Bucket{ + BucketInfo: bucketInfo}, nil).AnyTimes() + m.EXPECT().GetGlobalVirtualGroup(gomock.Any(), gomock.Any(), gomock.Any()).Return(&virtual_types.GlobalVirtualGroup{ + PrimarySpId: 1, + SecondarySpIds: []uint32{2, 3, 4, 5, 6, 7}}, nil).Times(1) + e.baseApp.SetGfSpClient(m) + + resourceMock := corercmgr.NewMockResourceManager(ctrl) + m1 := corercmgr.NewMockResourceScope(ctrl) + resourceMock.EXPECT().OpenService(gomock.Any()).DoAndReturn(func(svc string) (corercmgr.ResourceScope, error) { + return m1, nil + }).Times(1) + e.baseApp.SetResourceManager(resourceMock) + + consensusMock := consensus.NewMockConsensus(ctrl) + consensusMock.EXPECT().QuerySP(gomock.Any(), gomock.Any()).Return(&sptypes.StorageProvider{Id: 1}, nil).Times(1) + consensusMock.EXPECT().ListSPs(gomock.Any()).Return([]*sptypes.StorageProvider{ + {Id: 1, Endpoint: "endpoint"}}, nil).Times(1) + e.baseApp.SetConsensus(consensusMock) + + m2 := piecestore.NewMockPieceOp(ctrl) + m2.EXPECT().ECPieceKey(gomock.Any(), gomock.Any(), gomock.Any()).Return("test").AnyTimes() + e.baseApp.SetPieceOp(m2) + + m3 := piecestore.NewMockPieceStore(ctrl) + m3.EXPECT().DeletePiece(gomock.Any(), gomock.Any()).Return(nil).Times(2) + e.baseApp.SetPieceStore(m3) + + m4 := corespdb.NewMockSPDB(ctrl) + m4.EXPECT().DeleteObjectIntegrity(gomock.Any(), gomock.Any()).Return(nil).Times(1) + m4.EXPECT().ListIntegrityMetaByObjectIDRange(gomock.Any(), gomock.Any(), gomock.Any()).Return(waitingIntegrityPieces, nil).AnyTimes() + m4.EXPECT().ListReplicatePieceChecksumByObjectIDRange(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + e.baseApp.SetGfSpDB(m4) + + e.statisticsOutputInterval = 1 + err := e.Start(context.TODO()) + assert.Equal(t, nil, err) + + return e + }, + }, + { + name: "succeed to gc an zombie piece from piece hash", + task: &gfsptask.GfSpGCZombiePieceTask{ + Task: &gfsptask.GfSpTask{}, + }, + fn: func() *ExecuteModular { + e := setup(t) + + ctrl := gomock.NewController(t) + m := gfspclient.NewMockGfSpClientAPI(ctrl) + waitingGCPieces := []*corespdb.GCPieceMeta{ + { + ObjectID: 1, + SegmentIndex: 0, + RedundancyIndex: 1, + PieceChecksum: "mock integrity checksum", + }, + } + + objectInfo := &storagetypes.ObjectInfo{ + ObjectStatus: storagetypes.OBJECT_STATUS_SEALED, Id: sdkmath.NewUint(1), BucketName: mockBucketName} + + bucketInfo := &storagetypes.BucketInfo{Id: sdkmath.NewUint(1), BucketStatus: storagetypes.BUCKET_STATUS_CREATED} + + m.EXPECT().ReportTask(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + m.EXPECT().GetObjectByID(gomock.Any(), gomock.Any()).Return(objectInfo, nil).AnyTimes() + m.EXPECT().GetBucketByBucketName(gomock.Any(), gomock.Any(), gomock.Any()).Return(&metadatatypes.Bucket{ + BucketInfo: bucketInfo}, nil).AnyTimes() + m.EXPECT().GetGlobalVirtualGroup(gomock.Any(), gomock.Any(), gomock.Any()).Return(&virtual_types.GlobalVirtualGroup{ + PrimarySpId: 1, + SecondarySpIds: []uint32{2, 3, 4, 5, 6, 7}}, nil).Times(1) + e.baseApp.SetGfSpClient(m) + + resourceMock := corercmgr.NewMockResourceManager(ctrl) + m1 := corercmgr.NewMockResourceScope(ctrl) + resourceMock.EXPECT().OpenService(gomock.Any()).DoAndReturn(func(svc string) (corercmgr.ResourceScope, error) { + return m1, nil + }).Times(1) + e.baseApp.SetResourceManager(resourceMock) + + consensusMock := consensus.NewMockConsensus(ctrl) + consensusMock.EXPECT().QuerySP(gomock.Any(), gomock.Any()).Return(&sptypes.StorageProvider{Id: 1}, nil).Times(1) + consensusMock.EXPECT().ListSPs(gomock.Any()).Return([]*sptypes.StorageProvider{ + {Id: 1, Endpoint: "endpoint"}}, nil).Times(1) + e.baseApp.SetConsensus(consensusMock) + + m2 := piecestore.NewMockPieceOp(ctrl) + m2.EXPECT().ECPieceKey(gomock.Any(), gomock.Any(), gomock.Any()).Return("test").AnyTimes() + e.baseApp.SetPieceOp(m2) + + m3 := piecestore.NewMockPieceStore(ctrl) + m3.EXPECT().DeletePiece(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + e.baseApp.SetPieceStore(m3) + + m4 := corespdb.NewMockSPDB(ctrl) + m4.EXPECT().ListIntegrityMetaByObjectIDRange(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes() + m4.EXPECT().ListReplicatePieceChecksumByObjectIDRange(gomock.Any(), gomock.Any()).Return(waitingGCPieces, nil).AnyTimes() + m4.EXPECT().DeleteReplicatePieceChecksum(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + e.baseApp.SetGfSpDB(m4) + + e.statisticsOutputInterval = 1 + err := e.Start(context.TODO()) + assert.Equal(t, nil, err) + + return e + }, + }, + } + for _, tt := range cases { + t.Run(tt.name, func(t *testing.T) { + tt.fn().HandleGCZombiePieceTask(context.TODO(), tt.task) + }) + } +} + +func TestExecuteModular_HandleGCMetaTask(t *testing.T) { + cases := []struct { + name string + task coretask.GCMetaTask + fn func() *ExecuteModular + }{ + { + name: "succeed to gc an meta task", + task: &gfsptask.GfSpGCMetaTask{ + Task: &gfsptask.GfSpTask{}, + }, + fn: func() *ExecuteModular { + e := setup(t) + + ctrl := gomock.NewController(t) + m := gfspclient.NewMockGfSpClientAPI(ctrl) + + objectInfo := &storagetypes.ObjectInfo{ + ObjectStatus: storagetypes.OBJECT_STATUS_SEALED, Id: sdkmath.NewUint(1), BucketName: mockBucketName} + + bucketInfo := &storagetypes.BucketInfo{Id: sdkmath.NewUint(1), BucketStatus: storagetypes.BUCKET_STATUS_CREATED} + + m.EXPECT().ReportTask(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() + m.EXPECT().GetObjectByID(gomock.Any(), gomock.Any()).Return(objectInfo, nil).AnyTimes() + m.EXPECT().GetBucketByBucketName(gomock.Any(), gomock.Any(), gomock.Any()).Return(&metadatatypes.Bucket{ + BucketInfo: bucketInfo}, nil).AnyTimes() + e.baseApp.SetGfSpClient(m) + + resourceMock := corercmgr.NewMockResourceManager(ctrl) + m1 := corercmgr.NewMockResourceScope(ctrl) + resourceMock.EXPECT().OpenService(gomock.Any()).DoAndReturn(func(svc string) (corercmgr.ResourceScope, error) { + return m1, nil + }).Times(1) + e.baseApp.SetResourceManager(resourceMock) + + consensusMock := consensus.NewMockConsensus(ctrl) + consensusMock.EXPECT().ListSPs(gomock.Any()).Return([]*sptypes.StorageProvider{ + {Id: 1, Endpoint: "endpoint"}}, nil).Times(1) + e.baseApp.SetConsensus(consensusMock) + + m2 := piecestore.NewMockPieceOp(ctrl) + m2.EXPECT().ECPieceKey(gomock.Any(), gomock.Any(), gomock.Any()).Return("test").AnyTimes() + e.baseApp.SetPieceOp(m2) + + m4 := corespdb.NewMockSPDB(ctrl) + m4.EXPECT().DeleteExpiredReadRecord(gomock.Any()).Return(nil).AnyTimes() + m4.EXPECT().DeleteExpiredBucketTraffic(gomock.Any()).Return(nil).AnyTimes() + e.baseApp.SetGfSpDB(m4) + + e.statisticsOutputInterval = 1 + err := e.Start(context.TODO()) + assert.Equal(t, nil, err) + + return e + }, + }, + } + for _, tt := range cases { + t.Run(tt.name, func(t *testing.T) { + tt.fn().HandleGCMetaTask(context.TODO(), tt.task) + }) + } +} func TestExecuteModular_HandleRecoverPieceTaskFailure1(t *testing.T) { t.Log("Failure case description: ErrDanglingPointer") diff --git a/modular/manager/manage_task.go b/modular/manager/manage_task.go index 3a13a6585..cca7e3ef4 100644 --- a/modular/manager/manage_task.go +++ b/modular/manager/manage_task.go @@ -636,7 +636,6 @@ func (m *ManageModular) HandleGCZombiePieceTask(ctx context.Context, gcZombiePie } err := m.gcZombieQueue.Push(gcZombiePieceTask) log.CtxInfow(ctx, "succeed to push gc object task to queue again", "from", oldTask, "to", gcZombiePieceTask, "error", err) - // TODO GC Zombie piece progress return nil } diff --git a/modular/manager/manager.go b/modular/manager/manager.go index a305a4b94..6062cb155 100644 --- a/modular/manager/manager.go +++ b/modular/manager/manager.go @@ -257,18 +257,15 @@ func (m *ManageModular) eventLoop(ctx context.Context) { } start := m.gcZombiePieceObjectID end := m.gcZombiePieceObjectID + m.gcZombiePieceObjectIDInterval - currentBlockHeight, err := m.baseApp.Consensus().CurrentHeight(ctx) + currentMaxObjectID, err := m.baseApp.GfSpClient().GetLatestObjectID(ctx) if err != nil { - log.CtxErrorw(ctx, "failed to get current block height for gc object and try again later", "error", err) + log.CtxErrorw(ctx, "failed to get current max object id for gc zombie piece and try again later", "error", err) continue } - // TODO how to get current max objectID, we use currentBlockHeight as max object id, max object id always smaller than currentBlockHeight - if end+m.gcZombiePieceSafeObjectIDDistance > currentBlockHeight { + if end+m.gcZombiePieceSafeObjectIDDistance > currentMaxObjectID { log.CtxErrorw(ctx, "current object id number less safe distance and try again later", - "start_gc_object_id", start, - "end_gc_object_id", end, - "safe_object_id_distance", m.gcZombiePieceSafeObjectIDDistance, - "current_block_height", currentBlockHeight) + "start_gc_object_id", start, "end_gc_object_id", end, + "safe_object_id_distance", m.gcZombiePieceSafeObjectIDDistance, "current_max_object_id", currentMaxObjectID) // from 0 again later m.gcZombiePieceObjectID = 0 continue diff --git a/modular/manager/manager_options.go b/modular/manager/manager_options.go index 8e080e81b..b65aadd13 100644 --- a/modular/manager/manager_options.go +++ b/modular/manager/manager_options.go @@ -50,27 +50,29 @@ const ( // DefaultGlobalChallengePieceTaskCacheSize defines the default max cache the challenge // piece tasks in manager. DefaultGlobalChallengePieceTaskCacheSize int = 4096 - // DefaultGlobalBatchGcObjectTimeInterval defines the default interval for generating - // gc object task. - DefaultGlobalBatchGcObjectTimeInterval int = 1 * 60 - // DefaultGlobalBatchGcZombiePieceTimeInterval defines the default interval for generating - // gc object task. - DefaultGlobalBatchGcZombiePieceTimeInterval int = 1 * 3 - // DefaultGlobalBatchGcMetaTimeInterval defines the default interval for generating + + // DefaultGlobalBatchGCObjectTimeInterval defines the default interval for generating // gc object task. - DefaultGlobalBatchGcMetaTimeInterval int = 1 * 10 - // DefaultGlobalGcZombiePieceObjectIDInterval defines the default object id number for getting - // deleted zombie piece. - DefaultGlobalGcZombiePieceObjectIDInterval uint64 = 100 - // DefaultGlobalGcObjectBlockInterval defines the default blocks number for getting + DefaultGlobalBatchGCObjectTimeInterval int = 1 * 60 + // DefaultGlobalGCObjectBlockInterval defines the default blocks number for getting // deleted objects. - DefaultGlobalGcObjectBlockInterval uint64 = 1000 - // DefaultGlobalGcObjectSafeBlockDistance defines the default distance form current block + DefaultGlobalGCObjectBlockInterval uint64 = 1000 + // DefaultGlobalGCObjectSafeBlockDistance defines the default distance form current block // height to gc the deleted object. - DefaultGlobalGcObjectSafeBlockDistance uint64 = 1000 - // DefaultGlobalGcZombieSafeObjectIDDistance defines the default distance form current object id + DefaultGlobalGCObjectSafeBlockDistance uint64 = 1000 + // DefaultGlobalGCZombiePieceTimeInterval defines the default interval for generating + // gc zombie piece task. + DefaultGlobalGCZombiePieceTimeInterval int = 10 * 60 + // DefaultGlobalGCZombiePieceObjectIDInterval defines the default object id number for getting + // deleted zombie piece. + DefaultGlobalGCZombiePieceObjectIDInterval uint64 = 100 + // DefaultGlobalGCZombieSafeObjectIDDistance defines the default distance form current object id // to gc the deleted zombie piece. - DefaultGlobalGcZombieSafeObjectIDDistance uint64 = 1000 + DefaultGlobalGCZombieSafeObjectIDDistance uint64 = 1000 + // DefaultGlobalGCMetaTimeInterval defines the default interval for generating + // gc meta task. + DefaultGlobalGCMetaTimeInterval int = 10 * 60 + // DefaultGlobalSyncConsensusInfoInterval defines the default interval for sync the sp // info list to sp db. DefaultGlobalSyncConsensusInfoInterval uint64 = 600 @@ -171,27 +173,27 @@ func DefaultManagerOptions(manager *ManageModular, cfg *gfspconfig.GfSpConfig) ( } if cfg.GC.GCObjectTimeInterval == 0 { - cfg.GC.GCObjectTimeInterval = DefaultGlobalBatchGcObjectTimeInterval + cfg.GC.GCObjectTimeInterval = DefaultGlobalBatchGCObjectTimeInterval } if cfg.GC.GCObjectBlockInterval == 0 { - cfg.GC.GCObjectBlockInterval = DefaultGlobalGcObjectBlockInterval + cfg.GC.GCObjectBlockInterval = DefaultGlobalGCObjectBlockInterval } if cfg.GC.GCObjectSafeBlockDistance == 0 { - cfg.GC.GCObjectSafeBlockDistance = DefaultGlobalGcObjectSafeBlockDistance + cfg.GC.GCObjectSafeBlockDistance = DefaultGlobalGCObjectSafeBlockDistance } if cfg.GC.GCZombiePieceTimeInterval == 0 { - cfg.GC.GCZombiePieceTimeInterval = DefaultGlobalBatchGcZombiePieceTimeInterval + cfg.GC.GCZombiePieceTimeInterval = DefaultGlobalGCZombiePieceTimeInterval } if cfg.GC.GCZombiePieceObjectIDInterval == 0 { - cfg.GC.GCZombiePieceObjectIDInterval = DefaultGlobalGcZombiePieceObjectIDInterval + cfg.GC.GCZombiePieceObjectIDInterval = DefaultGlobalGCZombiePieceObjectIDInterval } if cfg.GC.GCZombieSafeObjectIDDistance == 0 { - cfg.GC.GCZombieSafeObjectIDDistance = DefaultGlobalGcZombieSafeObjectIDDistance + cfg.GC.GCZombieSafeObjectIDDistance = DefaultGlobalGCZombieSafeObjectIDDistance } if cfg.GC.GCMetaTimeInterval == 0 { - cfg.GC.GCMetaTimeInterval = DefaultGlobalBatchGcMetaTimeInterval + cfg.GC.GCMetaTimeInterval = DefaultGlobalGCMetaTimeInterval } if cfg.Parallel.GlobalSyncConsensusInfoInterval == 0 { diff --git a/modular/metadata/metadata_object_service.go b/modular/metadata/metadata_object_service.go index a820d54a4..cba013273 100644 --- a/modular/metadata/metadata_object_service.go +++ b/modular/metadata/metadata_object_service.go @@ -622,3 +622,16 @@ func (r *MetadataModular) GfSpListObjectsInGVG(ctx context.Context, req *types.G log.CtxInfow(ctx, "succeed to list objects by gvg id") return resp, nil } + +// GfSpGetLatestObjectID get latest object id +func (r *MetadataModular) GfSpGetLatestObjectID(ctx context.Context, req *types.GfSpGetLatestObjectIDRequest) (resp *types.GfSpGetLatestObjectIDResponse, err error) { + objID, err := r.baseApp.GfBsDB().GetLatestObjectID() + if err != nil { + log.CtxErrorw(ctx, "failed to get latest object id", "error", err) + return + } + + resp = &types.GfSpGetLatestObjectIDResponse{ObjectId: objID} + log.CtxInfow(ctx, "succeed to get latest object id") + return resp, nil +} diff --git a/modular/metadata/types/metadata.pb.go b/modular/metadata/types/metadata.pb.go index 6f4332fd8..d24b619ce 100644 --- a/modular/metadata/types/metadata.pb.go +++ b/modular/metadata/types/metadata.pb.go @@ -6749,6 +6749,89 @@ func (m *GfSpGetBucketSizeResponse) GetBucketSize() string { return "" } +// GfSpGetLatestObjectIDRequest is request type for the GfSpGetLatestObjectID RPC method +type GfSpGetLatestObjectIDRequest struct { +} + +func (m *GfSpGetLatestObjectIDRequest) Reset() { *m = GfSpGetLatestObjectIDRequest{} } +func (m *GfSpGetLatestObjectIDRequest) String() string { return proto.CompactTextString(m) } +func (*GfSpGetLatestObjectIDRequest) ProtoMessage() {} +func (*GfSpGetLatestObjectIDRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_7cdcff708e247f22, []int{113} +} +func (m *GfSpGetLatestObjectIDRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GfSpGetLatestObjectIDRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GfSpGetLatestObjectIDRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GfSpGetLatestObjectIDRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GfSpGetLatestObjectIDRequest.Merge(m, src) +} +func (m *GfSpGetLatestObjectIDRequest) XXX_Size() int { + return m.Size() +} +func (m *GfSpGetLatestObjectIDRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GfSpGetLatestObjectIDRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GfSpGetLatestObjectIDRequest proto.InternalMessageInfo + +// GfSpGetLatestObjectIDResponse is response type for the GfSpGetLatestObjectID RPC method +type GfSpGetLatestObjectIDResponse struct { + // object_id define latest object id + ObjectId uint64 `protobuf:"varint,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"` +} + +func (m *GfSpGetLatestObjectIDResponse) Reset() { *m = GfSpGetLatestObjectIDResponse{} } +func (m *GfSpGetLatestObjectIDResponse) String() string { return proto.CompactTextString(m) } +func (*GfSpGetLatestObjectIDResponse) ProtoMessage() {} +func (*GfSpGetLatestObjectIDResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_7cdcff708e247f22, []int{114} +} +func (m *GfSpGetLatestObjectIDResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GfSpGetLatestObjectIDResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GfSpGetLatestObjectIDResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GfSpGetLatestObjectIDResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GfSpGetLatestObjectIDResponse.Merge(m, src) +} +func (m *GfSpGetLatestObjectIDResponse) XXX_Size() int { + return m.Size() +} +func (m *GfSpGetLatestObjectIDResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GfSpGetLatestObjectIDResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GfSpGetLatestObjectIDResponse proto.InternalMessageInfo + +func (m *GfSpGetLatestObjectIDResponse) GetObjectId() uint64 { + if m != nil { + return m.ObjectId + } + return 0 +} + func init() { proto.RegisterType((*Bucket)(nil), "modular.metadata.types.Bucket") proto.RegisterType((*Object)(nil), "modular.metadata.types.Object") @@ -6866,6 +6949,8 @@ func init() { proto.RegisterType((*GfSpVerifyMigrateGVGPermissionResponse)(nil), "modular.metadata.types.GfSpVerifyMigrateGVGPermissionResponse") proto.RegisterType((*GfSpGetBucketSizeRequest)(nil), "modular.metadata.types.GfSpGetBucketSizeRequest") proto.RegisterType((*GfSpGetBucketSizeResponse)(nil), "modular.metadata.types.GfSpGetBucketSizeResponse") + proto.RegisterType((*GfSpGetLatestObjectIDRequest)(nil), "modular.metadata.types.GfSpGetLatestObjectIDRequest") + proto.RegisterType((*GfSpGetLatestObjectIDResponse)(nil), "modular.metadata.types.GfSpGetLatestObjectIDResponse") } func init() { @@ -6873,344 +6958,346 @@ func init() { } var fileDescriptor_7cdcff708e247f22 = []byte{ - // 5381 bytes of a gzipped FileDescriptorProto + // 5418 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7c, 0x4b, 0x6c, 0x1c, 0x47, 0x7a, 0x30, 0x7b, 0x86, 0x8f, 0x99, 0x1a, 0x0e, 0x49, 0x95, 0x65, 0x89, 0x1a, 0x59, 0x94, 0xd4, - 0xb2, 0x2c, 0xca, 0xb2, 0x48, 0x5b, 0xf2, 0x4b, 0xb6, 0x65, 0x8b, 0xa4, 0x28, 0x9a, 0xf0, 0xca, - 0xa2, 0x7b, 0x24, 0x79, 0xd7, 0xfb, 0xfb, 0xef, 0xed, 0x99, 0xae, 0x19, 0x76, 0x38, 0xd3, 0xdd, - 0xee, 0xea, 0xa1, 0x34, 0x42, 0x16, 0x59, 0xe4, 0x05, 0x2c, 0x12, 0x20, 0xef, 0x20, 0xd9, 0x20, - 0x0b, 0x6c, 0x10, 0x20, 0x97, 0x4d, 0x10, 0x24, 0x8b, 0x1c, 0x92, 0x6c, 0x12, 0x20, 0x17, 0x03, - 0x41, 0x00, 0x63, 0x0f, 0x49, 0xb0, 0x08, 0x8c, 0x85, 0x7d, 0xcf, 0x25, 0xd7, 0x1c, 0x82, 0x7a, - 0x75, 0x57, 0xbf, 0x87, 0x43, 0x6e, 0x90, 0x43, 0x2e, 0xd2, 0x74, 0xd5, 0x57, 0x5f, 0x55, 0x7d, - 0xaf, 0xfa, 0xea, 0xfb, 0xbe, 0x22, 0xb8, 0xd8, 0x77, 0xcc, 0x41, 0xcf, 0xf0, 0x56, 0xfb, 0xc8, - 0x37, 0x4c, 0xc3, 0x37, 0x56, 0xfd, 0xa1, 0x8b, 0x70, 0xf0, 0xb9, 0xe2, 0x7a, 0x8e, 0xef, 0xc0, - 0x13, 0x1c, 0x6c, 0x25, 0x68, 0xa7, 0x60, 0x8d, 0xf3, 0x2d, 0x03, 0x23, 0x3e, 0xa4, 0xdb, 0xc1, - 0x2e, 0xf2, 0x3c, 0xc7, 0xc3, 0xab, 0xf4, 0x3f, 0x36, 0xb4, 0xb1, 0x14, 0x03, 0xf1, 0x0d, 0xbc, - 0xb7, 0x4a, 0xfe, 0xe1, 0xfd, 0xa7, 0xda, 0x0e, 0xee, 0x3b, 0x58, 0xa7, 0x5f, 0xab, 0xec, 0x83, - 0x77, 0x1d, 0xef, 0x3a, 0x5d, 0x87, 0xb5, 0x93, 0x5f, 0xbc, 0xf5, 0xb9, 0xae, 0x87, 0x90, 0xdd, - 0xb1, 0x50, 0xcf, 0x5c, 0x75, 0x8d, 0x61, 0x1f, 0xd9, 0xfe, 0x2a, 0xf6, 0x3d, 0x64, 0xf4, 0x75, - 0x0f, 0xb5, 0x1d, 0xcf, 0xe4, 0x70, 0xaa, 0x0c, 0x87, 0xbc, 0xbe, 0x85, 0xb1, 0xe5, 0xd8, 0xab, - 0x6d, 0xa7, 0xdf, 0x77, 0x6c, 0x0e, 0x73, 0x56, 0x82, 0xf1, 0x10, 0x76, 0x06, 0x5e, 0x9b, 0xaf, - 0x55, 0xac, 0x4e, 0x02, 0xc0, 0x6e, 0xa4, 0x4b, 0x1e, 0x8b, 0x7d, 0xc7, 0x33, 0xba, 0x68, 0x15, - 0xed, 0x23, 0xdb, 0x17, 0x00, 0x4b, 0x29, 0x00, 0x9f, 0x0c, 0x90, 0x37, 0xcc, 0xe9, 0x97, 0x27, - 0x78, 0x56, 0xea, 0xdf, 0xb7, 0x3c, 0x7f, 0x60, 0xf4, 0xba, 0x9e, 0x33, 0x70, 0xa3, 0xb3, 0x5c, - 0xc8, 0x82, 0x92, 0x51, 0x9d, 0x24, 0xf8, 0x05, 0x17, 0xe8, 0x6f, 0xd6, 0xa1, 0xfe, 0x47, 0x09, - 0x4c, 0xaf, 0x0f, 0xda, 0x7b, 0xc8, 0x87, 0xef, 0x80, 0x5a, 0x8b, 0xfe, 0xd2, 0x2d, 0xbb, 0xe3, - 0x2c, 0x2a, 0xe7, 0x94, 0xe5, 0xda, 0xb5, 0xa5, 0x95, 0x10, 0xfd, 0x0a, 0x5f, 0xe4, 0x0a, 0x1b, - 0xb0, 0x6d, 0x77, 0x1c, 0x0d, 0xb4, 0x82, 0xdf, 0x70, 0x11, 0xcc, 0x78, 0xa8, 0xef, 0xec, 0x23, - 0x73, 0xb1, 0x74, 0x4e, 0x59, 0xae, 0x68, 0xe2, 0x13, 0x9e, 0x06, 0x55, 0x13, 0xf5, 0x90, 0x8f, - 0x74, 0xc3, 0x5f, 0x2c, 0x9f, 0x53, 0x96, 0xcb, 0x5a, 0x85, 0x35, 0xac, 0xf9, 0xf0, 0x02, 0xa8, - 0xf3, 0x4e, 0x0f, 0x19, 0xd8, 0xb1, 0x17, 0x27, 0xcf, 0x29, 0xcb, 0x55, 0x6d, 0x96, 0x35, 0x6a, - 0xb4, 0x0d, 0x36, 0x40, 0xc5, 0x71, 0x91, 0x67, 0xf8, 0x8e, 0xb7, 0x38, 0x45, 0xfb, 0x83, 0x6f, - 0xf8, 0x2c, 0x98, 0x6b, 0x7b, 0xc8, 0xf0, 0x91, 0xee, 0x3f, 0xd6, 0x77, 0x0d, 0xbc, 0xbb, 0x38, - 0xcd, 0x30, 0xb0, 0xd6, 0xfb, 0x8f, 0xdf, 0x35, 0xf0, 0x2e, 0x81, 0x1a, 0xb8, 0xa6, 0x0c, 0x35, - 0xc3, 0xa0, 0x58, 0x2b, 0x87, 0x3a, 0x0d, 0xaa, 0x1c, 0xca, 0xf0, 0x17, 0x2b, 0x6c, 0xa5, 0xac, - 0x61, 0xcd, 0x87, 0x67, 0x41, 0x4d, 0xa0, 0xb0, 0xfa, 0x68, 0xb1, 0x4a, 0xbb, 0x01, 0x1f, 0x6f, - 0xf5, 0x11, 0x3c, 0x0f, 0x66, 0x39, 0x8d, 0x74, 0x6c, 0x3d, 0x41, 0x8b, 0x80, 0xce, 0x50, 0xe3, - 0x6d, 0x4d, 0xeb, 0x09, 0x52, 0xff, 0xb3, 0x04, 0xa6, 0xef, 0xb5, 0x7e, 0x06, 0xb5, 0x29, 0xc1, - 0x1d, 0xfa, 0xab, 0x90, 0xe0, 0x6c, 0x00, 0x23, 0xb8, 0x13, 0xfc, 0x86, 0x17, 0xc1, 0x5c, 0xcf, - 0x69, 0xef, 0x21, 0x53, 0x6f, 0x19, 0x3d, 0xc3, 0x6e, 0x23, 0x4a, 0xf7, 0xaa, 0x56, 0x67, 0xad, - 0xeb, 0xac, 0x51, 0xe6, 0x4b, 0x39, 0xc1, 0x97, 0x70, 0xb7, 0x93, 0xb1, 0xdd, 0x46, 0x98, 0x36, - 0x55, 0xc4, 0xb4, 0xe9, 0x02, 0xa6, 0xcd, 0x14, 0x32, 0xad, 0x32, 0x12, 0xd3, 0xaa, 0x29, 0x4c, - 0x3b, 0x07, 0x66, 0x31, 0x32, 0x7a, 0x01, 0x0c, 0x23, 0x3b, 0x20, 0x6d, 0x0c, 0x42, 0xfd, 0x3b, - 0x05, 0xd4, 0x19, 0x11, 0x6f, 0x23, 0xdf, 0xb0, 0x7a, 0x18, 0xbe, 0x0a, 0xa6, 0x19, 0x25, 0x03, - 0xba, 0xa7, 0x9b, 0x38, 0x4e, 0x7b, 0x8d, 0x43, 0x93, 0x71, 0x4c, 0xe4, 0x29, 0xad, 0x73, 0xc6, - 0x31, 0x25, 0xd1, 0x38, 0x34, 0xbc, 0x09, 0xca, 0xdd, 0xfd, 0x2e, 0x65, 0x40, 0xed, 0xda, 0x15, - 0x99, 0xc9, 0xb2, 0xd2, 0xae, 0x6c, 0xf5, 0x9c, 0x96, 0xd1, 0x7b, 0xc8, 0x9a, 0xb6, 0x48, 0x93, - 0x46, 0xc6, 0xa9, 0x7f, 0x5d, 0x06, 0xf5, 0x87, 0x5b, 0x77, 0x08, 0xdb, 0xff, 0x4f, 0x5d, 0x8f, - 0x4a, 0x5d, 0x37, 0x40, 0x79, 0xbf, 0xdb, 0xa1, 0xe2, 0x52, 0xbb, 0xf6, 0xd2, 0x01, 0x78, 0x72, - 0xc7, 0xe8, 0x5b, 0xbd, 0xa1, 0x46, 0x46, 0x27, 0x74, 0xbe, 0x96, 0xd4, 0xf9, 0xef, 0x2a, 0x60, - 0x6e, 0x87, 0x9d, 0x54, 0x6b, 0xed, 0xb6, 0x33, 0xb0, 0x7d, 0x42, 0x7c, 0xc3, 0x34, 0x3d, 0x84, - 0x31, 0xe5, 0x5c, 0x55, 0x13, 0x9f, 0xf0, 0x38, 0x98, 0x72, 0x1e, 0xd9, 0xc8, 0xe3, 0xba, 0xcc, - 0x3e, 0xe0, 0x12, 0x00, 0x1e, 0xea, 0x0c, 0x6c, 0xd3, 0x68, 0xf5, 0x10, 0x57, 0x63, 0xa9, 0x25, - 0x5f, 0x93, 0x63, 0x84, 0x98, 0x8a, 0x13, 0x42, 0xfd, 0xbe, 0x02, 0x60, 0x74, 0x81, 0x77, 0x91, - 0x6f, 0xc0, 0x7b, 0x60, 0x9e, 0x1f, 0xb0, 0xba, 0xc1, 0x9a, 0xb9, 0x98, 0x3d, 0x97, 0x25, 0xf4, - 0x51, 0x24, 0xda, 0x9c, 0x1b, 0xdd, 0xf5, 0x26, 0xa8, 0x47, 0x4e, 0x6a, 0xae, 0x43, 0xe7, 0x64, - 0xd2, 0xf3, 0x21, 0x2b, 0x4d, 0x0a, 0xa8, 0x51, 0x38, 0x6d, 0x16, 0x4b, 0x5f, 0x6a, 0x1b, 0x9c, - 0xda, 0xea, 0x34, 0xdd, 0x2d, 0xe4, 0x3f, 0xc0, 0xc8, 0x63, 0xe2, 0x8d, 0x35, 0xf4, 0xc9, 0x00, - 0x61, 0x1f, 0x9e, 0x01, 0x80, 0x2f, 0x56, 0xb7, 0x4c, 0x4e, 0xdc, 0x2a, 0x6f, 0xd9, 0x36, 0xe1, - 0x25, 0x30, 0x6f, 0xd9, 0xed, 0xde, 0xc0, 0x24, 0xf2, 0x2b, 0x4b, 0xff, 0x1c, 0x6f, 0xd6, 0x58, - 0xab, 0xfa, 0x31, 0x68, 0xa4, 0x4d, 0x82, 0x5d, 0xc7, 0xc6, 0x08, 0xbe, 0x03, 0x66, 0x98, 0x2a, - 0x11, 0xfe, 0x95, 0x97, 0x6b, 0xd7, 0x2e, 0x66, 0x91, 0x24, 0xa2, 0xb5, 0x9a, 0x18, 0xa5, 0xfe, - 0x59, 0x09, 0xa8, 0x04, 0xff, 0x57, 0x2c, 0xec, 0x33, 0x13, 0x83, 0xd7, 0x87, 0x0c, 0xe8, 0x7d, - 0xa3, 0x8f, 0xc4, 0x6e, 0xce, 0x06, 0x5a, 0x6e, 0x1b, 0x7d, 0xc4, 0xb7, 0xc3, 0xb5, 0x98, 0xc0, - 0xc5, 0xb6, 0x5b, 0x8a, 0x6f, 0xf7, 0x14, 0xa8, 0xf4, 0x8d, 0xc7, 0xfa, 0x1e, 0x1a, 0x62, 0x2a, - 0x35, 0x93, 0xda, 0x4c, 0xdf, 0x78, 0xfc, 0x1e, 0x1a, 0x62, 0x82, 0x1a, 0xfb, 0x86, 0xe7, 0xeb, - 0x46, 0xc7, 0x47, 0x1e, 0x57, 0x63, 0x40, 0x9b, 0xd6, 0x48, 0x0b, 0xbc, 0x0a, 0x60, 0xdb, 0xb1, - 0x7d, 0xcb, 0x1e, 0x18, 0xbe, 0xe5, 0xd8, 0xba, 0xef, 0xec, 0x21, 0x9b, 0xab, 0xf3, 0x31, 0xb9, - 0xe7, 0x3e, 0xe9, 0x80, 0xcf, 0x50, 0xab, 0x61, 0xf5, 0x2d, 0x82, 0x8d, 0xa9, 0x74, 0xd8, 0x00, - 0x4f, 0x80, 0x69, 0xd7, 0x43, 0x1d, 0xeb, 0x31, 0xd7, 0x63, 0xfe, 0x95, 0xc6, 0x8f, 0x4a, 0x2a, - 0x3f, 0x7e, 0xbb, 0x0c, 0x2e, 0xe4, 0x12, 0x8c, 0x73, 0xe6, 0x75, 0x30, 0xc3, 0x4c, 0xb5, 0xe0, - 0x4c, 0x91, 0x65, 0x17, 0xe0, 0x44, 0x87, 0xf6, 0xd0, 0x50, 0x67, 0x82, 0x5e, 0xa2, 0xc4, 0xaa, - 0xec, 0xa1, 0xe1, 0x06, 0x15, 0xdd, 0x1c, 0x42, 0x9e, 0x07, 0xb3, 0x16, 0xd6, 0x7d, 0x6f, 0x60, - 0xb7, 0x0d, 0x1f, 0x99, 0x94, 0x92, 0x15, 0xad, 0x66, 0xe1, 0xfb, 0xa2, 0x09, 0xbe, 0x0a, 0x4e, - 0xda, 0xe8, 0xb1, 0xaf, 0x67, 0xd2, 0xf3, 0x69, 0xd2, 0xbd, 0x91, 0xa0, 0x29, 0x04, 0x93, 0x94, - 0xef, 0x8c, 0x9c, 0xf4, 0x77, 0x26, 0x25, 0x23, 0xf4, 0xaf, 0xc4, 0xe9, 0x7f, 0x09, 0xcc, 0x33, - 0xcf, 0x57, 0x67, 0xe0, 0x08, 0x2f, 0x56, 0xcf, 0x95, 0x97, 0xab, 0xda, 0x1c, 0x6b, 0xde, 0xe1, - 0xad, 0x19, 0x5c, 0x07, 0x19, 0x5c, 0x57, 0x7b, 0xe0, 0x1c, 0x57, 0x13, 0xc6, 0x8b, 0xb1, 0x84, - 0x58, 0x12, 0x02, 0xd7, 0xb3, 0xf6, 0x0d, 0x1f, 0xc5, 0x94, 0x72, 0x87, 0xb5, 0xaa, 0x5f, 0x07, - 0xe7, 0x73, 0x66, 0xe3, 0x12, 0x10, 0x1e, 0xd1, 0xca, 0x41, 0x8e, 0x68, 0xb5, 0x03, 0x96, 0x52, - 0x91, 0x6f, 0xdf, 0x16, 0x1b, 0x39, 0x0d, 0xaa, 0xe2, 0xcc, 0x65, 0xa6, 0xa5, 0xac, 0x55, 0xf8, - 0x89, 0x6a, 0x8e, 0xbe, 0x89, 0xaf, 0x81, 0xb3, 0x99, 0xf3, 0x1c, 0x72, 0x0b, 0x7f, 0xa1, 0x80, - 0x55, 0xa1, 0x24, 0xb7, 0xe9, 0x81, 0x6c, 0x86, 0xba, 0x42, 0xbc, 0xc2, 0xf7, 0x07, 0xfd, 0x16, - 0xf2, 0x34, 0xc3, 0xee, 0x06, 0xdc, 0x79, 0x01, 0x40, 0x66, 0x07, 0x5a, 0x04, 0x40, 0xb7, 0x29, - 0x04, 0xdf, 0xdd, 0x02, 0xed, 0x91, 0x46, 0xc2, 0x65, 0xb0, 0x80, 0x6c, 0x33, 0x0a, 0x5b, 0xa2, - 0xb0, 0x73, 0xc8, 0x36, 0x65, 0xc8, 0x14, 0x7a, 0x94, 0x53, 0xe9, 0xf1, 0xbb, 0x0a, 0x78, 0x71, - 0xf4, 0x45, 0x1f, 0x5a, 0xcd, 0x47, 0xde, 0x81, 0xba, 0x1b, 0x08, 0x84, 0x74, 0x04, 0x50, 0x73, - 0x70, 0xd4, 0x87, 0xcd, 0x6b, 0x81, 0x48, 0x24, 0x67, 0xe2, 0x1b, 0x3e, 0x0e, 0xa6, 0xc2, 0x23, - 0xb8, 0xac, 0xb1, 0x0f, 0xf5, 0x09, 0x53, 0x08, 0x42, 0xba, 0xcd, 0xc7, 0xae, 0xe5, 0x21, 0x93, - 0x0f, 0x5e, 0x1f, 0x36, 0x5d, 0x49, 0x6c, 0xb9, 0xc7, 0x65, 0x88, 0xe1, 0x15, 0xd6, 0xb0, 0xe6, - 0x43, 0x15, 0xd4, 0x5d, 0xcf, 0xea, 0x1b, 0xde, 0x50, 0xc7, 0xae, 0x38, 0x43, 0xea, 0x5a, 0x8d, - 0x37, 0x36, 0xdd, 0x6d, 0x93, 0xcc, 0x4d, 0xed, 0x08, 0x77, 0x06, 0xd9, 0x87, 0xfa, 0xff, 0xc3, - 0x13, 0x2c, 0x6d, 0xee, 0x90, 0x51, 0xd1, 0x93, 0xb2, 0x48, 0x96, 0x83, 0x23, 0xf2, 0x97, 0x14, - 0xb0, 0xc8, 0xa9, 0xc2, 0x78, 0x48, 0x9c, 0x12, 0xc9, 0xa6, 0xf0, 0xcb, 0x93, 0x6c, 0x53, 0x58, - 0x13, 0xb5, 0x29, 0x31, 0xa3, 0x53, 0x1a, 0xc5, 0xe8, 0xa4, 0xcb, 0x67, 0x33, 0x70, 0x37, 0xe4, - 0x65, 0x84, 0x9a, 0x3a, 0xce, 0x3d, 0x42, 0xed, 0x07, 0x96, 0x8c, 0xfb, 0x4c, 0x3f, 0x5d, 0xc3, - 0xb9, 0xc7, 0x78, 0x95, 0x35, 0x1d, 0xdf, 0x4c, 0xc2, 0x3f, 0x53, 0xc6, 0xf2, 0xcf, 0xba, 0x81, - 0x34, 0xc7, 0x26, 0x3b, 0x6a, 0x4b, 0x6a, 0x05, 0x87, 0x4f, 0xca, 0x44, 0x47, 0xbb, 0x27, 0x33, - 0x90, 0x45, 0x36, 0x43, 0x4c, 0x16, 0x8f, 0x88, 0x4d, 0xdf, 0x53, 0x02, 0x59, 0x93, 0xa7, 0xe1, - 0x5b, 0xb9, 0x19, 0x3b, 0x15, 0x46, 0xf4, 0x39, 0xc5, 0x15, 0xf4, 0x88, 0xbc, 0xef, 0xeb, 0xe0, - 0x19, 0xbe, 0xc4, 0x4d, 0xdb, 0x74, 0x1d, 0x8b, 0x50, 0xbd, 0xe9, 0x86, 0xac, 0x7d, 0x0a, 0x4c, - 0x31, 0x43, 0xa2, 0x50, 0x43, 0x32, 0x89, 0xdd, 0x6d, 0x53, 0x7d, 0x13, 0x9c, 0xc9, 0x18, 0xc4, - 0xf7, 0xd6, 0x00, 0x15, 0xc4, 0x7b, 0x38, 0x01, 0x83, 0x6f, 0xf5, 0xe7, 0x82, 0xc1, 0x7c, 0x47, - 0xc8, 0x30, 0x3f, 0x18, 0x38, 0x21, 0x03, 0x0e, 0x7d, 0x17, 0x3e, 0x03, 0xc0, 0x10, 0x19, 0x9e, - 0xde, 0x77, 0x6c, 0x7f, 0x57, 0x78, 0xd1, 0xa4, 0xe5, 0x2e, 0x69, 0x50, 0x7f, 0xa5, 0x14, 0x73, - 0x0d, 0xa4, 0x15, 0xf0, 0xf5, 0x5f, 0x03, 0x65, 0xe4, 0x79, 0x81, 0x70, 0xb5, 0x0c, 0x8c, 0x38, - 0x33, 0xc2, 0xb8, 0xe8, 0x0a, 0xc1, 0xb1, 0x49, 0x7e, 0x6a, 0x04, 0x98, 0x9c, 0xbc, 0xed, 0x5d, - 0xc3, 0xeb, 0x22, 0x53, 0xff, 0x84, 0x20, 0x63, 0x17, 0x48, 0xe6, 0x79, 0x2e, 0xf0, 0x1e, 0x3a, - 0x0b, 0xb9, 0x45, 0xc2, 0x2b, 0x00, 0x62, 0x57, 0xef, 0x78, 0x08, 0xc9, 0xd0, 0xcc, 0x17, 0x9d, - 0xc7, 0xee, 0x1d, 0x0f, 0xa1, 0x10, 0xf8, 0x02, 0xa8, 0xb7, 0x1d, 0x1b, 0x0f, 0xfa, 0xc8, 0x64, - 0x70, 0x93, 0x14, 0x6e, 0x56, 0x34, 0x52, 0xa0, 0x57, 0xc0, 0x49, 0x09, 0x1d, 0xef, 0x62, 0xe0, - 0x53, 0x14, 0xfc, 0x78, 0x47, 0x20, 0xdd, 0x60, 0x9d, 0xf4, 0x3a, 0xbb, 0xce, 0x1c, 0xf1, 0x2d, - 0xe4, 0x7f, 0xc5, 0xf0, 0x11, 0xce, 0x62, 0x4a, 0x42, 0xc5, 0x27, 0x43, 0x15, 0x57, 0xbf, 0xa3, - 0x80, 0x67, 0xf3, 0x91, 0x1c, 0x82, 0xae, 0x6f, 0x83, 0x29, 0xba, 0x25, 0x2e, 0xe0, 0xcb, 0xf1, - 0x51, 0x34, 0xfa, 0x4c, 0xc6, 0xb0, 0x49, 0xe9, 0x84, 0x54, 0x24, 0xd8, 0x30, 0xf5, 0x27, 0x0a, - 0x33, 0x60, 0xe4, 0x64, 0x0b, 0xd7, 0xc5, 0x95, 0xe1, 0xa8, 0x44, 0x2e, 0x70, 0xbb, 0xc8, 0x9d, - 0x1c, 0xfb, 0x46, 0xdf, 0xd5, 0x07, 0x98, 0x3b, 0x22, 0xcc, 0xed, 0xba, 0x2f, 0x3a, 0x1e, 0x04, - 0x4e, 0x4b, 0x04, 0xb6, 0x1c, 0x38, 0x2d, 0x32, 0xe4, 0xb3, 0x60, 0x8e, 0x5c, 0x54, 0x98, 0x8a, - 0x13, 0xff, 0x86, 0x87, 0x03, 0x66, 0xfb, 0xc6, 0x63, 0xb6, 0x85, 0xf7, 0x07, 0x7d, 0xf5, 0x2f, - 0x15, 0x00, 0xc2, 0x4d, 0x15, 0x9f, 0xa6, 0xa7, 0x41, 0x55, 0xc4, 0x2a, 0x4d, 0x71, 0x37, 0xe2, - 0x91, 0x48, 0x6a, 0xaf, 0x85, 0x17, 0x24, 0x82, 0x1a, 0x65, 0x8a, 0x61, 0x8e, 0x37, 0xaf, 0xf1, - 0xd8, 0xc6, 0x79, 0x30, 0x1b, 0xd9, 0x01, 0x5b, 0x59, 0xcd, 0x97, 0x96, 0x7f, 0x1a, 0x54, 0x3d, - 0x64, 0x98, 0xb2, 0x14, 0x56, 0x48, 0x03, 0x95, 0xbc, 0x1f, 0x2b, 0xcc, 0xe0, 0xa7, 0x33, 0xe6, - 0x10, 0x12, 0xf3, 0x1e, 0x98, 0xa5, 0xb3, 0x32, 0xaa, 0x11, 0x36, 0x10, 0x4f, 0x45, 0xcd, 0xb2, - 0xaf, 0xe1, 0xac, 0xeb, 0x93, 0x9f, 0x7e, 0x7e, 0x56, 0xd1, 0x6a, 0x5e, 0xd0, 0x82, 0x89, 0x5a, - 0xd1, 0xcb, 0x5e, 0x0a, 0x7b, 0x19, 0xcb, 0x8e, 0x93, 0xee, 0x66, 0x8c, 0xc5, 0xea, 0x4d, 0x66, - 0x63, 0x3e, 0x18, 0x20, 0x6f, 0xf8, 0xc0, 0xed, 0x39, 0x86, 0xb9, 0xe3, 0x39, 0x5d, 0x42, 0x37, - 0x49, 0xa3, 0x42, 0x26, 0x28, 0x51, 0x26, 0xa8, 0xdf, 0xe7, 0x42, 0x9b, 0x3a, 0xfe, 0x50, 0x46, - 0x6a, 0x0a, 0xfb, 0xe2, 0xc4, 0x9a, 0xbb, 0x76, 0x62, 0x85, 0xa5, 0x0f, 0xd8, 0xb0, 0xfb, 0x06, - 0xde, 0x6b, 0x92, 0x5e, 0x8d, 0x01, 0x11, 0x51, 0x40, 0x9e, 0xa7, 0x9b, 0x08, 0xb7, 0x3d, 0xcb, - 0x25, 0xd7, 0x44, 0x21, 0x0a, 0xc8, 0xf3, 0x6e, 0x87, 0xad, 0xea, 0x26, 0x78, 0x2e, 0x58, 0xad, - 0x86, 0xf0, 0xa0, 0x6f, 0xb4, 0x7a, 0x88, 0x2d, 0xbb, 0x89, 0xba, 0xe4, 0x0c, 0x1a, 0x69, 0xd7, - 0x3f, 0xaf, 0x80, 0x4b, 0x85, 0x78, 0x0e, 0xb1, 0xfb, 0x0b, 0xa0, 0x8e, 0x19, 0x1a, 0x29, 0x2e, - 0x50, 0xd7, 0x66, 0x79, 0x23, 0x75, 0xd1, 0xd5, 0xef, 0x94, 0xc0, 0x14, 0x8d, 0x0b, 0xc2, 0xeb, - 0x60, 0x8a, 0xc6, 0x0c, 0xf9, 0x24, 0x67, 0xd2, 0xec, 0x01, 0x85, 0x64, 0xe6, 0x86, 0xc2, 0x46, - 0x82, 0xa5, 0xa5, 0x58, 0xb0, 0x34, 0xe2, 0xba, 0x97, 0x63, 0xae, 0xfb, 0x59, 0x50, 0x13, 0x91, - 0x54, 0xab, 0x8f, 0xb8, 0x36, 0x01, 0x1e, 0x46, 0xb5, 0xfa, 0xb1, 0xa8, 0xe0, 0x54, 0x7e, 0x54, - 0x70, 0x3a, 0x11, 0x1e, 0x7d, 0x1e, 0x1c, 0x63, 0xd7, 0x23, 0xdd, 0xe9, 0xe8, 0x7d, 0x44, 0x7e, - 0x61, 0x1a, 0x73, 0x28, 0x6b, 0xf3, 0xac, 0xe3, 0x5e, 0xe7, 0x2e, 0x6b, 0x96, 0x83, 0xc9, 0x95, - 0x48, 0x30, 0x59, 0xfd, 0xdb, 0x12, 0xa8, 0xd1, 0x2d, 0x33, 0xd0, 0xf1, 0x48, 0x54, 0x10, 0xe5, - 0x92, 0x29, 0x58, 0xce, 0xa3, 0xe0, 0x64, 0x3e, 0x05, 0xa7, 0xf2, 0x29, 0x38, 0x9d, 0x4f, 0xc1, - 0x99, 0x04, 0x05, 0x33, 0xa9, 0x42, 0xf5, 0x84, 0xdc, 0x99, 0x78, 0x8c, 0x25, 0x8c, 0x4f, 0xcf, - 0x85, 0xcd, 0x34, 0x34, 0xfb, 0x43, 0x05, 0x9c, 0xe4, 0x07, 0x25, 0xa5, 0x0a, 0x31, 0x7d, 0x42, - 0x33, 0x44, 0x74, 0x48, 0x49, 0x8d, 0x0e, 0x95, 0x22, 0xd1, 0xa1, 0xb3, 0xa0, 0xc6, 0xd2, 0x9b, - 0x3a, 0x11, 0x79, 0x4e, 0x25, 0xc0, 0x9a, 0xee, 0x0f, 0x5d, 0x14, 0xde, 0xf1, 0x26, 0xa5, 0x3b, - 0x1e, 0x41, 0xe7, 0x74, 0x3a, 0x18, 0x09, 0xf1, 0xe1, 0x5f, 0x69, 0x37, 0xdb, 0xe9, 0xd4, 0x9b, - 0x6d, 0x37, 0xf0, 0x9b, 0xa5, 0xe5, 0x73, 0x85, 0x7c, 0x05, 0x4c, 0x53, 0xf6, 0x8a, 0x9b, 0xe1, - 0x99, 0x2c, 0x7b, 0xcb, 0x12, 0x21, 0x1c, 0x38, 0xbc, 0x09, 0x97, 0xe4, 0x9b, 0x30, 0x02, 0xa7, - 0xa3, 0x47, 0x03, 0x5e, 0x1f, 0x6e, 0xdf, 0x96, 0xc3, 0xc2, 0x81, 0x37, 0xc2, 0xe6, 0x9b, 0xd4, - 0xaa, 0xc2, 0x1d, 0xc1, 0xa3, 0xdf, 0xd4, 0xff, 0x55, 0x61, 0xee, 0x6f, 0x72, 0x1e, 0xbe, 0xa9, - 0xaf, 0xc7, 0xef, 0xbb, 0x6b, 0x99, 0xbb, 0xca, 0x41, 0xc3, 0xbd, 0x06, 0xbc, 0x69, 0xfb, 0xde, - 0x30, 0xb8, 0x12, 0x37, 0x3e, 0x02, 0xb3, 0x72, 0x07, 0x5c, 0x00, 0xe5, 0x3d, 0x34, 0xe4, 0x56, - 0x91, 0xfc, 0x84, 0x2f, 0x83, 0xa9, 0x7d, 0xa3, 0x37, 0x40, 0x23, 0xa6, 0xa7, 0x18, 0xf0, 0x1b, - 0xa5, 0xd7, 0x15, 0x99, 0x80, 0x41, 0xf8, 0x25, 0x4a, 0xc0, 0xc0, 0x0c, 0x07, 0x04, 0x14, 0x76, - 0x78, 0x4c, 0x02, 0x46, 0xe7, 0x09, 0x09, 0x18, 0x8d, 0xec, 0x14, 0x12, 0x30, 0x0d, 0x0d, 0xbf, - 0x6f, 0x0b, 0x02, 0x72, 0x8c, 0x84, 0x80, 0x72, 0xc7, 0x21, 0x08, 0xc8, 0xef, 0xf3, 0x12, 0x01, - 0x7f, 0xb1, 0xc4, 0x4e, 0xe0, 0x87, 0xc8, 0xb3, 0x3a, 0xc3, 0x9d, 0xa0, 0xe4, 0x80, 0xac, 0x4b, - 0x50, 0xf1, 0x65, 0xc9, 0x52, 0x51, 0xb5, 0x5d, 0x5f, 0xfc, 0xd1, 0x0f, 0xae, 0x1e, 0xe7, 0x65, - 0x0f, 0xdc, 0x4f, 0x6a, 0xfa, 0x9e, 0x65, 0x77, 0x25, 0x1b, 0x76, 0x07, 0xd4, 0x45, 0x75, 0x02, - 0x53, 0x5f, 0x76, 0x16, 0x9f, 0x97, 0x6d, 0xa7, 0x00, 0x58, 0xd1, 0x50, 0xa8, 0xd5, 0xda, 0xac, - 0x27, 0x7d, 0x11, 0x23, 0x10, 0xe0, 0xb1, 0x4c, 0x7e, 0x77, 0x00, 0xa2, 0x69, 0xdb, 0x84, 0xeb, - 0xa0, 0x66, 0xb4, 0x99, 0x49, 0x22, 0xd3, 0x4c, 0x26, 0xa7, 0x09, 0x2b, 0x29, 0x56, 0xd6, 0x28, - 0x24, 0x9d, 0x06, 0x18, 0xc1, 0x6f, 0xf5, 0x6b, 0xcc, 0x47, 0x4b, 0xa7, 0x42, 0xa8, 0xf9, 0xa8, - 0xd3, 0x11, 0x51, 0x93, 0xb9, 0xe8, 0x29, 0x20, 0x4d, 0xb1, 0x49, 0x81, 0x34, 0x0e, 0xac, 0xde, - 0x02, 0x97, 0x05, 0xcf, 0x13, 0xe9, 0x38, 0x0b, 0xe1, 0x11, 0xee, 0xa1, 0x7f, 0xa4, 0x80, 0xe7, - 0x47, 0x41, 0xc1, 0xd7, 0xe9, 0x83, 0x33, 0x5d, 0x9a, 0xfd, 0xd3, 0x79, 0x46, 0x50, 0xa7, 0x36, - 0x48, 0xef, 0x70, 0x70, 0x2e, 0xa1, 0x63, 0xe4, 0x0e, 0x1b, 0xdd, 0xf4, 0x1e, 0x0b, 0x61, 0xf5, - 0x16, 0xf3, 0x69, 0x88, 0xcd, 0x4c, 0x00, 0xad, 0x0f, 0xb7, 0xf6, 0xbb, 0xe1, 0x26, 0x9f, 0x06, - 0xd3, 0xdd, 0xfd, 0x6e, 0xb8, 0xcb, 0xa9, 0xee, 0x7e, 0x77, 0xdb, 0x54, 0xbf, 0xad, 0x80, 0xe5, - 0x62, 0x14, 0x7c, 0x93, 0x1f, 0x83, 0xe3, 0x69, 0x9b, 0xe4, 0x07, 0xf4, 0x81, 0x72, 0xd5, 0x30, - 0xb9, 0x2b, 0xf5, 0x46, 0x10, 0xa4, 0x49, 0x21, 0x43, 0xb8, 0x8d, 0xfd, 0x6e, 0x47, 0xda, 0xc6, - 0x7e, 0xb7, 0xb3, 0x6d, 0xaa, 0xbb, 0x41, 0x90, 0x2c, 0x6d, 0x28, 0x5f, 0x3e, 0xcf, 0xe2, 0x2a, - 0x87, 0xc9, 0xe2, 0xaa, 0x0f, 0x83, 0x45, 0xa6, 0xec, 0x6a, 0x84, 0x0b, 0x2d, 0xd9, 0x41, 0x8f, - 0x31, 0x82, 0x79, 0x88, 0x53, 0x3d, 0xca, 0x88, 0x56, 0xb0, 0x83, 0x34, 0xbc, 0x41, 0x5c, 0x87, - 0xd6, 0x06, 0x28, 0x63, 0xd6, 0x06, 0xec, 0x25, 0x0c, 0xf7, 0xb6, 0xbd, 0xf5, 0x70, 0x2b, 0x5f, - 0x44, 0xe2, 0xe9, 0x3f, 0x6e, 0x0b, 0xa4, 0xf4, 0x5f, 0xc4, 0x21, 0xa8, 0x8b, 0xa0, 0xaf, 0x9e, - 0xb0, 0xde, 0x7c, 0xb2, 0x30, 0x31, 0x1a, 0xb5, 0xde, 0x17, 0xf3, 0x0d, 0x28, 0xaf, 0xc7, 0x08, - 0x2c, 0xb4, 0xfa, 0x1b, 0x3c, 0x32, 0x10, 0x9f, 0x61, 0xcd, 0x36, 0xc5, 0x95, 0x2f, 0x77, 0x5f, - 0x11, 0x2e, 0x95, 0x62, 0x5c, 0x1a, 0x73, 0xd3, 0xbb, 0xe0, 0x62, 0xc1, 0x92, 0x8e, 0x6a, 0xf7, - 0x7f, 0xa8, 0x84, 0x26, 0x2e, 0x38, 0xd6, 0xe4, 0xa9, 0xee, 0x38, 0xde, 0xd6, 0x86, 0x20, 0xc1, - 0x33, 0x00, 0x98, 0xd8, 0xd7, 0x23, 0x64, 0xa8, 0x98, 0xd8, 0xdf, 0xfa, 0xa9, 0x51, 0xa2, 0x1f, - 0x9a, 0xcf, 0xbc, 0xe5, 0x1d, 0x15, 0x39, 0xee, 0x87, 0x29, 0x86, 0xbb, 0x56, 0xd7, 0x33, 0x7c, - 0xc4, 0xa6, 0xd9, 0xa4, 0x15, 0x70, 0x82, 0x0c, 0xa7, 0x40, 0x85, 0x65, 0x73, 0x02, 0xbd, 0x9c, - 0xa1, 0xdf, 0xdb, 0x66, 0x78, 0x08, 0x94, 0xa4, 0x43, 0xe0, 0x5f, 0x4a, 0xe0, 0x64, 0x06, 0x4a, - 0xf8, 0x36, 0x98, 0xa2, 0xe5, 0x75, 0x5c, 0x1b, 0x97, 0xd3, 0xae, 0x27, 0x14, 0x94, 0x0d, 0x26, - 0x07, 0x1b, 0xf7, 0xa4, 0xe8, 0x30, 0xf8, 0x01, 0x98, 0x6d, 0x1b, 0x76, 0x1b, 0xf5, 0x74, 0x86, - 0x86, 0x79, 0x11, 0x2b, 0x99, 0x68, 0x36, 0x28, 0x70, 0x1c, 0x59, 0x8d, 0xe1, 0xa0, 0x10, 0xf0, - 0x43, 0x30, 0xd7, 0x76, 0xfa, 0x2e, 0xad, 0xb9, 0x61, 0x48, 0x59, 0x15, 0xd1, 0x8b, 0xd9, 0x48, - 0x39, 0x78, 0x1c, 0x6d, 0x5d, 0xe0, 0x61, 0x88, 0xef, 0x81, 0x59, 0x0f, 0x51, 0x97, 0x8e, 0xa1, - 0x9d, 0xa4, 0x68, 0x5f, 0xc8, 0x44, 0xab, 0x51, 0xe0, 0x08, 0xd5, 0xb4, 0x1a, 0xc3, 0x40, 0xfb, - 0x55, 0x3b, 0x4c, 0xd1, 0xa7, 0xb2, 0x8b, 0x8b, 0xc5, 0x16, 0x98, 0x66, 0x25, 0x8c, 0x5c, 0x2a, - 0x56, 0xb3, 0xa4, 0x22, 0x0b, 0x11, 0x1f, 0xae, 0xbe, 0x1f, 0x1a, 0xa3, 0xe6, 0x23, 0xc3, 0xbd, - 0x37, 0x38, 0xa4, 0x60, 0xfc, 0x97, 0x02, 0x8e, 0x25, 0x90, 0xc1, 0x9b, 0xd2, 0x72, 0x59, 0xd8, - 0x3d, 0xcb, 0x42, 0xd3, 0x01, 0x7c, 0xb0, 0x58, 0x24, 0xdc, 0x01, 0x75, 0x59, 0x22, 0x30, 0x17, - 0x89, 0x2b, 0xf9, 0x58, 0x98, 0x5c, 0x08, 0x5c, 0xb3, 0x92, 0x3c, 0x60, 0xf8, 0x90, 0xe6, 0xf2, - 0x25, 0x81, 0xc0, 0x5c, 0x22, 0xae, 0x16, 0xe0, 0xe4, 0x83, 0x04, 0xd6, 0xb9, 0x88, 0x38, 0x60, - 0xb5, 0xc5, 0xe2, 0xec, 0x29, 0xe4, 0xe4, 0x8c, 0x5b, 0x8b, 0x31, 0xee, 0x72, 0x1e, 0xe3, 0xa2, - 0x28, 0x04, 0xcb, 0xee, 0x84, 0x09, 0xea, 0xe4, 0x79, 0x46, 0xdc, 0x2f, 0xd4, 0x76, 0x6c, 0xd3, - 0xf0, 0x86, 0xcd, 0x9d, 0x5c, 0x47, 0xee, 0x51, 0x98, 0x33, 0x2e, 0xc6, 0x13, 0x78, 0x0a, 0xd1, - 0xfb, 0xe6, 0x81, 0x8e, 0x5a, 0x3e, 0x54, 0xdd, 0x0e, 0x2d, 0x60, 0xea, 0xc4, 0xd1, 0x43, 0x2a, - 0x37, 0x08, 0xee, 0x81, 0x2b, 0x23, 0xa1, 0x3a, 0xca, 0xe5, 0xdf, 0x0d, 0x9d, 0x85, 0xa6, 0xbb, - 0xf9, 0xd8, 0x3a, 0xa4, 0xc6, 0xfc, 0x50, 0x01, 0x0b, 0x71, 0x5c, 0x70, 0x2b, 0x6a, 0x43, 0x5f, - 0x2a, 0xd0, 0x17, 0x66, 0x62, 0x76, 0x3c, 0x67, 0xdf, 0x32, 0x91, 0x47, 0xf0, 0x08, 0x63, 0xfa, - 0x8d, 0x84, 0xe5, 0x63, 0xba, 0x73, 0x63, 0x44, 0x39, 0x4f, 0xc1, 0x1c, 0x35, 0x81, 0xea, 0x37, - 0x24, 0x0b, 0x12, 0x21, 0x07, 0xa7, 0xf9, 0xad, 0x98, 0xee, 0x2f, 0xe7, 0x4a, 0xbc, 0x8c, 0x41, - 0x08, 0xfc, 0x1a, 0x38, 0xce, 0x3d, 0xc0, 0xe6, 0x0e, 0x0d, 0x69, 0x71, 0x4a, 0x5f, 0x06, 0x0b, - 0xe2, 0x7e, 0xa7, 0x47, 0x4b, 0x01, 0xe7, 0x45, 0x3b, 0xbf, 0x0e, 0xaa, 0x2d, 0xf0, 0x74, 0x0c, - 0x05, 0x5f, 0xdd, 0x36, 0x58, 0x10, 0xb5, 0x87, 0x2e, 0xdf, 0x64, 0x6a, 0x26, 0xc2, 0x5d, 0x89, - 0x91, 0x42, 0x9b, 0xc7, 0xd1, 0x06, 0xf5, 0x75, 0xe6, 0xa8, 0xee, 0x04, 0x59, 0x7f, 0xbb, 0xed, - 0xf4, 0x91, 0x38, 0x90, 0xf3, 0x34, 0xf1, 0x6f, 0x14, 0x76, 0x48, 0x67, 0x0d, 0xe5, 0x6b, 0xbd, - 0x02, 0x8e, 0xb5, 0x07, 0x9e, 0x87, 0x6c, 0x29, 0x24, 0x2e, 0xaa, 0x4c, 0x78, 0x47, 0x10, 0x0d, - 0x87, 0xbb, 0xe0, 0x94, 0x5c, 0x94, 0x40, 0x11, 0xea, 0x26, 0xc3, 0xc8, 0x83, 0xf3, 0x57, 0x33, - 0x6b, 0x10, 0xd3, 0xd6, 0xa1, 0x9d, 0x70, 0x53, 0x97, 0xa7, 0xfe, 0x93, 0x02, 0x9e, 0x4e, 0x1d, - 0x91, 0x71, 0x27, 0x39, 0xa2, 0x2c, 0x2a, 0xbc, 0x0f, 0xa6, 0xd9, 0xb6, 0xa8, 0xe9, 0x9e, 0x5d, - 0x7f, 0xeb, 0xd3, 0xcf, 0xcf, 0x4e, 0xfc, 0xf8, 0xf3, 0xb3, 0xcf, 0x75, 0x2d, 0x7f, 0x77, 0xd0, - 0x5a, 0x69, 0x3b, 0x7d, 0xfe, 0x18, 0x82, 0xff, 0x77, 0x15, 0x9b, 0x7b, 0xbc, 0xa6, 0x7f, 0xdb, - 0xf6, 0x7f, 0xf4, 0x83, 0xab, 0x80, 0x07, 0x0d, 0xb6, 0x6d, 0x5f, 0xe3, 0xb8, 0xd4, 0x37, 0xd8, - 0x01, 0x1c, 0x1a, 0xbf, 0x03, 0xf0, 0xf1, 0x1f, 0xb9, 0xe3, 0x9d, 0x3d, 0x78, 0x1c, 0x4e, 0xda, - 0xe0, 0x34, 0x16, 0x08, 0x33, 0x79, 0x99, 0xe9, 0x00, 0x64, 0xac, 0x45, 0x5b, 0xc4, 0x19, 0x8b, - 0x54, 0xff, 0x59, 0x01, 0x27, 0x33, 0x46, 0x65, 0xdd, 0x18, 0xfe, 0x57, 0x73, 0xf4, 0x5b, 0x25, - 0x30, 0xdd, 0xf4, 0x0d, 0x7f, 0x80, 0xa1, 0x0e, 0x9e, 0x8e, 0x6b, 0xbb, 0x9c, 0x7c, 0xbc, 0x92, - 0x49, 0xc4, 0xa8, 0xaa, 0x53, 0x0b, 0xf2, 0x14, 0x4e, 0x36, 0xc2, 0x26, 0x38, 0xc6, 0x8c, 0x3f, - 0x1e, 0xda, 0x6d, 0x81, 0x9c, 0x11, 0xe3, 0x52, 0x66, 0x1c, 0x91, 0x0c, 0x68, 0x52, 0x78, 0x8a, - 0x78, 0xbe, 0x15, 0x6d, 0x80, 0xb7, 0x00, 0x68, 0xef, 0x1a, 0x96, 0xcd, 0xb0, 0x31, 0x3f, 0xe5, - 0x7c, 0x16, 0xb6, 0x0d, 0x02, 0x49, 0xf1, 0x54, 0xdb, 0xe2, 0xa7, 0xfa, 0x5b, 0x65, 0x30, 0x1f, - 0x9b, 0x06, 0x3e, 0x07, 0xe6, 0x5b, 0x98, 0xd7, 0x70, 0xed, 0x22, 0xab, 0xbb, 0x2b, 0x0a, 0x9b, - 0xea, 0x2d, 0x4c, 0x61, 0xdf, 0xa5, 0x8d, 0x50, 0x05, 0xf5, 0x10, 0xce, 0xc0, 0x22, 0xb7, 0x5f, - 0x13, 0x50, 0xbc, 0xd4, 0xbc, 0x85, 0x75, 0x39, 0x92, 0xcf, 0x12, 0x2d, 0xb3, 0x2d, 0xfc, 0x20, - 0x8c, 0xe5, 0x2f, 0x83, 0x85, 0x16, 0xd6, 0xfb, 0x43, 0xfc, 0x49, 0x4f, 0xdf, 0x47, 0x1e, 0xb6, - 0x82, 0xd2, 0xf7, 0xb9, 0x16, 0xbe, 0x4b, 0x9a, 0x1f, 0xb2, 0x56, 0x78, 0x0b, 0x9c, 0x69, 0x61, - 0xdd, 0x44, 0x1d, 0x63, 0xd0, 0xf3, 0xf5, 0xf6, 0xae, 0xe1, 0x19, 0x6d, 0x1f, 0x79, 0x3a, 0x16, - 0x05, 0x22, 0xac, 0xe4, 0xf3, 0x54, 0x0b, 0xdf, 0x66, 0x30, 0x1b, 0x02, 0xa4, 0xc9, 0xeb, 0x45, - 0x6e, 0x80, 0x53, 0x32, 0x06, 0xa7, 0xd7, 0x63, 0x79, 0x02, 0xa9, 0x16, 0xf4, 0x44, 0x38, 0x5a, - 0x74, 0x8b, 0x7a, 0x60, 0xb2, 0x4c, 0x42, 0x5e, 0x84, 0x17, 0x67, 0x68, 0x89, 0x67, 0xb5, 0x85, - 0xef, 0xb2, 0x06, 0xde, 0xfd, 0xc8, 0xf1, 0xf6, 0x90, 0x87, 0x69, 0x52, 0xa2, 0x4e, 0xba, 0x3f, - 0x64, 0x0d, 0xf0, 0x32, 0x38, 0xd6, 0xc2, 0x3a, 0xb2, 0x8d, 0x56, 0x0f, 0xe9, 0xe6, 0xc0, 0xe8, - 0xe9, 0x66, 0x8b, 0x26, 0x26, 0x2a, 0x64, 0x97, 0x9b, 0xb4, 0xfd, 0xf6, 0xc0, 0xe8, 0xdd, 0x6e, - 0xa9, 0xef, 0x81, 0x6a, 0xc0, 0x2d, 0xe2, 0x36, 0x70, 0x26, 0x8b, 0x2a, 0xb8, 0x19, 0xc6, 0x3f, - 0x93, 0x56, 0x22, 0xd0, 0x2e, 0x71, 0xc8, 0x95, 0xe8, 0x9a, 0x66, 0x69, 0xa3, 0x38, 0xe1, 0xfe, - 0xaa, 0x04, 0x9e, 0x4a, 0x11, 0x53, 0xc2, 0x66, 0xec, 0xea, 0x6d, 0xc7, 0x44, 0x01, 0xcd, 0x19, - 0xfa, 0x3a, 0x76, 0x37, 0x1c, 0x13, 0x09, 0x92, 0x3f, 0x0b, 0xe6, 0x04, 0x5c, 0xdb, 0xe9, 0x93, - 0x5b, 0x2b, 0xe3, 0xf3, 0x2c, 0x03, 0xdb, 0xa0, 0x6d, 0xf0, 0x12, 0xc5, 0x66, 0x78, 0xed, 0x5d, - 0xcb, 0x47, 0x6d, 0x7f, 0xe0, 0x89, 0x3c, 0xc8, 0x1c, 0x76, 0xd7, 0xa4, 0x56, 0x22, 0x35, 0xd8, - 0xd5, 0xbb, 0x4e, 0x8c, 0xd1, 0x35, 0xec, 0x6e, 0x39, 0x62, 0xca, 0x15, 0xf0, 0x14, 0x76, 0x75, - 0x76, 0x54, 0x5b, 0x76, 0x57, 0xc7, 0x43, 0xec, 0xa3, 0xbe, 0x28, 0x8f, 0xc6, 0xee, 0x3d, 0xd1, - 0xd3, 0xa4, 0x1d, 0x11, 0x78, 0xe9, 0xc8, 0x9f, 0x8e, 0xc2, 0x07, 0x87, 0x3e, 0xdf, 0x92, 0xe9, - 0xf4, 0x09, 0xed, 0x28, 0xe3, 0x67, 0xc4, 0x96, 0x6e, 0xd3, 0x46, 0xc2, 0x6e, 0xf5, 0x44, 0xe8, - 0x5d, 0x50, 0x23, 0xc1, 0x2d, 0xbc, 0x7a, 0x2f, 0x74, 0x19, 0x78, 0x7b, 0x58, 0xaf, 0x86, 0x69, - 0x4b, 0x51, 0xbd, 0x1a, 0x1f, 0xc7, 0xa1, 0x55, 0x37, 0xc8, 0xe3, 0x3c, 0xc0, 0xc8, 0x63, 0x1e, - 0xea, 0x88, 0x55, 0x90, 0x41, 0x24, 0xa1, 0x24, 0x45, 0x12, 0x0a, 0x03, 0x10, 0xea, 0x57, 0x23, - 0x55, 0xfe, 0x62, 0x46, 0xbe, 0x8d, 0x37, 0x63, 0xbe, 0xf0, 0x85, 0xdc, 0xd4, 0x11, 0x4b, 0x3d, - 0x06, 0x3e, 0xb0, 0x1d, 0x94, 0xf6, 0x4b, 0xbd, 0xb2, 0x0b, 0xcc, 0x82, 0xbc, 0xa1, 0x0b, 0x4c, - 0xbf, 0x0f, 0xb2, 0x93, 0x48, 0x21, 0xbd, 0xfa, 0x11, 0xf3, 0xb9, 0x13, 0xf3, 0x1d, 0xc5, 0x5e, - 0x06, 0x41, 0x6d, 0x14, 0xa1, 0xd2, 0xbd, 0x47, 0x36, 0x32, 0xff, 0x27, 0x98, 0xf3, 0x71, 0xa4, - 0x34, 0x36, 0x32, 0xed, 0x51, 0xec, 0xea, 0x1f, 0x4a, 0x60, 0x7a, 0xc7, 0xe9, 0x59, 0xed, 0x21, - 0xbc, 0x08, 0xe6, 0x5c, 0xcf, 0xb2, 0xdb, 0x96, 0x6b, 0xf4, 0x58, 0x56, 0x82, 0xec, 0x61, 0x4a, - 0xab, 0x07, 0xad, 0x34, 0xb5, 0x71, 0x09, 0xcc, 0x87, 0x60, 0x61, 0x02, 0xa7, 0xaa, 0x85, 0xa3, - 0x1f, 0x92, 0xd6, 0x64, 0x2e, 0xa5, 0x7c, 0x24, 0xb9, 0x14, 0xfe, 0x7c, 0x42, 0xca, 0xa5, 0x5c, - 0x06, 0x0b, 0x52, 0x6e, 0x99, 0x79, 0x49, 0x2c, 0x89, 0x3a, 0x1f, 0x26, 0x98, 0x99, 0x93, 0x74, - 0x19, 0x2c, 0x48, 0xc7, 0x0f, 0x03, 0x65, 0xc9, 0xe6, 0xf9, 0x30, 0x9b, 0xcc, 0x40, 0x53, 0x12, - 0xc7, 0x33, 0xa9, 0x89, 0xe3, 0x7f, 0x57, 0xc2, 0xdb, 0x3c, 0x8b, 0xae, 0x51, 0x82, 0x5a, 0x08, - 0x1f, 0x5d, 0x09, 0x6d, 0x2c, 0x5d, 0x54, 0x1e, 0x23, 0x5d, 0x94, 0x1e, 0x67, 0x8c, 0x0b, 0xe0, - 0x54, 0x42, 0x00, 0xff, 0x1f, 0x13, 0xc0, 0xb4, 0xdd, 0x71, 0x01, 0x7c, 0x03, 0x54, 0x5c, 0xde, - 0x56, 0x54, 0x79, 0xcc, 0x44, 0x4d, 0x0b, 0xe0, 0xd5, 0x7b, 0x61, 0x0c, 0x3a, 0xfa, 0xa4, 0x89, - 0xf9, 0x7f, 0x01, 0x09, 0x2f, 0xa5, 0xbf, 0x90, 0xaa, 0xc6, 0x5f, 0x3e, 0xa9, 0x46, 0x18, 0x41, - 0xce, 0x40, 0x78, 0xe8, 0x72, 0xe9, 0x8d, 0x30, 0x56, 0x4a, 0x74, 0x32, 0x3a, 0xcd, 0x88, 0xe6, - 0x40, 0xfd, 0xd9, 0x30, 0x82, 0x97, 0x8a, 0x84, 0xaf, 0xf2, 0x01, 0x58, 0x88, 0xed, 0x5b, 0xb8, - 0xf2, 0xcf, 0x8f, 0xf6, 0x34, 0x8c, 0xd6, 0xb5, 0xce, 0x47, 0x89, 0x84, 0xd5, 0x1b, 0xcc, 0x30, - 0xd3, 0x80, 0x08, 0x8f, 0x81, 0x48, 0x19, 0xe8, 0xd3, 0xa0, 0x2a, 0x0c, 0xb3, 0x48, 0x40, 0x57, - 0xb8, 0x65, 0xc6, 0xea, 0x67, 0x4a, 0x18, 0xd8, 0x88, 0x8c, 0xe5, 0x2b, 0xfe, 0x30, 0x66, 0x8e, - 0xde, 0x29, 0x4a, 0x2a, 0xa7, 0x20, 0x61, 0xa6, 0x8a, 0xa7, 0x94, 0x39, 0xba, 0xc6, 0x57, 0x79, - 0x79, 0x4b, 0x66, 0x42, 0xf9, 0x7a, 0x34, 0xa1, 0x5c, 0x50, 0xe4, 0x20, 0xe5, 0x93, 0xdf, 0x62, - 0x32, 0x43, 0xaf, 0xfd, 0x3c, 0x92, 0x6b, 0x77, 0x79, 0xd5, 0x36, 0x7b, 0x11, 0x91, 0x77, 0x9d, - 0x7b, 0x9b, 0x15, 0x58, 0xe5, 0x8d, 0x4e, 0x7b, 0x59, 0x30, 0x29, 0xea, 0x29, 0x1e, 0xb1, 0xd9, - 0x59, 0x1a, 0x97, 0x07, 0x61, 0xb7, 0x1e, 0x6e, 0x85, 0x09, 0xdd, 0x51, 0xd3, 0x62, 0xdd, 0x48, - 0x5a, 0x8c, 0x5d, 0xb9, 0x1a, 0xa0, 0x6a, 0x62, 0x9f, 0x3f, 0x38, 0x28, 0xd3, 0x9e, 0x19, 0x13, - 0xfb, 0x4d, 0xb2, 0x70, 0x9d, 0x2d, 0x3c, 0x6f, 0xe2, 0xc3, 0x65, 0x91, 0x5f, 0x8b, 0x95, 0x72, - 0x37, 0xad, 0x27, 0x68, 0xa4, 0x78, 0xdd, 0x5b, 0xb1, 0xe2, 0x6c, 0x36, 0x90, 0x2f, 0x26, 0x34, - 0x96, 0xb4, 0x74, 0x31, 0x52, 0x04, 0x4e, 0x00, 0xaf, 0xfd, 0xfe, 0x6b, 0xe0, 0x29, 0x32, 0xfc, - 0x2e, 0x67, 0x7b, 0x13, 0x79, 0xfb, 0x56, 0x1b, 0xc1, 0x6f, 0x02, 0x98, 0x7c, 0xfb, 0x01, 0x5f, - 0xca, 0x93, 0xcf, 0xd4, 0x97, 0x8f, 0x8d, 0x6b, 0x07, 0x19, 0xc2, 0x56, 0xad, 0x4e, 0xc0, 0xdf, - 0x53, 0x52, 0xea, 0x3e, 0xc2, 0xb7, 0x01, 0xf0, 0x8d, 0x91, 0xab, 0x2f, 0x12, 0xef, 0x17, 0x1a, - 0x6f, 0x8e, 0x35, 0x36, 0x58, 0xda, 0x6f, 0xc6, 0xab, 0xe1, 0x23, 0x0b, 0x7b, 0xbd, 0x60, 0xbb, - 0x99, 0xef, 0xd1, 0x1a, 0x37, 0xc6, 0x18, 0x19, 0x2c, 0xea, 0x57, 0xc3, 0x82, 0xac, 0xf8, 0xf3, - 0x2d, 0xf8, 0xea, 0x81, 0x10, 0x07, 0x59, 0xfc, 0xc6, 0x6b, 0x07, 0x1e, 0x17, 0x2c, 0xe7, 0xef, - 0x79, 0xa6, 0x7f, 0x94, 0xc7, 0x53, 0x70, 0xab, 0x88, 0x1f, 0x23, 0xbe, 0x19, 0x6b, 0xbc, 0x7b, - 0x78, 0x44, 0x69, 0x04, 0x8d, 0x3f, 0x7e, 0x2a, 0x24, 0x68, 0xc6, 0xbb, 0xac, 0x42, 0x82, 0x66, - 0xbd, 0xb2, 0x52, 0x27, 0xe0, 0xef, 0x28, 0xe1, 0x21, 0x94, 0x7c, 0xd6, 0x04, 0x6f, 0x14, 0xed, - 0x3c, 0xf3, 0x19, 0x56, 0xe3, 0x8d, 0x71, 0x86, 0x06, 0xeb, 0x7a, 0x02, 0x8e, 0x25, 0x5e, 0x21, - 0xc1, 0x17, 0x0b, 0xf6, 0x99, 0x78, 0x37, 0xd5, 0x78, 0xe9, 0x00, 0x23, 0x12, 0x34, 0x49, 0x7f, - 0x3e, 0x04, 0x8b, 0xf4, 0x29, 0xfb, 0x85, 0x53, 0x3e, 0x4d, 0xf2, 0x5f, 0x2b, 0xa9, 0x13, 0xf0, - 0xd7, 0xc2, 0x17, 0x62, 0x89, 0x07, 0x40, 0xf0, 0xb5, 0x83, 0xa1, 0x0e, 0xb5, 0xf1, 0xf5, 0x83, - 0x0f, 0x0c, 0x56, 0xf4, 0x4d, 0x76, 0x1f, 0x8f, 0x17, 0x3f, 0xc1, 0xd4, 0x5c, 0x2d, 0x2d, 0x5a, - 0x8e, 0x83, 0x86, 0x8c, 0x1a, 0x7d, 0x44, 0x8a, 0x90, 0x84, 0xcf, 0x87, 0x0a, 0x85, 0x24, 0xf1, - 0xa0, 0xa9, 0x50, 0x48, 0x92, 0x6f, 0x93, 0xd4, 0x09, 0xf8, 0xcb, 0x4a, 0x10, 0x73, 0x88, 0xbe, - 0xf1, 0x81, 0x2f, 0x17, 0xa0, 0x4b, 0x7d, 0x47, 0xd4, 0x78, 0xe5, 0x80, 0xa3, 0x82, 0x85, 0x7c, - 0x5b, 0x01, 0x27, 0xd2, 0x5f, 0xeb, 0xc0, 0x57, 0x46, 0xda, 0x58, 0xfc, 0x29, 0x4b, 0xe3, 0xd5, - 0x83, 0x0e, 0x0b, 0xd6, 0xf2, 0x07, 0x4a, 0xf0, 0x5a, 0x2a, 0xf5, 0x9d, 0x0b, 0x7c, 0xb3, 0x00, - 0x75, 0xde, 0x13, 0x9b, 0xc6, 0x5b, 0xe3, 0x0d, 0x4e, 0xe8, 0x4f, 0xda, 0x7b, 0x8a, 0x7c, 0xfd, - 0xc9, 0x79, 0x1a, 0x93, 0xaf, 0x3f, 0x79, 0x4f, 0x37, 0xa4, 0xc3, 0x20, 0xe5, 0x15, 0x43, 0xfe, - 0x61, 0x90, 0xfd, 0x6c, 0x22, 0xff, 0x30, 0xc8, 0x79, 0x2e, 0xa1, 0x4e, 0xc0, 0x3f, 0x96, 0x1f, - 0x55, 0xa4, 0x3f, 0x2f, 0x80, 0x6f, 0x17, 0xa2, 0xcf, 0x7d, 0xdf, 0xd0, 0x78, 0x67, 0xec, 0xf1, - 0xc1, 0x32, 0x1f, 0x81, 0x85, 0x78, 0x91, 0x35, 0x5c, 0x2d, 0x90, 0x8d, 0x78, 0x35, 0x79, 0xe3, - 0xc5, 0xd1, 0x07, 0x04, 0x13, 0xff, 0x82, 0xc2, 0xec, 0x5d, 0xbc, 0x8c, 0x19, 0x5e, 0x3f, 0x58, - 0xd1, 0x33, 0x5b, 0xc1, 0xcb, 0xe3, 0x54, 0x4a, 0xc7, 0x56, 0x21, 0xd7, 0x02, 0x17, 0xaf, 0x22, - 0xa5, 0xd0, 0xb9, 0x78, 0x15, 0x69, 0xe5, 0xc6, 0x92, 0x32, 0xa5, 0x15, 0xbe, 0xe6, 0x2b, 0x53, - 0x4e, 0xc1, 0x70, 0xbe, 0x32, 0xe5, 0xd5, 0xd8, 0xaa, 0x13, 0xf0, 0x4f, 0x95, 0x30, 0x24, 0x90, - 0x5d, 0xec, 0x0a, 0x0b, 0xeb, 0xab, 0x0b, 0x6b, 0x6d, 0x1b, 0xeb, 0x87, 0x41, 0x11, 0xac, 0xf7, - 0x4f, 0x94, 0x9c, 0x2a, 0x4c, 0x5e, 0xb5, 0x0a, 0xdf, 0x29, 0x12, 0xd3, 0x82, 0x92, 0xd9, 0xc6, - 0xad, 0xf1, 0x11, 0xa4, 0xdd, 0x4c, 0x92, 0x15, 0xa5, 0x85, 0x37, 0x93, 0xcc, 0x3a, 0xd8, 0xc2, - 0x9b, 0x49, 0x76, 0x19, 0x6c, 0x74, 0x51, 0xc9, 0x3d, 0x14, 0x2e, 0x2a, 0xb3, 0xee, 0xb5, 0x70, - 0x51, 0xd9, 0x95, 0xad, 0xe9, 0xba, 0x49, 0x6b, 0x27, 0x47, 0xd6, 0x4d, 0xb9, 0x96, 0x75, 0x64, - 0xdd, 0x8c, 0xd4, 0xa4, 0xaa, 0x13, 0xf0, 0xbb, 0x89, 0x60, 0x68, 0xac, 0x82, 0x13, 0xbe, 0x75, - 0x10, 0xcc, 0xf1, 0x5a, 0xd4, 0xc6, 0xcd, 0x31, 0x47, 0xa7, 0xaa, 0x6a, 0x76, 0x61, 0x25, 0x1c, - 0xfd, 0x29, 0x44, 0x56, 0xcd, 0x68, 0xb1, 0xaa, 0x16, 0xd7, 0x75, 0xc6, 0xae, 0x9d, 0x45, 0xf5, - 0x57, 0xc5, 0xd7, 0xce, 0x11, 0x2b, 0xc1, 0x8a, 0xaf, 0x9d, 0xa3, 0x96, 0x82, 0xa9, 0x13, 0xf0, - 0xcf, 0x95, 0x30, 0xd4, 0x99, 0x53, 0x7d, 0x05, 0xd7, 0xc7, 0x9a, 0x33, 0x2a, 0x1e, 0x1b, 0x87, - 0xc2, 0x91, 0x1a, 0xaa, 0x49, 0xab, 0x5d, 0x2d, 0xbc, 0x60, 0x66, 0xd7, 0xd0, 0x16, 0x87, 0x6a, - 0x72, 0x0a, 0x3a, 0x25, 0xe7, 0x3f, 0x59, 0x3d, 0x59, 0xa8, 0xb2, 0x69, 0x95, 0x9b, 0xf9, 0xce, - 0x7f, 0x66, 0x81, 0x62, 0xcc, 0xde, 0x44, 0x8a, 0xd2, 0x0a, 0xed, 0x4d, 0x4a, 0x39, 0x5c, 0xb1, - 0xbd, 0x49, 0x2b, 0x1a, 0x53, 0x27, 0xa0, 0x0d, 0xea, 0x91, 0x8a, 0x2d, 0xf8, 0x42, 0x81, 0x0d, - 0x8d, 0xd4, 0x86, 0x35, 0xae, 0x8e, 0x08, 0x9d, 0x36, 0x1f, 0xab, 0x15, 0x29, 0x9c, 0x4f, 0xce, - 0x16, 0x17, 0xcf, 0x17, 0xc9, 0x21, 0x47, 0xee, 0x99, 0x61, 0x6e, 0xb6, 0xf0, 0x9e, 0x99, 0x48, - 0x1c, 0x37, 0x5e, 0x3a, 0xc0, 0x88, 0x60, 0xee, 0x6f, 0x29, 0x2c, 0x8e, 0x1a, 0x4b, 0xa7, 0xc2, - 0x6b, 0xa3, 0xf8, 0xaf, 0xd1, 0x5c, 0x6f, 0xe3, 0xfa, 0x81, 0xc6, 0xa4, 0xdd, 0x30, 0x63, 0xe9, - 0xcf, 0xc2, 0x1b, 0x66, 0x7a, 0x96, 0xb6, 0xf1, 0xea, 0x41, 0x87, 0x25, 0xd6, 0x92, 0xcc, 0x84, - 0xc1, 0x57, 0x46, 0x33, 0xf5, 0xb1, 0xbc, 0x60, 0xfe, 0x5a, 0xb2, 0x13, 0x6e, 0xb1, 0x63, 0x36, - 0x35, 0xcd, 0x55, 0x7c, 0xcc, 0xe6, 0xa5, 0xdb, 0x8a, 0x8f, 0xd9, 0xdc, 0xdc, 0x5a, 0xcc, 0x82, - 0xa6, 0xe4, 0xb7, 0x8a, 0x2d, 0x68, 0x76, 0x66, 0xad, 0xd8, 0x82, 0xe6, 0x24, 0xd4, 0x24, 0xb1, - 0x8e, 0xe5, 0x9e, 0xf2, 0xc5, 0x3a, 0x3d, 0x53, 0xd6, 0xb8, 0x3e, 0x46, 0x72, 0x4b, 0x9d, 0x80, - 0xdf, 0x53, 0x82, 0xac, 0x7e, 0x46, 0xce, 0x08, 0xde, 0x2c, 0xb4, 0x4c, 0x79, 0x99, 0xaa, 0xc6, - 0xdb, 0xe3, 0x0e, 0x4f, 0xac, 0x31, 0x3b, 0x3d, 0x94, 0xbf, 0xc6, 0xc2, 0x7c, 0x56, 0xfe, 0x1a, - 0x8b, 0xb3, 0x52, 0x29, 0x51, 0x38, 0xfa, 0xc7, 0x56, 0x46, 0x8b, 0xc2, 0x49, 0xb9, 0xa8, 0x11, - 0xa3, 0x70, 0x72, 0x12, 0x4a, 0x0a, 0xd5, 0xa6, 0x57, 0xe3, 0xe6, 0x87, 0x6a, 0x73, 0x8b, 0x7f, - 0xf3, 0x43, 0xb5, 0xf9, 0xc5, 0xbf, 0x52, 0x20, 0x2c, 0xab, 0xba, 0x34, 0x3f, 0x10, 0x56, 0x50, - 0xd0, 0x9a, 0x1f, 0x08, 0x2b, 0x2a, 0x68, 0x55, 0x27, 0xd6, 0x8d, 0x4f, 0xbf, 0x58, 0x52, 0x3e, - 0xfb, 0x62, 0x49, 0xf9, 0xc9, 0x17, 0x4b, 0xca, 0xaf, 0x7f, 0xb9, 0x34, 0xf1, 0xd9, 0x97, 0x4b, - 0x13, 0xff, 0xf6, 0xe5, 0xd2, 0xc4, 0x47, 0x5b, 0x52, 0xf5, 0x66, 0xcb, 0x6e, 0x5d, 0xa5, 0x65, - 0x6b, 0xab, 0x61, 0x68, 0xf6, 0x2a, 0x0f, 0xcd, 0x5e, 0x15, 0x25, 0x99, 0xab, 0xe9, 0x7f, 0x51, - 0xbd, 0x35, 0x4d, 0xff, 0xe0, 0xf6, 0xf5, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x02, 0xde, 0xee, - 0x9e, 0x72, 0x5d, 0x00, 0x00, + 0xb2, 0x2c, 0xca, 0xb2, 0x48, 0x5b, 0xf2, 0x43, 0xb2, 0x25, 0x5b, 0x24, 0x25, 0xd1, 0x84, 0x57, + 0x16, 0xdd, 0x23, 0xc9, 0xbb, 0xde, 0xdf, 0x7f, 0x6f, 0xcf, 0x74, 0xcd, 0xb0, 0xc3, 0x99, 0xee, + 0x76, 0x57, 0x0f, 0xa5, 0x11, 0xb2, 0xc8, 0x22, 0x2f, 0x60, 0x91, 0x00, 0x79, 0x07, 0xc1, 0x06, + 0x59, 0x60, 0x17, 0x01, 0x72, 0xd9, 0x04, 0x41, 0xb2, 0xc8, 0x21, 0xc9, 0x26, 0x01, 0x72, 0x31, + 0x10, 0x04, 0x30, 0xf6, 0x90, 0x04, 0x8b, 0xc0, 0x58, 0xd8, 0xf7, 0x5c, 0x72, 0xcd, 0x21, 0xa8, + 0x57, 0x77, 0xf5, 0x7b, 0x38, 0xe4, 0x06, 0x39, 0xe4, 0x22, 0x4d, 0x57, 0x7d, 0xf5, 0x55, 0xd5, + 0xf7, 0xaa, 0xaf, 0xbe, 0xef, 0x2b, 0x82, 0xf3, 0x7d, 0xc7, 0x1c, 0xf4, 0x0c, 0x6f, 0xb5, 0x8f, + 0x7c, 0xc3, 0x34, 0x7c, 0x63, 0xd5, 0x1f, 0xba, 0x08, 0x07, 0x9f, 0x2b, 0xae, 0xe7, 0xf8, 0x0e, + 0x3c, 0xc6, 0xc1, 0x56, 0x82, 0x76, 0x0a, 0xd6, 0x38, 0xdb, 0x32, 0x30, 0xe2, 0x43, 0xba, 0x1d, + 0xec, 0x22, 0xcf, 0x73, 0x3c, 0xbc, 0x4a, 0xff, 0x63, 0x43, 0x1b, 0x4b, 0x31, 0x10, 0xdf, 0xc0, + 0xbb, 0xab, 0xe4, 0x1f, 0xde, 0x7f, 0xa2, 0xed, 0xe0, 0xbe, 0x83, 0x75, 0xfa, 0xb5, 0xca, 0x3e, + 0x78, 0xd7, 0xd1, 0xae, 0xd3, 0x75, 0x58, 0x3b, 0xf9, 0xc5, 0x5b, 0x5f, 0xe8, 0x7a, 0x08, 0xd9, + 0x1d, 0x0b, 0xf5, 0xcc, 0x55, 0xd7, 0x18, 0xf6, 0x91, 0xed, 0xaf, 0x62, 0xdf, 0x43, 0x46, 0x5f, + 0xf7, 0x50, 0xdb, 0xf1, 0x4c, 0x0e, 0xa7, 0xca, 0x70, 0xc8, 0xeb, 0x5b, 0x18, 0x5b, 0x8e, 0xbd, + 0xda, 0x76, 0xfa, 0x7d, 0xc7, 0xe6, 0x30, 0xa7, 0x25, 0x18, 0x0f, 0x61, 0x67, 0xe0, 0xb5, 0xf9, + 0x5a, 0xc5, 0xea, 0x24, 0x00, 0xec, 0x46, 0xba, 0xe4, 0xb1, 0xd8, 0x77, 0x3c, 0xa3, 0x8b, 0x56, + 0xd1, 0x1e, 0xb2, 0x7d, 0x01, 0xb0, 0x94, 0x02, 0xf0, 0xc9, 0x00, 0x79, 0xc3, 0x9c, 0x7e, 0x79, + 0x82, 0xe7, 0xa5, 0xfe, 0x3d, 0xcb, 0xf3, 0x07, 0x46, 0xaf, 0xeb, 0x39, 0x03, 0x37, 0x3a, 0xcb, + 0xb9, 0x2c, 0x28, 0x19, 0xd5, 0x71, 0x82, 0x5f, 0x70, 0x81, 0xfe, 0x66, 0x1d, 0xea, 0x7f, 0x94, + 0xc0, 0xf4, 0xfa, 0xa0, 0xbd, 0x8b, 0x7c, 0xf8, 0x0e, 0xa8, 0xb5, 0xe8, 0x2f, 0xdd, 0xb2, 0x3b, + 0xce, 0xa2, 0x72, 0x46, 0x59, 0xae, 0x5d, 0x59, 0x5a, 0x09, 0xd1, 0xaf, 0xf0, 0x45, 0xae, 0xb0, + 0x01, 0x5b, 0x76, 0xc7, 0xd1, 0x40, 0x2b, 0xf8, 0x0d, 0x17, 0xc1, 0x8c, 0x87, 0xfa, 0xce, 0x1e, + 0x32, 0x17, 0x4b, 0x67, 0x94, 0xe5, 0x8a, 0x26, 0x3e, 0xe1, 0x49, 0x50, 0x35, 0x51, 0x0f, 0xf9, + 0x48, 0x37, 0xfc, 0xc5, 0xf2, 0x19, 0x65, 0xb9, 0xac, 0x55, 0x58, 0xc3, 0x9a, 0x0f, 0xcf, 0x81, + 0x3a, 0xef, 0xf4, 0x90, 0x81, 0x1d, 0x7b, 0x71, 0xf2, 0x8c, 0xb2, 0x5c, 0xd5, 0x66, 0x59, 0xa3, + 0x46, 0xdb, 0x60, 0x03, 0x54, 0x1c, 0x17, 0x79, 0x86, 0xef, 0x78, 0x8b, 0x53, 0xb4, 0x3f, 0xf8, + 0x86, 0xcf, 0x83, 0xb9, 0xb6, 0x87, 0x0c, 0x1f, 0xe9, 0xfe, 0x13, 0x7d, 0xc7, 0xc0, 0x3b, 0x8b, + 0xd3, 0x0c, 0x03, 0x6b, 0x7d, 0xf0, 0xe4, 0x5d, 0x03, 0xef, 0x10, 0xa8, 0x81, 0x6b, 0xca, 0x50, + 0x33, 0x0c, 0x8a, 0xb5, 0x72, 0xa8, 0x93, 0xa0, 0xca, 0xa1, 0x0c, 0x7f, 0xb1, 0xc2, 0x56, 0xca, + 0x1a, 0xd6, 0x7c, 0x78, 0x1a, 0xd4, 0x04, 0x0a, 0xab, 0x8f, 0x16, 0xab, 0xb4, 0x1b, 0xf0, 0xf1, + 0x56, 0x1f, 0xc1, 0xb3, 0x60, 0x96, 0xd3, 0x48, 0xc7, 0xd6, 0x53, 0xb4, 0x08, 0xe8, 0x0c, 0x35, + 0xde, 0xd6, 0xb4, 0x9e, 0x22, 0xf5, 0x3f, 0x4b, 0x60, 0xfa, 0x7e, 0xeb, 0xe7, 0x50, 0x9b, 0x12, + 0xdc, 0xa1, 0xbf, 0x0a, 0x09, 0xce, 0x06, 0x30, 0x82, 0x3b, 0xc1, 0x6f, 0x78, 0x1e, 0xcc, 0xf5, + 0x9c, 0xf6, 0x2e, 0x32, 0xf5, 0x96, 0xd1, 0x33, 0xec, 0x36, 0xa2, 0x74, 0xaf, 0x6a, 0x75, 0xd6, + 0xba, 0xce, 0x1a, 0x65, 0xbe, 0x94, 0x13, 0x7c, 0x09, 0x77, 0x3b, 0x19, 0xdb, 0x6d, 0x84, 0x69, + 0x53, 0x45, 0x4c, 0x9b, 0x2e, 0x60, 0xda, 0x4c, 0x21, 0xd3, 0x2a, 0x23, 0x31, 0xad, 0x9a, 0xc2, + 0xb4, 0x33, 0x60, 0x16, 0x23, 0xa3, 0x17, 0xc0, 0x30, 0xb2, 0x03, 0xd2, 0xc6, 0x20, 0xd4, 0xbf, + 0x53, 0x40, 0x9d, 0x11, 0xf1, 0x36, 0xf2, 0x0d, 0xab, 0x87, 0xe1, 0xeb, 0x60, 0x9a, 0x51, 0x32, + 0xa0, 0x7b, 0xba, 0x89, 0xe3, 0xb4, 0xd7, 0x38, 0x34, 0x19, 0xc7, 0x44, 0x9e, 0xd2, 0x3a, 0x67, + 0x1c, 0x53, 0x12, 0x8d, 0x43, 0xc3, 0x9b, 0xa0, 0xdc, 0xdd, 0xeb, 0x52, 0x06, 0xd4, 0xae, 0x5c, + 0x92, 0x99, 0x2c, 0x2b, 0xed, 0xca, 0x66, 0xcf, 0x69, 0x19, 0xbd, 0x47, 0xac, 0x69, 0x93, 0x34, + 0x69, 0x64, 0x9c, 0xfa, 0xd7, 0x65, 0x50, 0x7f, 0xb4, 0x79, 0x97, 0xb0, 0xfd, 0xff, 0xd4, 0xf5, + 0xb0, 0xd4, 0x75, 0x03, 0x94, 0xf7, 0xba, 0x1d, 0x2a, 0x2e, 0xb5, 0x2b, 0xaf, 0xec, 0x83, 0x27, + 0x77, 0x8d, 0xbe, 0xd5, 0x1b, 0x6a, 0x64, 0x74, 0x42, 0xe7, 0x6b, 0x49, 0x9d, 0xff, 0xae, 0x02, + 0xe6, 0xb6, 0xd9, 0x49, 0xb5, 0xd6, 0x6e, 0x3b, 0x03, 0xdb, 0x27, 0xc4, 0x37, 0x4c, 0xd3, 0x43, + 0x18, 0x53, 0xce, 0x55, 0x35, 0xf1, 0x09, 0x8f, 0x82, 0x29, 0xe7, 0xb1, 0x8d, 0x3c, 0xae, 0xcb, + 0xec, 0x03, 0x2e, 0x01, 0xe0, 0xa1, 0xce, 0xc0, 0x36, 0x8d, 0x56, 0x0f, 0x71, 0x35, 0x96, 0x5a, + 0xf2, 0x35, 0x39, 0x46, 0x88, 0xa9, 0x38, 0x21, 0xd4, 0x1f, 0x28, 0x00, 0x46, 0x17, 0x78, 0x0f, + 0xf9, 0x06, 0xbc, 0x0f, 0xe6, 0xf9, 0x01, 0xab, 0x1b, 0xac, 0x99, 0x8b, 0xd9, 0x0b, 0x59, 0x42, + 0x1f, 0x45, 0xa2, 0xcd, 0xb9, 0xd1, 0x5d, 0xdf, 0x01, 0xf5, 0xc8, 0x49, 0xcd, 0x75, 0xe8, 0x8c, + 0x4c, 0x7a, 0x3e, 0x64, 0xa5, 0x49, 0x01, 0x35, 0x0a, 0xa7, 0xcd, 0x62, 0xe9, 0x4b, 0x6d, 0x83, + 0x13, 0x9b, 0x9d, 0xa6, 0xbb, 0x89, 0xfc, 0x87, 0x18, 0x79, 0x4c, 0xbc, 0xb1, 0x86, 0x3e, 0x19, + 0x20, 0xec, 0xc3, 0x53, 0x00, 0xf0, 0xc5, 0xea, 0x96, 0xc9, 0x89, 0x5b, 0xe5, 0x2d, 0x5b, 0x26, + 0xbc, 0x00, 0xe6, 0x2d, 0xbb, 0xdd, 0x1b, 0x98, 0x44, 0x7e, 0x65, 0xe9, 0x9f, 0xe3, 0xcd, 0x1a, + 0x6b, 0x55, 0x3f, 0x06, 0x8d, 0xb4, 0x49, 0xb0, 0xeb, 0xd8, 0x18, 0xc1, 0x77, 0xc0, 0x0c, 0x53, + 0x25, 0xc2, 0xbf, 0xf2, 0x72, 0xed, 0xca, 0xf9, 0x2c, 0x92, 0x44, 0xb4, 0x56, 0x13, 0xa3, 0xd4, + 0x3f, 0x2b, 0x01, 0x95, 0xe0, 0xff, 0x8a, 0x85, 0x7d, 0x66, 0x62, 0xf0, 0xfa, 0x90, 0x01, 0xbd, + 0x6f, 0xf4, 0x91, 0xd8, 0xcd, 0xe9, 0x40, 0xcb, 0x6d, 0xa3, 0x8f, 0xf8, 0x76, 0xb8, 0x16, 0x13, + 0xb8, 0xd8, 0x76, 0x4b, 0xf1, 0xed, 0x9e, 0x00, 0x95, 0xbe, 0xf1, 0x44, 0xdf, 0x45, 0x43, 0x4c, + 0xa5, 0x66, 0x52, 0x9b, 0xe9, 0x1b, 0x4f, 0xde, 0x43, 0x43, 0x4c, 0x50, 0x63, 0xdf, 0xf0, 0x7c, + 0xdd, 0xe8, 0xf8, 0xc8, 0xe3, 0x6a, 0x0c, 0x68, 0xd3, 0x1a, 0x69, 0x81, 0x97, 0x01, 0x6c, 0x3b, + 0xb6, 0x6f, 0xd9, 0x03, 0xc3, 0xb7, 0x1c, 0x5b, 0xf7, 0x9d, 0x5d, 0x64, 0x73, 0x75, 0x3e, 0x22, + 0xf7, 0x3c, 0x20, 0x1d, 0xf0, 0x39, 0x6a, 0x35, 0xac, 0xbe, 0x45, 0xb0, 0x31, 0x95, 0x0e, 0x1b, + 0xe0, 0x31, 0x30, 0xed, 0x7a, 0xa8, 0x63, 0x3d, 0xe1, 0x7a, 0xcc, 0xbf, 0xd2, 0xf8, 0x51, 0x49, + 0xe5, 0xc7, 0xef, 0x96, 0xc1, 0xb9, 0x5c, 0x82, 0x71, 0xce, 0x5c, 0x03, 0x33, 0xcc, 0x54, 0x0b, + 0xce, 0x14, 0x59, 0x76, 0x01, 0x4e, 0x74, 0x68, 0x17, 0x0d, 0x75, 0x26, 0xe8, 0x25, 0x4a, 0xac, + 0xca, 0x2e, 0x1a, 0x6e, 0x50, 0xd1, 0xcd, 0x21, 0xe4, 0x59, 0x30, 0x6b, 0x61, 0xdd, 0xf7, 0x06, + 0x76, 0xdb, 0xf0, 0x91, 0x49, 0x29, 0x59, 0xd1, 0x6a, 0x16, 0x7e, 0x20, 0x9a, 0xe0, 0xeb, 0xe0, + 0xb8, 0x8d, 0x9e, 0xf8, 0x7a, 0x26, 0x3d, 0x9f, 0x25, 0xdd, 0x1b, 0x09, 0x9a, 0x42, 0x30, 0x49, + 0xf9, 0xce, 0xc8, 0x49, 0x7f, 0x67, 0x52, 0x32, 0x42, 0xff, 0x4a, 0x9c, 0xfe, 0x17, 0xc0, 0x3c, + 0xf3, 0x7c, 0x75, 0x06, 0x8e, 0xf0, 0x62, 0xf5, 0x4c, 0x79, 0xb9, 0xaa, 0xcd, 0xb1, 0xe6, 0x6d, + 0xde, 0x9a, 0xc1, 0x75, 0x90, 0xc1, 0x75, 0xb5, 0x07, 0xce, 0x70, 0x35, 0x61, 0xbc, 0x18, 0x4b, + 0x88, 0x25, 0x21, 0x70, 0x3d, 0x6b, 0xcf, 0xf0, 0x51, 0x4c, 0x29, 0xb7, 0x59, 0xab, 0xfa, 0x75, + 0x70, 0x36, 0x67, 0x36, 0x2e, 0x01, 0xe1, 0x11, 0xad, 0xec, 0xe7, 0x88, 0x56, 0x3b, 0x60, 0x29, + 0x15, 0xf9, 0xd6, 0x6d, 0xb1, 0x91, 0x93, 0xa0, 0x2a, 0xce, 0x5c, 0x66, 0x5a, 0xca, 0x5a, 0x85, + 0x9f, 0xa8, 0xe6, 0xe8, 0x9b, 0xf8, 0x1a, 0x38, 0x9d, 0x39, 0xcf, 0x01, 0xb7, 0xf0, 0x17, 0x0a, + 0x58, 0x15, 0x4a, 0x72, 0x9b, 0x1e, 0xc8, 0x66, 0xa8, 0x2b, 0xc4, 0x2b, 0x7c, 0x7f, 0xd0, 0x6f, + 0x21, 0x4f, 0x33, 0xec, 0x6e, 0xc0, 0x9d, 0x97, 0x00, 0x64, 0x76, 0xa0, 0x45, 0x00, 0x74, 0x9b, + 0x42, 0xf0, 0xdd, 0x2d, 0xd0, 0x1e, 0x69, 0x24, 0x5c, 0x06, 0x0b, 0xc8, 0x36, 0xa3, 0xb0, 0x25, + 0x0a, 0x3b, 0x87, 0x6c, 0x53, 0x86, 0x4c, 0xa1, 0x47, 0x39, 0x95, 0x1e, 0xbf, 0xaf, 0x80, 0x97, + 0x47, 0x5f, 0xf4, 0x81, 0xd5, 0x7c, 0xe4, 0x1d, 0xa8, 0x3b, 0x81, 0x40, 0x48, 0x47, 0x00, 0x35, + 0x07, 0x87, 0x7d, 0xd8, 0xbc, 0x11, 0x88, 0x44, 0x72, 0x26, 0xbe, 0xe1, 0xa3, 0x60, 0x2a, 0x3c, + 0x82, 0xcb, 0x1a, 0xfb, 0x50, 0x9f, 0x32, 0x85, 0x20, 0xa4, 0xbb, 0xf3, 0xc4, 0xb5, 0x3c, 0x64, + 0xf2, 0xc1, 0xeb, 0xc3, 0xa6, 0x2b, 0x89, 0x2d, 0xf7, 0xb8, 0x0c, 0x31, 0xbc, 0xc2, 0x1a, 0xd6, + 0x7c, 0xa8, 0x82, 0xba, 0xeb, 0x59, 0x7d, 0xc3, 0x1b, 0xea, 0xd8, 0x15, 0x67, 0x48, 0x5d, 0xab, + 0xf1, 0xc6, 0xa6, 0xbb, 0x65, 0x92, 0xb9, 0xa9, 0x1d, 0xe1, 0xce, 0x20, 0xfb, 0x50, 0xff, 0x7f, + 0x78, 0x82, 0xa5, 0xcd, 0x1d, 0x32, 0x2a, 0x7a, 0x52, 0x16, 0xc9, 0x72, 0x70, 0x44, 0xfe, 0x8a, + 0x02, 0x16, 0x39, 0x55, 0x18, 0x0f, 0x89, 0x53, 0x22, 0xd9, 0x14, 0x7e, 0x79, 0x92, 0x6d, 0x0a, + 0x6b, 0xa2, 0x36, 0x25, 0x66, 0x74, 0x4a, 0xa3, 0x18, 0x9d, 0x74, 0xf9, 0x6c, 0x06, 0xee, 0x86, + 0xbc, 0x8c, 0x50, 0x53, 0xc7, 0xb9, 0x47, 0xa8, 0xfd, 0xc0, 0x92, 0x71, 0x9f, 0xe9, 0x67, 0x6b, + 0x38, 0x77, 0x19, 0xaf, 0xb2, 0xa6, 0xe3, 0x9b, 0x49, 0xf8, 0x67, 0xca, 0x58, 0xfe, 0x59, 0x37, + 0x90, 0xe6, 0xd8, 0x64, 0x87, 0x6d, 0x49, 0xad, 0xe0, 0xf0, 0x49, 0x99, 0xe8, 0x70, 0xf7, 0x64, + 0x06, 0xb2, 0xc8, 0x66, 0x88, 0xc9, 0xe2, 0x21, 0xb1, 0xe9, 0x7b, 0x4a, 0x20, 0x6b, 0xf2, 0x34, + 0x7c, 0x2b, 0x37, 0x63, 0xa7, 0xc2, 0x88, 0x3e, 0xa7, 0xb8, 0x82, 0x1e, 0x92, 0xf7, 0x7d, 0x15, + 0x3c, 0xc7, 0x97, 0x78, 0xc7, 0x36, 0x5d, 0xc7, 0x22, 0x54, 0x6f, 0xba, 0x21, 0x6b, 0x9f, 0x01, + 0x53, 0xcc, 0x90, 0x28, 0xd4, 0x90, 0x4c, 0x62, 0x77, 0xcb, 0x54, 0xdf, 0x02, 0xa7, 0x32, 0x06, + 0xf1, 0xbd, 0x35, 0x40, 0x05, 0xf1, 0x1e, 0x4e, 0xc0, 0xe0, 0x5b, 0xfd, 0x85, 0x60, 0x30, 0xdf, + 0x11, 0x32, 0xcc, 0x0f, 0x06, 0x4e, 0xc8, 0x80, 0x03, 0xdf, 0x85, 0x4f, 0x01, 0x30, 0x44, 0x86, + 0xa7, 0xf7, 0x1d, 0xdb, 0xdf, 0x11, 0x5e, 0x34, 0x69, 0xb9, 0x47, 0x1a, 0xd4, 0x5f, 0x2b, 0xc5, + 0x5c, 0x03, 0x69, 0x05, 0x7c, 0xfd, 0x57, 0x40, 0x19, 0x79, 0x5e, 0x20, 0x5c, 0x2d, 0x03, 0x23, + 0xce, 0x8c, 0x30, 0x2e, 0xba, 0x42, 0x70, 0xdc, 0x21, 0x3f, 0x35, 0x02, 0x4c, 0x4e, 0xde, 0xf6, + 0x8e, 0xe1, 0x75, 0x91, 0xa9, 0x7f, 0x42, 0x90, 0xb1, 0x0b, 0x24, 0xf3, 0x3c, 0x17, 0x78, 0x0f, + 0x9d, 0x85, 0xdc, 0x22, 0xe1, 0x25, 0x00, 0xb1, 0xab, 0x77, 0x3c, 0x84, 0x64, 0x68, 0xe6, 0x8b, + 0xce, 0x63, 0xf7, 0xae, 0x87, 0x50, 0x08, 0x7c, 0x0e, 0xd4, 0xdb, 0x8e, 0x8d, 0x07, 0x7d, 0x64, + 0x32, 0xb8, 0x49, 0x0a, 0x37, 0x2b, 0x1a, 0x29, 0xd0, 0x6b, 0xe0, 0xb8, 0x84, 0x8e, 0x77, 0x31, + 0xf0, 0x29, 0x0a, 0x7e, 0xb4, 0x23, 0x90, 0x6e, 0xb0, 0x4e, 0x7a, 0x9d, 0x5d, 0x67, 0x8e, 0xf8, + 0x26, 0xf2, 0xbf, 0x62, 0xf8, 0x08, 0x67, 0x31, 0x25, 0xa1, 0xe2, 0x93, 0xa1, 0x8a, 0xab, 0xdf, + 0x51, 0xc0, 0xf3, 0xf9, 0x48, 0x0e, 0x40, 0xd7, 0xb7, 0xc1, 0x14, 0xdd, 0x12, 0x17, 0xf0, 0xe5, + 0xf8, 0x28, 0x1a, 0x7d, 0x26, 0x63, 0xd8, 0xa4, 0x74, 0x42, 0x2a, 0x12, 0x6c, 0x98, 0xfa, 0x53, + 0x85, 0x19, 0x30, 0x72, 0xb2, 0x85, 0xeb, 0xe2, 0xca, 0x70, 0x58, 0x22, 0x17, 0xb8, 0x5d, 0xe4, + 0x4e, 0x8e, 0x7d, 0xa3, 0xef, 0xea, 0x03, 0xcc, 0x1d, 0x11, 0xe6, 0x76, 0x3d, 0x10, 0x1d, 0x0f, + 0x03, 0xa7, 0x25, 0x02, 0x5b, 0x0e, 0x9c, 0x16, 0x19, 0xf2, 0x79, 0x30, 0x47, 0x2e, 0x2a, 0x4c, + 0xc5, 0x89, 0x7f, 0xc3, 0xc3, 0x01, 0xb3, 0x7d, 0xe3, 0x09, 0xdb, 0xc2, 0xfb, 0x83, 0xbe, 0xfa, + 0x97, 0x0a, 0x00, 0xe1, 0xa6, 0x8a, 0x4f, 0xd3, 0x93, 0xa0, 0x2a, 0x62, 0x95, 0xa6, 0xb8, 0x1b, + 0xf1, 0x48, 0x24, 0xb5, 0xd7, 0xc2, 0x0b, 0x12, 0x41, 0x8d, 0x32, 0xc5, 0x30, 0xc7, 0x9b, 0xd7, + 0x78, 0x6c, 0xe3, 0x2c, 0x98, 0x8d, 0xec, 0x80, 0xad, 0xac, 0xe6, 0x4b, 0xcb, 0x3f, 0x09, 0xaa, + 0x1e, 0x32, 0x4c, 0x59, 0x0a, 0x2b, 0xa4, 0x81, 0x4a, 0xde, 0x4f, 0x14, 0x66, 0xf0, 0xd3, 0x19, + 0x73, 0x00, 0x89, 0x79, 0x0f, 0xcc, 0xd2, 0x59, 0x19, 0xd5, 0x08, 0x1b, 0x88, 0xa7, 0xa2, 0x66, + 0xd9, 0xd7, 0x70, 0xd6, 0xf5, 0xc9, 0x4f, 0x3f, 0x3f, 0xad, 0x68, 0x35, 0x2f, 0x68, 0xc1, 0x44, + 0xad, 0xe8, 0x65, 0x2f, 0x85, 0xbd, 0x8c, 0x65, 0x47, 0x49, 0x77, 0x33, 0xc6, 0x62, 0xf5, 0x26, + 0xb3, 0x31, 0x1f, 0x0c, 0x90, 0x37, 0x7c, 0xe8, 0xf6, 0x1c, 0xc3, 0xdc, 0xf6, 0x9c, 0x2e, 0xa1, + 0x9b, 0xa4, 0x51, 0x21, 0x13, 0x94, 0x28, 0x13, 0xd4, 0x1f, 0x70, 0xa1, 0x4d, 0x1d, 0x7f, 0x20, + 0x23, 0x35, 0x85, 0x7d, 0x71, 0x62, 0xcd, 0x5d, 0x39, 0xb6, 0xc2, 0xd2, 0x07, 0x6c, 0xd8, 0x03, + 0x03, 0xef, 0x36, 0x49, 0xaf, 0xc6, 0x80, 0x88, 0x28, 0x20, 0xcf, 0xd3, 0x4d, 0x84, 0xdb, 0x9e, + 0xe5, 0x92, 0x6b, 0xa2, 0x10, 0x05, 0xe4, 0x79, 0xb7, 0xc3, 0x56, 0xf5, 0x0e, 0x78, 0x21, 0x58, + 0xad, 0x86, 0xf0, 0xa0, 0x6f, 0xb4, 0x7a, 0x88, 0x2d, 0xbb, 0x89, 0xba, 0xe4, 0x0c, 0x1a, 0x69, + 0xd7, 0xbf, 0xa8, 0x80, 0x0b, 0x85, 0x78, 0x0e, 0xb0, 0xfb, 0x73, 0xa0, 0x8e, 0x19, 0x1a, 0x29, + 0x2e, 0x50, 0xd7, 0x66, 0x79, 0x23, 0x75, 0xd1, 0xd5, 0xef, 0x94, 0xc0, 0x14, 0x8d, 0x0b, 0xc2, + 0xab, 0x60, 0x8a, 0xc6, 0x0c, 0xf9, 0x24, 0xa7, 0xd2, 0xec, 0x01, 0x85, 0x64, 0xe6, 0x86, 0xc2, + 0x46, 0x82, 0xa5, 0xa5, 0x58, 0xb0, 0x34, 0xe2, 0xba, 0x97, 0x63, 0xae, 0xfb, 0x69, 0x50, 0x13, + 0x91, 0x54, 0xab, 0x8f, 0xb8, 0x36, 0x01, 0x1e, 0x46, 0xb5, 0xfa, 0xb1, 0xa8, 0xe0, 0x54, 0x7e, + 0x54, 0x70, 0x3a, 0x11, 0x1e, 0x7d, 0x11, 0x1c, 0x61, 0xd7, 0x23, 0xdd, 0xe9, 0xe8, 0x7d, 0x44, + 0x7e, 0x61, 0x1a, 0x73, 0x28, 0x6b, 0xf3, 0xac, 0xe3, 0x7e, 0xe7, 0x1e, 0x6b, 0x96, 0x83, 0xc9, + 0x95, 0x48, 0x30, 0x59, 0xfd, 0xdb, 0x12, 0xa8, 0xd1, 0x2d, 0x33, 0xd0, 0xf1, 0x48, 0x54, 0x10, + 0xe5, 0x92, 0x29, 0x58, 0xce, 0xa3, 0xe0, 0x64, 0x3e, 0x05, 0xa7, 0xf2, 0x29, 0x38, 0x9d, 0x4f, + 0xc1, 0x99, 0x04, 0x05, 0x33, 0xa9, 0x42, 0xf5, 0x84, 0xdc, 0x99, 0x78, 0x8c, 0x25, 0x8c, 0x4f, + 0xcf, 0x85, 0xcd, 0x34, 0x34, 0xfb, 0x23, 0x05, 0x1c, 0xe7, 0x07, 0x25, 0xa5, 0x0a, 0x31, 0x7d, + 0x42, 0x33, 0x44, 0x74, 0x48, 0x49, 0x8d, 0x0e, 0x95, 0x22, 0xd1, 0xa1, 0xd3, 0xa0, 0xc6, 0xd2, + 0x9b, 0x3a, 0x11, 0x79, 0x4e, 0x25, 0xc0, 0x9a, 0x1e, 0x0c, 0x5d, 0x14, 0xde, 0xf1, 0x26, 0xa5, + 0x3b, 0x1e, 0x41, 0xe7, 0x74, 0x3a, 0x18, 0x09, 0xf1, 0xe1, 0x5f, 0x69, 0x37, 0xdb, 0xe9, 0xd4, + 0x9b, 0x6d, 0x37, 0xf0, 0x9b, 0xa5, 0xe5, 0x73, 0x85, 0x7c, 0x0d, 0x4c, 0x53, 0xf6, 0x8a, 0x9b, + 0xe1, 0xa9, 0x2c, 0x7b, 0xcb, 0x12, 0x21, 0x1c, 0x38, 0xbc, 0x09, 0x97, 0xe4, 0x9b, 0x30, 0x02, + 0x27, 0xa3, 0x47, 0x03, 0x5e, 0x1f, 0x6e, 0xdd, 0x96, 0xc3, 0xc2, 0x81, 0x37, 0xc2, 0xe6, 0x9b, + 0xd4, 0xaa, 0xc2, 0x1d, 0xc1, 0xa3, 0xdf, 0xd4, 0xff, 0x55, 0x61, 0xee, 0x6f, 0x72, 0x1e, 0xbe, + 0xa9, 0xaf, 0xc7, 0xef, 0xbb, 0x6b, 0x99, 0xbb, 0xca, 0x41, 0xc3, 0xbd, 0x06, 0x7c, 0xc7, 0xf6, + 0xbd, 0x61, 0x70, 0x25, 0x6e, 0x7c, 0x04, 0x66, 0xe5, 0x0e, 0xb8, 0x00, 0xca, 0xbb, 0x68, 0xc8, + 0xad, 0x22, 0xf9, 0x09, 0x5f, 0x05, 0x53, 0x7b, 0x46, 0x6f, 0x80, 0x46, 0x4c, 0x4f, 0x31, 0xe0, + 0x37, 0x4b, 0xd7, 0x14, 0x99, 0x80, 0x41, 0xf8, 0x25, 0x4a, 0xc0, 0xc0, 0x0c, 0x07, 0x04, 0x14, + 0x76, 0x78, 0x4c, 0x02, 0x46, 0xe7, 0x09, 0x09, 0x18, 0x8d, 0xec, 0x14, 0x12, 0x30, 0x0d, 0x0d, + 0xbf, 0x6f, 0x0b, 0x02, 0x72, 0x8c, 0x84, 0x80, 0x72, 0xc7, 0x01, 0x08, 0xc8, 0xef, 0xf3, 0x12, + 0x01, 0x7f, 0xb9, 0xc4, 0x4e, 0xe0, 0x47, 0xc8, 0xb3, 0x3a, 0xc3, 0xed, 0xa0, 0xe4, 0x80, 0xac, + 0x4b, 0x50, 0xf1, 0x55, 0xc9, 0x52, 0x51, 0xb5, 0x5d, 0x5f, 0xfc, 0xf1, 0x0f, 0x2f, 0x1f, 0xe5, + 0x65, 0x0f, 0xdc, 0x4f, 0x6a, 0xfa, 0x9e, 0x65, 0x77, 0x25, 0x1b, 0x76, 0x17, 0xd4, 0x45, 0x75, + 0x02, 0x53, 0x5f, 0x76, 0x16, 0x9f, 0x95, 0x6d, 0xa7, 0x00, 0x58, 0xd1, 0x50, 0xa8, 0xd5, 0xda, + 0xac, 0x27, 0x7d, 0x11, 0x23, 0x10, 0xe0, 0xb1, 0x4c, 0x7e, 0x77, 0x00, 0xa2, 0x69, 0xcb, 0x84, + 0xeb, 0xa0, 0x66, 0xb4, 0x99, 0x49, 0x22, 0xd3, 0x4c, 0x26, 0xa7, 0x09, 0x2b, 0x29, 0x56, 0xd6, + 0x28, 0x24, 0x9d, 0x06, 0x18, 0xc1, 0x6f, 0xf5, 0x6b, 0xcc, 0x47, 0x4b, 0xa7, 0x42, 0xa8, 0xf9, + 0xa8, 0xd3, 0x11, 0x51, 0x93, 0xb9, 0xe8, 0x29, 0x20, 0x4d, 0x71, 0x87, 0x02, 0x69, 0x1c, 0x58, + 0xbd, 0x05, 0x2e, 0x0a, 0x9e, 0x27, 0xd2, 0x71, 0x16, 0xc2, 0x23, 0xdc, 0x43, 0xbf, 0xaf, 0x80, + 0x17, 0x47, 0x41, 0xc1, 0xd7, 0xe9, 0x83, 0x53, 0x5d, 0x9a, 0xfd, 0xd3, 0x79, 0x46, 0x50, 0xa7, + 0x36, 0x48, 0xef, 0x70, 0x70, 0x2e, 0xa1, 0x63, 0xe4, 0x0e, 0x1b, 0xdd, 0xf4, 0x1e, 0x0b, 0x61, + 0xf5, 0x16, 0xf3, 0x69, 0x88, 0xcd, 0x4c, 0x00, 0xad, 0x0f, 0x37, 0xf7, 0xba, 0xe1, 0x26, 0x9f, + 0x05, 0xd3, 0xdd, 0xbd, 0x6e, 0xb8, 0xcb, 0xa9, 0xee, 0x5e, 0x77, 0xcb, 0x54, 0xbf, 0xad, 0x80, + 0xe5, 0x62, 0x14, 0x7c, 0x93, 0x1f, 0x83, 0xa3, 0x69, 0x9b, 0xe4, 0x07, 0xf4, 0xbe, 0x72, 0xd5, + 0x30, 0xb9, 0x2b, 0xf5, 0x7a, 0x10, 0xa4, 0x49, 0x21, 0x43, 0xb8, 0x8d, 0xbd, 0x6e, 0x47, 0xda, + 0xc6, 0x5e, 0xb7, 0xb3, 0x65, 0xaa, 0x3b, 0x41, 0x90, 0x2c, 0x6d, 0x28, 0x5f, 0x3e, 0xcf, 0xe2, + 0x2a, 0x07, 0xc9, 0xe2, 0xaa, 0x8f, 0x82, 0x45, 0xa6, 0xec, 0x6a, 0x84, 0x0b, 0x2d, 0xd9, 0x41, + 0x8f, 0x31, 0x82, 0x79, 0x88, 0x53, 0x3d, 0xca, 0x88, 0x56, 0xb0, 0x83, 0x34, 0xbc, 0x41, 0x5c, + 0x87, 0xd6, 0x06, 0x28, 0x63, 0xd6, 0x06, 0xec, 0x26, 0x0c, 0xf7, 0x96, 0xbd, 0xf9, 0x68, 0x33, + 0x5f, 0x44, 0xe2, 0xe9, 0x3f, 0x6e, 0x0b, 0xa4, 0xf4, 0x5f, 0xc4, 0x21, 0xa8, 0x8b, 0xa0, 0xaf, + 0x9e, 0xb0, 0xde, 0x7c, 0xb2, 0x30, 0x31, 0x1a, 0xb5, 0xde, 0xe7, 0xf3, 0x0d, 0x28, 0xaf, 0xc7, + 0x08, 0x2c, 0xb4, 0xfa, 0x5b, 0x3c, 0x32, 0x10, 0x9f, 0x61, 0xcd, 0x36, 0xc5, 0x95, 0x2f, 0x77, + 0x5f, 0x11, 0x2e, 0x95, 0x62, 0x5c, 0x1a, 0x73, 0xd3, 0x3b, 0xe0, 0x7c, 0xc1, 0x92, 0x0e, 0x6b, + 0xf7, 0x7f, 0xa4, 0x84, 0x26, 0x2e, 0x38, 0xd6, 0xe4, 0xa9, 0xee, 0x3a, 0xde, 0xe6, 0x86, 0x20, + 0xc1, 0x73, 0x00, 0x98, 0xd8, 0xd7, 0x23, 0x64, 0xa8, 0x98, 0xd8, 0xdf, 0xfc, 0x99, 0x51, 0xa2, + 0x1f, 0x9a, 0xcf, 0xbc, 0xe5, 0x1d, 0x16, 0x39, 0x1e, 0x84, 0x29, 0x86, 0x7b, 0x56, 0xd7, 0x33, + 0x7c, 0xc4, 0xa6, 0xb9, 0x43, 0x2b, 0xe0, 0x04, 0x19, 0x4e, 0x80, 0x0a, 0xcb, 0xe6, 0x04, 0x7a, + 0x39, 0x43, 0xbf, 0xb7, 0xcc, 0xf0, 0x10, 0x28, 0x49, 0x87, 0xc0, 0xbf, 0x94, 0xc0, 0xf1, 0x0c, + 0x94, 0xf0, 0x6d, 0x30, 0x45, 0xcb, 0xeb, 0xb8, 0x36, 0x2e, 0xa7, 0x5d, 0x4f, 0x28, 0x28, 0x1b, + 0x4c, 0x0e, 0x36, 0xee, 0x49, 0xd1, 0x61, 0xf0, 0x03, 0x30, 0xdb, 0x36, 0xec, 0x36, 0xea, 0xe9, + 0x0c, 0x0d, 0xf3, 0x22, 0x56, 0x32, 0xd1, 0x6c, 0x50, 0xe0, 0x38, 0xb2, 0x1a, 0xc3, 0x41, 0x21, + 0xe0, 0x87, 0x60, 0xae, 0xed, 0xf4, 0x5d, 0x5a, 0x73, 0xc3, 0x90, 0xb2, 0x2a, 0xa2, 0x97, 0xb3, + 0x91, 0x72, 0xf0, 0x38, 0xda, 0xba, 0xc0, 0xc3, 0x10, 0xdf, 0x07, 0xb3, 0x1e, 0xa2, 0x2e, 0x1d, + 0x43, 0x3b, 0x49, 0xd1, 0xbe, 0x94, 0x89, 0x56, 0xa3, 0xc0, 0x11, 0xaa, 0x69, 0x35, 0x86, 0x81, + 0xf6, 0xab, 0x76, 0x98, 0xa2, 0x4f, 0x65, 0x17, 0x17, 0x8b, 0x4d, 0x30, 0xcd, 0x4a, 0x18, 0xb9, + 0x54, 0xac, 0x66, 0x49, 0x45, 0x16, 0x22, 0x3e, 0x5c, 0x7d, 0x3f, 0x34, 0x46, 0xcd, 0xc7, 0x86, + 0x7b, 0x7f, 0x70, 0x40, 0xc1, 0xf8, 0x2f, 0x05, 0x1c, 0x49, 0x20, 0x83, 0x37, 0xa5, 0xe5, 0xb2, + 0xb0, 0x7b, 0x96, 0x85, 0xa6, 0x03, 0xf8, 0x60, 0xb1, 0x48, 0xb8, 0x0d, 0xea, 0xb2, 0x44, 0x60, + 0x2e, 0x12, 0x97, 0xf2, 0xb1, 0x30, 0xb9, 0x10, 0xb8, 0x66, 0x25, 0x79, 0xc0, 0xf0, 0x11, 0xcd, + 0xe5, 0x4b, 0x02, 0x81, 0xb9, 0x44, 0x5c, 0x2e, 0xc0, 0xc9, 0x07, 0x09, 0xac, 0x73, 0x11, 0x71, + 0xc0, 0x6a, 0x8b, 0xc5, 0xd9, 0x53, 0xc8, 0xc9, 0x19, 0xb7, 0x16, 0x63, 0xdc, 0xc5, 0x3c, 0xc6, + 0x45, 0x51, 0x08, 0x96, 0xdd, 0x0d, 0x13, 0xd4, 0xc9, 0xf3, 0x8c, 0xb8, 0x5f, 0xa8, 0xed, 0xd8, + 0xa6, 0xe1, 0x0d, 0x9b, 0xdb, 0xb9, 0x8e, 0xdc, 0xe3, 0x30, 0x67, 0x5c, 0x8c, 0x27, 0xf0, 0x14, + 0xa2, 0xf7, 0xcd, 0x7d, 0x1d, 0xb5, 0x7c, 0xa8, 0xba, 0x15, 0x5a, 0xc0, 0xd4, 0x89, 0xa3, 0x87, + 0x54, 0x6e, 0x10, 0xdc, 0x03, 0x97, 0x46, 0x42, 0x75, 0x98, 0xcb, 0xbf, 0x17, 0x3a, 0x0b, 0x4d, + 0xf7, 0xce, 0x13, 0xeb, 0x80, 0x1a, 0xf3, 0x23, 0x05, 0x2c, 0xc4, 0x71, 0xc1, 0xcd, 0xa8, 0x0d, + 0x7d, 0xa5, 0x40, 0x5f, 0x98, 0x89, 0xd9, 0xf6, 0x9c, 0x3d, 0xcb, 0x44, 0x1e, 0xc1, 0x23, 0x8c, + 0xe9, 0x37, 0x12, 0x96, 0x8f, 0xe9, 0xce, 0xf5, 0x11, 0xe5, 0x3c, 0x05, 0x73, 0xd4, 0x04, 0xaa, + 0xdf, 0x90, 0x2c, 0x48, 0x84, 0x1c, 0x9c, 0xe6, 0xb7, 0x62, 0xba, 0xbf, 0x9c, 0x2b, 0xf1, 0x32, + 0x06, 0x21, 0xf0, 0x6b, 0xe0, 0x28, 0xf7, 0x00, 0x9b, 0xdb, 0x34, 0xa4, 0xc5, 0x29, 0x7d, 0x11, + 0x2c, 0x88, 0xfb, 0x9d, 0x1e, 0x2d, 0x05, 0x9c, 0x17, 0xed, 0xfc, 0x3a, 0xa8, 0xb6, 0xc0, 0xb3, + 0x31, 0x14, 0x7c, 0x75, 0x5b, 0x60, 0x41, 0xd4, 0x1e, 0xba, 0x7c, 0x93, 0xa9, 0x99, 0x08, 0x77, + 0x25, 0x46, 0x0a, 0x6d, 0x1e, 0x47, 0x1b, 0xd4, 0x6b, 0xcc, 0x51, 0xdd, 0x0e, 0xb2, 0xfe, 0x76, + 0xdb, 0xe9, 0x23, 0x71, 0x20, 0xe7, 0x69, 0xe2, 0xdf, 0x28, 0xec, 0x90, 0xce, 0x1a, 0xca, 0xd7, + 0x7a, 0x09, 0x1c, 0x69, 0x0f, 0x3c, 0x0f, 0xd9, 0x52, 0x48, 0x5c, 0x54, 0x99, 0xf0, 0x8e, 0x20, + 0x1a, 0x0e, 0x77, 0xc0, 0x09, 0xb9, 0x28, 0x81, 0x22, 0xd4, 0x4d, 0x86, 0x91, 0x07, 0xe7, 0x2f, + 0x67, 0xd6, 0x20, 0xa6, 0xad, 0x43, 0x3b, 0xe6, 0xa6, 0x2e, 0x4f, 0xfd, 0x27, 0x05, 0x3c, 0x9b, + 0x3a, 0x22, 0xe3, 0x4e, 0x72, 0x48, 0x59, 0x54, 0xf8, 0x00, 0x4c, 0xb3, 0x6d, 0x51, 0xd3, 0x3d, + 0xbb, 0x7e, 0xe3, 0xd3, 0xcf, 0x4f, 0x4f, 0xfc, 0xe4, 0xf3, 0xd3, 0x2f, 0x74, 0x2d, 0x7f, 0x67, + 0xd0, 0x5a, 0x69, 0x3b, 0x7d, 0xfe, 0x18, 0x82, 0xff, 0x77, 0x19, 0x9b, 0xbb, 0xbc, 0xa6, 0x7f, + 0xcb, 0xf6, 0x7f, 0xfc, 0xc3, 0xcb, 0x80, 0x07, 0x0d, 0xb6, 0x6c, 0x5f, 0xe3, 0xb8, 0xd4, 0x37, + 0xd9, 0x01, 0x1c, 0x1a, 0xbf, 0x7d, 0xf0, 0xf1, 0x1f, 0xb9, 0xe3, 0x9d, 0x3d, 0x78, 0x1c, 0x4e, + 0xda, 0xe0, 0x24, 0x16, 0x08, 0x33, 0x79, 0x99, 0xe9, 0x00, 0x64, 0xac, 0x45, 0x5b, 0xc4, 0x19, + 0x8b, 0x54, 0xff, 0x59, 0x01, 0xc7, 0x33, 0x46, 0x65, 0xdd, 0x18, 0xfe, 0x57, 0x73, 0xf4, 0x5b, + 0x25, 0x30, 0xdd, 0xf4, 0x0d, 0x7f, 0x80, 0xa1, 0x0e, 0x9e, 0x8d, 0x6b, 0xbb, 0x9c, 0x7c, 0xbc, + 0x94, 0x49, 0xc4, 0xa8, 0xaa, 0x53, 0x0b, 0xf2, 0x0c, 0x4e, 0x36, 0xc2, 0x26, 0x38, 0xc2, 0x8c, + 0x3f, 0x1e, 0xda, 0x6d, 0x81, 0x9c, 0x11, 0xe3, 0x42, 0x66, 0x1c, 0x91, 0x0c, 0x68, 0x52, 0x78, + 0x8a, 0x78, 0xbe, 0x15, 0x6d, 0x80, 0xb7, 0x00, 0x68, 0xef, 0x18, 0x96, 0xcd, 0xb0, 0x31, 0x3f, + 0xe5, 0x6c, 0x16, 0xb6, 0x0d, 0x02, 0x49, 0xf1, 0x54, 0xdb, 0xe2, 0xa7, 0xfa, 0x3b, 0x65, 0x30, + 0x1f, 0x9b, 0x06, 0xbe, 0x00, 0xe6, 0x5b, 0x98, 0xd7, 0x70, 0xed, 0x20, 0xab, 0xbb, 0x23, 0x0a, + 0x9b, 0xea, 0x2d, 0x4c, 0x61, 0xdf, 0xa5, 0x8d, 0x50, 0x05, 0xf5, 0x10, 0xce, 0xc0, 0x22, 0xb7, + 0x5f, 0x13, 0x50, 0xbc, 0xd4, 0xbc, 0x85, 0x75, 0x39, 0x92, 0xcf, 0x12, 0x2d, 0xb3, 0x2d, 0xfc, + 0x30, 0x8c, 0xe5, 0x2f, 0x83, 0x85, 0x16, 0xd6, 0xfb, 0x43, 0xfc, 0x49, 0x4f, 0xdf, 0x43, 0x1e, + 0xb6, 0x82, 0xd2, 0xf7, 0xb9, 0x16, 0xbe, 0x47, 0x9a, 0x1f, 0xb1, 0x56, 0x78, 0x0b, 0x9c, 0x6a, + 0x61, 0xdd, 0x44, 0x1d, 0x63, 0xd0, 0xf3, 0xf5, 0xf6, 0x8e, 0xe1, 0x19, 0x6d, 0x1f, 0x79, 0x3a, + 0x16, 0x05, 0x22, 0xac, 0xe4, 0xf3, 0x44, 0x0b, 0xdf, 0x66, 0x30, 0x1b, 0x02, 0xa4, 0xc9, 0xeb, + 0x45, 0xae, 0x83, 0x13, 0x32, 0x06, 0xa7, 0xd7, 0x63, 0x79, 0x02, 0xa9, 0x16, 0xf4, 0x58, 0x38, + 0x5a, 0x74, 0x8b, 0x7a, 0x60, 0xb2, 0x4c, 0x42, 0x5e, 0x84, 0x17, 0x67, 0x68, 0x89, 0x67, 0xb5, + 0x85, 0xef, 0xb1, 0x06, 0xde, 0xfd, 0xd8, 0xf1, 0x76, 0x91, 0x87, 0x69, 0x52, 0xa2, 0x4e, 0xba, + 0x3f, 0x64, 0x0d, 0xf0, 0x22, 0x38, 0xd2, 0xc2, 0x3a, 0xb2, 0x8d, 0x56, 0x0f, 0xe9, 0xe6, 0xc0, + 0xe8, 0xe9, 0x66, 0x8b, 0x26, 0x26, 0x2a, 0x64, 0x97, 0x77, 0x68, 0xfb, 0xed, 0x81, 0xd1, 0xbb, + 0xdd, 0x52, 0xdf, 0x03, 0xd5, 0x80, 0x5b, 0xc4, 0x6d, 0xe0, 0x4c, 0x16, 0x55, 0x70, 0x33, 0x8c, + 0x7f, 0x26, 0xad, 0x44, 0xa0, 0x5d, 0xe2, 0x90, 0x2b, 0xd1, 0x35, 0xcd, 0xd2, 0x46, 0x71, 0xc2, + 0xfd, 0x55, 0x09, 0x3c, 0x93, 0x22, 0xa6, 0x84, 0xcd, 0xd8, 0xd5, 0xdb, 0x8e, 0x89, 0x02, 0x9a, + 0x33, 0xf4, 0x75, 0xec, 0x6e, 0x38, 0x26, 0x12, 0x24, 0x7f, 0x1e, 0xcc, 0x09, 0xb8, 0xb6, 0xd3, + 0x27, 0xb7, 0x56, 0xc6, 0xe7, 0x59, 0x06, 0xb6, 0x41, 0xdb, 0xe0, 0x05, 0x8a, 0xcd, 0xf0, 0xda, + 0x3b, 0x96, 0x8f, 0xda, 0xfe, 0xc0, 0x13, 0x79, 0x90, 0x39, 0xec, 0xae, 0x49, 0xad, 0x44, 0x6a, + 0xb0, 0xab, 0x77, 0x9d, 0x18, 0xa3, 0x6b, 0xd8, 0xdd, 0x74, 0xc4, 0x94, 0x2b, 0xe0, 0x19, 0xec, + 0xea, 0xec, 0xa8, 0xb6, 0xec, 0xae, 0x8e, 0x87, 0xd8, 0x47, 0x7d, 0x51, 0x1e, 0x8d, 0xdd, 0xfb, + 0xa2, 0xa7, 0x49, 0x3b, 0x22, 0xf0, 0xd2, 0x91, 0x3f, 0x1d, 0x85, 0x0f, 0x0e, 0x7d, 0xbe, 0x25, + 0xd3, 0xe9, 0x13, 0xda, 0x51, 0xc6, 0xcf, 0x88, 0x2d, 0xdd, 0xa6, 0x8d, 0x84, 0xdd, 0xea, 0xb1, + 0xd0, 0xbb, 0xa0, 0x46, 0x82, 0x5b, 0x78, 0xf5, 0x7e, 0xe8, 0x32, 0xf0, 0xf6, 0xb0, 0x5e, 0x0d, + 0xd3, 0x96, 0xa2, 0x7a, 0x35, 0x3e, 0x8e, 0x43, 0xab, 0x6e, 0x90, 0xc7, 0x79, 0x88, 0x91, 0xc7, + 0x3c, 0xd4, 0x11, 0xab, 0x20, 0x83, 0x48, 0x42, 0x49, 0x8a, 0x24, 0x14, 0x06, 0x20, 0xd4, 0xaf, + 0x46, 0xaa, 0xfc, 0xc5, 0x8c, 0x7c, 0x1b, 0x6f, 0xc5, 0x7c, 0xe1, 0x73, 0xb9, 0xa9, 0x23, 0x96, + 0x7a, 0x0c, 0x7c, 0x60, 0x3b, 0x28, 0xed, 0x97, 0x7a, 0x65, 0x17, 0x98, 0x05, 0x79, 0x43, 0x17, + 0x98, 0x7e, 0xef, 0x67, 0x27, 0x91, 0x42, 0x7a, 0xf5, 0x23, 0xe6, 0x73, 0x27, 0xe6, 0x3b, 0x8c, + 0xbd, 0x0c, 0x82, 0xda, 0x28, 0x42, 0xa5, 0xfb, 0x8f, 0x6d, 0x64, 0xfe, 0x4f, 0x30, 0xe7, 0xe3, + 0x48, 0x69, 0x6c, 0x64, 0xda, 0xc3, 0xd8, 0xd5, 0x3f, 0x94, 0xc0, 0xf4, 0xb6, 0xd3, 0xb3, 0xda, + 0x43, 0x78, 0x1e, 0xcc, 0xb9, 0x9e, 0x65, 0xb7, 0x2d, 0xd7, 0xe8, 0xb1, 0xac, 0x04, 0xd9, 0xc3, + 0x94, 0x56, 0x0f, 0x5a, 0x69, 0x6a, 0xe3, 0x02, 0x98, 0x0f, 0xc1, 0xc2, 0x04, 0x4e, 0x55, 0x0b, + 0x47, 0x3f, 0x22, 0xad, 0xc9, 0x5c, 0x4a, 0xf9, 0x50, 0x72, 0x29, 0xfc, 0xf9, 0x84, 0x94, 0x4b, + 0xb9, 0x08, 0x16, 0xa4, 0xdc, 0x32, 0xf3, 0x92, 0x58, 0x12, 0x75, 0x3e, 0x4c, 0x30, 0x33, 0x27, + 0xe9, 0x22, 0x58, 0x90, 0x8e, 0x1f, 0x06, 0xca, 0x92, 0xcd, 0xf3, 0x61, 0x36, 0x99, 0x81, 0xa6, + 0x24, 0x8e, 0x67, 0x52, 0x13, 0xc7, 0xff, 0xae, 0x84, 0xb7, 0x79, 0x16, 0x5d, 0xa3, 0x04, 0xb5, + 0x10, 0x3e, 0xbc, 0x12, 0xda, 0x58, 0xba, 0xa8, 0x3c, 0x46, 0xba, 0x28, 0x3d, 0xce, 0x18, 0x17, + 0xc0, 0xa9, 0x84, 0x00, 0xfe, 0x3f, 0x26, 0x80, 0x69, 0xbb, 0xe3, 0x02, 0xf8, 0x26, 0xa8, 0xb8, + 0xbc, 0xad, 0xa8, 0xf2, 0x98, 0x89, 0x9a, 0x16, 0xc0, 0xab, 0xf7, 0xc3, 0x18, 0x74, 0xf4, 0x49, + 0x13, 0xf3, 0xff, 0x02, 0x12, 0x5e, 0x48, 0x7f, 0x21, 0x55, 0x8d, 0xbf, 0x7c, 0x52, 0x8d, 0x30, + 0x82, 0x9c, 0x81, 0xf0, 0xc0, 0xe5, 0xd2, 0x1b, 0x61, 0xac, 0x94, 0xe8, 0x64, 0x74, 0x9a, 0x11, + 0xcd, 0x81, 0xfa, 0xf3, 0x61, 0x04, 0x2f, 0x15, 0x09, 0x5f, 0xe5, 0x43, 0xb0, 0x10, 0xdb, 0xb7, + 0x70, 0xe5, 0x5f, 0x1c, 0xed, 0x69, 0x18, 0xad, 0x6b, 0x9d, 0x8f, 0x12, 0x09, 0xab, 0xd7, 0x99, + 0x61, 0xa6, 0x01, 0x11, 0x1e, 0x03, 0x91, 0x32, 0xd0, 0x27, 0x41, 0x55, 0x18, 0x66, 0x91, 0x80, + 0xae, 0x70, 0xcb, 0x8c, 0xd5, 0xcf, 0x94, 0x30, 0xb0, 0x11, 0x19, 0xcb, 0x57, 0xfc, 0x61, 0xcc, + 0x1c, 0xbd, 0x53, 0x94, 0x54, 0x4e, 0x41, 0xc2, 0x4c, 0x15, 0x4f, 0x29, 0x73, 0x74, 0x8d, 0xaf, + 0xf2, 0xf2, 0x96, 0xcc, 0x84, 0xf2, 0xd5, 0x68, 0x42, 0xb9, 0xa0, 0xc8, 0x41, 0xca, 0x27, 0xdf, + 0x60, 0x32, 0x43, 0xaf, 0xfd, 0x3c, 0x92, 0x6b, 0x77, 0x79, 0xd5, 0x36, 0x7b, 0x11, 0x91, 0x77, + 0x9d, 0x7b, 0x9b, 0x15, 0x58, 0xe5, 0x8d, 0x4e, 0x7b, 0x59, 0x30, 0x29, 0xea, 0x29, 0x1e, 0xb3, + 0xd9, 0x59, 0x1a, 0x97, 0x07, 0x61, 0x37, 0x1f, 0x6d, 0x86, 0x09, 0xdd, 0x51, 0xd3, 0x62, 0xdd, + 0x48, 0x5a, 0x8c, 0x5d, 0xb9, 0x1a, 0xa0, 0x6a, 0x62, 0x9f, 0x3f, 0x38, 0x28, 0xd3, 0x9e, 0x19, + 0x13, 0xfb, 0x4d, 0xb2, 0x70, 0x9d, 0x2d, 0x3c, 0x6f, 0xe2, 0x83, 0x65, 0x91, 0xdf, 0x88, 0x95, + 0x72, 0x37, 0xad, 0xa7, 0x68, 0xa4, 0x78, 0xdd, 0x8d, 0x58, 0x71, 0x36, 0x1b, 0xc8, 0x17, 0x13, + 0x1a, 0x4b, 0x5a, 0xba, 0x18, 0x29, 0x02, 0xa7, 0xc5, 0x8b, 0x4b, 0x41, 0xdd, 0x34, 0xab, 0x78, + 0xe5, 0x8f, 0xba, 0x45, 0x2a, 0x57, 0xbd, 0x11, 0x9c, 0xe4, 0xf1, 0x7e, 0x3e, 0x43, 0x5e, 0x21, + 0xdc, 0x95, 0xef, 0x5f, 0x03, 0xcf, 0x90, 0xe1, 0xf7, 0xb8, 0x50, 0x35, 0x91, 0xb7, 0x67, 0xb5, + 0x11, 0xfc, 0x26, 0x80, 0xc9, 0x97, 0x25, 0xf0, 0x95, 0x3c, 0xe9, 0x4f, 0x7d, 0x57, 0xd9, 0xb8, + 0xb2, 0x9f, 0x21, 0x6c, 0xc5, 0xea, 0x04, 0xfc, 0x03, 0x25, 0xa5, 0xaa, 0x24, 0x7c, 0x79, 0x00, + 0xdf, 0x1c, 0xb9, 0xb6, 0x23, 0xf1, 0x3a, 0xa2, 0xf1, 0xd6, 0x58, 0x63, 0x83, 0xa5, 0xfd, 0x76, + 0xbc, 0xd6, 0x3e, 0xb2, 0xb0, 0x6b, 0x05, 0xdb, 0xcd, 0x7c, 0xed, 0xd6, 0xb8, 0x3e, 0xc6, 0xc8, + 0x60, 0x51, 0xbf, 0x1e, 0x96, 0x7b, 0xc5, 0x1f, 0x87, 0xc1, 0xd7, 0xf7, 0x85, 0x38, 0x10, 0xac, + 0xc6, 0x1b, 0xfb, 0x1e, 0x17, 0x2c, 0xe7, 0xef, 0x79, 0x1d, 0xc1, 0x28, 0x4f, 0xb3, 0xe0, 0x66, + 0x11, 0x3f, 0x46, 0x7c, 0x91, 0xd6, 0x78, 0xf7, 0xe0, 0x88, 0xd2, 0x08, 0x1a, 0x7f, 0x5a, 0x55, + 0x48, 0xd0, 0x8c, 0x57, 0x5f, 0x85, 0x04, 0xcd, 0x7a, 0xc3, 0xa5, 0x4e, 0xc0, 0xdf, 0x53, 0xc2, + 0x23, 0x2e, 0xf9, 0x68, 0x0a, 0x5e, 0x2f, 0xda, 0x79, 0xe6, 0x23, 0xaf, 0xc6, 0x9b, 0xe3, 0x0c, + 0x0d, 0xd6, 0xf5, 0x14, 0x1c, 0x49, 0xbc, 0x71, 0x82, 0x2f, 0x17, 0xec, 0x33, 0xf1, 0x2a, 0xab, + 0xf1, 0xca, 0x3e, 0x46, 0x04, 0x73, 0xff, 0xaa, 0x12, 0x5c, 0x56, 0xa3, 0x96, 0x0f, 0xbe, 0x5a, + 0x80, 0x2e, 0xd5, 0x90, 0x36, 0x5e, 0xdb, 0xe7, 0xa8, 0x04, 0x73, 0xd2, 0x5f, 0x49, 0xc1, 0x22, + 0xc5, 0xce, 0x7e, 0xc8, 0x95, 0xcf, 0x9c, 0xfc, 0x47, 0x59, 0xea, 0x04, 0xfc, 0x8d, 0xf0, 0x21, + 0x5c, 0xe2, 0x9d, 0x13, 0x7c, 0x63, 0x7f, 0xa8, 0x43, 0x32, 0x5d, 0xdb, 0xff, 0xc0, 0x60, 0x45, + 0xdf, 0x64, 0x61, 0x87, 0x78, 0x8d, 0x17, 0x4c, 0x4d, 0x49, 0xd3, 0xda, 0xec, 0x38, 0x68, 0x28, + 0x31, 0xa3, 0x8f, 0x48, 0x91, 0xd6, 0xf0, 0x95, 0x54, 0xa1, 0xb4, 0x26, 0xde, 0x6d, 0x15, 0x4a, + 0x6b, 0xf2, 0x09, 0x56, 0x54, 0x5a, 0xa3, 0x4f, 0x99, 0x0a, 0xa5, 0x35, 0xf5, 0xb9, 0x54, 0xa1, + 0xb4, 0xa6, 0xbf, 0x97, 0x52, 0x27, 0xe0, 0xb7, 0x15, 0x70, 0x2c, 0xfd, 0x51, 0x12, 0x7c, 0x6d, + 0xa4, 0x8d, 0xc5, 0x5f, 0xec, 0x34, 0x5e, 0xdf, 0xef, 0xb0, 0x60, 0x2d, 0x7f, 0xa8, 0xc4, 0x9c, + 0x9b, 0xf8, 0x8a, 0xde, 0x1a, 0x49, 0x27, 0x33, 0xd6, 0x75, 0x63, 0xbc, 0xc1, 0x09, 0xfd, 0x49, + 0x7b, 0x36, 0x92, 0xaf, 0x3f, 0x39, 0x2f, 0x80, 0xf2, 0xf5, 0x27, 0xef, 0x85, 0x8a, 0x74, 0x2a, + 0xa5, 0x3c, 0xd6, 0xc8, 0x3f, 0x95, 0xb2, 0x5f, 0x87, 0xe4, 0x9f, 0x4a, 0x39, 0xaf, 0x42, 0xd4, + 0x09, 0xf8, 0xc7, 0xf2, 0xdb, 0x91, 0xf4, 0x57, 0x14, 0xf0, 0xed, 0x42, 0xf4, 0xb9, 0xcf, 0x38, + 0x1a, 0xef, 0x8c, 0x3d, 0x3e, 0x58, 0xe6, 0x63, 0xb0, 0x10, 0xaf, 0x25, 0x87, 0xab, 0x05, 0xb2, + 0x11, 0x2f, 0x9a, 0x6f, 0xbc, 0x3c, 0xfa, 0x80, 0x60, 0xe2, 0x5f, 0x52, 0x98, 0xbd, 0x8b, 0x57, + 0x6b, 0xc3, 0xab, 0xfb, 0xab, 0xed, 0x66, 0x2b, 0x78, 0x75, 0x9c, 0x82, 0xf0, 0xd8, 0x2a, 0xe4, + 0x92, 0xe7, 0xe2, 0x55, 0xa4, 0xd4, 0x73, 0x17, 0xaf, 0x22, 0xad, 0xaa, 0x5a, 0x52, 0xa6, 0xb4, + 0xfa, 0xde, 0x7c, 0x65, 0xca, 0xa9, 0x8b, 0xce, 0x57, 0xa6, 0xbc, 0x52, 0x62, 0x75, 0x02, 0xfe, + 0xa9, 0x12, 0x46, 0x3e, 0xb2, 0x6b, 0x7a, 0x61, 0x61, 0x19, 0x79, 0x61, 0x49, 0x71, 0x63, 0xfd, + 0x20, 0x28, 0x82, 0xf5, 0xfe, 0x89, 0x92, 0x53, 0x6c, 0xca, 0x8b, 0x73, 0xe1, 0x3b, 0x45, 0x62, + 0x5a, 0x50, 0x19, 0xdc, 0xb8, 0x35, 0x3e, 0x82, 0xb4, 0x2b, 0x52, 0xb2, 0x70, 0xb6, 0xf0, 0x8a, + 0x94, 0x59, 0xee, 0x5b, 0x78, 0x45, 0xca, 0xae, 0xf6, 0x8d, 0x2e, 0x2a, 0xb9, 0x87, 0xc2, 0x45, + 0x65, 0x96, 0xf7, 0x16, 0x2e, 0x2a, 0xbb, 0x80, 0x37, 0x5d, 0x37, 0x69, 0x89, 0xe8, 0xc8, 0xba, + 0x29, 0x97, 0xec, 0x8e, 0xac, 0x9b, 0x91, 0xd2, 0x5b, 0x75, 0x02, 0x7e, 0x37, 0x11, 0xf3, 0x8d, + 0x15, 0xaa, 0xc2, 0x1b, 0xfb, 0xc1, 0x1c, 0x2f, 0xb9, 0x6d, 0xdc, 0x1c, 0x73, 0x74, 0xaa, 0xaa, + 0x66, 0xd7, 0x8f, 0xc2, 0xd1, 0x5f, 0x7c, 0x64, 0x95, 0xc6, 0x16, 0xab, 0x6a, 0x71, 0xf9, 0x6a, + 0xec, 0xfe, 0x5b, 0x54, 0x66, 0x56, 0x7c, 0xff, 0x1d, 0xb1, 0xe0, 0xad, 0xf8, 0xfe, 0x3b, 0x6a, + 0xc5, 0x9b, 0x3a, 0x01, 0xff, 0x5c, 0x09, 0x23, 0xba, 0x39, 0x45, 0x66, 0x70, 0x7d, 0xac, 0x39, + 0xa3, 0xe2, 0xb1, 0x71, 0x20, 0x1c, 0xa9, 0x31, 0xa3, 0xb4, 0x12, 0xdd, 0xc2, 0x9b, 0x6e, 0x76, + 0xa9, 0x70, 0x71, 0xcc, 0x28, 0xa7, 0x6e, 0x55, 0x72, 0xfe, 0x93, 0x45, 0xa2, 0x85, 0x2a, 0x9b, + 0x56, 0xa0, 0x9a, 0xef, 0xfc, 0x67, 0xd6, 0x61, 0xc6, 0xec, 0x4d, 0xa4, 0xf6, 0xae, 0xd0, 0xde, + 0xa4, 0x54, 0xfd, 0x15, 0xdb, 0x9b, 0xb4, 0xda, 0x38, 0x75, 0x02, 0xda, 0xa0, 0x1e, 0x29, 0x4c, + 0x83, 0x2f, 0x15, 0xd8, 0xd0, 0x48, 0x09, 0x5c, 0xe3, 0xf2, 0x88, 0xd0, 0x69, 0xf3, 0xb1, 0x92, + 0x98, 0xc2, 0xf9, 0xe4, 0xa4, 0x78, 0xf1, 0x7c, 0x91, 0x54, 0x79, 0xe4, 0x9e, 0x19, 0xa6, 0xa0, + 0x0b, 0xef, 0x99, 0x89, 0xfc, 0x78, 0xe3, 0x95, 0x7d, 0x8c, 0x08, 0xe6, 0xfe, 0x96, 0xc2, 0x02, + 0xba, 0xb1, 0xac, 0x31, 0xbc, 0x32, 0x8a, 0xff, 0x1a, 0x4d, 0x69, 0x37, 0xae, 0xee, 0x6b, 0x4c, + 0xda, 0x0d, 0x33, 0x96, 0xe5, 0x2d, 0xbc, 0x61, 0xa6, 0x27, 0xa3, 0x1b, 0xaf, 0xef, 0x77, 0x58, + 0x62, 0x2d, 0xc9, 0x84, 0x1f, 0x7c, 0x6d, 0x34, 0x53, 0x1f, 0x4b, 0x7f, 0xe6, 0xaf, 0x25, 0x3b, + 0xaf, 0x18, 0x3b, 0x66, 0x53, 0xb3, 0x79, 0xc5, 0xc7, 0x6c, 0x5e, 0x56, 0xb1, 0xf8, 0x98, 0xcd, + 0x4d, 0x21, 0xc6, 0x2c, 0x68, 0x4a, 0x1a, 0xaf, 0xd8, 0x82, 0x66, 0x27, 0x10, 0x8b, 0x2d, 0x68, + 0x4e, 0xde, 0x50, 0x12, 0xeb, 0x58, 0x8a, 0x2d, 0x5f, 0xac, 0xd3, 0x13, 0x82, 0x8d, 0xab, 0x63, + 0xe4, 0xf0, 0xd4, 0x09, 0xf8, 0x3d, 0x25, 0x28, 0x5e, 0xc8, 0x48, 0x8d, 0xc1, 0x9b, 0x85, 0x96, + 0x29, 0x2f, 0x21, 0xd7, 0x78, 0x7b, 0xdc, 0xe1, 0x89, 0x35, 0x66, 0x67, 0xc1, 0xf2, 0xd7, 0x58, + 0x98, 0xb6, 0xcb, 0x5f, 0x63, 0x71, 0xf2, 0x2d, 0x25, 0x0a, 0x47, 0xff, 0xa6, 0xcc, 0x68, 0x51, + 0x38, 0x29, 0xe5, 0x36, 0x62, 0x14, 0x4e, 0xce, 0xb5, 0x49, 0xa1, 0xda, 0xf4, 0xa2, 0xe3, 0xfc, + 0x50, 0x6d, 0x6e, 0x8d, 0x73, 0x7e, 0xa8, 0x36, 0xbf, 0xc6, 0x59, 0x0a, 0x84, 0x65, 0x15, 0xd1, + 0xe6, 0x07, 0xc2, 0x0a, 0xea, 0x76, 0xf3, 0x03, 0x61, 0x45, 0x75, 0xbb, 0xea, 0xc4, 0xba, 0xf1, + 0xe9, 0x17, 0x4b, 0xca, 0x67, 0x5f, 0x2c, 0x29, 0x3f, 0xfd, 0x62, 0x49, 0xf9, 0xcd, 0x2f, 0x97, + 0x26, 0x3e, 0xfb, 0x72, 0x69, 0xe2, 0xdf, 0xbe, 0x5c, 0x9a, 0xf8, 0x68, 0x53, 0x2a, 0x52, 0x6d, + 0xd9, 0xad, 0xcb, 0xb4, 0x3a, 0x6f, 0x35, 0x0c, 0xcd, 0x5e, 0xe6, 0xa1, 0xd9, 0xcb, 0xa2, 0xf2, + 0x74, 0x35, 0xfd, 0x0f, 0xc7, 0xb7, 0xa6, 0xe9, 0xdf, 0x15, 0xbf, 0xfa, 0xdf, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x2e, 0x6b, 0xc5, 0x80, 0x59, 0x5e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -7233,6 +7320,7 @@ type GfSpMetadataServiceClient interface { GfSpGetUserBucketsCount(ctx context.Context, in *GfSpGetUserBucketsCountRequest, opts ...grpc.CallOption) (*GfSpGetUserBucketsCountResponse, error) GfSpListExpiredBucketsBySp(ctx context.Context, in *GfSpListExpiredBucketsBySpRequest, opts ...grpc.CallOption) (*GfSpListExpiredBucketsBySpResponse, error) GfSpGetObjectMeta(ctx context.Context, in *GfSpGetObjectMetaRequest, opts ...grpc.CallOption) (*GfSpGetObjectMetaResponse, error) + GfSpGetLatestObjectID(ctx context.Context, in *GfSpGetLatestObjectIDRequest, opts ...grpc.CallOption) (*GfSpGetLatestObjectIDResponse, error) GfSpGetPaymentByBucketName(ctx context.Context, in *GfSpGetPaymentByBucketNameRequest, opts ...grpc.CallOption) (*GfSpGetPaymentByBucketNameResponse, error) GfSpGetPaymentByBucketID(ctx context.Context, in *GfSpGetPaymentByBucketIDRequest, opts ...grpc.CallOption) (*GfSpGetPaymentByBucketIDResponse, error) GfSpVerifyPermission(ctx context.Context, in *types.QueryVerifyPermissionRequest, opts ...grpc.CallOption) (*types.QueryVerifyPermissionResponse, error) @@ -7355,6 +7443,15 @@ func (c *gfSpMetadataServiceClient) GfSpGetObjectMeta(ctx context.Context, in *G return out, nil } +func (c *gfSpMetadataServiceClient) GfSpGetLatestObjectID(ctx context.Context, in *GfSpGetLatestObjectIDRequest, opts ...grpc.CallOption) (*GfSpGetLatestObjectIDResponse, error) { + out := new(GfSpGetLatestObjectIDResponse) + err := c.cc.Invoke(ctx, "/modular.metadata.types.GfSpMetadataService/GfSpGetLatestObjectID", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *gfSpMetadataServiceClient) GfSpGetPaymentByBucketName(ctx context.Context, in *GfSpGetPaymentByBucketNameRequest, opts ...grpc.CallOption) (*GfSpGetPaymentByBucketNameResponse, error) { out := new(GfSpGetPaymentByBucketNameResponse) err := c.cc.Invoke(ctx, "/modular.metadata.types.GfSpMetadataService/GfSpGetPaymentByBucketName", in, out, opts...) @@ -7725,6 +7822,7 @@ type GfSpMetadataServiceServer interface { GfSpGetUserBucketsCount(context.Context, *GfSpGetUserBucketsCountRequest) (*GfSpGetUserBucketsCountResponse, error) GfSpListExpiredBucketsBySp(context.Context, *GfSpListExpiredBucketsBySpRequest) (*GfSpListExpiredBucketsBySpResponse, error) GfSpGetObjectMeta(context.Context, *GfSpGetObjectMetaRequest) (*GfSpGetObjectMetaResponse, error) + GfSpGetLatestObjectID(context.Context, *GfSpGetLatestObjectIDRequest) (*GfSpGetLatestObjectIDResponse, error) GfSpGetPaymentByBucketName(context.Context, *GfSpGetPaymentByBucketNameRequest) (*GfSpGetPaymentByBucketNameResponse, error) GfSpGetPaymentByBucketID(context.Context, *GfSpGetPaymentByBucketIDRequest) (*GfSpGetPaymentByBucketIDResponse, error) GfSpVerifyPermission(context.Context, *types.QueryVerifyPermissionRequest) (*types.QueryVerifyPermissionResponse, error) @@ -7795,6 +7893,9 @@ func (*UnimplementedGfSpMetadataServiceServer) GfSpListExpiredBucketsBySp(ctx co func (*UnimplementedGfSpMetadataServiceServer) GfSpGetObjectMeta(ctx context.Context, req *GfSpGetObjectMetaRequest) (*GfSpGetObjectMetaResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GfSpGetObjectMeta not implemented") } +func (*UnimplementedGfSpMetadataServiceServer) GfSpGetLatestObjectID(ctx context.Context, req *GfSpGetLatestObjectIDRequest) (*GfSpGetLatestObjectIDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GfSpGetLatestObjectID not implemented") +} func (*UnimplementedGfSpMetadataServiceServer) GfSpGetPaymentByBucketName(ctx context.Context, req *GfSpGetPaymentByBucketNameRequest) (*GfSpGetPaymentByBucketNameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GfSpGetPaymentByBucketName not implemented") } @@ -8064,6 +8165,24 @@ func _GfSpMetadataService_GfSpGetObjectMeta_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _GfSpMetadataService_GfSpGetLatestObjectID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GfSpGetLatestObjectIDRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GfSpMetadataServiceServer).GfSpGetLatestObjectID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/modular.metadata.types.GfSpMetadataService/GfSpGetLatestObjectID", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GfSpMetadataServiceServer).GfSpGetLatestObjectID(ctx, req.(*GfSpGetLatestObjectIDRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _GfSpMetadataService_GfSpGetPaymentByBucketName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GfSpGetPaymentByBucketNameRequest) if err := dec(in); err != nil { @@ -8820,6 +8939,10 @@ var _GfSpMetadataService_serviceDesc = grpc.ServiceDesc{ MethodName: "GfSpGetObjectMeta", Handler: _GfSpMetadataService_GfSpGetObjectMeta_Handler, }, + { + MethodName: "GfSpGetLatestObjectID", + Handler: _GfSpMetadataService_GfSpGetLatestObjectID_Handler, + }, { MethodName: "GfSpGetPaymentByBucketName", Handler: _GfSpMetadataService_GfSpGetPaymentByBucketName_Handler, @@ -13874,6 +13997,57 @@ func (m *GfSpGetBucketSizeResponse) MarshalToSizedBuffer(dAtA []byte) (int, erro return len(dAtA) - i, nil } +func (m *GfSpGetLatestObjectIDRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GfSpGetLatestObjectIDRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GfSpGetLatestObjectIDRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *GfSpGetLatestObjectIDResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GfSpGetLatestObjectIDResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GfSpGetLatestObjectIDResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ObjectId != 0 { + i = encodeVarintMetadata(dAtA, i, uint64(m.ObjectId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func encodeVarintMetadata(dAtA []byte, offset int, v uint64) int { offset -= sovMetadata(v) base := offset @@ -15977,6 +16151,27 @@ func (m *GfSpGetBucketSizeResponse) Size() (n int) { return n } +func (m *GfSpGetLatestObjectIDRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *GfSpGetLatestObjectIDResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ObjectId != 0 { + n += 1 + sovMetadata(uint64(m.ObjectId)) + } + return n +} + func sovMetadata(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -29554,6 +29749,125 @@ func (m *GfSpGetBucketSizeResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *GfSpGetLatestObjectIDRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetadata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GfSpGetLatestObjectIDRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GfSpGetLatestObjectIDRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMetadata(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetadata + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GfSpGetLatestObjectIDResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetadata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GfSpGetLatestObjectIDResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GfSpGetLatestObjectIDResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectId", wireType) + } + m.ObjectId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMetadata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObjectId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipMetadata(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMetadata + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipMetadata(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/proto/modular/metadata/types/metadata.proto b/proto/modular/metadata/types/metadata.proto index ce1b73b98..12c41b164 100644 --- a/proto/modular/metadata/types/metadata.proto +++ b/proto/modular/metadata/types/metadata.proto @@ -1001,6 +1001,15 @@ message GfSpGetBucketSizeResponse { string bucket_size = 1; } +// GfSpGetLatestObjectIDRequest is request type for the GfSpGetLatestObjectID RPC method +message GfSpGetLatestObjectIDRequest {} + +// GfSpGetLatestObjectIDResponse is response type for the GfSpGetLatestObjectID RPC method +message GfSpGetLatestObjectIDResponse { + // object_id define latest object id + uint64 object_id = 1; +} + service GfSpMetadataService { rpc GfSpGetUserBuckets(GfSpGetUserBucketsRequest) returns (GfSpGetUserBucketsResponse) {} rpc GfSpListObjectsByBucketName(GfSpListObjectsByBucketNameRequest) returns (GfSpListObjectsByBucketNameResponse) {} @@ -1010,6 +1019,7 @@ service GfSpMetadataService { rpc GfSpGetUserBucketsCount(GfSpGetUserBucketsCountRequest) returns (GfSpGetUserBucketsCountResponse) {} rpc GfSpListExpiredBucketsBySp(GfSpListExpiredBucketsBySpRequest) returns (GfSpListExpiredBucketsBySpResponse) {} rpc GfSpGetObjectMeta(GfSpGetObjectMetaRequest) returns (GfSpGetObjectMetaResponse) {} + rpc GfSpGetLatestObjectID(GfSpGetLatestObjectIDRequest) returns (GfSpGetLatestObjectIDResponse) {} rpc GfSpGetPaymentByBucketName(GfSpGetPaymentByBucketNameRequest) returns (GfSpGetPaymentByBucketNameResponse) {} rpc GfSpGetPaymentByBucketID(GfSpGetPaymentByBucketIDRequest) returns (GfSpGetPaymentByBucketIDResponse) {} rpc GfSpVerifyPermission(greenfield.storage.QueryVerifyPermissionRequest) returns (greenfield.storage.QueryVerifyPermissionResponse) {} diff --git a/store/bsdb/database.go b/store/bsdb/database.go index 772f5c795..95f6eac85 100644 --- a/store/bsdb/database.go +++ b/store/bsdb/database.go @@ -43,6 +43,8 @@ type Metadata interface { GetObjectByName(objectName string, bucketName string, includePrivate bool) (*Object, error) // GetObjectByID get object info by an object id GetObjectByID(objectID int64, includeRemoved bool) (*Object, error) + // GetLatestObjectID get latest object id + GetLatestObjectID() (uint64, error) // GetSwitchDBSignal check if there is a signal to switch the database GetSwitchDBSignal() (*MasterDB, error) // GetBucketMetaByName get bucket info with its related info diff --git a/store/bsdb/database_mock.go b/store/bsdb/database_mock.go index 5becbb9ba..81bcde7e6 100644 --- a/store/bsdb/database_mock.go +++ b/store/bsdb/database_mock.go @@ -51,7 +51,7 @@ func (m *MockMetadata) GetBucketByID(bucketID int64, includePrivate bool) (*Buck } // GetBucketByID indicates an expected call of GetBucketByID. -func (mr *MockMetadataMockRecorder) GetBucketByID(bucketID, includePrivate any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetBucketByID(bucketID, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByID", reflect.TypeOf((*MockMetadata)(nil).GetBucketByID), bucketID, includePrivate) } @@ -66,7 +66,7 @@ func (m *MockMetadata) GetBucketByName(bucketName string, includePrivate bool) ( } // GetBucketByName indicates an expected call of GetBucketByName. -func (mr *MockMetadataMockRecorder) GetBucketByName(bucketName, includePrivate any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetBucketByName(bucketName, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByName", reflect.TypeOf((*MockMetadata)(nil).GetBucketByName), bucketName, includePrivate) } @@ -81,7 +81,7 @@ func (m *MockMetadata) GetBucketMetaByName(bucketName string, includePrivate boo } // GetBucketMetaByName indicates an expected call of GetBucketMetaByName. -func (mr *MockMetadataMockRecorder) GetBucketMetaByName(bucketName, includePrivate any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetBucketMetaByName(bucketName, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketMetaByName", reflect.TypeOf((*MockMetadata)(nil).GetBucketMetaByName), bucketName, includePrivate) } @@ -96,7 +96,7 @@ func (m *MockMetadata) GetBucketSizeByID(bucketID uint64) (decimal.Decimal, erro } // GetBucketSizeByID indicates an expected call of GetBucketSizeByID. -func (mr *MockMetadataMockRecorder) GetBucketSizeByID(bucketID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetBucketSizeByID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketSizeByID", reflect.TypeOf((*MockMetadata)(nil).GetBucketSizeByID), bucketID) } @@ -111,7 +111,7 @@ func (m *MockMetadata) GetDataMigrationRecordByProcessKey(processKey string) (*D } // GetDataMigrationRecordByProcessKey indicates an expected call of GetDataMigrationRecordByProcessKey. -func (mr *MockMetadataMockRecorder) GetDataMigrationRecordByProcessKey(processKey any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetDataMigrationRecordByProcessKey(processKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDataMigrationRecordByProcessKey", reflect.TypeOf((*MockMetadata)(nil).GetDataMigrationRecordByProcessKey), processKey) } @@ -171,7 +171,7 @@ func (m *MockMetadata) GetEventMigrationBucketByBucketID(bucketID common.Hash) ( } // GetEventMigrationBucketByBucketID indicates an expected call of GetEventMigrationBucketByBucketID. -func (mr *MockMetadataMockRecorder) GetEventMigrationBucketByBucketID(bucketID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetEventMigrationBucketByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEventMigrationBucketByBucketID", reflect.TypeOf((*MockMetadata)(nil).GetEventMigrationBucketByBucketID), bucketID) } @@ -186,7 +186,7 @@ func (m *MockMetadata) GetEventSwapOutByGvgID(gvgID uint32) (*EventSwapOut, erro } // GetEventSwapOutByGvgID indicates an expected call of GetEventSwapOutByGvgID. -func (mr *MockMetadataMockRecorder) GetEventSwapOutByGvgID(gvgID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetEventSwapOutByGvgID(gvgID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEventSwapOutByGvgID", reflect.TypeOf((*MockMetadata)(nil).GetEventSwapOutByGvgID), gvgID) } @@ -201,7 +201,7 @@ func (m *MockMetadata) GetGlobalVirtualGroupByGvgID(gvgID uint32) (*GlobalVirtua } // GetGlobalVirtualGroupByGvgID indicates an expected call of GetGlobalVirtualGroupByGvgID. -func (mr *MockMetadataMockRecorder) GetGlobalVirtualGroupByGvgID(gvgID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetGlobalVirtualGroupByGvgID(gvgID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalVirtualGroupByGvgID", reflect.TypeOf((*MockMetadata)(nil).GetGlobalVirtualGroupByGvgID), gvgID) } @@ -216,7 +216,7 @@ func (m *MockMetadata) GetGroupByID(groupID int64, includeRemoved bool) (*Group, } // GetGroupByID indicates an expected call of GetGroupByID. -func (mr *MockMetadataMockRecorder) GetGroupByID(groupID, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetGroupByID(groupID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupByID", reflect.TypeOf((*MockMetadata)(nil).GetGroupByID), groupID, includeRemoved) } @@ -231,7 +231,7 @@ func (m *MockMetadata) GetGroupMembers(groupID common.Hash, startAfter common.Ad } // GetGroupMembers indicates an expected call of GetGroupMembers. -func (mr *MockMetadataMockRecorder) GetGroupMembers(groupID, startAfter, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetGroupMembers(groupID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembers", reflect.TypeOf((*MockMetadata)(nil).GetGroupMembers), groupID, startAfter, limit) } @@ -246,7 +246,7 @@ func (m *MockMetadata) GetGroupMembersCount(groupIDs []common.Hash) ([]*GroupCou } // GetGroupMembersCount indicates an expected call of GetGroupMembersCount. -func (mr *MockMetadataMockRecorder) GetGroupMembersCount(groupIDs any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetGroupMembersCount(groupIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembersCount", reflect.TypeOf((*MockMetadata)(nil).GetGroupMembersCount), groupIDs) } @@ -261,7 +261,7 @@ func (m *MockMetadata) GetGroupsByGroupIDAndAccount(groupIDList []common.Hash, a } // GetGroupsByGroupIDAndAccount indicates an expected call of GetGroupsByGroupIDAndAccount. -func (mr *MockMetadataMockRecorder) GetGroupsByGroupIDAndAccount(groupIDList, account, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetGroupsByGroupIDAndAccount(groupIDList, account, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupsByGroupIDAndAccount", reflect.TypeOf((*MockMetadata)(nil).GetGroupsByGroupIDAndAccount), groupIDList, account, includeRemoved) } @@ -276,7 +276,7 @@ func (m *MockMetadata) GetGvgByBucketAndLvgID(bucketID common.Hash, lvgID uint32 } // GetGvgByBucketAndLvgID indicates an expected call of GetGvgByBucketAndLvgID. -func (mr *MockMetadataMockRecorder) GetGvgByBucketAndLvgID(bucketID, lvgID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetGvgByBucketAndLvgID(bucketID, lvgID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGvgByBucketAndLvgID", reflect.TypeOf((*MockMetadata)(nil).GetGvgByBucketAndLvgID), bucketID, lvgID) } @@ -296,6 +296,21 @@ func (mr *MockMetadataMockRecorder) GetLatestBlockNumber() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestBlockNumber", reflect.TypeOf((*MockMetadata)(nil).GetLatestBlockNumber)) } +// GetLatestObjectID mocks base method. +func (m *MockMetadata) GetLatestObjectID() (uint64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestObjectID") + ret0, _ := ret[0].(uint64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestObjectID indicates an expected call of GetLatestObjectID. +func (mr *MockMetadataMockRecorder) GetLatestObjectID() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestObjectID", reflect.TypeOf((*MockMetadata)(nil).GetLatestObjectID)) +} + // GetLvgByBucketAndLvgID mocks base method. func (m *MockMetadata) GetLvgByBucketAndLvgID(bucketID common.Hash, lvgID uint32) (*LocalVirtualGroup, error) { m.ctrl.T.Helper() @@ -306,7 +321,7 @@ func (m *MockMetadata) GetLvgByBucketAndLvgID(bucketID common.Hash, lvgID uint32 } // GetLvgByBucketAndLvgID indicates an expected call of GetLvgByBucketAndLvgID. -func (mr *MockMetadataMockRecorder) GetLvgByBucketAndLvgID(bucketID, lvgID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetLvgByBucketAndLvgID(bucketID, lvgID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLvgByBucketAndLvgID", reflect.TypeOf((*MockMetadata)(nil).GetLvgByBucketAndLvgID), bucketID, lvgID) } @@ -321,7 +336,7 @@ func (m *MockMetadata) GetMigrateBucketEventByBucketID(bucketID common.Hash) (*E } // GetMigrateBucketEventByBucketID indicates an expected call of GetMigrateBucketEventByBucketID. -func (mr *MockMetadataMockRecorder) GetMigrateBucketEventByBucketID(bucketID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetMigrateBucketEventByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMigrateBucketEventByBucketID", reflect.TypeOf((*MockMetadata)(nil).GetMigrateBucketEventByBucketID), bucketID) } @@ -351,7 +366,7 @@ func (m *MockMetadata) GetObjectByID(objectID int64, includeRemoved bool) (*Obje } // GetObjectByID indicates an expected call of GetObjectByID. -func (mr *MockMetadataMockRecorder) GetObjectByID(objectID, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetObjectByID(objectID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectByID", reflect.TypeOf((*MockMetadata)(nil).GetObjectByID), objectID, includeRemoved) } @@ -366,7 +381,7 @@ func (m *MockMetadata) GetObjectByName(objectName, bucketName string, includePri } // GetObjectByName indicates an expected call of GetObjectByName. -func (mr *MockMetadataMockRecorder) GetObjectByName(objectName, bucketName, includePrivate any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetObjectByName(objectName, bucketName, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectByName", reflect.TypeOf((*MockMetadata)(nil).GetObjectByName), objectName, bucketName, includePrivate) } @@ -381,7 +396,7 @@ func (m *MockMetadata) GetPaymentByBucketID(bucketID int64, includePrivate bool) } // GetPaymentByBucketID indicates an expected call of GetPaymentByBucketID. -func (mr *MockMetadataMockRecorder) GetPaymentByBucketID(bucketID, includePrivate any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetPaymentByBucketID(bucketID, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByBucketID", reflect.TypeOf((*MockMetadata)(nil).GetPaymentByBucketID), bucketID, includePrivate) } @@ -396,7 +411,7 @@ func (m *MockMetadata) GetPaymentByBucketName(bucketName string, includePrivate } // GetPaymentByBucketName indicates an expected call of GetPaymentByBucketName. -func (mr *MockMetadataMockRecorder) GetPaymentByBucketName(bucketName, includePrivate any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetPaymentByBucketName(bucketName, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByBucketName", reflect.TypeOf((*MockMetadata)(nil).GetPaymentByBucketName), bucketName, includePrivate) } @@ -411,7 +426,7 @@ func (m *MockMetadata) GetPaymentByPaymentAddress(address common.Address) (*Stre } // GetPaymentByPaymentAddress indicates an expected call of GetPaymentByPaymentAddress. -func (mr *MockMetadataMockRecorder) GetPaymentByPaymentAddress(address any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetPaymentByPaymentAddress(address interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByPaymentAddress", reflect.TypeOf((*MockMetadata)(nil).GetPaymentByPaymentAddress), address) } @@ -426,7 +441,7 @@ func (m *MockMetadata) GetPermissionByResourceAndPrincipal(resourceType, princip } // GetPermissionByResourceAndPrincipal indicates an expected call of GetPermissionByResourceAndPrincipal. -func (mr *MockMetadataMockRecorder) GetPermissionByResourceAndPrincipal(resourceType, principalType, principalValue, resourceID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetPermissionByResourceAndPrincipal(resourceType, principalType, principalValue, resourceID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPermissionByResourceAndPrincipal", reflect.TypeOf((*MockMetadata)(nil).GetPermissionByResourceAndPrincipal), resourceType, principalType, principalValue, resourceID) } @@ -441,7 +456,7 @@ func (m *MockMetadata) GetPermissionsByResourceAndPrincipleType(resourceType, pr } // GetPermissionsByResourceAndPrincipleType indicates an expected call of GetPermissionsByResourceAndPrincipleType. -func (mr *MockMetadataMockRecorder) GetPermissionsByResourceAndPrincipleType(resourceType, principalType, resourceID, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetPermissionsByResourceAndPrincipleType(resourceType, principalType, resourceID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPermissionsByResourceAndPrincipleType", reflect.TypeOf((*MockMetadata)(nil).GetPermissionsByResourceAndPrincipleType), resourceType, principalType, resourceID, includeRemoved) } @@ -456,7 +471,7 @@ func (m *MockMetadata) GetPrimarySPStreamRecordBySpID(spID uint32) ([]*PrimarySp } // GetPrimarySPStreamRecordBySpID indicates an expected call of GetPrimarySPStreamRecordBySpID. -func (mr *MockMetadataMockRecorder) GetPrimarySPStreamRecordBySpID(spID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetPrimarySPStreamRecordBySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPrimarySPStreamRecordBySpID", reflect.TypeOf((*MockMetadata)(nil).GetPrimarySPStreamRecordBySpID), spID) } @@ -471,7 +486,7 @@ func (m *MockMetadata) GetSPByAddress(operatorAddress common.Address) (*StorageP } // GetSPByAddress indicates an expected call of GetSPByAddress. -func (mr *MockMetadataMockRecorder) GetSPByAddress(operatorAddress any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetSPByAddress(operatorAddress interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSPByAddress", reflect.TypeOf((*MockMetadata)(nil).GetSPByAddress), operatorAddress) } @@ -486,7 +501,7 @@ func (m *MockMetadata) GetSecondarySPStreamRecordBySpID(spID uint32) ([]*Seconda } // GetSecondarySPStreamRecordBySpID indicates an expected call of GetSecondarySPStreamRecordBySpID. -func (mr *MockMetadataMockRecorder) GetSecondarySPStreamRecordBySpID(spID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetSecondarySPStreamRecordBySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecondarySPStreamRecordBySpID", reflect.TypeOf((*MockMetadata)(nil).GetSecondarySPStreamRecordBySpID), spID) } @@ -515,7 +530,7 @@ func (m *MockMetadata) GetStatementsByPolicyID(policyIDList []common.Hash, inclu } // GetStatementsByPolicyID indicates an expected call of GetStatementsByPolicyID. -func (mr *MockMetadataMockRecorder) GetStatementsByPolicyID(policyIDList, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetStatementsByPolicyID(policyIDList, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStatementsByPolicyID", reflect.TypeOf((*MockMetadata)(nil).GetStatementsByPolicyID), policyIDList, includeRemoved) } @@ -545,7 +560,7 @@ func (m *MockMetadata) GetUserBuckets(accountID common.Address, includeRemoved b } // GetUserBuckets indicates an expected call of GetUserBuckets. -func (mr *MockMetadataMockRecorder) GetUserBuckets(accountID, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetUserBuckets(accountID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserBuckets", reflect.TypeOf((*MockMetadata)(nil).GetUserBuckets), accountID, includeRemoved) } @@ -560,7 +575,7 @@ func (m *MockMetadata) GetUserBucketsCount(accountID common.Address, includeRemo } // GetUserBucketsCount indicates an expected call of GetUserBucketsCount. -func (mr *MockMetadataMockRecorder) GetUserBucketsCount(accountID, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetUserBucketsCount(accountID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserBucketsCount", reflect.TypeOf((*MockMetadata)(nil).GetUserBucketsCount), accountID, includeRemoved) } @@ -575,7 +590,7 @@ func (m *MockMetadata) GetUserGroups(accountID common.Address, startAfter common } // GetUserGroups indicates an expected call of GetUserGroups. -func (mr *MockMetadataMockRecorder) GetUserGroups(accountID, startAfter, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetUserGroups(accountID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserGroups", reflect.TypeOf((*MockMetadata)(nil).GetUserGroups), accountID, startAfter, limit) } @@ -590,7 +605,7 @@ func (m *MockMetadata) GetUserOwnedGroups(accountID common.Address, startAfter c } // GetUserOwnedGroups indicates an expected call of GetUserOwnedGroups. -func (mr *MockMetadataMockRecorder) GetUserOwnedGroups(accountID, startAfter, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetUserOwnedGroups(accountID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserOwnedGroups", reflect.TypeOf((*MockMetadata)(nil).GetUserOwnedGroups), accountID, startAfter, limit) } @@ -605,7 +620,7 @@ func (m *MockMetadata) GetVirtualGroupFamiliesByVgfID(vgfID uint32) (*GlobalVirt } // GetVirtualGroupFamiliesByVgfID indicates an expected call of GetVirtualGroupFamiliesByVgfID. -func (mr *MockMetadataMockRecorder) GetVirtualGroupFamiliesByVgfID(vgfID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) GetVirtualGroupFamiliesByVgfID(vgfID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualGroupFamiliesByVgfID", reflect.TypeOf((*MockMetadata)(nil).GetVirtualGroupFamiliesByVgfID), vgfID) } @@ -620,7 +635,7 @@ func (m *MockMetadata) ListBucketsByIDs(ids []common.Hash, includeRemoved bool) } // ListBucketsByIDs indicates an expected call of ListBucketsByIDs. -func (mr *MockMetadataMockRecorder) ListBucketsByIDs(ids, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListBucketsByIDs(ids, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketsByIDs", reflect.TypeOf((*MockMetadata)(nil).ListBucketsByIDs), ids, includeRemoved) } @@ -635,7 +650,7 @@ func (m *MockMetadata) ListBucketsByVgfID(vgfIDs []uint32, startAfter common.Has } // ListBucketsByVgfID indicates an expected call of ListBucketsByVgfID. -func (mr *MockMetadataMockRecorder) ListBucketsByVgfID(vgfIDs, startAfter, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListBucketsByVgfID(vgfIDs, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketsByVgfID", reflect.TypeOf((*MockMetadata)(nil).ListBucketsByVgfID), vgfIDs, startAfter, limit) } @@ -650,7 +665,7 @@ func (m *MockMetadata) ListDeletedObjectsByBlockNumberRange(startBlockNumber, en } // ListDeletedObjectsByBlockNumberRange indicates an expected call of ListDeletedObjectsByBlockNumberRange. -func (mr *MockMetadataMockRecorder) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlockNumber, includePrivate any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlockNumber, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDeletedObjectsByBlockNumberRange", reflect.TypeOf((*MockMetadata)(nil).ListDeletedObjectsByBlockNumberRange), startBlockNumber, endBlockNumber, includePrivate) } @@ -665,7 +680,7 @@ func (m *MockMetadata) ListExpiredBucketsBySp(createAt int64, primarySpID uint32 } // ListExpiredBucketsBySp indicates an expected call of ListExpiredBucketsBySp. -func (mr *MockMetadataMockRecorder) ListExpiredBucketsBySp(createAt, primarySpID, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListExpiredBucketsBySp(createAt, primarySpID, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListExpiredBucketsBySp", reflect.TypeOf((*MockMetadata)(nil).ListExpiredBucketsBySp), createAt, primarySpID, limit) } @@ -680,7 +695,7 @@ func (m *MockMetadata) ListGroupsByIDs(ids []common.Hash) ([]*Group, error) { } // ListGroupsByIDs indicates an expected call of ListGroupsByIDs. -func (mr *MockMetadataMockRecorder) ListGroupsByIDs(ids any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListGroupsByIDs(ids interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGroupsByIDs", reflect.TypeOf((*MockMetadata)(nil).ListGroupsByIDs), ids) } @@ -696,7 +711,7 @@ func (m *MockMetadata) ListGroupsByNameAndSourceType(name, prefix, sourceType st } // ListGroupsByNameAndSourceType indicates an expected call of ListGroupsByNameAndSourceType. -func (mr *MockMetadataMockRecorder) ListGroupsByNameAndSourceType(name, prefix, sourceType, limit, offset, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListGroupsByNameAndSourceType(name, prefix, sourceType, limit, offset, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGroupsByNameAndSourceType", reflect.TypeOf((*MockMetadata)(nil).ListGroupsByNameAndSourceType), name, prefix, sourceType, limit, offset, includeRemoved) } @@ -711,7 +726,7 @@ func (m *MockMetadata) ListGvgByBucketID(bucketID common.Hash) ([]*GlobalVirtual } // ListGvgByBucketID indicates an expected call of ListGvgByBucketID. -func (mr *MockMetadataMockRecorder) ListGvgByBucketID(bucketID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListGvgByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGvgByBucketID", reflect.TypeOf((*MockMetadata)(nil).ListGvgByBucketID), bucketID) } @@ -726,7 +741,7 @@ func (m *MockMetadata) ListGvgByPrimarySpID(spID uint32) ([]*GlobalVirtualGroup, } // ListGvgByPrimarySpID indicates an expected call of ListGvgByPrimarySpID. -func (mr *MockMetadataMockRecorder) ListGvgByPrimarySpID(spID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListGvgByPrimarySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGvgByPrimarySpID", reflect.TypeOf((*MockMetadata)(nil).ListGvgByPrimarySpID), spID) } @@ -741,7 +756,7 @@ func (m *MockMetadata) ListGvgBySecondarySpID(spID uint32) ([]*GlobalVirtualGrou } // ListGvgBySecondarySpID indicates an expected call of ListGvgBySecondarySpID. -func (mr *MockMetadataMockRecorder) ListGvgBySecondarySpID(spID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListGvgBySecondarySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGvgBySecondarySpID", reflect.TypeOf((*MockMetadata)(nil).ListGvgBySecondarySpID), spID) } @@ -756,7 +771,7 @@ func (m *MockMetadata) ListLvgByGvgAndBucketID(bucketID common.Hash, gvgIDs []ui } // ListLvgByGvgAndBucketID indicates an expected call of ListLvgByGvgAndBucketID. -func (mr *MockMetadataMockRecorder) ListLvgByGvgAndBucketID(bucketID, gvgIDs any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListLvgByGvgAndBucketID(bucketID, gvgIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLvgByGvgAndBucketID", reflect.TypeOf((*MockMetadata)(nil).ListLvgByGvgAndBucketID), bucketID, gvgIDs) } @@ -771,7 +786,7 @@ func (m *MockMetadata) ListLvgByGvgID(gvgIDs []uint32) ([]*LocalVirtualGroup, er } // ListLvgByGvgID indicates an expected call of ListLvgByGvgID. -func (mr *MockMetadataMockRecorder) ListLvgByGvgID(gvgIDs any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListLvgByGvgID(gvgIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLvgByGvgID", reflect.TypeOf((*MockMetadata)(nil).ListLvgByGvgID), gvgIDs) } @@ -779,7 +794,7 @@ func (mr *MockMetadataMockRecorder) ListLvgByGvgID(gvgIDs any) *gomock.Call { // ListMigrateBucketEvents mocks base method. func (m *MockMetadata) ListMigrateBucketEvents(spID uint32, filters ...func(*gorm.DB) *gorm.DB) ([]*EventMigrationBucket, []*EventCompleteMigrationBucket, []*EventCancelMigrationBucket, []*EventRejectMigrateBucket, error) { m.ctrl.T.Helper() - varargs := []any{spID} + varargs := []interface{}{spID} for _, a := range filters { varargs = append(varargs, a) } @@ -793,9 +808,9 @@ func (m *MockMetadata) ListMigrateBucketEvents(spID uint32, filters ...func(*gor } // ListMigrateBucketEvents indicates an expected call of ListMigrateBucketEvents. -func (mr *MockMetadataMockRecorder) ListMigrateBucketEvents(spID any, filters ...any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListMigrateBucketEvents(spID interface{}, filters ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{spID}, filters...) + varargs := append([]interface{}{spID}, filters...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMigrateBucketEvents", reflect.TypeOf((*MockMetadata)(nil).ListMigrateBucketEvents), varargs...) } @@ -809,7 +824,7 @@ func (m *MockMetadata) ListObjectPolicies(objectID common.Hash, actionType types } // ListObjectPolicies indicates an expected call of ListObjectPolicies. -func (mr *MockMetadataMockRecorder) ListObjectPolicies(objectID, actionType, startAfter, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListObjectPolicies(objectID, actionType, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectPolicies", reflect.TypeOf((*MockMetadata)(nil).ListObjectPolicies), objectID, actionType, startAfter, limit) } @@ -824,7 +839,7 @@ func (m *MockMetadata) ListObjectsByBucketName(bucketName, continuationToken, pr } // ListObjectsByBucketName indicates an expected call of ListObjectsByBucketName. -func (mr *MockMetadataMockRecorder) ListObjectsByBucketName(bucketName, continuationToken, prefix, delimiter, maxKeys, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListObjectsByBucketName(bucketName, continuationToken, prefix, delimiter, maxKeys, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBucketName", reflect.TypeOf((*MockMetadata)(nil).ListObjectsByBucketName), bucketName, continuationToken, prefix, delimiter, maxKeys, includeRemoved) } @@ -840,7 +855,7 @@ func (m *MockMetadata) ListObjectsByGVGAndBucketForGC(bucketID common.Hash, gvgI } // ListObjectsByGVGAndBucketForGC indicates an expected call of ListObjectsByGVGAndBucketForGC. -func (mr *MockMetadataMockRecorder) ListObjectsByGVGAndBucketForGC(bucketID, gvgID, startAfter, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListObjectsByGVGAndBucketForGC(bucketID, gvgID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByGVGAndBucketForGC", reflect.TypeOf((*MockMetadata)(nil).ListObjectsByGVGAndBucketForGC), bucketID, gvgID, startAfter, limit) } @@ -855,7 +870,7 @@ func (m *MockMetadata) ListObjectsByIDs(ids []common.Hash, includeRemoved bool) } // ListObjectsByIDs indicates an expected call of ListObjectsByIDs. -func (mr *MockMetadataMockRecorder) ListObjectsByIDs(ids, includeRemoved any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListObjectsByIDs(ids, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByIDs", reflect.TypeOf((*MockMetadata)(nil).ListObjectsByIDs), ids, includeRemoved) } @@ -863,7 +878,7 @@ func (mr *MockMetadataMockRecorder) ListObjectsByIDs(ids, includeRemoved any) *g // ListObjectsByLVGID mocks base method. func (m *MockMetadata) ListObjectsByLVGID(lvgIDs []uint32, bucketID, startAfter common.Hash, limit int, filters ...func(*gorm.DB) *gorm.DB) ([]*Object, *Bucket, error) { m.ctrl.T.Helper() - varargs := []any{lvgIDs, bucketID, startAfter, limit} + varargs := []interface{}{lvgIDs, bucketID, startAfter, limit} for _, a := range filters { varargs = append(varargs, a) } @@ -875,9 +890,9 @@ func (m *MockMetadata) ListObjectsByLVGID(lvgIDs []uint32, bucketID, startAfter } // ListObjectsByLVGID indicates an expected call of ListObjectsByLVGID. -func (mr *MockMetadataMockRecorder) ListObjectsByLVGID(lvgIDs, bucketID, startAfter, limit any, filters ...any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListObjectsByLVGID(lvgIDs, bucketID, startAfter, limit interface{}, filters ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{lvgIDs, bucketID, startAfter, limit}, filters...) + varargs := append([]interface{}{lvgIDs, bucketID, startAfter, limit}, filters...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByLVGID", reflect.TypeOf((*MockMetadata)(nil).ListObjectsByLVGID), varargs...) } @@ -892,7 +907,7 @@ func (m *MockMetadata) ListObjectsInGVG(gvgID uint32, startAfter common.Hash, li } // ListObjectsInGVG indicates an expected call of ListObjectsInGVG. -func (mr *MockMetadataMockRecorder) ListObjectsInGVG(gvgID, startAfter, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListObjectsInGVG(gvgID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsInGVG", reflect.TypeOf((*MockMetadata)(nil).ListObjectsInGVG), gvgID, startAfter, limit) } @@ -908,7 +923,7 @@ func (m *MockMetadata) ListObjectsInGVGAndBucket(bucketID common.Hash, gvgID uin } // ListObjectsInGVGAndBucket indicates an expected call of ListObjectsInGVGAndBucket. -func (mr *MockMetadataMockRecorder) ListObjectsInGVGAndBucket(bucketID, gvgID, startAfter, limit any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListObjectsInGVGAndBucket(bucketID, gvgID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsInGVGAndBucket", reflect.TypeOf((*MockMetadata)(nil).ListObjectsInGVGAndBucket), bucketID, gvgID, startAfter, limit) } @@ -923,7 +938,7 @@ func (m *MockMetadata) ListPaymentAccountStreams(paymentAccount common.Address) } // ListPaymentAccountStreams indicates an expected call of ListPaymentAccountStreams. -func (mr *MockMetadataMockRecorder) ListPaymentAccountStreams(paymentAccount any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListPaymentAccountStreams(paymentAccount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPaymentAccountStreams", reflect.TypeOf((*MockMetadata)(nil).ListPaymentAccountStreams), paymentAccount) } @@ -939,7 +954,7 @@ func (m *MockMetadata) ListSpExitEvents(blockID uint64, spID uint32) (*EventStor } // ListSpExitEvents indicates an expected call of ListSpExitEvents. -func (mr *MockMetadataMockRecorder) ListSpExitEvents(blockID, spID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListSpExitEvents(blockID, spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSpExitEvents", reflect.TypeOf((*MockMetadata)(nil).ListSpExitEvents), blockID, spID) } @@ -956,7 +971,7 @@ func (m *MockMetadata) ListSwapOutEvents(blockID uint64, spID uint32) ([]*EventS } // ListSwapOutEvents indicates an expected call of ListSwapOutEvents. -func (mr *MockMetadataMockRecorder) ListSwapOutEvents(blockID, spID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListSwapOutEvents(blockID, spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSwapOutEvents", reflect.TypeOf((*MockMetadata)(nil).ListSwapOutEvents), blockID, spID) } @@ -971,7 +986,7 @@ func (m *MockMetadata) ListUserPaymentAccounts(accountID common.Address) ([]*Str } // ListUserPaymentAccounts indicates an expected call of ListUserPaymentAccounts. -func (mr *MockMetadataMockRecorder) ListUserPaymentAccounts(accountID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListUserPaymentAccounts(accountID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserPaymentAccounts", reflect.TypeOf((*MockMetadata)(nil).ListUserPaymentAccounts), accountID) } @@ -986,7 +1001,7 @@ func (m *MockMetadata) ListVgfByGvgID(gvgIDs []uint32) ([]*GlobalVirtualGroupFam } // ListVgfByGvgID indicates an expected call of ListVgfByGvgID. -func (mr *MockMetadataMockRecorder) ListVgfByGvgID(gvgIDs any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListVgfByGvgID(gvgIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVgfByGvgID", reflect.TypeOf((*MockMetadata)(nil).ListVgfByGvgID), gvgIDs) } @@ -1001,7 +1016,7 @@ func (m *MockMetadata) ListVirtualGroupFamiliesBySpID(spID uint32) ([]*GlobalVir } // ListVirtualGroupFamiliesBySpID indicates an expected call of ListVirtualGroupFamiliesBySpID. -func (mr *MockMetadataMockRecorder) ListVirtualGroupFamiliesBySpID(spID any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListVirtualGroupFamiliesBySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualGroupFamiliesBySpID", reflect.TypeOf((*MockMetadata)(nil).ListVirtualGroupFamiliesBySpID), spID) } @@ -1016,7 +1031,7 @@ func (m *MockMetadata) ListVirtualGroupFamiliesByVgfIDs(vgfIDs []uint32) ([]*Glo } // ListVirtualGroupFamiliesByVgfIDs indicates an expected call of ListVirtualGroupFamiliesByVgfIDs. -func (mr *MockMetadataMockRecorder) ListVirtualGroupFamiliesByVgfIDs(vgfIDs any) *gomock.Call { +func (mr *MockMetadataMockRecorder) ListVirtualGroupFamiliesByVgfIDs(vgfIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualGroupFamiliesByVgfIDs", reflect.TypeOf((*MockMetadata)(nil).ListVirtualGroupFamiliesByVgfIDs), vgfIDs) } @@ -1054,7 +1069,7 @@ func (m *MockBSDB) GetBucketByID(bucketID int64, includePrivate bool) (*Bucket, } // GetBucketByID indicates an expected call of GetBucketByID. -func (mr *MockBSDBMockRecorder) GetBucketByID(bucketID, includePrivate any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetBucketByID(bucketID, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByID", reflect.TypeOf((*MockBSDB)(nil).GetBucketByID), bucketID, includePrivate) } @@ -1069,7 +1084,7 @@ func (m *MockBSDB) GetBucketByName(bucketName string, includePrivate bool) (*Buc } // GetBucketByName indicates an expected call of GetBucketByName. -func (mr *MockBSDBMockRecorder) GetBucketByName(bucketName, includePrivate any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetBucketByName(bucketName, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketByName", reflect.TypeOf((*MockBSDB)(nil).GetBucketByName), bucketName, includePrivate) } @@ -1084,7 +1099,7 @@ func (m *MockBSDB) GetBucketMetaByName(bucketName string, includePrivate bool) ( } // GetBucketMetaByName indicates an expected call of GetBucketMetaByName. -func (mr *MockBSDBMockRecorder) GetBucketMetaByName(bucketName, includePrivate any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetBucketMetaByName(bucketName, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketMetaByName", reflect.TypeOf((*MockBSDB)(nil).GetBucketMetaByName), bucketName, includePrivate) } @@ -1099,7 +1114,7 @@ func (m *MockBSDB) GetBucketSizeByID(bucketID uint64) (decimal.Decimal, error) { } // GetBucketSizeByID indicates an expected call of GetBucketSizeByID. -func (mr *MockBSDBMockRecorder) GetBucketSizeByID(bucketID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetBucketSizeByID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketSizeByID", reflect.TypeOf((*MockBSDB)(nil).GetBucketSizeByID), bucketID) } @@ -1114,7 +1129,7 @@ func (m *MockBSDB) GetDataMigrationRecordByProcessKey(processKey string) (*DataM } // GetDataMigrationRecordByProcessKey indicates an expected call of GetDataMigrationRecordByProcessKey. -func (mr *MockBSDBMockRecorder) GetDataMigrationRecordByProcessKey(processKey any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetDataMigrationRecordByProcessKey(processKey interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDataMigrationRecordByProcessKey", reflect.TypeOf((*MockBSDB)(nil).GetDataMigrationRecordByProcessKey), processKey) } @@ -1174,7 +1189,7 @@ func (m *MockBSDB) GetEventMigrationBucketByBucketID(bucketID common.Hash) (*Eve } // GetEventMigrationBucketByBucketID indicates an expected call of GetEventMigrationBucketByBucketID. -func (mr *MockBSDBMockRecorder) GetEventMigrationBucketByBucketID(bucketID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetEventMigrationBucketByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEventMigrationBucketByBucketID", reflect.TypeOf((*MockBSDB)(nil).GetEventMigrationBucketByBucketID), bucketID) } @@ -1189,7 +1204,7 @@ func (m *MockBSDB) GetEventSwapOutByGvgID(gvgID uint32) (*EventSwapOut, error) { } // GetEventSwapOutByGvgID indicates an expected call of GetEventSwapOutByGvgID. -func (mr *MockBSDBMockRecorder) GetEventSwapOutByGvgID(gvgID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetEventSwapOutByGvgID(gvgID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEventSwapOutByGvgID", reflect.TypeOf((*MockBSDB)(nil).GetEventSwapOutByGvgID), gvgID) } @@ -1204,7 +1219,7 @@ func (m *MockBSDB) GetGlobalVirtualGroupByGvgID(gvgID uint32) (*GlobalVirtualGro } // GetGlobalVirtualGroupByGvgID indicates an expected call of GetGlobalVirtualGroupByGvgID. -func (mr *MockBSDBMockRecorder) GetGlobalVirtualGroupByGvgID(gvgID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetGlobalVirtualGroupByGvgID(gvgID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGlobalVirtualGroupByGvgID", reflect.TypeOf((*MockBSDB)(nil).GetGlobalVirtualGroupByGvgID), gvgID) } @@ -1219,7 +1234,7 @@ func (m *MockBSDB) GetGroupByID(groupID int64, includeRemoved bool) (*Group, err } // GetGroupByID indicates an expected call of GetGroupByID. -func (mr *MockBSDBMockRecorder) GetGroupByID(groupID, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetGroupByID(groupID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupByID", reflect.TypeOf((*MockBSDB)(nil).GetGroupByID), groupID, includeRemoved) } @@ -1234,7 +1249,7 @@ func (m *MockBSDB) GetGroupMembers(groupID common.Hash, startAfter common.Addres } // GetGroupMembers indicates an expected call of GetGroupMembers. -func (mr *MockBSDBMockRecorder) GetGroupMembers(groupID, startAfter, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetGroupMembers(groupID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembers", reflect.TypeOf((*MockBSDB)(nil).GetGroupMembers), groupID, startAfter, limit) } @@ -1249,7 +1264,7 @@ func (m *MockBSDB) GetGroupMembersCount(groupIDs []common.Hash) ([]*GroupCount, } // GetGroupMembersCount indicates an expected call of GetGroupMembersCount. -func (mr *MockBSDBMockRecorder) GetGroupMembersCount(groupIDs any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetGroupMembersCount(groupIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupMembersCount", reflect.TypeOf((*MockBSDB)(nil).GetGroupMembersCount), groupIDs) } @@ -1264,7 +1279,7 @@ func (m *MockBSDB) GetGroupsByGroupIDAndAccount(groupIDList []common.Hash, accou } // GetGroupsByGroupIDAndAccount indicates an expected call of GetGroupsByGroupIDAndAccount. -func (mr *MockBSDBMockRecorder) GetGroupsByGroupIDAndAccount(groupIDList, account, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetGroupsByGroupIDAndAccount(groupIDList, account, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGroupsByGroupIDAndAccount", reflect.TypeOf((*MockBSDB)(nil).GetGroupsByGroupIDAndAccount), groupIDList, account, includeRemoved) } @@ -1279,7 +1294,7 @@ func (m *MockBSDB) GetGvgByBucketAndLvgID(bucketID common.Hash, lvgID uint32) (* } // GetGvgByBucketAndLvgID indicates an expected call of GetGvgByBucketAndLvgID. -func (mr *MockBSDBMockRecorder) GetGvgByBucketAndLvgID(bucketID, lvgID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetGvgByBucketAndLvgID(bucketID, lvgID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGvgByBucketAndLvgID", reflect.TypeOf((*MockBSDB)(nil).GetGvgByBucketAndLvgID), bucketID, lvgID) } @@ -1299,6 +1314,21 @@ func (mr *MockBSDBMockRecorder) GetLatestBlockNumber() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestBlockNumber", reflect.TypeOf((*MockBSDB)(nil).GetLatestBlockNumber)) } +// GetLatestObjectID mocks base method. +func (m *MockBSDB) GetLatestObjectID() (uint64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestObjectID") + ret0, _ := ret[0].(uint64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestObjectID indicates an expected call of GetLatestObjectID. +func (mr *MockBSDBMockRecorder) GetLatestObjectID() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestObjectID", reflect.TypeOf((*MockBSDB)(nil).GetLatestObjectID)) +} + // GetLvgByBucketAndLvgID mocks base method. func (m *MockBSDB) GetLvgByBucketAndLvgID(bucketID common.Hash, lvgID uint32) (*LocalVirtualGroup, error) { m.ctrl.T.Helper() @@ -1309,7 +1339,7 @@ func (m *MockBSDB) GetLvgByBucketAndLvgID(bucketID common.Hash, lvgID uint32) (* } // GetLvgByBucketAndLvgID indicates an expected call of GetLvgByBucketAndLvgID. -func (mr *MockBSDBMockRecorder) GetLvgByBucketAndLvgID(bucketID, lvgID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetLvgByBucketAndLvgID(bucketID, lvgID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLvgByBucketAndLvgID", reflect.TypeOf((*MockBSDB)(nil).GetLvgByBucketAndLvgID), bucketID, lvgID) } @@ -1324,7 +1354,7 @@ func (m *MockBSDB) GetMigrateBucketEventByBucketID(bucketID common.Hash) (*Event } // GetMigrateBucketEventByBucketID indicates an expected call of GetMigrateBucketEventByBucketID. -func (mr *MockBSDBMockRecorder) GetMigrateBucketEventByBucketID(bucketID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetMigrateBucketEventByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMigrateBucketEventByBucketID", reflect.TypeOf((*MockBSDB)(nil).GetMigrateBucketEventByBucketID), bucketID) } @@ -1354,7 +1384,7 @@ func (m *MockBSDB) GetObjectByID(objectID int64, includeRemoved bool) (*Object, } // GetObjectByID indicates an expected call of GetObjectByID. -func (mr *MockBSDBMockRecorder) GetObjectByID(objectID, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetObjectByID(objectID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectByID", reflect.TypeOf((*MockBSDB)(nil).GetObjectByID), objectID, includeRemoved) } @@ -1369,7 +1399,7 @@ func (m *MockBSDB) GetObjectByName(objectName, bucketName string, includePrivate } // GetObjectByName indicates an expected call of GetObjectByName. -func (mr *MockBSDBMockRecorder) GetObjectByName(objectName, bucketName, includePrivate any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetObjectByName(objectName, bucketName, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectByName", reflect.TypeOf((*MockBSDB)(nil).GetObjectByName), objectName, bucketName, includePrivate) } @@ -1384,7 +1414,7 @@ func (m *MockBSDB) GetPaymentByBucketID(bucketID int64, includePrivate bool) (*S } // GetPaymentByBucketID indicates an expected call of GetPaymentByBucketID. -func (mr *MockBSDBMockRecorder) GetPaymentByBucketID(bucketID, includePrivate any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetPaymentByBucketID(bucketID, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByBucketID", reflect.TypeOf((*MockBSDB)(nil).GetPaymentByBucketID), bucketID, includePrivate) } @@ -1399,7 +1429,7 @@ func (m *MockBSDB) GetPaymentByBucketName(bucketName string, includePrivate bool } // GetPaymentByBucketName indicates an expected call of GetPaymentByBucketName. -func (mr *MockBSDBMockRecorder) GetPaymentByBucketName(bucketName, includePrivate any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetPaymentByBucketName(bucketName, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByBucketName", reflect.TypeOf((*MockBSDB)(nil).GetPaymentByBucketName), bucketName, includePrivate) } @@ -1414,7 +1444,7 @@ func (m *MockBSDB) GetPaymentByPaymentAddress(address common.Address) (*StreamRe } // GetPaymentByPaymentAddress indicates an expected call of GetPaymentByPaymentAddress. -func (mr *MockBSDBMockRecorder) GetPaymentByPaymentAddress(address any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetPaymentByPaymentAddress(address interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPaymentByPaymentAddress", reflect.TypeOf((*MockBSDB)(nil).GetPaymentByPaymentAddress), address) } @@ -1429,7 +1459,7 @@ func (m *MockBSDB) GetPermissionByResourceAndPrincipal(resourceType, principalTy } // GetPermissionByResourceAndPrincipal indicates an expected call of GetPermissionByResourceAndPrincipal. -func (mr *MockBSDBMockRecorder) GetPermissionByResourceAndPrincipal(resourceType, principalType, principalValue, resourceID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetPermissionByResourceAndPrincipal(resourceType, principalType, principalValue, resourceID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPermissionByResourceAndPrincipal", reflect.TypeOf((*MockBSDB)(nil).GetPermissionByResourceAndPrincipal), resourceType, principalType, principalValue, resourceID) } @@ -1444,7 +1474,7 @@ func (m *MockBSDB) GetPermissionsByResourceAndPrincipleType(resourceType, princi } // GetPermissionsByResourceAndPrincipleType indicates an expected call of GetPermissionsByResourceAndPrincipleType. -func (mr *MockBSDBMockRecorder) GetPermissionsByResourceAndPrincipleType(resourceType, principalType, resourceID, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetPermissionsByResourceAndPrincipleType(resourceType, principalType, resourceID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPermissionsByResourceAndPrincipleType", reflect.TypeOf((*MockBSDB)(nil).GetPermissionsByResourceAndPrincipleType), resourceType, principalType, resourceID, includeRemoved) } @@ -1459,7 +1489,7 @@ func (m *MockBSDB) GetPrimarySPStreamRecordBySpID(spID uint32) ([]*PrimarySpInco } // GetPrimarySPStreamRecordBySpID indicates an expected call of GetPrimarySPStreamRecordBySpID. -func (mr *MockBSDBMockRecorder) GetPrimarySPStreamRecordBySpID(spID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetPrimarySPStreamRecordBySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPrimarySPStreamRecordBySpID", reflect.TypeOf((*MockBSDB)(nil).GetPrimarySPStreamRecordBySpID), spID) } @@ -1474,7 +1504,7 @@ func (m *MockBSDB) GetSPByAddress(operatorAddress common.Address) (*StorageProvi } // GetSPByAddress indicates an expected call of GetSPByAddress. -func (mr *MockBSDBMockRecorder) GetSPByAddress(operatorAddress any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetSPByAddress(operatorAddress interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSPByAddress", reflect.TypeOf((*MockBSDB)(nil).GetSPByAddress), operatorAddress) } @@ -1489,7 +1519,7 @@ func (m *MockBSDB) GetSecondarySPStreamRecordBySpID(spID uint32) ([]*SecondarySp } // GetSecondarySPStreamRecordBySpID indicates an expected call of GetSecondarySPStreamRecordBySpID. -func (mr *MockBSDBMockRecorder) GetSecondarySPStreamRecordBySpID(spID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetSecondarySPStreamRecordBySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSecondarySPStreamRecordBySpID", reflect.TypeOf((*MockBSDB)(nil).GetSecondarySPStreamRecordBySpID), spID) } @@ -1518,7 +1548,7 @@ func (m *MockBSDB) GetStatementsByPolicyID(policyIDList []common.Hash, includeRe } // GetStatementsByPolicyID indicates an expected call of GetStatementsByPolicyID. -func (mr *MockBSDBMockRecorder) GetStatementsByPolicyID(policyIDList, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetStatementsByPolicyID(policyIDList, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStatementsByPolicyID", reflect.TypeOf((*MockBSDB)(nil).GetStatementsByPolicyID), policyIDList, includeRemoved) } @@ -1548,7 +1578,7 @@ func (m *MockBSDB) GetUserBuckets(accountID common.Address, includeRemoved bool) } // GetUserBuckets indicates an expected call of GetUserBuckets. -func (mr *MockBSDBMockRecorder) GetUserBuckets(accountID, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetUserBuckets(accountID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserBuckets", reflect.TypeOf((*MockBSDB)(nil).GetUserBuckets), accountID, includeRemoved) } @@ -1563,7 +1593,7 @@ func (m *MockBSDB) GetUserBucketsCount(accountID common.Address, includeRemoved } // GetUserBucketsCount indicates an expected call of GetUserBucketsCount. -func (mr *MockBSDBMockRecorder) GetUserBucketsCount(accountID, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetUserBucketsCount(accountID, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserBucketsCount", reflect.TypeOf((*MockBSDB)(nil).GetUserBucketsCount), accountID, includeRemoved) } @@ -1578,7 +1608,7 @@ func (m *MockBSDB) GetUserGroups(accountID common.Address, startAfter common.Has } // GetUserGroups indicates an expected call of GetUserGroups. -func (mr *MockBSDBMockRecorder) GetUserGroups(accountID, startAfter, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetUserGroups(accountID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserGroups", reflect.TypeOf((*MockBSDB)(nil).GetUserGroups), accountID, startAfter, limit) } @@ -1593,7 +1623,7 @@ func (m *MockBSDB) GetUserOwnedGroups(accountID common.Address, startAfter commo } // GetUserOwnedGroups indicates an expected call of GetUserOwnedGroups. -func (mr *MockBSDBMockRecorder) GetUserOwnedGroups(accountID, startAfter, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetUserOwnedGroups(accountID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserOwnedGroups", reflect.TypeOf((*MockBSDB)(nil).GetUserOwnedGroups), accountID, startAfter, limit) } @@ -1608,7 +1638,7 @@ func (m *MockBSDB) GetVirtualGroupFamiliesByVgfID(vgfID uint32) (*GlobalVirtualG } // GetVirtualGroupFamiliesByVgfID indicates an expected call of GetVirtualGroupFamiliesByVgfID. -func (mr *MockBSDBMockRecorder) GetVirtualGroupFamiliesByVgfID(vgfID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) GetVirtualGroupFamiliesByVgfID(vgfID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVirtualGroupFamiliesByVgfID", reflect.TypeOf((*MockBSDB)(nil).GetVirtualGroupFamiliesByVgfID), vgfID) } @@ -1623,7 +1653,7 @@ func (m *MockBSDB) ListBucketsByIDs(ids []common.Hash, includeRemoved bool) ([]* } // ListBucketsByIDs indicates an expected call of ListBucketsByIDs. -func (mr *MockBSDBMockRecorder) ListBucketsByIDs(ids, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListBucketsByIDs(ids, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketsByIDs", reflect.TypeOf((*MockBSDB)(nil).ListBucketsByIDs), ids, includeRemoved) } @@ -1638,7 +1668,7 @@ func (m *MockBSDB) ListBucketsByVgfID(vgfIDs []uint32, startAfter common.Hash, l } // ListBucketsByVgfID indicates an expected call of ListBucketsByVgfID. -func (mr *MockBSDBMockRecorder) ListBucketsByVgfID(vgfIDs, startAfter, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListBucketsByVgfID(vgfIDs, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketsByVgfID", reflect.TypeOf((*MockBSDB)(nil).ListBucketsByVgfID), vgfIDs, startAfter, limit) } @@ -1653,7 +1683,7 @@ func (m *MockBSDB) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlo } // ListDeletedObjectsByBlockNumberRange indicates an expected call of ListDeletedObjectsByBlockNumberRange. -func (mr *MockBSDBMockRecorder) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlockNumber, includePrivate any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListDeletedObjectsByBlockNumberRange(startBlockNumber, endBlockNumber, includePrivate interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListDeletedObjectsByBlockNumberRange", reflect.TypeOf((*MockBSDB)(nil).ListDeletedObjectsByBlockNumberRange), startBlockNumber, endBlockNumber, includePrivate) } @@ -1668,7 +1698,7 @@ func (m *MockBSDB) ListExpiredBucketsBySp(createAt int64, primarySpID uint32, li } // ListExpiredBucketsBySp indicates an expected call of ListExpiredBucketsBySp. -func (mr *MockBSDBMockRecorder) ListExpiredBucketsBySp(createAt, primarySpID, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListExpiredBucketsBySp(createAt, primarySpID, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListExpiredBucketsBySp", reflect.TypeOf((*MockBSDB)(nil).ListExpiredBucketsBySp), createAt, primarySpID, limit) } @@ -1683,7 +1713,7 @@ func (m *MockBSDB) ListGroupsByIDs(ids []common.Hash) ([]*Group, error) { } // ListGroupsByIDs indicates an expected call of ListGroupsByIDs. -func (mr *MockBSDBMockRecorder) ListGroupsByIDs(ids any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListGroupsByIDs(ids interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGroupsByIDs", reflect.TypeOf((*MockBSDB)(nil).ListGroupsByIDs), ids) } @@ -1699,7 +1729,7 @@ func (m *MockBSDB) ListGroupsByNameAndSourceType(name, prefix, sourceType string } // ListGroupsByNameAndSourceType indicates an expected call of ListGroupsByNameAndSourceType. -func (mr *MockBSDBMockRecorder) ListGroupsByNameAndSourceType(name, prefix, sourceType, limit, offset, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListGroupsByNameAndSourceType(name, prefix, sourceType, limit, offset, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGroupsByNameAndSourceType", reflect.TypeOf((*MockBSDB)(nil).ListGroupsByNameAndSourceType), name, prefix, sourceType, limit, offset, includeRemoved) } @@ -1714,7 +1744,7 @@ func (m *MockBSDB) ListGvgByBucketID(bucketID common.Hash) ([]*GlobalVirtualGrou } // ListGvgByBucketID indicates an expected call of ListGvgByBucketID. -func (mr *MockBSDBMockRecorder) ListGvgByBucketID(bucketID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListGvgByBucketID(bucketID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGvgByBucketID", reflect.TypeOf((*MockBSDB)(nil).ListGvgByBucketID), bucketID) } @@ -1729,7 +1759,7 @@ func (m *MockBSDB) ListGvgByPrimarySpID(spID uint32) ([]*GlobalVirtualGroup, err } // ListGvgByPrimarySpID indicates an expected call of ListGvgByPrimarySpID. -func (mr *MockBSDBMockRecorder) ListGvgByPrimarySpID(spID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListGvgByPrimarySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGvgByPrimarySpID", reflect.TypeOf((*MockBSDB)(nil).ListGvgByPrimarySpID), spID) } @@ -1744,7 +1774,7 @@ func (m *MockBSDB) ListGvgBySecondarySpID(spID uint32) ([]*GlobalVirtualGroup, e } // ListGvgBySecondarySpID indicates an expected call of ListGvgBySecondarySpID. -func (mr *MockBSDBMockRecorder) ListGvgBySecondarySpID(spID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListGvgBySecondarySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListGvgBySecondarySpID", reflect.TypeOf((*MockBSDB)(nil).ListGvgBySecondarySpID), spID) } @@ -1759,7 +1789,7 @@ func (m *MockBSDB) ListLvgByGvgAndBucketID(bucketID common.Hash, gvgIDs []uint32 } // ListLvgByGvgAndBucketID indicates an expected call of ListLvgByGvgAndBucketID. -func (mr *MockBSDBMockRecorder) ListLvgByGvgAndBucketID(bucketID, gvgIDs any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListLvgByGvgAndBucketID(bucketID, gvgIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLvgByGvgAndBucketID", reflect.TypeOf((*MockBSDB)(nil).ListLvgByGvgAndBucketID), bucketID, gvgIDs) } @@ -1774,7 +1804,7 @@ func (m *MockBSDB) ListLvgByGvgID(gvgIDs []uint32) ([]*LocalVirtualGroup, error) } // ListLvgByGvgID indicates an expected call of ListLvgByGvgID. -func (mr *MockBSDBMockRecorder) ListLvgByGvgID(gvgIDs any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListLvgByGvgID(gvgIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLvgByGvgID", reflect.TypeOf((*MockBSDB)(nil).ListLvgByGvgID), gvgIDs) } @@ -1782,7 +1812,7 @@ func (mr *MockBSDBMockRecorder) ListLvgByGvgID(gvgIDs any) *gomock.Call { // ListMigrateBucketEvents mocks base method. func (m *MockBSDB) ListMigrateBucketEvents(spID uint32, filters ...func(*gorm.DB) *gorm.DB) ([]*EventMigrationBucket, []*EventCompleteMigrationBucket, []*EventCancelMigrationBucket, []*EventRejectMigrateBucket, error) { m.ctrl.T.Helper() - varargs := []any{spID} + varargs := []interface{}{spID} for _, a := range filters { varargs = append(varargs, a) } @@ -1796,9 +1826,9 @@ func (m *MockBSDB) ListMigrateBucketEvents(spID uint32, filters ...func(*gorm.DB } // ListMigrateBucketEvents indicates an expected call of ListMigrateBucketEvents. -func (mr *MockBSDBMockRecorder) ListMigrateBucketEvents(spID any, filters ...any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListMigrateBucketEvents(spID interface{}, filters ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{spID}, filters...) + varargs := append([]interface{}{spID}, filters...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMigrateBucketEvents", reflect.TypeOf((*MockBSDB)(nil).ListMigrateBucketEvents), varargs...) } @@ -1812,7 +1842,7 @@ func (m *MockBSDB) ListObjectPolicies(objectID common.Hash, actionType types.Act } // ListObjectPolicies indicates an expected call of ListObjectPolicies. -func (mr *MockBSDBMockRecorder) ListObjectPolicies(objectID, actionType, startAfter, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListObjectPolicies(objectID, actionType, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectPolicies", reflect.TypeOf((*MockBSDB)(nil).ListObjectPolicies), objectID, actionType, startAfter, limit) } @@ -1827,7 +1857,7 @@ func (m *MockBSDB) ListObjectsByBucketName(bucketName, continuationToken, prefix } // ListObjectsByBucketName indicates an expected call of ListObjectsByBucketName. -func (mr *MockBSDBMockRecorder) ListObjectsByBucketName(bucketName, continuationToken, prefix, delimiter, maxKeys, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListObjectsByBucketName(bucketName, continuationToken, prefix, delimiter, maxKeys, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByBucketName", reflect.TypeOf((*MockBSDB)(nil).ListObjectsByBucketName), bucketName, continuationToken, prefix, delimiter, maxKeys, includeRemoved) } @@ -1843,7 +1873,7 @@ func (m *MockBSDB) ListObjectsByGVGAndBucketForGC(bucketID common.Hash, gvgID ui } // ListObjectsByGVGAndBucketForGC indicates an expected call of ListObjectsByGVGAndBucketForGC. -func (mr *MockBSDBMockRecorder) ListObjectsByGVGAndBucketForGC(bucketID, gvgID, startAfter, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListObjectsByGVGAndBucketForGC(bucketID, gvgID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByGVGAndBucketForGC", reflect.TypeOf((*MockBSDB)(nil).ListObjectsByGVGAndBucketForGC), bucketID, gvgID, startAfter, limit) } @@ -1858,7 +1888,7 @@ func (m *MockBSDB) ListObjectsByIDs(ids []common.Hash, includeRemoved bool) ([]* } // ListObjectsByIDs indicates an expected call of ListObjectsByIDs. -func (mr *MockBSDBMockRecorder) ListObjectsByIDs(ids, includeRemoved any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListObjectsByIDs(ids, includeRemoved interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByIDs", reflect.TypeOf((*MockBSDB)(nil).ListObjectsByIDs), ids, includeRemoved) } @@ -1866,7 +1896,7 @@ func (mr *MockBSDBMockRecorder) ListObjectsByIDs(ids, includeRemoved any) *gomoc // ListObjectsByLVGID mocks base method. func (m *MockBSDB) ListObjectsByLVGID(lvgIDs []uint32, bucketID, startAfter common.Hash, limit int, filters ...func(*gorm.DB) *gorm.DB) ([]*Object, *Bucket, error) { m.ctrl.T.Helper() - varargs := []any{lvgIDs, bucketID, startAfter, limit} + varargs := []interface{}{lvgIDs, bucketID, startAfter, limit} for _, a := range filters { varargs = append(varargs, a) } @@ -1878,9 +1908,9 @@ func (m *MockBSDB) ListObjectsByLVGID(lvgIDs []uint32, bucketID, startAfter comm } // ListObjectsByLVGID indicates an expected call of ListObjectsByLVGID. -func (mr *MockBSDBMockRecorder) ListObjectsByLVGID(lvgIDs, bucketID, startAfter, limit any, filters ...any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListObjectsByLVGID(lvgIDs, bucketID, startAfter, limit interface{}, filters ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]any{lvgIDs, bucketID, startAfter, limit}, filters...) + varargs := append([]interface{}{lvgIDs, bucketID, startAfter, limit}, filters...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsByLVGID", reflect.TypeOf((*MockBSDB)(nil).ListObjectsByLVGID), varargs...) } @@ -1895,7 +1925,7 @@ func (m *MockBSDB) ListObjectsInGVG(gvgID uint32, startAfter common.Hash, limit } // ListObjectsInGVG indicates an expected call of ListObjectsInGVG. -func (mr *MockBSDBMockRecorder) ListObjectsInGVG(gvgID, startAfter, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListObjectsInGVG(gvgID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsInGVG", reflect.TypeOf((*MockBSDB)(nil).ListObjectsInGVG), gvgID, startAfter, limit) } @@ -1911,7 +1941,7 @@ func (m *MockBSDB) ListObjectsInGVGAndBucket(bucketID common.Hash, gvgID uint32, } // ListObjectsInGVGAndBucket indicates an expected call of ListObjectsInGVGAndBucket. -func (mr *MockBSDBMockRecorder) ListObjectsInGVGAndBucket(bucketID, gvgID, startAfter, limit any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListObjectsInGVGAndBucket(bucketID, gvgID, startAfter, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsInGVGAndBucket", reflect.TypeOf((*MockBSDB)(nil).ListObjectsInGVGAndBucket), bucketID, gvgID, startAfter, limit) } @@ -1926,7 +1956,7 @@ func (m *MockBSDB) ListPaymentAccountStreams(paymentAccount common.Address) ([]* } // ListPaymentAccountStreams indicates an expected call of ListPaymentAccountStreams. -func (mr *MockBSDBMockRecorder) ListPaymentAccountStreams(paymentAccount any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListPaymentAccountStreams(paymentAccount interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPaymentAccountStreams", reflect.TypeOf((*MockBSDB)(nil).ListPaymentAccountStreams), paymentAccount) } @@ -1942,7 +1972,7 @@ func (m *MockBSDB) ListSpExitEvents(blockID uint64, spID uint32) (*EventStorageP } // ListSpExitEvents indicates an expected call of ListSpExitEvents. -func (mr *MockBSDBMockRecorder) ListSpExitEvents(blockID, spID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListSpExitEvents(blockID, spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSpExitEvents", reflect.TypeOf((*MockBSDB)(nil).ListSpExitEvents), blockID, spID) } @@ -1959,7 +1989,7 @@ func (m *MockBSDB) ListSwapOutEvents(blockID uint64, spID uint32) ([]*EventSwapO } // ListSwapOutEvents indicates an expected call of ListSwapOutEvents. -func (mr *MockBSDBMockRecorder) ListSwapOutEvents(blockID, spID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListSwapOutEvents(blockID, spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListSwapOutEvents", reflect.TypeOf((*MockBSDB)(nil).ListSwapOutEvents), blockID, spID) } @@ -1974,7 +2004,7 @@ func (m *MockBSDB) ListUserPaymentAccounts(accountID common.Address) ([]*StreamR } // ListUserPaymentAccounts indicates an expected call of ListUserPaymentAccounts. -func (mr *MockBSDBMockRecorder) ListUserPaymentAccounts(accountID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListUserPaymentAccounts(accountID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListUserPaymentAccounts", reflect.TypeOf((*MockBSDB)(nil).ListUserPaymentAccounts), accountID) } @@ -1989,7 +2019,7 @@ func (m *MockBSDB) ListVgfByGvgID(gvgIDs []uint32) ([]*GlobalVirtualGroupFamily, } // ListVgfByGvgID indicates an expected call of ListVgfByGvgID. -func (mr *MockBSDBMockRecorder) ListVgfByGvgID(gvgIDs any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListVgfByGvgID(gvgIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVgfByGvgID", reflect.TypeOf((*MockBSDB)(nil).ListVgfByGvgID), gvgIDs) } @@ -2004,7 +2034,7 @@ func (m *MockBSDB) ListVirtualGroupFamiliesBySpID(spID uint32) ([]*GlobalVirtual } // ListVirtualGroupFamiliesBySpID indicates an expected call of ListVirtualGroupFamiliesBySpID. -func (mr *MockBSDBMockRecorder) ListVirtualGroupFamiliesBySpID(spID any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListVirtualGroupFamiliesBySpID(spID interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualGroupFamiliesBySpID", reflect.TypeOf((*MockBSDB)(nil).ListVirtualGroupFamiliesBySpID), spID) } @@ -2019,7 +2049,7 @@ func (m *MockBSDB) ListVirtualGroupFamiliesByVgfIDs(vgfIDs []uint32) ([]*GlobalV } // ListVirtualGroupFamiliesByVgfIDs indicates an expected call of ListVirtualGroupFamiliesByVgfIDs. -func (mr *MockBSDBMockRecorder) ListVirtualGroupFamiliesByVgfIDs(vgfIDs any) *gomock.Call { +func (mr *MockBSDBMockRecorder) ListVirtualGroupFamiliesByVgfIDs(vgfIDs interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListVirtualGroupFamiliesByVgfIDs", reflect.TypeOf((*MockBSDB)(nil).ListVirtualGroupFamiliesByVgfIDs), vgfIDs) } diff --git a/store/bsdb/object.go b/store/bsdb/object.go index bf9f5f73a..4ac937b11 100644 --- a/store/bsdb/object.go +++ b/store/bsdb/object.go @@ -152,62 +152,6 @@ func (b *BsDBImpl) ListDeletedObjectsByBlockNumberRange(startBlockNumber int64, return totalObjects, err } -// ListObjectsByBlockNumberRange list objects info by a block number range -func (b *BsDBImpl) ListObjectsByBlockNumberRange(startBlockNumber int64, endBlockNumber int64, includePrivate bool) ([]*Object, error) { - var ( - totalObjects []*Object - objects []*Object - err error - ) - startTime := time.Now() - methodName := currentFunction() - defer func() { - if err != nil { - MetadataDatabaseFailureMetrics(err, startTime, methodName) - } else { - MetadataDatabaseSuccessMetrics(startTime, methodName) - } - }() - - if includePrivate { - for i := 0; i < ObjectsNumberOfShards; i++ { - err = b.db.Table(GetObjectsTableNameByShardNumber(i)). - Select("*"). - Where("update_at >= ? and update_at <= ?", startBlockNumber, endBlockNumber). - Limit(DeletedObjectsDefaultSize). - Order("update_at,object_id asc"). - Find(&objects).Error - totalObjects = append(totalObjects, objects...) - } - } else { - for i := 0; i < ObjectsNumberOfShards; i++ { - objectTableName := GetObjectsTableNameByShardNumber(i) - joins := fmt.Sprintf("right join buckets on buckets.bucket_id = %s.bucket_id", objectTableName) - order := fmt.Sprintf("%s.update_at, %s.object_id asc", objectTableName, objectTableName) - where := fmt.Sprintf("%s.update_at >= ? and %s.update_at <= ? and "+ - "((%s.visibility='VISIBILITY_TYPE_PUBLIC_READ') or "+ - "(%s.visibility='VISIBILITY_TYPE_INHERIT' and buckets.visibility='VISIBILITY_TYPE_PUBLIC_READ'))", - objectTableName, objectTableName, objectTableName, objectTableName) - - err = b.db.Table(objectTableName). - Select(objectTableName+".*"). - Joins(joins). - Where(where, startBlockNumber, endBlockNumber). - Limit(ListObjectsDefaultSize). - Order(order). - Find(&objects).Error - totalObjects = append(totalObjects, objects...) - } - } - - sort.Sort(ByUpdateAtAndObjectID(totalObjects)) - - if len(totalObjects) > ListObjectsDefaultSize { - totalObjects = totalObjects[0:ListObjectsDefaultSize] - } - return totalObjects, err -} - // GetObjectByName get object info by an object name func (b *BsDBImpl) GetObjectByName(objectName string, bucketName string, includePrivate bool) (*Object, error) { var ( diff --git a/store/bsdb/object_id_map.go b/store/bsdb/object_id_map.go index 92f6339f1..22db2f76c 100644 --- a/store/bsdb/object_id_map.go +++ b/store/bsdb/object_id_map.go @@ -18,3 +18,19 @@ func (b *BsDBImpl) GetBucketNameByObjectID(objectID common.Hash) (string, error) return objectIdMap.BucketName, err } + +// GetLatestObjectID get latest object id +func (b *BsDBImpl) GetLatestObjectID() (uint64, error) { + var ( + objectIdMap *ObjectIDMap + err error + ) + + err = b.db.Table((&ObjectIDMap{}).TableName()). + Select("*"). + Order("object_id desc"). + Limit(1). + Take(&objectIdMap).Error + + return objectIdMap.ObjectID.Big().Uint64(), err +} diff --git a/store/sqldb/traffic.go b/store/sqldb/traffic.go index e3b997569..b511ce6b0 100644 --- a/store/sqldb/traffic.go +++ b/store/sqldb/traffic.go @@ -40,6 +40,8 @@ const ( SPDBFailureGetUserReadRecord = "get_user_read_record_failure" ) +const metaDeleteLimit = 100 + // CheckQuotaAndAddReadRecord check current quota, and add read record func (s *SpDBImpl) CheckQuotaAndAddReadRecord(record *corespdb.ReadRecord, quota *corespdb.BucketQuota) (err error) { startTime := time.Now() @@ -451,9 +453,10 @@ func (s *SpDBImpl) UpdateBucketTraffic(bucketID uint64, update *corespdb.BucketT return nil } -// DeleteAllBucketTrafficExpired update the bucket traffic in traffic db with the new traffic -func (s *SpDBImpl) DeleteAllBucketTrafficExpired(yearMonth string) (err error) { - result := s.db.Where("month < ?", yearMonth).Delete(&BucketTrafficTable{}) +// DeleteExpiredBucketTraffic update the bucket traffic in traffic db with the new traffic +func (s *SpDBImpl) DeleteExpiredBucketTraffic(yearMonth string) (err error) { + var bucketTraffic []BucketTrafficTable + result := s.db.Where("month < ?", yearMonth).Limit(metaDeleteLimit).Find(&bucketTraffic).Delete(&bucketTraffic) if result.Error != nil { return fmt.Errorf("failed to delete bucket traffic record in bucket traffic table: %s, year_month:%s", result.Error, yearMonth) } @@ -640,9 +643,10 @@ func (s *SpDBImpl) GetUserReadRecord(userAddress string, timeRange *corespdb.Tra return records, nil } -// DeleteAllReadRecordExpired delete all read record before ts(ts is UnixMicro) -func (s *SpDBImpl) DeleteAllReadRecordExpired(ts uint64) (err error) { - result := s.db.Where("read_timestamp_us < ?", ts).Delete(&ReadRecordTable{}) +// DeleteExpiredReadRecord delete all read record before ts(ts is UnixMicro) +func (s *SpDBImpl) DeleteExpiredReadRecord(ts uint64) (err error) { + var readRecords []ReadRecordTable + result := s.db.Where("read_timestamp_us < ?", ts).Limit(metaDeleteLimit).Find(&readRecords).Delete(&readRecords) if result.Error != nil { return fmt.Errorf("failed to delete read record in read record table: %s, ts:%d", result.Error, ts) } From 07226cebb6890f36aca32d8e8ea0e6e3195c5357 Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Tue, 21 Nov 2023 12:29:18 +0800 Subject: [PATCH 05/10] feat: add ReadRecordDeleteLimit config and refine logs --- base/gfspapp/app.go | 4 +- base/gfspapp/task_options.go | 6 +- base/gfspapp/task_options_test.go | 7 +- base/gfspclient/interface_mock.go | 8 +- base/gfspconfig/config.go | 2 + base/types/gfsptask/gc.go | 8 - base/types/gfsptask/task.pb.go | 336 ++++++++++--------------- core/module/modular.go | 2 +- core/module/modular_mock.go | 8 +- core/spdb/entity.go | 2 +- core/spdb/spdb.go | 10 +- core/spdb/spdb_mock.go | 22 +- core/task/task.go | 12 +- core/task/task_mock.go | 8 +- modular/executor/execute_gc.go | 6 +- modular/executor/executor.go | 16 +- modular/executor/executor_options.go | 11 +- modular/executor/executor_task_test.go | 2 +- modular/manager/manage_task.go | 2 + modular/manager/manager.go | 38 ++- modular/manager/manager_options.go | 2 +- proto/base/types/gfsptask/task.proto | 7 - store/bsdb/const.go | 2 - store/sqldb/traffic.go | 4 +- 24 files changed, 249 insertions(+), 276 deletions(-) diff --git a/base/gfspapp/app.go b/base/gfspapp/app.go index 206a7d41a..03d26b118 100644 --- a/base/gfspapp/app.go +++ b/base/gfspapp/app.go @@ -68,8 +68,8 @@ type GfSpBaseApp struct { gcObjectTimeout int64 gcZombieTimeout int64 gcMetaTimeout int64 - migrateGVGTimeout int64 gcBucketMigrationTimeout int64 + migrateGVGTimeout int64 sealObjectRetry int64 replicateRetry int64 @@ -77,9 +77,9 @@ type GfSpBaseApp struct { gcObjectRetry int64 gcZombieRetry int64 gcMetaRetry int64 + gcBucketMigrationRetry int64 recoveryRetry int64 migrateGVGRetry int64 - gcBucketMigrationRetry int64 } // AppID returns the GfSpBaseApp ID, the default value is prefix(gfsp) add diff --git a/base/gfspapp/task_options.go b/base/gfspapp/task_options.go index 1e0a80bf3..071740373 100644 --- a/base/gfspapp/task_options.go +++ b/base/gfspapp/task_options.go @@ -321,17 +321,17 @@ func (g *GfSpBaseApp) TaskPriority(task coretask.Task) coretask.TPriority { case coretask.TypeTaskChallengePiece: return coretask.UnSchedulingPriority case coretask.TypeTaskGCObject: - return coretask.UnSchedulingPriority + return coretask.DefaultSmallerPriority / 4 case coretask.TypeTaskGCZombiePiece: return coretask.DefaultSmallerPriority / 4 case coretask.TypeTaskGCMeta: return coretask.DefaultSmallerPriority / 4 + case coretask.TypeTaskGCBucketMigration: + return coretask.DefaultSmallerPriority / 4 case coretask.TypeTaskRecoverPiece: return coretask.DefaultSmallerPriority / 4 case coretask.TypeTaskMigrateGVG: return coretask.DefaultSmallerPriority - case coretask.TypeTaskGCBucketMigration: - return coretask.DefaultSmallerPriority default: return coretask.UnKnownTaskPriority } diff --git a/base/gfspapp/task_options_test.go b/base/gfspapp/task_options_test.go index d5ff45f66..e35a4c828 100644 --- a/base/gfspapp/task_options_test.go +++ b/base/gfspapp/task_options_test.go @@ -796,7 +796,7 @@ func TestGfSpBaseApp_TaskPriority(t *testing.T) { { name: "gc object task", task: &gfsptask.GfSpGCObjectTask{}, - wantedResult: coretask.UnSchedulingPriority, + wantedResult: coretask.DefaultSmallerPriority / 4, }, { name: "gc zombie piece task", @@ -808,6 +808,11 @@ func TestGfSpBaseApp_TaskPriority(t *testing.T) { task: &gfsptask.GfSpGCMetaTask{}, wantedResult: coretask.DefaultSmallerPriority / 4, }, + { + name: "gc bucket migration task", + task: &gfsptask.GfSpGCBucketMigrationTask{}, + wantedResult: coretask.DefaultSmallerPriority / 4, + }, { name: "recover piece task", task: &gfsptask.GfSpRecoverPieceTask{}, diff --git a/base/gfspclient/interface_mock.go b/base/gfspclient/interface_mock.go index 8eca94184..c2b408649 100644 --- a/base/gfspclient/interface_mock.go +++ b/base/gfspclient/interface_mock.go @@ -1,6 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: base/gfspclient/interface.go - +// Source: ./interface.go +// +// Generated by this command: +// +// mockgen -source=./interface.go -destination=./interface_mock.go -package=gfspclient +// // Package gfspclient is a generated GoMock package. package gfspclient diff --git a/base/gfspconfig/config.go b/base/gfspconfig/config.go index 085e6ae41..13da9a082 100644 --- a/base/gfspconfig/config.go +++ b/base/gfspconfig/config.go @@ -152,6 +152,7 @@ type ExecutorConfig struct { EnableSkipFailedToMigrateObject bool `comment:"optional"` BucketTrafficKeepTimeDay uint64 `comment:"optional"` ReadRecordKeepTimeDay uint64 `comment:"optional"` + ReadRecordDeleteLimit uint64 `comment:"optional"` } type P2PConfig struct { @@ -226,6 +227,7 @@ type TaskConfig struct { SealObjectTaskRetry int64 `comment:"optional"` ReplicateTaskRetry int64 `comment:"optional"` ReceiveConfirmTaskRetry int64 `comment:"optional"` + // gc GcObjectTaskTimeout int64 `comment:"optional"` GcZombieTaskTimeout int64 `comment:"optional"` diff --git a/base/types/gfsptask/gc.go b/base/types/gfsptask/gc.go index 467ce33ad..9bebf05e1 100644 --- a/base/types/gfsptask/gc.go +++ b/base/types/gfsptask/gc.go @@ -443,11 +443,3 @@ func (m *GfSpGCMetaTask) SetGCMetaStatus(current uint64, delete uint64) { m.CurrentIdx = current m.DeleteCount = delete } - -func (m *GfSpGCMetaTask) SetGCMetaTaskType(metaTaskType GfSpGCMetaTaskType) { - m.MetaTaskType = metaTaskType -} - -func (m *GfSpGCMetaTask) GetGCMetaTaskType() GfSpGCMetaTaskType { - return m.GetMetaTaskType() -} diff --git a/base/types/gfsptask/task.pb.go b/base/types/gfsptask/task.pb.go index d456ad2bb..e1b3b06d0 100644 --- a/base/types/gfsptask/task.pb.go +++ b/base/types/gfsptask/task.pb.go @@ -26,34 +26,6 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -type GfSpGCMetaTaskType int32 - -const ( - GfSpGCMetaTaskType_GF_SP_GC_META_TASK_TYPE_UNSPECIFIED GfSpGCMetaTaskType = 0 - GfSpGCMetaTaskType_GF_SP_GC_META_TASK_TYPE_BUCKET_TRAFFIC GfSpGCMetaTaskType = 1 - GfSpGCMetaTaskType_GF_SP_GC_META_TASK_TYPE_TRAFFIC_READ_RECORD GfSpGCMetaTaskType = 2 -) - -var GfSpGCMetaTaskType_name = map[int32]string{ - 0: "GF_SP_GC_META_TASK_TYPE_UNSPECIFIED", - 1: "GF_SP_GC_META_TASK_TYPE_BUCKET_TRAFFIC", - 2: "GF_SP_GC_META_TASK_TYPE_TRAFFIC_READ_RECORD", -} - -var GfSpGCMetaTaskType_value = map[string]int32{ - "GF_SP_GC_META_TASK_TYPE_UNSPECIFIED": 0, - "GF_SP_GC_META_TASK_TYPE_BUCKET_TRAFFIC": 1, - "GF_SP_GC_META_TASK_TYPE_TRAFFIC_READ_RECORD": 2, -} - -func (x GfSpGCMetaTaskType) String() string { - return proto.EnumName(GfSpGCMetaTaskType_name, int32(x)) -} - -func (GfSpGCMetaTaskType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_0d22df708e229306, []int{0} -} - type GfSpTask struct { Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` CreateTime int64 `protobuf:"varint,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` @@ -1511,10 +1483,9 @@ func (m *GfSpGCZombiePieceTask) GetFinished() bool { } type GfSpGCMetaTask struct { - Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` - CurrentIdx uint64 `protobuf:"varint,2,opt,name=current_idx,json=currentIdx,proto3" json:"current_idx,omitempty"` - DeleteCount uint64 `protobuf:"varint,3,opt,name=delete_count,json=deleteCount,proto3" json:"delete_count,omitempty"` - MetaTaskType GfSpGCMetaTaskType `protobuf:"varint,4,opt,name=meta_task_type,json=metaTaskType,proto3,enum=base.types.gfsptask.GfSpGCMetaTaskType" json:"meta_task_type,omitempty"` + Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` + CurrentIdx uint64 `protobuf:"varint,2,opt,name=current_idx,json=currentIdx,proto3" json:"current_idx,omitempty"` + DeleteCount uint64 `protobuf:"varint,3,opt,name=delete_count,json=deleteCount,proto3" json:"delete_count,omitempty"` } func (m *GfSpGCMetaTask) Reset() { *m = GfSpGCMetaTask{} } @@ -1571,13 +1542,6 @@ func (m *GfSpGCMetaTask) GetDeleteCount() uint64 { return 0 } -func (m *GfSpGCMetaTask) GetMetaTaskType() GfSpGCMetaTaskType { - if m != nil { - return m.MetaTaskType - } - return GfSpGCMetaTaskType_GF_SP_GC_META_TASK_TYPE_UNSPECIFIED -} - type GfSpMigrateGVGTask struct { Task *GfSpTask `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"` BucketId uint64 `protobuf:"varint,2,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` @@ -2046,7 +2010,6 @@ func (m *GfSpBucketQuotaInfo) GetAllowMigrate() bool { } func init() { - proto.RegisterEnum("base.types.gfsptask.GfSpGCMetaTaskType", GfSpGCMetaTaskType_name, GfSpGCMetaTaskType_value) proto.RegisterType((*GfSpTask)(nil), "base.types.gfsptask.GfSpTask") proto.RegisterType((*GfSpCreateBucketApprovalTask)(nil), "base.types.gfsptask.GfSpCreateBucketApprovalTask") proto.RegisterType((*GfSpMigrateBucketApprovalTask)(nil), "base.types.gfsptask.GfSpMigrateBucketApprovalTask") @@ -2074,143 +2037,135 @@ func init() { func init() { proto.RegisterFile("base/types/gfsptask/task.proto", fileDescriptor_0d22df708e229306) } var fileDescriptor_0d22df708e229306 = []byte{ - // 2164 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xbd, 0x6f, 0x1b, 0xc9, - 0x15, 0x37, 0xbf, 0x44, 0xf2, 0x91, 0x94, 0xe9, 0x35, 0xcf, 0xa6, 0xbf, 0x68, 0x79, 0x15, 0xfb, - 0x14, 0xdf, 0x99, 0xbc, 0xd3, 0xc1, 0x48, 0x69, 0x48, 0x94, 0xc4, 0x13, 0x1c, 0xd9, 0xba, 0xa5, - 0x7c, 0x40, 0xae, 0xc8, 0x62, 0xb8, 0x3b, 0x5c, 0x6e, 0xb4, 0x5f, 0x99, 0x5d, 0xca, 0xa2, 0xeb, - 0xf4, 0x09, 0xd2, 0x04, 0x48, 0x91, 0x3a, 0x6d, 0x80, 0x20, 0x5d, 0xaa, 0x00, 0x87, 0x00, 0x49, - 0x71, 0x55, 0x10, 0x20, 0xcd, 0xc1, 0x4e, 0x93, 0xff, 0x22, 0x98, 0x37, 0xb3, 0xdc, 0x25, 0x4d, - 0x29, 0xfe, 0x50, 0x12, 0x3b, 0x48, 0x23, 0xed, 0xbc, 0xdf, 0x9b, 0x99, 0x37, 0xef, 0x7b, 0x86, - 0xd0, 0x1a, 0x90, 0x90, 0x76, 0xa2, 0x49, 0x40, 0xc3, 0x8e, 0x35, 0x0c, 0x83, 0x88, 0x84, 0x87, - 0x1d, 0xfe, 0xa7, 0x1d, 0x30, 0x3f, 0xf2, 0x95, 0x8b, 0x1c, 0x6f, 0x23, 0xde, 0x8e, 0xf1, 0xab, - 0xb7, 0xe6, 0x26, 0x51, 0xc6, 0x7c, 0x16, 0x76, 0xf0, 0x9f, 0x98, 0x77, 0xf5, 0x8a, 0xc5, 0x28, - 0xf5, 0x86, 0x36, 0x75, 0xcc, 0x4e, 0x18, 0x08, 0x5e, 0x09, 0xdd, 0x4c, 0x43, 0x91, 0xcf, 0x88, - 0x45, 0x3b, 0x01, 0x61, 0xc4, 0x8d, 0x19, 0xae, 0x2d, 0x60, 0x88, 0x8e, 0x25, 0xd8, 0x5a, 0x04, - 0xa6, 0x56, 0x5f, 0x4d, 0xe1, 0x47, 0x36, 0x8b, 0xc6, 0xc4, 0xb1, 0x98, 0x3f, 0x9e, 0x11, 0x41, - 0xfd, 0x43, 0x16, 0x4a, 0xbd, 0x61, 0x3f, 0x38, 0x20, 0xe1, 0xa1, 0xd2, 0x84, 0x22, 0x31, 0x4d, - 0x46, 0xc3, 0xb0, 0x99, 0x59, 0xc9, 0xac, 0x95, 0xb5, 0x78, 0xa8, 0xdc, 0x84, 0x8a, 0xc1, 0x28, - 0x89, 0xa8, 0x1e, 0xd9, 0x2e, 0x6d, 0x66, 0x57, 0x32, 0x6b, 0x39, 0x0d, 0x04, 0xe9, 0xc0, 0x76, - 0x29, 0x67, 0x18, 0x07, 0xe6, 0x94, 0x21, 0x27, 0x18, 0x04, 0x09, 0x19, 0x9a, 0x50, 0xe4, 0x88, - 0x3f, 0x8e, 0x9a, 0x79, 0x04, 0xe3, 0xa1, 0xb2, 0x0a, 0x35, 0xae, 0x4b, 0x3d, 0x60, 0xb6, 0xcf, - 0xec, 0x68, 0xd2, 0x2c, 0xac, 0x64, 0xd6, 0x0a, 0x5a, 0x95, 0x13, 0xf7, 0x25, 0x4d, 0x69, 0x40, - 0x81, 0xd1, 0x88, 0x4d, 0x9a, 0x4b, 0x38, 0x59, 0x0c, 0x94, 0x6b, 0x50, 0x76, 0xc9, 0xb1, 0x2e, - 0x90, 0x22, 0x22, 0x25, 0x97, 0x1c, 0x6b, 0x08, 0xde, 0x82, 0xea, 0x38, 0xa4, 0x4c, 0x8f, 0x8f, - 0x54, 0xc2, 0x23, 0x55, 0x38, 0x6d, 0x43, 0x1e, 0x4b, 0x81, 0xbc, 0xe3, 0x5b, 0x61, 0xb3, 0x8c, - 0x10, 0x7e, 0x2b, 0xeb, 0x90, 0xa3, 0x8c, 0x35, 0x61, 0x25, 0xb3, 0x56, 0x59, 0x5f, 0x69, 0xcf, - 0x59, 0x5d, 0x18, 0xb8, 0xcd, 0x55, 0xb6, 0xcd, 0x3f, 0x35, 0xce, 0xac, 0x7e, 0x9d, 0x81, 0xeb, - 0x9c, 0xd4, 0x45, 0x85, 0x6c, 0x8e, 0x8d, 0x43, 0x1a, 0x6d, 0x04, 0x01, 0xf3, 0x8f, 0x88, 0x83, - 0x9a, 0xfd, 0x14, 0xf2, 0xfc, 0x38, 0xa8, 0xd6, 0xca, 0xfa, 0x8d, 0xf6, 0x02, 0x5f, 0x6a, 0xc7, - 0x66, 0xd0, 0x90, 0x55, 0xf9, 0x02, 0x14, 0xa9, 0xf2, 0x01, 0xae, 0xa7, 0xdb, 0xde, 0xd0, 0x47, - 0xcd, 0x57, 0xd6, 0x57, 0xdb, 0x89, 0x6d, 0xdb, 0xd2, 0xf6, 0xed, 0xbd, 0xd0, 0x4a, 0xef, 0xaf, - 0xd5, 0x8d, 0xd4, 0x68, 0xd7, 0x1b, 0xfa, 0xca, 0x0a, 0x54, 0x86, 0xb6, 0x67, 0x51, 0x16, 0x30, - 0xdb, 0x8b, 0xd0, 0x48, 0x55, 0x2d, 0x4d, 0x52, 0x7f, 0x9d, 0x81, 0x1b, 0x5c, 0x8e, 0x3d, 0xdb, - 0x62, 0x67, 0x76, 0x92, 0x03, 0xb8, 0xe8, 0x8a, 0xf5, 0x16, 0x1c, 0xe5, 0x3b, 0x27, 0x1c, 0x65, - 0x46, 0x02, 0xed, 0x82, 0x9b, 0x1e, 0xf2, 0xc3, 0xcc, 0xe9, 0xfc, 0xf1, 0xe0, 0x47, 0xd4, 0x38, - 0x43, 0x9d, 0xfb, 0xb8, 0xde, 0xab, 0xeb, 0x5c, 0xec, 0x1f, 0xeb, 0x5c, 0x8c, 0x5e, 0x51, 0xe7, - 0xbf, 0xcf, 0x43, 0x8b, 0xcb, 0xa1, 0xd1, 0xc0, 0xb1, 0x0d, 0x12, 0xd1, 0x7d, 0x9b, 0x1a, 0xf4, - 0x6d, 0x8f, 0xf2, 0x00, 0x2a, 0x2f, 0x9f, 0xa1, 0xb5, 0xe8, 0x0c, 0x89, 0xb0, 0x1a, 0xf8, 0x89, - 0xe0, 0x1b, 0xb0, 0x2c, 0x39, 0x74, 0x91, 0x93, 0x50, 0xf6, 0xca, 0xfa, 0xd5, 0x45, 0x6b, 0xec, - 0x23, 0x87, 0x56, 0x93, 0x63, 0x31, 0x54, 0xee, 0xc3, 0x65, 0x1e, 0xd8, 0x61, 0xa0, 0xfb, 0x01, - 0x65, 0x24, 0xf2, 0x93, 0x60, 0xcc, 0x63, 0xc4, 0x35, 0x48, 0x78, 0xd8, 0x0f, 0x1e, 0x4b, 0x30, - 0x8e, 0xca, 0x55, 0xa8, 0xe1, 0x34, 0xdb, 0xf2, 0x48, 0x34, 0x66, 0x14, 0x13, 0x42, 0x55, 0xab, - 0x72, 0xe6, 0x98, 0xa6, 0x7c, 0x02, 0x0d, 0x82, 0x2a, 0xa2, 0x26, 0xdf, 0x80, 0x7a, 0x66, 0xe0, - 0x73, 0x05, 0x2f, 0xe1, 0xc2, 0x4a, 0x8c, 0xf5, 0x83, 0x6d, 0x89, 0x28, 0x0f, 0xe0, 0x7a, 0x7a, - 0xc6, 0x4b, 0x22, 0x15, 0x71, 0xe6, 0x95, 0x64, 0xe6, 0xbc, 0x5c, 0xf7, 0x40, 0x49, 0x16, 0x98, - 0x0a, 0x57, 0x42, 0xe1, 0x2e, 0x4c, 0xa7, 0x4d, 0x25, 0x9c, 0xdb, 0x8f, 0x48, 0x83, 0x4e, 0xf7, - 0x2b, 0xcf, 0xef, 0x17, 0x9b, 0x3c, 0xde, 0xef, 0x36, 0x2c, 0xd3, 0xe3, 0xc0, 0x66, 0xd4, 0xd4, - 0x47, 0xd4, 0xb6, 0x46, 0x11, 0x26, 0xa5, 0xbc, 0x56, 0x93, 0xd4, 0xcf, 0x91, 0xa8, 0xfe, 0x24, - 0x0b, 0x0d, 0x6e, 0xfc, 0x27, 0x81, 0xe3, 0x13, 0x53, 0x58, 0xf3, 0x4d, 0xbd, 0xe6, 0x3e, 0x5c, - 0x96, 0xa5, 0x42, 0xc7, 0x5a, 0xa1, 0x0f, 0x89, 0x6b, 0x3b, 0x13, 0xdd, 0x36, 0xd1, 0x83, 0x6a, - 0x5a, 0x43, 0xc2, 0x3d, 0x8e, 0xee, 0x20, 0xb8, 0x6b, 0xce, 0x3b, 0x5b, 0xee, 0x0c, 0x9c, 0x2d, - 0xff, 0x9a, 0xce, 0xa6, 0xfe, 0x2d, 0x2b, 0x52, 0x97, 0x46, 0xc3, 0xb1, 0x4b, 0x06, 0x0e, 0x3d, - 0x0b, 0x7d, 0xbc, 0x0b, 0x51, 0x74, 0x09, 0x96, 0xfc, 0xe1, 0x30, 0xa4, 0xa2, 0x70, 0xe6, 0x35, - 0x39, 0xe2, 0x74, 0x87, 0x7a, 0x56, 0x34, 0xc2, 0xf8, 0xc8, 0x6b, 0x72, 0xa4, 0x5c, 0x87, 0xb2, - 0xe1, 0xbb, 0x81, 0x43, 0x23, 0x6a, 0x62, 0x38, 0x94, 0xb4, 0x84, 0x70, 0x9a, 0x85, 0x8b, 0x27, - 0x5b, 0x58, 0xfd, 0x7b, 0x0e, 0x2e, 0xbd, 0x9c, 0xa4, 0xde, 0x67, 0xb5, 0x76, 0xe0, 0x62, 0x48, - 0x0d, 0xdf, 0x33, 0x09, 0x9b, 0xc4, 0x31, 0x49, 0xb9, 0xdf, 0xe5, 0x78, 0xfe, 0x98, 0x42, 0x1b, - 0x31, 0xa2, 0x7c, 0x0a, 0x8d, 0x64, 0xc2, 0x34, 0xfe, 0xc3, 0x66, 0x61, 0x25, 0xb7, 0x56, 0xd5, - 0x92, 0xc5, 0xa6, 0x19, 0x00, 0x4d, 0x17, 0x52, 0xe2, 0x4c, 0xed, 0x20, 0x47, 0xdc, 0x08, 0x96, - 0xe3, 0x0f, 0x88, 0xa3, 0xcf, 0xda, 0x22, 0x31, 0x82, 0x80, 0xbf, 0x4c, 0x99, 0x62, 0xd7, 0x9c, - 0x15, 0x39, 0xce, 0x78, 0xbc, 0xb1, 0x99, 0x15, 0x39, 0xce, 0x78, 0xfc, 0x8c, 0x0d, 0xcf, 0x8f, - 0x74, 0x72, 0x44, 0x6c, 0x87, 0x87, 0x04, 0xcf, 0x43, 0xb6, 0x79, 0x8c, 0xa9, 0xa7, 0xa0, 0x5d, - 0xf0, 0xfc, 0x68, 0x23, 0x86, 0xfa, 0xc1, 0xae, 0x79, 0xac, 0x7e, 0x2b, 0x73, 0x89, 0x46, 0x0d, - 0xff, 0x88, 0xb2, 0xf7, 0xde, 0xc8, 0x37, 0xa1, 0x12, 0x52, 0xcb, 0xa5, 0x5e, 0x84, 0xe7, 0xce, - 0xa3, 0x72, 0x41, 0x92, 0x76, 0xcd, 0x63, 0xe5, 0x03, 0x58, 0xa2, 0x06, 0x62, 0xa2, 0xeb, 0x2c, - 0x50, 0x83, 0x93, 0x6f, 0x00, 0x04, 0xfc, 0xec, 0x7a, 0x68, 0x3f, 0xa3, 0x68, 0xbc, 0xbc, 0x56, - 0x46, 0x4a, 0xdf, 0x7e, 0x46, 0x79, 0x88, 0x25, 0x05, 0xa0, 0x88, 0x05, 0x20, 0x21, 0x70, 0x94, - 0x09, 0xfd, 0x51, 0x13, 0xcb, 0x43, 0x49, 0x4b, 0x08, 0xea, 0x4f, 0xf3, 0x53, 0x15, 0x53, 0xfb, - 0x88, 0xfe, 0xef, 0xab, 0xf8, 0x36, 0x2c, 0x33, 0x6a, 0x8e, 0x3d, 0x93, 0x78, 0xc6, 0x24, 0xa5, - 0xea, 0x5a, 0x42, 0x5d, 0xac, 0xf2, 0x5c, 0x5a, 0xe5, 0xb7, 0x61, 0x59, 0xc0, 0xc6, 0x88, 0x1a, - 0x87, 0xe1, 0xd8, 0x95, 0x7a, 0xaf, 0x21, 0xb5, 0x2b, 0x89, 0xb3, 0x96, 0x29, 0xcd, 0x5b, 0x26, - 0x89, 0xc7, 0xf2, 0x4c, 0x3c, 0x5e, 0x85, 0xd2, 0xd0, 0xf6, 0xec, 0x70, 0x44, 0x4d, 0xac, 0xb1, - 0x25, 0x6d, 0x3a, 0x3e, 0x2d, 0x56, 0x2b, 0xa7, 0xc4, 0xea, 0x77, 0xa1, 0x2e, 0x9b, 0x5d, 0xd1, - 0xba, 0xda, 0xbe, 0xd7, 0xac, 0xe2, 0xd2, 0xe7, 0x05, 0x7d, 0x2f, 0x26, 0xab, 0xbf, 0xc8, 0x81, - 0xc2, 0x0d, 0xdb, 0xa7, 0xc4, 0x79, 0xff, 0xcb, 0xd5, 0x7f, 0x22, 0xaf, 0x9e, 0x62, 0x93, 0xa5, - 0xd7, 0xcf, 0x9f, 0xc5, 0x93, 0xf2, 0xa7, 0xfa, 0xbb, 0xac, 0xa8, 0x7a, 0x5b, 0xfe, 0x53, 0xef, - 0x1d, 0x68, 0x26, 0x1e, 0x40, 0x25, 0x7d, 0x81, 0x3a, 0xa5, 0xcd, 0x4a, 0xee, 0x49, 0x1a, 0x0c, - 0x92, 0x0b, 0xe0, 0xdb, 0xb7, 0x59, 0x4a, 0x1d, 0x72, 0x8e, 0xff, 0x14, 0x43, 0x38, 0xa7, 0xf1, - 0x4f, 0x7e, 0x89, 0x1e, 0xd9, 0xd6, 0x48, 0x86, 0x2c, 0x7e, 0xab, 0xbf, 0xcd, 0xc1, 0x07, 0x69, - 0xc5, 0xfd, 0x77, 0xb3, 0xdc, 0xbb, 0xa0, 0xb7, 0x5b, 0x50, 0xa5, 0x1e, 0xd6, 0x60, 0x4c, 0x60, - 0xa8, 0xc0, 0x92, 0x56, 0x11, 0x34, 0x4c, 0x5f, 0x3c, 0x03, 0x46, 0x7e, 0x44, 0x9c, 0x99, 0xa2, - 0x83, 0x14, 0xcc, 0x80, 0xd7, 0x40, 0xa4, 0x43, 0xfd, 0x90, 0x4e, 0xe4, 0x65, 0xa5, 0x84, 0x84, - 0x87, 0x14, 0x1f, 0x3b, 0x04, 0x28, 0x5b, 0xc5, 0x12, 0xce, 0xae, 0x20, 0xed, 0xb1, 0xe8, 0x17, - 0xa7, 0x2c, 0xb2, 0x6b, 0x2c, 0xa7, 0x58, 0xbe, 0x8f, 0x24, 0xf5, 0x6b, 0xd9, 0xe5, 0x75, 0x47, - 0xc4, 0xe1, 0x5c, 0xf4, 0xff, 0x76, 0x9b, 0x2b, 0x6f, 0x85, 0x57, 0x28, 0x6f, 0x4b, 0x8b, 0xca, - 0xdb, 0x6d, 0x58, 0xb6, 0xbd, 0x88, 0x5a, 0xcc, 0x8e, 0x26, 0xfa, 0x88, 0x84, 0xa3, 0xb8, 0x7e, - 0x4d, 0xa9, 0x9f, 0x93, 0x70, 0x94, 0x54, 0x41, 0x64, 0x29, 0x61, 0x0a, 0x14, 0x66, 0x47, 0xf8, - 0x0e, 0x9c, 0x17, 0xb0, 0x49, 0x22, 0x22, 0xfc, 0xa4, 0x8c, 0x61, 0x27, 0xca, 0xe0, 0x16, 0x89, - 0x08, 0xf7, 0x15, 0xf5, 0x57, 0x59, 0xa8, 0x73, 0x6b, 0xf4, 0xba, 0x6f, 0x97, 0xb2, 0x3e, 0x06, - 0x25, 0x8c, 0x08, 0x8b, 0xf4, 0x81, 0xe3, 0x1b, 0x87, 0xba, 0x37, 0x76, 0x07, 0x94, 0xa1, 0x25, - 0xf3, 0x5a, 0x1d, 0x91, 0x4d, 0x0e, 0x3c, 0x42, 0xba, 0xb2, 0x06, 0x75, 0xea, 0x99, 0xb3, 0xbc, - 0x39, 0xe4, 0x5d, 0xa6, 0x9e, 0x99, 0xe6, 0xfc, 0x04, 0x1a, 0xc6, 0x98, 0x31, 0xae, 0xd5, 0x19, - 0x6e, 0x71, 0xc3, 0x51, 0x24, 0x96, 0x9e, 0xf1, 0x19, 0x5c, 0x72, 0x48, 0x18, 0xe9, 0x26, 0xc5, - 0x7b, 0xcc, 0xf4, 0x81, 0xc6, 0x94, 0xb7, 0x9f, 0x8b, 0x1c, 0xdd, 0x12, 0xa0, 0x74, 0x27, 0x53, - 0x69, 0x42, 0x91, 0x8d, 0x3d, 0xcf, 0xf6, 0x2c, 0xd9, 0x80, 0xc7, 0x43, 0xf5, 0xcf, 0x19, 0x91, - 0xa0, 0x7a, 0xdd, 0xaf, 0x7c, 0x77, 0x60, 0xbf, 0x9d, 0xa3, 0xa7, 0xb6, 0xc9, 0xce, 0x6c, 0xc3, - 0xed, 0x25, 0xf4, 0x97, 0x88, 0x2b, 0x14, 0x52, 0x43, 0xf2, 0x54, 0x50, 0x15, 0x6a, 0x5c, 0x73, - 0x09, 0x97, 0x50, 0x44, 0x85, 0x7a, 0xc9, 0x61, 0xd2, 0x4d, 0x4a, 0x61, 0xb6, 0x49, 0x51, 0xff, - 0x92, 0x81, 0x65, 0x71, 0x9c, 0x3d, 0x1a, 0x91, 0x37, 0x3d, 0xc7, 0x4d, 0xa8, 0xc4, 0x56, 0xe1, - 0x7e, 0x2c, 0xcc, 0x0c, 0x92, 0xc4, 0x9d, 0xf8, 0x16, 0x54, 0x85, 0xfe, 0x75, 0xc3, 0x1f, 0xcb, - 0xd7, 0xac, 0xbc, 0x56, 0x11, 0xb4, 0x2e, 0x27, 0x29, 0x7b, 0xb0, 0xec, 0xd2, 0x88, 0xe8, 0xf8, - 0xa4, 0xcb, 0xb7, 0xc3, 0xa3, 0x2c, 0xaf, 0x7f, 0x78, 0xa2, 0x00, 0x89, 0xcc, 0x07, 0x93, 0x80, - 0x6a, 0x55, 0x37, 0x35, 0x52, 0x7f, 0x9e, 0x17, 0xbd, 0x91, 0x7c, 0x0e, 0xec, 0x7d, 0xd9, 0x7b, - 0xd3, 0xc3, 0x5d, 0x83, 0x72, 0x9c, 0x4c, 0x4c, 0x79, 0xb4, 0x92, 0x4c, 0x15, 0xa6, 0xb2, 0x05, - 0xc5, 0x90, 0x19, 0xba, 0x75, 0x64, 0xc9, 0x2c, 0xf3, 0x51, 0x3a, 0x43, 0xa4, 0x5f, 0xcf, 0xdb, - 0xbd, 0x97, 0x3a, 0x0b, 0x6d, 0x29, 0x64, 0x46, 0xef, 0xc8, 0x52, 0x76, 0xa0, 0x64, 0xd2, 0x30, - 0xc2, 0x65, 0xf2, 0xaf, 0xbf, 0x4c, 0x91, 0x4f, 0xe6, 0xeb, 0xbc, 0x62, 0xc7, 0x7c, 0x1f, 0xf8, - 0xc6, 0x7a, 0x18, 0xa0, 0x73, 0xcf, 0x67, 0xc6, 0xa0, 0xdd, 0x97, 0x89, 0x8c, 0xf9, 0x47, 0xb6, - 0x49, 0x99, 0x56, 0x08, 0x99, 0xd1, 0x0f, 0x78, 0xf3, 0x84, 0x91, 0x24, 0x9f, 0x54, 0xd3, 0x5e, - 0x57, 0x44, 0xb5, 0x34, 0x38, 0x2c, 0x15, 0xbe, 0xd8, 0xfd, 0x4a, 0x73, 0x3d, 0xf2, 0x4d, 0xa8, - 0x88, 0x37, 0x29, 0xf1, 0xfa, 0x2f, 0x52, 0x12, 0x08, 0x12, 0xbe, 0xfe, 0xcf, 0xb4, 0xe5, 0x30, - 0xdf, 0x96, 0xb7, 0xa7, 0x0f, 0xc4, 0xa6, 0x3e, 0x98, 0x44, 0x34, 0x14, 0x99, 0xad, 0x82, 0xd2, - 0xc4, 0x4f, 0xbf, 0xe6, 0x26, 0x47, 0x30, 0xbb, 0xfd, 0x43, 0xde, 0x52, 0xa5, 0x8c, 0xef, 0xfd, - 0x15, 0x8a, 0x67, 0x09, 0x34, 0x64, 0xf2, 0x8c, 0x29, 0xde, 0x47, 0x6b, 0x68, 0xb1, 0xe9, 0x0b, - 0xe6, 0x59, 0xd5, 0xa2, 0xbb, 0x70, 0xc1, 0x0e, 0xf5, 0x99, 0xeb, 0x89, 0xb8, 0xc6, 0x96, 0xb4, - 0xf3, 0x76, 0xb8, 0x99, 0xba, 0x9e, 0x50, 0xf5, 0x10, 0xae, 0x88, 0x20, 0xdd, 0x9c, 0xbd, 0xb5, - 0xfc, 0x3b, 0xc2, 0x50, 0xfd, 0x4d, 0x16, 0x2e, 0x73, 0xfe, 0xb9, 0xbd, 0x50, 0xcf, 0x33, 0x13, - 0x33, 0x73, 0xf1, 0x9b, 0x76, 0xce, 0xec, 0x9c, 0x73, 0x9e, 0xe0, 0x5d, 0xb9, 0x13, 0xbc, 0x4b, - 0xf9, 0x1e, 0x60, 0x20, 0xf2, 0xb8, 0xca, 0xbf, 0x52, 0x5c, 0x2d, 0x71, 0x76, 0x0c, 0xac, 0x38, - 0x1e, 0x0b, 0xaf, 0x13, 0x8f, 0x73, 0xc1, 0xb3, 0x74, 0x7a, 0xf0, 0xcc, 0xbf, 0x36, 0xa8, 0x7f, - 0xca, 0xc2, 0xc5, 0x44, 0x67, 0x5f, 0x8c, 0xfd, 0x88, 0xfc, 0x6b, 0x7d, 0x35, 0xa0, 0xe0, 0xfa, - 0x5e, 0x34, 0x42, 0x65, 0x95, 0x35, 0x31, 0xe0, 0x92, 0xc8, 0x29, 0x1e, 0x91, 0x3f, 0xe2, 0x95, - 0xe3, 0x7e, 0xea, 0x11, 0x71, 0x29, 0x6f, 0x07, 0x18, 0x25, 0xa6, 0x6e, 0xf8, 0x5e, 0x38, 0x76, - 0xf1, 0x19, 0xfc, 0x19, 0x95, 0xb5, 0xaa, 0xce, 0x91, 0xae, 0x04, 0xa4, 0x22, 0x9b, 0x43, 0x46, - 0xa9, 0xfe, 0x63, 0x2e, 0xd3, 0xdc, 0x1c, 0x51, 0xb4, 0x3f, 0xe0, 0x38, 0x8a, 0x3c, 0x33, 0xf1, - 0x0e, 0x9c, 0x4f, 0x4d, 0x4c, 0x75, 0xc3, 0xb5, 0x29, 0x3f, 0xf2, 0x7d, 0x0c, 0x8a, 0x31, 0x22, - 0xcc, 0xa2, 0x66, 0x9a, 0x55, 0x24, 0xb1, 0xba, 0x44, 0x12, 0xee, 0x55, 0xa8, 0x11, 0xc7, 0xf1, - 0x9f, 0x4e, 0x3d, 0x5e, 0x64, 0xb1, 0x2a, 0x12, 0xa5, 0xbb, 0xdf, 0xfd, 0x65, 0x46, 0xd4, 0x9b, - 0xd9, 0xa2, 0xa4, 0x7c, 0x08, 0xab, 0xbd, 0x1d, 0xbd, 0xbf, 0xaf, 0xf7, 0xba, 0xfa, 0xde, 0xf6, - 0xc1, 0x86, 0x7e, 0xb0, 0xd1, 0x7f, 0xa8, 0x1f, 0xfc, 0x60, 0x7f, 0x5b, 0x7f, 0xf2, 0xa8, 0xbf, - 0xbf, 0xdd, 0xdd, 0xdd, 0xd9, 0xdd, 0xde, 0xaa, 0x9f, 0x53, 0xee, 0xc2, 0x9d, 0x93, 0x18, 0x37, - 0x9f, 0x74, 0x1f, 0x6e, 0x1f, 0xe8, 0x07, 0xda, 0xc6, 0xce, 0xce, 0x6e, 0xb7, 0x9e, 0x51, 0x3a, - 0xf0, 0xd1, 0x49, 0xbc, 0x92, 0x49, 0xd7, 0xb6, 0x37, 0xb6, 0x74, 0x6d, 0xbb, 0xfb, 0x58, 0xdb, - 0xaa, 0x67, 0x37, 0x7f, 0xf8, 0xc7, 0xe7, 0xad, 0xcc, 0x37, 0xcf, 0x5b, 0x99, 0x6f, 0x9f, 0xb7, - 0x32, 0x3f, 0x7b, 0xd1, 0x3a, 0xf7, 0xcd, 0x8b, 0xd6, 0xb9, 0xbf, 0xbe, 0x68, 0x9d, 0xfb, 0x6a, - 0xcb, 0xb2, 0xa3, 0xd1, 0x78, 0xd0, 0x36, 0x7c, 0xb7, 0x33, 0xf0, 0x06, 0xf7, 0x8c, 0x11, 0xb1, - 0xbd, 0x4e, 0xe2, 0x7e, 0xf7, 0x64, 0xc2, 0xb9, 0x17, 0x48, 0xe7, 0xeb, 0x2c, 0xf8, 0xb5, 0x7b, - 0xb0, 0x84, 0xbf, 0x09, 0x7f, 0xf6, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xa2, 0x2d, 0x47, - 0x0b, 0x1f, 0x00, 0x00, + // 2041 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6f, 0x1c, 0x49, + 0x15, 0xcf, 0x7c, 0xcf, 0xbc, 0x99, 0x71, 0x9c, 0xce, 0x24, 0x99, 0x7c, 0x8d, 0x9d, 0x36, 0x59, + 0x19, 0xd8, 0xcc, 0xec, 0x7a, 0x15, 0x71, 0x8c, 0xfc, 0xb1, 0xeb, 0xb5, 0x20, 0x9b, 0x6c, 0x3b, + 0xec, 0x61, 0x0f, 0xb4, 0x6a, 0xba, 0xdf, 0xf4, 0x34, 0xee, 0xe9, 0x6e, 0xaa, 0x7b, 0x1c, 0x3b, + 0x67, 0x24, 0x8e, 0x20, 0x2e, 0xdc, 0x38, 0x73, 0x45, 0x42, 0xdc, 0x38, 0x21, 0xad, 0x90, 0xe0, + 0xb0, 0x47, 0x24, 0x2e, 0xab, 0x84, 0x0b, 0xff, 0x05, 0xaa, 0x57, 0xd5, 0x1f, 0x33, 0x19, 0x1b, + 0x27, 0x31, 0x90, 0x20, 0x2e, 0xf6, 0xd4, 0xfb, 0xbd, 0xaa, 0x7a, 0xf5, 0xbe, 0xab, 0x1a, 0x7a, + 0x43, 0x16, 0xe1, 0x20, 0x3e, 0x0e, 0x31, 0x1a, 0x38, 0xa3, 0x28, 0x8c, 0x59, 0x74, 0x30, 0x10, + 0x7f, 0xfa, 0x21, 0x0f, 0xe2, 0x40, 0xbb, 0x2c, 0xf0, 0x3e, 0xe1, 0xfd, 0x04, 0xbf, 0x71, 0x67, + 0x6e, 0x12, 0x72, 0x1e, 0xf0, 0x68, 0x40, 0xff, 0xe4, 0xbc, 0x1b, 0xd7, 0x1d, 0x8e, 0xe8, 0x8f, + 0x5c, 0xf4, 0xec, 0x41, 0x14, 0x4a, 0x5e, 0x05, 0xad, 0xe4, 0xa1, 0x38, 0xe0, 0xcc, 0xc1, 0x41, + 0xc8, 0x38, 0x9b, 0x24, 0x0c, 0x37, 0x17, 0x30, 0xc4, 0x47, 0x0a, 0xec, 0x2d, 0x02, 0x73, 0xab, + 0xaf, 0xe5, 0xf0, 0x43, 0x97, 0xc7, 0x53, 0xe6, 0x39, 0x3c, 0x98, 0xce, 0x88, 0xa0, 0xff, 0xb1, + 0x08, 0xf5, 0xdd, 0xd1, 0x7e, 0xf8, 0x84, 0x45, 0x07, 0x5a, 0x17, 0x6a, 0xcc, 0xb6, 0x39, 0x46, + 0x51, 0xb7, 0xb0, 0x5a, 0x58, 0x6f, 0x18, 0xc9, 0x50, 0x5b, 0x81, 0xa6, 0xc5, 0x91, 0xc5, 0x68, + 0xc6, 0xee, 0x04, 0xbb, 0xc5, 0xd5, 0xc2, 0x7a, 0xc9, 0x00, 0x49, 0x7a, 0xe2, 0x4e, 0x50, 0x30, + 0x4c, 0x43, 0x3b, 0x65, 0x28, 0x49, 0x06, 0x49, 0x22, 0x86, 0x2e, 0xd4, 0x04, 0x12, 0x4c, 0xe3, + 0x6e, 0x99, 0xc0, 0x64, 0xa8, 0xad, 0x41, 0x5b, 0xe8, 0xd2, 0x0c, 0xb9, 0x1b, 0x70, 0x37, 0x3e, + 0xee, 0x56, 0x56, 0x0b, 0xeb, 0x15, 0xa3, 0x25, 0x88, 0x8f, 0x15, 0x4d, 0xeb, 0x40, 0x85, 0x63, + 0xcc, 0x8f, 0xbb, 0x55, 0x9a, 0x2c, 0x07, 0xda, 0x4d, 0x68, 0x4c, 0xd8, 0x91, 0x29, 0x91, 0x1a, + 0x21, 0xf5, 0x09, 0x3b, 0x32, 0x08, 0xbc, 0x03, 0xad, 0x69, 0x84, 0xdc, 0x4c, 0x8e, 0x54, 0xa7, + 0x23, 0x35, 0x05, 0x6d, 0x53, 0x1d, 0x4b, 0x83, 0xb2, 0x17, 0x38, 0x51, 0xb7, 0x41, 0x10, 0xfd, + 0xd6, 0x36, 0xa0, 0x84, 0x9c, 0x77, 0x61, 0xb5, 0xb0, 0xde, 0xdc, 0x58, 0xed, 0xcf, 0x59, 0x5d, + 0x1a, 0xb8, 0x2f, 0x54, 0xf6, 0xb1, 0xf8, 0x69, 0x08, 0x66, 0xfd, 0xab, 0x02, 0xdc, 0x12, 0xa4, + 0x6d, 0x52, 0xc8, 0xd6, 0xd4, 0x3a, 0xc0, 0x78, 0x33, 0x0c, 0x79, 0x70, 0xc8, 0x3c, 0xd2, 0xec, + 0x87, 0x50, 0x16, 0xc7, 0x21, 0xb5, 0x36, 0x37, 0x6e, 0xf7, 0x17, 0xf8, 0x52, 0x3f, 0x31, 0x83, + 0x41, 0xac, 0xda, 0xe7, 0xa0, 0x29, 0x95, 0x0f, 0x69, 0x3d, 0xd3, 0xf5, 0x47, 0x01, 0x69, 0xbe, + 0xb9, 0xb1, 0xd6, 0xcf, 0x6c, 0xdb, 0x57, 0xb6, 0xef, 0x3f, 0x8c, 0x9c, 0xfc, 0xfe, 0xc6, 0xb2, + 0x95, 0x1b, 0xed, 0xf9, 0xa3, 0x40, 0x5b, 0x85, 0xe6, 0xc8, 0xf5, 0x1d, 0xe4, 0x21, 0x77, 0xfd, + 0x98, 0x8c, 0xd4, 0x32, 0xf2, 0x24, 0xfd, 0x37, 0x05, 0xb8, 0x2d, 0xe4, 0x78, 0xe8, 0x3a, 0xfc, + 0xdc, 0x4e, 0xf2, 0x04, 0x2e, 0x4f, 0xe4, 0x7a, 0x0b, 0x8e, 0xf2, 0xad, 0x13, 0x8e, 0x32, 0x23, + 0x81, 0x71, 0x69, 0x92, 0x1f, 0x8a, 0xc3, 0xcc, 0xe9, 0xfc, 0xd1, 0xf0, 0xc7, 0x68, 0x9d, 0xa3, + 0xce, 0x03, 0x5a, 0xef, 0xec, 0x3a, 0x97, 0xfb, 0x27, 0x3a, 0x97, 0xa3, 0x33, 0xea, 0xfc, 0x0f, + 0x65, 0xe8, 0x09, 0x39, 0x0c, 0x0c, 0x3d, 0xd7, 0x62, 0x31, 0x3e, 0x76, 0xd1, 0xc2, 0x37, 0x3d, + 0xca, 0x03, 0x68, 0xbe, 0x7c, 0x86, 0xde, 0xa2, 0x33, 0x64, 0xc2, 0x1a, 0x10, 0x64, 0x82, 0x6f, + 0xc2, 0x92, 0xe2, 0x30, 0x65, 0x4e, 0x22, 0xd9, 0x9b, 0x1b, 0x37, 0x16, 0xad, 0xf1, 0x98, 0x38, + 0x8c, 0xb6, 0x1a, 0xcb, 0xa1, 0x76, 0x1f, 0xae, 0x89, 0xc0, 0x8e, 0x42, 0x33, 0x08, 0x91, 0xb3, + 0x38, 0xc8, 0x82, 0xb1, 0x4c, 0x11, 0xd7, 0x61, 0xd1, 0xc1, 0x7e, 0xf8, 0x48, 0x81, 0x49, 0x54, + 0xae, 0x41, 0x9b, 0xa6, 0xb9, 0x8e, 0xcf, 0xe2, 0x29, 0x47, 0x4a, 0x08, 0x2d, 0xa3, 0x25, 0x98, + 0x13, 0x9a, 0xf6, 0x01, 0x74, 0x18, 0xa9, 0x08, 0x6d, 0xb1, 0x01, 0xfa, 0x76, 0x18, 0x08, 0x05, + 0x57, 0x69, 0x61, 0x2d, 0xc1, 0xf6, 0xc3, 0x8f, 0x15, 0xa2, 0x3d, 0x80, 0x5b, 0xf9, 0x19, 0x2f, + 0x89, 0x54, 0xa3, 0x99, 0xd7, 0xb3, 0x99, 0xf3, 0x72, 0xdd, 0x03, 0x2d, 0x5b, 0x20, 0x15, 0xae, + 0x4e, 0xc2, 0x5d, 0x4a, 0xa7, 0xa5, 0x12, 0xce, 0xed, 0xc7, 0x94, 0x41, 0xd3, 0xfd, 0x1a, 0xf3, + 0xfb, 0x25, 0x26, 0x4f, 0xf6, 0xbb, 0x0b, 0x4b, 0x78, 0x14, 0xba, 0x1c, 0x6d, 0x73, 0x8c, 0xae, + 0x33, 0x8e, 0x29, 0x29, 0x95, 0x8d, 0xb6, 0xa2, 0x7e, 0x4a, 0x44, 0xfd, 0xa7, 0x45, 0xe8, 0x08, + 0xe3, 0xff, 0x30, 0xf4, 0x02, 0x66, 0x4b, 0x6b, 0xbe, 0xae, 0xd7, 0xdc, 0x87, 0x6b, 0xaa, 0x54, + 0x98, 0x54, 0x2b, 0xcc, 0x11, 0x9b, 0xb8, 0xde, 0xb1, 0xe9, 0xda, 0xe4, 0x41, 0x6d, 0xa3, 0xa3, + 0xe0, 0x5d, 0x81, 0x7e, 0x42, 0xe0, 0x9e, 0x3d, 0xef, 0x6c, 0xa5, 0x73, 0x70, 0xb6, 0xf2, 0x2b, + 0x3a, 0x9b, 0xfe, 0xb7, 0xa2, 0x4c, 0x5d, 0x06, 0x46, 0xd3, 0x09, 0x1b, 0x7a, 0x78, 0x1e, 0xfa, + 0x78, 0x1b, 0xa2, 0xe8, 0x2a, 0x54, 0x83, 0xd1, 0x28, 0x42, 0x59, 0x38, 0xcb, 0x86, 0x1a, 0x09, + 0xba, 0x87, 0xbe, 0x13, 0x8f, 0x29, 0x3e, 0xca, 0x86, 0x1a, 0x69, 0xb7, 0xa0, 0x61, 0x05, 0x93, + 0xd0, 0xc3, 0x18, 0x6d, 0x0a, 0x87, 0xba, 0x91, 0x11, 0x4e, 0xb3, 0x70, 0xed, 0x64, 0x0b, 0xeb, + 0x7f, 0x2f, 0xc1, 0xd5, 0x97, 0x93, 0xd4, 0xbb, 0xac, 0xd6, 0x01, 0x5c, 0x8e, 0xd0, 0x0a, 0x7c, + 0x9b, 0xf1, 0xe3, 0x24, 0x26, 0x51, 0xf8, 0x5d, 0x49, 0xe4, 0x8f, 0x14, 0xda, 0x4c, 0x10, 0xed, + 0x43, 0xe8, 0x64, 0x13, 0xd2, 0xf8, 0x8f, 0xba, 0x95, 0xd5, 0xd2, 0x7a, 0xcb, 0xc8, 0x16, 0x4b, + 0x33, 0x00, 0x99, 0x2e, 0x42, 0xe6, 0xa5, 0x76, 0x50, 0x23, 0x61, 0x04, 0xc7, 0x0b, 0x86, 0xcc, + 0x33, 0x67, 0x6d, 0x91, 0x19, 0x41, 0xc2, 0x5f, 0xe4, 0x4c, 0xb1, 0x67, 0xcf, 0x8a, 0x9c, 0x64, + 0x3c, 0xd1, 0xd8, 0xcc, 0x8a, 0x9c, 0x64, 0x3c, 0x71, 0xc6, 0x8e, 0x1f, 0xc4, 0x26, 0x3b, 0x64, + 0xae, 0x27, 0x42, 0x42, 0xe4, 0x21, 0xd7, 0x3e, 0xa2, 0xd4, 0x53, 0x31, 0x2e, 0xf9, 0x41, 0xbc, + 0x99, 0x40, 0xfb, 0xe1, 0x9e, 0x7d, 0xa4, 0x7f, 0xa3, 0x72, 0x89, 0x81, 0x56, 0x70, 0x88, 0xfc, + 0x9d, 0x37, 0xf2, 0x0a, 0x34, 0x23, 0x74, 0x26, 0xe8, 0xc7, 0x74, 0xee, 0x32, 0x29, 0x17, 0x14, + 0x69, 0xcf, 0x3e, 0xd2, 0xae, 0x40, 0x15, 0x2d, 0xc2, 0x64, 0xd7, 0x59, 0x41, 0x4b, 0x90, 0x6f, + 0x03, 0x84, 0xe2, 0xec, 0x66, 0xe4, 0x3e, 0x43, 0x32, 0x5e, 0xd9, 0x68, 0x10, 0x65, 0xdf, 0x7d, + 0x86, 0x22, 0xc4, 0xb2, 0x02, 0x50, 0xa3, 0x02, 0x90, 0x11, 0x04, 0xca, 0xa5, 0xfe, 0xd0, 0xa6, + 0xf2, 0x50, 0x37, 0x32, 0x82, 0xfe, 0xf3, 0x72, 0xaa, 0x62, 0x74, 0x0f, 0xf1, 0x7f, 0x5f, 0xc5, + 0x77, 0x61, 0x89, 0xa3, 0x3d, 0xf5, 0x6d, 0xe6, 0x5b, 0xc7, 0x39, 0x55, 0xb7, 0x33, 0xea, 0x62, + 0x95, 0x97, 0xf2, 0x2a, 0xbf, 0x0b, 0x4b, 0x12, 0xb6, 0xc6, 0x68, 0x1d, 0x44, 0xd3, 0x89, 0xd2, + 0x7b, 0x9b, 0xa8, 0xdb, 0x8a, 0x38, 0x6b, 0x99, 0xfa, 0xbc, 0x65, 0xb2, 0x78, 0x6c, 0xcc, 0xc4, + 0xe3, 0x0d, 0xa8, 0x8f, 0x5c, 0xdf, 0x8d, 0xc6, 0x68, 0x53, 0x8d, 0xad, 0x1b, 0xe9, 0xf8, 0xb4, + 0x58, 0x6d, 0x9e, 0x12, 0xab, 0xdf, 0x86, 0x65, 0xd5, 0xec, 0xca, 0xd6, 0xd5, 0x0d, 0xfc, 0x6e, + 0x8b, 0x96, 0xbe, 0x28, 0xe9, 0x0f, 0x13, 0xb2, 0xfe, 0xab, 0x12, 0x68, 0xc2, 0xb0, 0xfb, 0xc8, + 0xbc, 0x77, 0xbf, 0x5c, 0xfd, 0x27, 0xf2, 0xea, 0x29, 0x36, 0xa9, 0xbe, 0x7a, 0xfe, 0xac, 0x9d, + 0x94, 0x3f, 0xf5, 0xdf, 0x17, 0x65, 0xd5, 0xdb, 0x09, 0x9e, 0xfa, 0x6f, 0x41, 0x33, 0xf1, 0x00, + 0x9a, 0xf9, 0x0b, 0xd4, 0x29, 0x6d, 0x56, 0x76, 0x4f, 0x32, 0x60, 0x98, 0x5d, 0x00, 0xdf, 0xbc, + 0xcd, 0xd2, 0x96, 0xa1, 0xe4, 0x05, 0x4f, 0x29, 0x84, 0x4b, 0x86, 0xf8, 0x29, 0x2e, 0xd1, 0x63, + 0xd7, 0x19, 0xab, 0x90, 0xa5, 0xdf, 0xfa, 0xef, 0x4a, 0x70, 0x25, 0xaf, 0xb8, 0xff, 0x6e, 0x96, + 0x7b, 0x1b, 0xf4, 0x76, 0x07, 0x5a, 0xe8, 0x53, 0x0d, 0xa6, 0x04, 0x46, 0x0a, 0xac, 0x1b, 0x4d, + 0x49, 0xa3, 0xf4, 0x25, 0x32, 0x60, 0x1c, 0xc4, 0xcc, 0x9b, 0x29, 0x3a, 0x44, 0xa1, 0x0c, 0x78, + 0x13, 0x64, 0x3a, 0x34, 0x0f, 0xf0, 0x58, 0x5d, 0x56, 0xea, 0x44, 0xf8, 0x3e, 0xd2, 0x63, 0x87, + 0x04, 0x55, 0xab, 0x58, 0xa7, 0xd9, 0x4d, 0xa2, 0x3d, 0x92, 0xfd, 0x62, 0xca, 0xa2, 0xba, 0xc6, + 0x46, 0x8e, 0xe5, 0x07, 0x44, 0xd2, 0xbf, 0x52, 0x5d, 0xde, 0xf6, 0x98, 0x79, 0x82, 0x0b, 0xff, + 0x6f, 0xb7, 0xb9, 0xf2, 0x56, 0x39, 0x43, 0x79, 0xab, 0x2e, 0x2a, 0x6f, 0x77, 0x61, 0xc9, 0xf5, + 0x63, 0x74, 0xb8, 0x1b, 0x1f, 0x9b, 0x63, 0x16, 0x8d, 0x93, 0xfa, 0x95, 0x52, 0x3f, 0x65, 0xd1, + 0x38, 0xab, 0x82, 0xc4, 0x52, 0xa7, 0x14, 0x28, 0xcd, 0x4e, 0xf0, 0x7b, 0x70, 0x51, 0xc2, 0x36, + 0x8b, 0x99, 0xf4, 0x93, 0x06, 0x85, 0x9d, 0x2c, 0x83, 0x3b, 0x2c, 0x66, 0xc2, 0x57, 0xf4, 0x5f, + 0x17, 0x61, 0x59, 0x58, 0x63, 0x77, 0xfb, 0xcd, 0x52, 0xd6, 0xfb, 0xa0, 0x45, 0x31, 0xe3, 0xb1, + 0x39, 0xf4, 0x02, 0xeb, 0xc0, 0xf4, 0xa7, 0x93, 0x21, 0x72, 0xb2, 0x64, 0xd9, 0x58, 0x26, 0x64, + 0x4b, 0x00, 0x9f, 0x11, 0x5d, 0x5b, 0x87, 0x65, 0xf4, 0xed, 0x59, 0xde, 0x12, 0xf1, 0x2e, 0xa1, + 0x6f, 0xe7, 0x39, 0x3f, 0x80, 0x8e, 0x35, 0xe5, 0x5c, 0x68, 0x75, 0x86, 0x5b, 0xde, 0x70, 0x34, + 0x85, 0xe5, 0x67, 0x7c, 0x04, 0x57, 0x3d, 0x16, 0xc5, 0xa6, 0x8d, 0x74, 0x8f, 0x49, 0x1f, 0x68, + 0x6c, 0x75, 0xfb, 0xb9, 0x2c, 0xd0, 0x1d, 0x09, 0x2a, 0x77, 0xb2, 0xb5, 0x2e, 0xd4, 0xf8, 0xd4, + 0xf7, 0x5d, 0xdf, 0x51, 0x0d, 0x78, 0x32, 0xd4, 0xff, 0x52, 0x90, 0x09, 0x6a, 0x77, 0xfb, 0xcb, + 0x60, 0x32, 0x74, 0xdf, 0xcc, 0xd1, 0x73, 0xdb, 0x14, 0x67, 0xb6, 0x11, 0xf6, 0x92, 0xfa, 0xcb, + 0xc4, 0x95, 0x0a, 0x69, 0x13, 0x39, 0x15, 0x54, 0x87, 0xb6, 0xd0, 0x5c, 0xc6, 0x25, 0x15, 0xd1, + 0x44, 0x3f, 0x3b, 0x4c, 0xbe, 0x49, 0xa9, 0xcc, 0x36, 0x29, 0xfa, 0xcf, 0x0a, 0xb0, 0x24, 0x8f, + 0xf3, 0x10, 0x63, 0xf6, 0xba, 0xe7, 0x58, 0x81, 0x66, 0x62, 0x15, 0xe1, 0xc7, 0xd2, 0xcc, 0xa0, + 0x48, 0xc2, 0x89, 0xef, 0x40, 0x4b, 0xea, 0xdf, 0xb4, 0x82, 0xa9, 0x7a, 0xcd, 0x2a, 0x1b, 0x4d, + 0x49, 0xdb, 0x16, 0x24, 0xfd, 0x97, 0x65, 0xd9, 0xcc, 0xa8, 0xf7, 0xbb, 0xdd, 0x2f, 0x76, 0x5f, + 0x57, 0x9a, 0x9b, 0xd0, 0x48, 0xa2, 0xdf, 0x56, 0xb2, 0xd4, 0x55, 0x6c, 0xdb, 0xda, 0x0e, 0xd4, + 0x22, 0x6e, 0x99, 0xce, 0xa1, 0xa3, 0xd2, 0xc2, 0x77, 0xf3, 0x21, 0x9d, 0x7f, 0xee, 0xee, 0xef, + 0xbe, 0xd4, 0x0a, 0x18, 0xd5, 0x88, 0x5b, 0xbb, 0x87, 0x8e, 0xf6, 0x09, 0xd4, 0x6d, 0x8c, 0x62, + 0x5a, 0xa6, 0xfc, 0xea, 0xcb, 0xd4, 0xc4, 0x64, 0xb1, 0xce, 0x19, 0x5b, 0xdc, 0xfb, 0x20, 0x36, + 0x36, 0xa3, 0x90, 0xbc, 0x71, 0x3e, 0x95, 0x85, 0xfd, 0x7d, 0x95, 0x79, 0x78, 0x70, 0xe8, 0xda, + 0xc8, 0x8d, 0x4a, 0xc4, 0xad, 0xfd, 0x50, 0x74, 0x3b, 0xe4, 0xfa, 0xea, 0x0d, 0x34, 0xef, 0x26, + 0x35, 0x52, 0x4b, 0x47, 0xc0, 0x4a, 0xe1, 0x8b, 0xfd, 0xa5, 0x3e, 0xd7, 0xd4, 0xae, 0x40, 0x53, + 0x3e, 0x22, 0xc9, 0xe7, 0x7a, 0x99, 0x43, 0x40, 0x92, 0xe8, 0xb9, 0x7e, 0xa6, 0x8f, 0x86, 0xf9, + 0x3e, 0xba, 0x9f, 0xbe, 0xe8, 0xda, 0xe6, 0xf0, 0x38, 0xc6, 0x48, 0xa6, 0xa2, 0x26, 0x49, 0x93, + 0xbc, 0xd5, 0xda, 0x5b, 0x02, 0xa1, 0x74, 0xf4, 0x0f, 0x75, 0xad, 0x54, 0x32, 0xbe, 0xf3, 0x77, + 0x1e, 0x11, 0xd6, 0x64, 0xc8, 0xec, 0xdd, 0x51, 0x3e, 0x68, 0xb6, 0xc9, 0x62, 0xe9, 0x93, 0xe3, + 0x79, 0x15, 0x8f, 0xef, 0xc0, 0x25, 0x37, 0x32, 0x67, 0xee, 0x13, 0xf2, 0xde, 0x59, 0x37, 0x2e, + 0xba, 0xd1, 0x56, 0xee, 0x3e, 0x81, 0xfa, 0x01, 0x5c, 0x97, 0x99, 0x60, 0x6b, 0xf6, 0x9a, 0xf1, + 0xef, 0x08, 0x43, 0xfd, 0xb7, 0x45, 0xb8, 0x26, 0xf8, 0xe7, 0xf6, 0x22, 0x3d, 0xcf, 0x4c, 0x2c, + 0xcc, 0xc5, 0x6f, 0xde, 0x39, 0x8b, 0x73, 0xce, 0x79, 0x82, 0x77, 0x95, 0x4e, 0xf0, 0x2e, 0xed, + 0x7b, 0x40, 0x81, 0x28, 0xe2, 0xaa, 0x7c, 0xa6, 0xb8, 0xaa, 0x0a, 0x76, 0x0a, 0xac, 0x24, 0x1e, + 0x2b, 0xaf, 0x12, 0x8f, 0x73, 0xc1, 0x53, 0x3d, 0x3d, 0x78, 0xe6, 0x9f, 0x07, 0xf4, 0x3f, 0x17, + 0xe1, 0x72, 0xa6, 0xb3, 0xcf, 0xa7, 0x41, 0xcc, 0xfe, 0xb5, 0xbe, 0x3a, 0x50, 0x99, 0x04, 0x7e, + 0x3c, 0x26, 0x65, 0x35, 0x0c, 0x39, 0x10, 0x92, 0xa8, 0x29, 0x3e, 0x53, 0x5f, 0xdd, 0x1a, 0x49, + 0x03, 0xf4, 0x19, 0x9b, 0xa0, 0xa8, 0xdf, 0x1c, 0x99, 0x6d, 0x5a, 0x81, 0x1f, 0x4d, 0x27, 0xf4, + 0x6e, 0xfd, 0x0c, 0x55, 0x71, 0x59, 0x16, 0xc8, 0xb6, 0x02, 0x94, 0x22, 0xbb, 0x23, 0x8e, 0x68, + 0xfe, 0x44, 0xc8, 0x34, 0x37, 0x47, 0x56, 0xd9, 0x2b, 0x02, 0x27, 0x91, 0x67, 0x26, 0xbe, 0x07, + 0x17, 0x73, 0x13, 0x73, 0xed, 0x6b, 0x3b, 0xe5, 0x27, 0xbe, 0xf7, 0x41, 0xb3, 0xc6, 0x8c, 0x3b, + 0x68, 0xe7, 0x59, 0x65, 0x12, 0x5b, 0x56, 0x48, 0xc6, 0xbd, 0x06, 0x6d, 0xe6, 0x79, 0xc1, 0xd3, + 0xd4, 0xe3, 0x65, 0x16, 0x6b, 0x11, 0x31, 0xf9, 0x3e, 0xf4, 0xa3, 0x3f, 0x3d, 0xef, 0x15, 0xbe, + 0x7e, 0xde, 0x2b, 0x7c, 0xf3, 0xbc, 0x57, 0xf8, 0xc5, 0x8b, 0xde, 0x85, 0xaf, 0x5f, 0xf4, 0x2e, + 0xfc, 0xf5, 0x45, 0xef, 0xc2, 0x97, 0x3b, 0x8e, 0x1b, 0x8f, 0xa7, 0xc3, 0xbe, 0x15, 0x4c, 0x06, + 0x43, 0x7f, 0x78, 0xcf, 0x1a, 0x33, 0xd7, 0x1f, 0x64, 0x16, 0xbe, 0xa7, 0x62, 0xfa, 0x5e, 0xa8, + 0xec, 0x3b, 0x58, 0xf0, 0x05, 0x78, 0x58, 0xa5, 0xef, 0xa4, 0x1f, 0xfd, 0x33, 0x00, 0x00, 0xff, + 0xff, 0xfe, 0xe0, 0xd5, 0xfb, 0x1f, 0x1e, 0x00, 0x00, } func (m *GfSpTask) Marshal() (dAtA []byte, err error) { @@ -3555,11 +3510,6 @@ func (m *GfSpGCMetaTask) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.MetaTaskType != 0 { - i = encodeVarintTask(dAtA, i, uint64(m.MetaTaskType)) - i-- - dAtA[i] = 0x20 - } if m.DeleteCount != 0 { i = encodeVarintTask(dAtA, i, uint64(m.DeleteCount)) i-- @@ -4555,9 +4505,6 @@ func (m *GfSpGCMetaTask) Size() (n int) { if m.DeleteCount != 0 { n += 1 + sovTask(uint64(m.DeleteCount)) } - if m.MetaTaskType != 0 { - n += 1 + sovTask(uint64(m.MetaTaskType)) - } return n } @@ -8764,25 +8711,6 @@ func (m *GfSpGCMetaTask) Unmarshal(dAtA []byte) error { break } } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MetaTaskType", wireType) - } - m.MetaTaskType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTask - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MetaTaskType |= GfSpGCMetaTaskType(b&0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := skipTask(dAtA[iNdEx:]) diff --git a/core/module/modular.go b/core/module/modular.go index 630272586..203c25829 100644 --- a/core/module/modular.go +++ b/core/module/modular.go @@ -207,7 +207,7 @@ type Manager interface { HandleGCZombiePieceTask(ctx context.Context, task task.GCZombiePieceTask) error // HandleGCMetaTask handles GCMetaTask, the request comes from TaskExecutor. HandleGCMetaTask(ctx context.Context, task task.GCMetaTask) error - // HandleGCBucketMigrationTask handles GCMetaTask, the request comes from TaskExecutor. + // HandleGCBucketMigrationTask handles GC bucket migration task, the request comes from TaskExecutor. HandleGCBucketMigrationTask(ctx context.Context, task task.GCBucketMigrationTask) error // HandleDownloadObjectTask handles DownloadObjectTask, the request comes from Downloader. HandleDownloadObjectTask(ctx context.Context, task task.DownloadObjectTask) error diff --git a/core/module/modular_mock.go b/core/module/modular_mock.go index 1baadbd2c..5c373228b 100644 --- a/core/module/modular_mock.go +++ b/core/module/modular_mock.go @@ -1,6 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: core/module/modular.go - +// Source: ./modular.go +// +// Generated by this command: +// +// mockgen -source=./modular.go -destination=./modular_mock.go -package=module +// // Package module is a generated GoMock package. package module diff --git a/core/spdb/entity.go b/core/spdb/entity.go index 2cd617da2..4565ca508 100644 --- a/core/spdb/entity.go +++ b/core/spdb/entity.go @@ -36,7 +36,7 @@ type GCObjectMeta struct { LastDeletedObjectID uint64 } -// GCPieceMeta defines the payload integrity hash and piece checksum with objectID. +// GCPieceMeta defines the gc piece with segment index and piece checksum. type GCPieceMeta struct { ObjectID uint64 SegmentIndex uint32 diff --git a/core/spdb/spdb.go b/core/spdb/spdb.go index 0e5dd587a..3b8241442 100644 --- a/core/spdb/spdb.go +++ b/core/spdb/spdb.go @@ -69,8 +69,8 @@ type SignatureDB interface { UpdateIntegrityChecksum(integrity *IntegrityMeta) error // UpdatePieceChecksum if the IntegrityMetaTable already exists, it will be appended to the existing PieceChecksumList. UpdatePieceChecksum(objectID uint64, redundancyIndex int32, checksum []byte) error - // ListIntegrityMetaByObjectIDRange list object in range - ListIntegrityMetaByObjectIDRange(startBlockNumber int64, endBlockNumber int64, includePrivate bool) ([]*IntegrityMeta, error) + // ListIntegrityMetaByObjectIDRange list integrity meta in range + ListIntegrityMetaByObjectIDRange(startObjectID int64, endObjectID int64, includePrivate bool) ([]*IntegrityMeta, error) /* Piece Signature is used to help replicate object's piece data to secondary sps, which is temporary. */ @@ -86,7 +86,7 @@ type SignatureDB interface { DeleteAllReplicatePieceChecksum(objectID uint64, redundancyIdx int32, pieceCount uint32) error // DeleteAllReplicatePieceChecksumOptimized deletes all piece hashes. DeleteAllReplicatePieceChecksumOptimized(objectID uint64, redundancyIdx int32) error - // ListReplicatePieceChecksumByObjectIDRange list object in range + // ListReplicatePieceChecksumByObjectIDRange list replicate piece checksum in range ListReplicatePieceChecksumByObjectIDRange(startObjectID int64, endObjectID int64) ([]*GCPieceMeta, error) } @@ -116,8 +116,8 @@ type TrafficDB interface { // GetUserReadRecord return user record list by time range. GetUserReadRecord(userAddress string, timeRange *TrafficTimeRange) ([]*ReadRecord, error) - // DeleteExpiredReadRecord delete all read record before ts - DeleteExpiredReadRecord(ts uint64) (err error) + // DeleteExpiredReadRecord delete all read record before ts with limit + DeleteExpiredReadRecord(ts, limit uint64) (err error) // DeleteExpiredBucketTraffic delete all bucket traffic before yearMonth, when large dataset DeleteExpiredBucketTraffic(yearMonth string) (err error) } diff --git a/core/spdb/spdb_mock.go b/core/spdb/spdb_mock.go index 5f8919131..c13e1d60a 100644 --- a/core/spdb/spdb_mock.go +++ b/core/spdb/spdb_mock.go @@ -1,6 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. // Source: core/spdb/spdb.go - +// +// Generated by this command: +// +// mockgen -source=core/spdb/spdb.go -destination=core/spdb/spdb_mock.go -package=spdb +// // Package spdb is a generated GoMock package. package spdb @@ -94,17 +98,17 @@ func (mr *MockSPDBMockRecorder) DeleteExpiredBucketTraffic(yearMonth interface{} } // DeleteExpiredReadRecord mocks base method. -func (m *MockSPDB) DeleteExpiredReadRecord(ts uint64) error { +func (m *MockSPDB) DeleteExpiredReadRecord(ts, limit uint64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteExpiredReadRecord", ts) + ret := m.ctrl.Call(m, "DeleteExpiredReadRecord", ts, limit) ret0, _ := ret[0].(error) return ret0 } // DeleteExpiredReadRecord indicates an expected call of DeleteExpiredReadRecord. -func (mr *MockSPDBMockRecorder) DeleteExpiredReadRecord(ts interface{}) *gomock.Call { +func (mr *MockSPDBMockRecorder) DeleteExpiredReadRecord(ts, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredReadRecord", reflect.TypeOf((*MockSPDB)(nil).DeleteExpiredReadRecord), ts) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredReadRecord", reflect.TypeOf((*MockSPDB)(nil).DeleteExpiredReadRecord), ts, limit) } // DeleteGCObjectProgress mocks base method. @@ -1452,17 +1456,17 @@ func (mr *MockTrafficDBMockRecorder) DeleteExpiredBucketTraffic(yearMonth interf } // DeleteExpiredReadRecord mocks base method. -func (m *MockTrafficDB) DeleteExpiredReadRecord(ts uint64) error { +func (m *MockTrafficDB) DeleteExpiredReadRecord(ts, limit uint64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteExpiredReadRecord", ts) + ret := m.ctrl.Call(m, "DeleteExpiredReadRecord", ts, limit) ret0, _ := ret[0].(error) return ret0 } // DeleteExpiredReadRecord indicates an expected call of DeleteExpiredReadRecord. -func (mr *MockTrafficDBMockRecorder) DeleteExpiredReadRecord(ts interface{}) *gomock.Call { +func (mr *MockTrafficDBMockRecorder) DeleteExpiredReadRecord(ts, limit interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).DeleteExpiredReadRecord), ts) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteExpiredReadRecord", reflect.TypeOf((*MockTrafficDB)(nil).DeleteExpiredReadRecord), ts, limit) } // GetBucketReadRecord mocks base method. diff --git a/core/task/task.go b/core/task/task.go index 8cf5a9574..0964e8bc2 100644 --- a/core/task/task.go +++ b/core/task/task.go @@ -496,13 +496,13 @@ type GCZombiePieceTask interface { GCTask // InitGCZombiePieceTask inits InitGCObjectTask. InitGCZombiePieceTask(priority TPriority, start, end uint64, timeout int64) - // SetStartObjectID sets start block number for collecting object. + // SetStartObjectID sets start block number for collecting zombie piece. SetStartObjectID(uint64) - // GetStartObjectId returns start block number for collecting object. + // GetStartObjectId returns start block number for collecting zombie piece. GetStartObjectId() uint64 - // SetEndObjectID sets start block number for collecting object. + // SetEndObjectID sets start block number for collecting zombie piece. SetEndObjectID(uint64) - // GetEndObjectId returns start block number for collecting object. + // GetEndObjectId returns start block number for collecting zombie piece. GetEndObjectId() uint64 } @@ -586,10 +586,10 @@ type MigrateGVGTask interface { SetSignature([]byte) } -// GCBucketMigrationTask is an abstract interface to gc useless object piece data and integrity meta +// GCBucketMigrationTask is an abstract interface to gc useless object after bucket migration type GCBucketMigrationTask interface { Task - // InitGCBucketMigrationTask inits migrate gvg task by bucket id, gvg. + // InitGCBucketMigrationTask inits gc bucket migration task by bucket id. InitGCBucketMigrationTask(priority TPriority, bucketID uint64, timeout, retry int64) // GetBucketID returns the bucketID GetBucketID() uint64 diff --git a/core/task/task_mock.go b/core/task/task_mock.go index 64d87777b..5fd2e2dd2 100644 --- a/core/task/task_mock.go +++ b/core/task/task_mock.go @@ -1,6 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: core/task/task.go - +// Source: ./task.go +// +// Generated by this command: +// +// mockgen -source=./task.go -destination=./task_mock.go -package=task +// // Package task is a generated GoMock package. package task diff --git a/modular/executor/execute_gc.go b/modular/executor/execute_gc.go index 97d952865..326f19a14 100644 --- a/modular/executor/execute_gc.go +++ b/modular/executor/execute_gc.go @@ -34,7 +34,7 @@ func NewGCWorker(e *ExecuteModular) *GCWorker { } } -// deleteObjectPiecesAndIntegrityMetaByObjectInfo used by gcZombiePiece +// deleteObjectPiecesAndIntegrityMeta used by gcZombiePiece func (gc *GCWorker) deleteObjectPiecesAndIntegrityMeta(ctx context.Context, integrityMeta *corespdb.IntegrityMeta) error { objID := integrityMeta.ObjectID redundancyIdx := integrityMeta.RedundancyIndex @@ -66,7 +66,7 @@ func (gc *GCWorker) deleteObjectSegments(ctx context.Context, objectInfo *storag storageParams.VersionedParams.GetMaxSegmentSize()) for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { pieceKey := gc.e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) - // ignore this delete api error, TODO: refine gc workflow by enrich metadata index. + // ignore this delete api error deleteErr := gc.e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) log.CtxDebugw(ctx, "succeed to delete the primary sp segment", "object_info", objectInfo, "piece_key", pieceKey, "error", deleteErr) @@ -370,7 +370,7 @@ func (e *ExecuteModular) gcMetaReadRecord(ctx context.Context, task coretask.GCM now := time.Now() daysAgo := now.Add(-time.Duration(e.readRecordKeepLatestDay) * time.Hour * 24) - err := e.baseApp.GfSpDB().DeleteExpiredReadRecord(uint64(daysAgo.UnixMicro())) + err := e.baseApp.GfSpDB().DeleteExpiredReadRecord(uint64(daysAgo.UnixMicro()), e.readRecordDeleteLimit) if err != nil { log.CtxErrorw(ctx, "failed to delete expired read record", "error", err) return err diff --git a/modular/executor/executor.go b/modular/executor/executor.go index 18bdcaa62..c1b4c2f3a 100644 --- a/modular/executor/executor.go +++ b/modular/executor/executor.go @@ -54,13 +54,15 @@ type ExecuteModular struct { // gc meta bucketTrafficKeepLatestDay uint64 readRecordKeepLatestDay uint64 + readRecordDeleteLimit uint64 + + gcWorker *GCWorker enableSkipFailedToMigrateObject bool // only for debugging, and online config can only be false - spID uint32 - spMap map[uint32]*sptypes.StorageProvider - mutex sync.RWMutex - gcWorker *GCWorker + spID uint32 + spMap map[uint32]*sptypes.StorageProvider + mutex sync.RWMutex } func (e *ExecuteModular) Name() string { @@ -315,7 +317,7 @@ func (e *ExecuteModular) ReleaseResource(ctx context.Context, span corercmgr.Res func (e *ExecuteModular) Statistics() string { return fmt.Sprintf( - "maxAsk[%d], asking[%d], replicate[%d], seal[%d], receive[%d], gcObject[%d], gcZombie[%d], gcMeta[%d], migrateGVG[%d], gcBucketMigration[%d]", + "maxAsk[%d], asking[%d], replicate[%d], seal[%d], receive[%d], gcObject[%d], gcZombie[%d], gcMeta[%d], gcBucketMigration[%d], migrateGVG[%d]", atomic.LoadInt64(&e.maxExecuteNum), atomic.LoadInt64(&e.executingNum), atomic.LoadInt64(&e.doingReplicatePieceTaskCnt), atomic.LoadInt64(&e.doingSpSealObjectTaskCnt), @@ -323,8 +325,8 @@ func (e *ExecuteModular) Statistics() string { atomic.LoadInt64(&e.doingGCObjectTaskCnt), atomic.LoadInt64(&e.doingGCZombiePieceTaskCnt), atomic.LoadInt64(&e.doingGCGCMetaTaskCnt), - atomic.LoadInt64(&e.doingMigrationGVGTaskCnt), - atomic.LoadInt64(&e.doingGCBucketMigrationCnt)) + atomic.LoadInt64(&e.doingGCBucketMigrationCnt), + atomic.LoadInt64(&e.doingMigrationGVGTaskCnt)) } func (e *ExecuteModular) getSPID() (uint32, error) { diff --git a/modular/executor/executor_options.go b/modular/executor/executor_options.go index 904848415..3d060fa6c 100644 --- a/modular/executor/executor_options.go +++ b/modular/executor/executor_options.go @@ -43,9 +43,11 @@ const ( // it is millisecond level DefaultSleepInterval = 100 // DefaultExecutorBucketTrafficKeepTimeDay defines the default max keep bucket traffic time for gc meta bucket traffic. - DefaultExecutorBucketTrafficKeepTimeDay uint64 = 30 * 6 + DefaultExecutorBucketTrafficKeepTimeDay uint64 = 30 * 3 // DefaultExecutorReadRecordKeepTimeDay defines the default max keep read record time for gc meta read record. DefaultExecutorReadRecordKeepTimeDay uint64 = 30 + // DefaultExecutorReadRecordDeleteLimit defines the default deletion limit for delete gc meta read record. + DefaultExecutorReadRecordDeleteLimit uint64 = 100 ) const ( @@ -121,12 +123,16 @@ func defaultExecutorOptions(executor *ExecuteModular, cfg *gfspconfig.GfSpConfig cfg.Executor.MaxObjectMigrationRetry = DefaultExecutorMaxObjectMigrationRetry } - if cfg.Executor.BucketTrafficKeepTimeDay == 0 { + if cfg.Executor.BucketTrafficKeepTimeDay == 0 || cfg.Executor.BucketTrafficKeepTimeDay < DefaultExecutorBucketTrafficKeepTimeDay { + // Retain at least 3 months of bucket traffic records to ensure that traffic data from the current month, which is still being read and written, will not be deleted. cfg.Executor.BucketTrafficKeepTimeDay = DefaultExecutorBucketTrafficKeepTimeDay } if cfg.Executor.ReadRecordKeepTimeDay == 0 { cfg.Executor.ReadRecordKeepTimeDay = DefaultExecutorReadRecordKeepTimeDay } + if cfg.Executor.ReadRecordDeleteLimit == 0 { + cfg.Executor.ReadRecordDeleteLimit = DefaultExecutorReadRecordDeleteLimit + } executor.maxListenSealRetry = cfg.Executor.MaxListenSealRetry executor.statisticsOutputInterval = DefaultStatisticsOutputInterval @@ -135,4 +141,5 @@ func defaultExecutorOptions(executor *ExecuteModular, cfg *gfspconfig.GfSpConfig executor.maxObjectMigrationRetry = cfg.Executor.MaxObjectMigrationRetry executor.bucketTrafficKeepLatestDay = cfg.Executor.BucketTrafficKeepTimeDay executor.readRecordKeepLatestDay = cfg.Executor.ReadRecordKeepTimeDay + executor.readRecordDeleteLimit = cfg.Executor.ReadRecordDeleteLimit } diff --git a/modular/executor/executor_task_test.go b/modular/executor/executor_task_test.go index 327fd279b..3c9e67c4b 100644 --- a/modular/executor/executor_task_test.go +++ b/modular/executor/executor_task_test.go @@ -910,7 +910,7 @@ func TestExecuteModular_HandleGCMetaTask(t *testing.T) { e.baseApp.SetPieceOp(m2) m4 := corespdb.NewMockSPDB(ctrl) - m4.EXPECT().DeleteExpiredReadRecord(gomock.Any()).Return(nil).AnyTimes() + m4.EXPECT().DeleteExpiredReadRecord(gomock.Any(), gomock.Any()).Return(nil).AnyTimes() m4.EXPECT().DeleteExpiredBucketTraffic(gomock.Any()).Return(nil).AnyTimes() e.baseApp.SetGfSpDB(m4) diff --git a/modular/manager/manage_task.go b/modular/manager/manage_task.go index cca7e3ef4..61bafc6a5 100644 --- a/modular/manager/manage_task.go +++ b/modular/manager/manage_task.go @@ -636,6 +636,8 @@ func (m *ManageModular) HandleGCZombiePieceTask(ctx context.Context, gcZombiePie } err := m.gcZombieQueue.Push(gcZombiePieceTask) log.CtxInfow(ctx, "succeed to push gc object task to queue again", "from", oldTask, "to", gcZombiePieceTask, "error", err) + // Note: The persistence of GC zombie progress in the database is not implemented at the moment. + // However, this lack of persistence does not impact correctness since GC zombie periodically scans all objects. return nil } diff --git a/modular/manager/manager.go b/modular/manager/manager.go index 6062cb155..4481f2e39 100644 --- a/modular/manager/manager.go +++ b/modular/manager/manager.go @@ -68,11 +68,11 @@ type ManageModular struct { gcObjectQueue taskqueue.TQueueOnStrategyWithLimit gcZombieQueue taskqueue.TQueueOnStrategyWithLimit gcMetaQueue taskqueue.TQueueOnStrategyWithLimit + gcBucketMigrationQueue taskqueue.TQueueOnStrategyWithLimit downloadQueue taskqueue.TQueueOnStrategy challengeQueue taskqueue.TQueueOnStrategy recoveryQueue taskqueue.TQueueOnStrategyWithLimit migrateGVGQueue taskqueue.TQueueOnStrategyWithLimit - gcBucketMigrationQueue taskqueue.TQueueOnStrategyWithLimit migrateGVGQueueMux sync.Mutex // src sp used TODO: these should be persisted @@ -137,6 +137,10 @@ func (m *ManageModular) Start(ctx context.Context) error { m.receiveQueue.SetFilterTaskStrategy(m.FilterReceiveTask) m.gcObjectQueue.SetRetireTaskStrategy(m.ResetGCObjectTask) m.gcObjectQueue.SetFilterTaskStrategy(m.FilterGCTask) + m.gcZombieQueue.SetRetireTaskStrategy(m.ResetGCZombieTask) + m.gcZombieQueue.SetFilterTaskStrategy(m.FilterGCTask) + m.gcMetaQueue.SetRetireTaskStrategy(m.ResetGCMetaTask) + m.gcMetaQueue.SetFilterTaskStrategy(m.FilterGCTask) m.downloadQueue.SetRetireTaskStrategy(m.GCCacheQueue) m.challengeQueue.SetRetireTaskStrategy(m.GCCacheQueue) m.recoveryQueue.SetRetireTaskStrategy(m.GCRecoverQueue) @@ -600,8 +604,28 @@ func (m *ManageModular) ResetGCObjectTask(qTask task.Task) bool { return false } -func (m *ManageModular) GCCacheQueue(qTask task.Task) bool { - return true +func (m *ManageModular) FilterGCTask(qTask task.Task) bool { + return qTask.GetRetry() == 0 +} + +func (m *ManageModular) ResetGCZombieTask(qTask task.Task) bool { + task := qTask.(task.GCZombiePieceTask) + if task.Expired() { + log.Errorw("reset gc zombie task", "old_task_key", task.Key().String()) + task.SetRetry(0) + log.Errorw("reset gc zombie task", "new_task_key", task.Key().String()) + } + return false +} + +func (m *ManageModular) ResetGCMetaTask(qTask task.Task) bool { + task := qTask.(task.GCMetaTask) + if task.Expired() { + log.Errorw("reset gc meta task", "old_task_key", task.Key().String()) + task.SetRetry(0) + log.Errorw("reset gc meta task", "new_task_key", task.Key().String()) + } + return false } func (m *ManageModular) ResetGCBucketMigrationQueue(qTask task.Task) bool { @@ -614,8 +638,8 @@ func (m *ManageModular) ResetGCBucketMigrationQueue(qTask task.Task) bool { return false } -func (m *ManageModular) FilterGCTask(qTask task.Task) bool { - return qTask.GetRetry() == 0 +func (m *ManageModular) GCCacheQueue(qTask task.Task) bool { + return true } func (m *ManageModular) FilterUploadingTask(qTask task.Task) bool { @@ -666,6 +690,10 @@ func (m *ManageModular) PickUpTask(ctx context.Context, tasks []task.Task) (task for _, t := range tasks { totalPriority += int(t.GetPriority()) } + // If all current tasks have an UnSchedulingPriority, i.e., all priorities are 0, then there is no need for scheduling. + if totalPriority <= 0 { + return nil, nil + } r := rand.New(rand.NewSource(time.Now().UnixNano())) randPriority := r.Intn(totalPriority) log.Debugw("pick up task", "total_priority", totalPriority, "rand_priority", randPriority) diff --git a/modular/manager/manager_options.go b/modular/manager/manager_options.go index b65aadd13..f5b129fe5 100644 --- a/modular/manager/manager_options.go +++ b/modular/manager/manager_options.go @@ -36,7 +36,7 @@ const ( // DefaultGlobalGCMetaParallel defines the default max parallel gc meta db in SP // system. DefaultGlobalGCMetaParallel int = 1 - // DefaultGlobalGCBucketMigrationParallel defines the default max parallel gc meta db in SP + // DefaultGlobalGCBucketMigrationParallel defines the default max parallel gc bucket migration in SP // system. DefaultGlobalGCBucketMigrationParallel int = 1 // DefaultGlobalRecoveryPieceParallel defines the default max parallel recovery objects in SP diff --git a/proto/base/types/gfsptask/task.proto b/proto/base/types/gfsptask/task.proto index 956b739c1..b861fc236 100644 --- a/proto/base/types/gfsptask/task.proto +++ b/proto/base/types/gfsptask/task.proto @@ -168,17 +168,10 @@ message GfSpGCZombiePieceTask { bool finished = 5; } -enum GfSpGCMetaTaskType { - GF_SP_GC_META_TASK_TYPE_UNSPECIFIED = 0; - GF_SP_GC_META_TASK_TYPE_BUCKET_TRAFFIC = 1; - GF_SP_GC_META_TASK_TYPE_TRAFFIC_READ_RECORD = 2; -} - message GfSpGCMetaTask { GfSpTask task = 1; uint64 current_idx = 2; uint64 delete_count = 3; - GfSpGCMetaTaskType meta_task_type = 4; } message GfSpMigrateGVGTask { diff --git a/store/bsdb/const.go b/store/bsdb/const.go index 028666926..1f65eeb83 100644 --- a/store/bsdb/const.go +++ b/store/bsdb/const.go @@ -4,8 +4,6 @@ package bsdb const ( // DeletedObjectsDefaultSize defines the default size of ListDeletedObjectsByBlockNumberRange response DeletedObjectsDefaultSize = 1000 - // ListObjectsDefaultSize defines the default size of ListObjectsByBlockNumberRange response - ListObjectsDefaultSize = 1000 // ExpiredBucketsDefaultSize defines the default size of ListExpiredBucketsBySp response ExpiredBucketsDefaultSize = 1000 // ListObjectsDefaultMaxKeys defines the default size of ListObjectsByBucketName response diff --git a/store/sqldb/traffic.go b/store/sqldb/traffic.go index b511ce6b0..983810632 100644 --- a/store/sqldb/traffic.go +++ b/store/sqldb/traffic.go @@ -644,9 +644,9 @@ func (s *SpDBImpl) GetUserReadRecord(userAddress string, timeRange *corespdb.Tra } // DeleteExpiredReadRecord delete all read record before ts(ts is UnixMicro) -func (s *SpDBImpl) DeleteExpiredReadRecord(ts uint64) (err error) { +func (s *SpDBImpl) DeleteExpiredReadRecord(ts, limit uint64) (err error) { var readRecords []ReadRecordTable - result := s.db.Where("read_timestamp_us < ?", ts).Limit(metaDeleteLimit).Find(&readRecords).Delete(&readRecords) + result := s.db.Where("read_timestamp_us < ?", ts).Limit(int(limit)).Find(&readRecords).Delete(&readRecords) if result.Error != nil { return fmt.Errorf("failed to delete read record in read record table: %s, ts:%d", result.Error, ts) } From efd48e31459ad6cc11a50a480cfbc82eda1be212 Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Tue, 21 Nov 2023 18:41:41 +0800 Subject: [PATCH 06/10] feat: bucket migration gc delete integrity --- modular/executor/execute_gc.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modular/executor/execute_gc.go b/modular/executor/execute_gc.go index 326f19a14..44ec9275e 100644 --- a/modular/executor/execute_gc.go +++ b/modular/executor/execute_gc.go @@ -52,7 +52,7 @@ func (gc *GCWorker) deleteObjectPiecesAndIntegrityMeta(ctx context.Context, inte return nil } -func (gc *GCWorker) deleteObjectSegments(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { +func (gc *GCWorker) deleteObjectSegmentsAndIntegrity(ctx context.Context, objectInfo *storagetypes.ObjectInfo) error { var ( storageParams *storagetypes.Params err error @@ -66,11 +66,12 @@ func (gc *GCWorker) deleteObjectSegments(ctx context.Context, objectInfo *storag storageParams.VersionedParams.GetMaxSegmentSize()) for segIdx := uint32(0); segIdx < segmentCount; segIdx++ { pieceKey := gc.e.baseApp.PieceOp().SegmentPieceKey(objectInfo.Id.Uint64(), segIdx) - // ignore this delete api error deleteErr := gc.e.baseApp.PieceStore().DeletePiece(ctx, pieceKey) log.CtxDebugw(ctx, "succeed to delete the primary sp segment", "object_info", objectInfo, "piece_key", pieceKey, "error", deleteErr) } + deleteErr := gc.e.baseApp.GfSpDB().DeleteObjectIntegrity(objectInfo.Id.Uint64(), piecestore.PrimarySPRedundancyIndex) + log.CtxDebugw(ctx, "delete the object and integrity meta", "object_info", objectInfo, "error", deleteErr) return nil } @@ -436,12 +437,11 @@ func (e *ExecuteModular) HandleGCBucketMigrationBucket(ctx context.Context, task for _, obj := range objects { objectInfo := obj.GetObject().GetObjectInfo() if e.gcWorker.checkGVGMatchSP(ctx, objectInfo, piecestore.PrimarySPRedundancyIndex) == ErrInvalidRedundancyIndex { - e.gcWorker.deleteObjectSegments(ctx, objectInfo) + e.gcWorker.deleteObjectSegmentsAndIntegrity(ctx, objectInfo) log.CtxInfow(ctx, "succeed to delete objects by gvg and bucket for gc", "object", objectInfo, "error", err) } } } - } func (e *ExecuteModular) gcZombiePieceFromIntegrityMeta(ctx context.Context, task coretask.GCZombiePieceTask) error { From 441be22a6f924c5b80326705146b4466e4cf4eb4 Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Fri, 24 Nov 2023 10:50:38 +0800 Subject: [PATCH 07/10] feat: fix some comment --- base/gfspapp/task_options.go | 4 +-- modular/executor/execute_gc.go | 29 ++++++++++++++------- modular/manager/bucket_migrate_scheduler.go | 4 +-- modular/manager/migrate_service.go | 4 +-- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/base/gfspapp/task_options.go b/base/gfspapp/task_options.go index 071740373..a60a3b481 100644 --- a/base/gfspapp/task_options.go +++ b/base/gfspapp/task_options.go @@ -52,9 +52,9 @@ const ( // MaxMigrateGVGTime defines the max timeout to migrate gvg. MaxMigrateGVGTime int64 = 3600 // 1 hour // MinGCBucketMigrationTime defines the min timeout to gc bucket migration. - MinGCBucketMigrationTime int64 = 300 // 0.5 hour + MinGCBucketMigrationTime int64 = 1800 // 0.5 hour // MaxGCBucketMigrationTime defines the max timeout to gc bucket migration. - MaxGCBucketMigrationTime int64 = 600 // 1 hour + MaxGCBucketMigrationTime int64 = 3600 // 1 hour // NotUseRetry defines the default task max retry. NotUseRetry int64 = 0 diff --git a/modular/executor/execute_gc.go b/modular/executor/execute_gc.go index 44ec9275e..34753a247 100644 --- a/modular/executor/execute_gc.go +++ b/modular/executor/execute_gc.go @@ -148,7 +148,8 @@ func (gc *GCWorker) getGvgAndSpId(ctx context.Context, objectInfo *storagetypes. // checkGVGMatchSP only return ErrInvalidRedundancyIndex means the piece was dislocation func (gc *GCWorker) checkGVGMatchSP(ctx context.Context, objectInfo *storagetypes.ObjectInfo, redundancyIndex int32) error { bucketInfo, gvg, spID, err := gc.getGvgAndSpId(ctx, objectInfo) - if err != nil { + if err != nil || bucketInfo == nil || gvg == nil { + log.CtxErrorw(ctx, "failed to get gvg and sp id", "object", objectInfo, "bucket", bucketInfo, "error", err) return err } @@ -219,11 +220,18 @@ func (e *ExecuteModular) HandleGCObjectTask(ctx context.Context, task coretask.G return } if len(waitingGCObjects) == 0 { - log.Error("no waiting gc objects") + log.Info("no waiting gc objects") hasNoObject = true return } + // TODO get sp id from config + spId, err := e.getSPID() + if err != nil { + log.Errorw("failed to get sp id", "error", err) + return + } + for _, object := range waitingGCObjects { if storageParams, err = e.baseApp.Consensus().QueryStorageParamsByTimestamp( context.Background(), object.GetObjectInfo().GetCreateAt()); err != nil { @@ -258,12 +266,7 @@ func (e *ExecuteModular) HandleGCObjectTask(ctx context.Context, task coretask.G log.Errorw("failed to get global virtual group", "error", err) return } - // TODO get sp id from config - spId, err := e.getSPID() - if err != nil { - log.Errorw("failed to get sp id", "error", err) - return - } + var redundancyIndex int32 = -1 for rIdx, sspId := range gvg.GetSecondarySpIds() { if spId == sspId { @@ -437,7 +440,7 @@ func (e *ExecuteModular) HandleGCBucketMigrationBucket(ctx context.Context, task for _, obj := range objects { objectInfo := obj.GetObject().GetObjectInfo() if e.gcWorker.checkGVGMatchSP(ctx, objectInfo, piecestore.PrimarySPRedundancyIndex) == ErrInvalidRedundancyIndex { - e.gcWorker.deleteObjectSegmentsAndIntegrity(ctx, objectInfo) + err = e.gcWorker.deleteObjectSegmentsAndIntegrity(ctx, objectInfo) log.CtxInfow(ctx, "succeed to delete objects by gvg and bucket for gc", "object", objectInfo, "error", err) } } @@ -510,14 +513,20 @@ func (e *ExecuteModular) gcZombiePieceFromPieceHash(ctx context.Context, task co } if len(waitingVerifyGCPieces) == 0 { - log.CtxErrorw(ctx, "no waiting gc pieces", "task_info", task.Info()) + log.CtxInfow(ctx, "no waiting gc pieces", "task_info", task.Info()) return nil } for _, piece := range waitingVerifyGCPieces { log.CtxDebugw(ctx, "gc zombie current waiting verify gc meta piece", "piece", piece) objID := piece.ObjectID + // Get object information from metadata + // Note:Currently, waitingVerifyGCPieces is returned at the granularity of a piece. We may need a cache to + // store already queried information if there are performance issues: + // + // 1) objectInfoFromMetadata, objInfoFromChain; + // 2) bucketInfo, gvgInfo, and so on. if objectInfoFromMetadata, err = e.baseApp.GfSpClient().GetObjectByID(ctx, objID); err != nil { // If the object doesn't exist in metadata, recheck from the chain before proceeding with the deletion. if strings.Contains(err.Error(), "no such object from metadata") { diff --git a/modular/manager/bucket_migrate_scheduler.go b/modular/manager/bucket_migrate_scheduler.go index 4ed35e4eb..d2f6aeb5d 100644 --- a/modular/manager/bucket_migrate_scheduler.go +++ b/modular/manager/bucket_migrate_scheduler.go @@ -692,9 +692,7 @@ func (s *BucketMigrateScheduler) PostMigrateBucket(postMsg *gfsptask.GfSpBucketM // if bucket migration failed, gc for dest sp if !postMsg.GetFinished() { // generate a gc bucket migration task(list objects and delete) - go func() { - s.manager.GenerateGCBucketMigrationTask(ctx, bucketID, postMsg.GetMigratedBytesSize()) - }() + go s.manager.GenerateGCBucketMigrationTask(ctx, bucketID, postMsg.GetMigratedBytesSize()) } return nil } diff --git a/modular/manager/migrate_service.go b/modular/manager/migrate_service.go index 41f62c19b..592608b6f 100644 --- a/modular/manager/migrate_service.go +++ b/modular/manager/migrate_service.go @@ -81,9 +81,7 @@ func (m *ManageModular) NotifyPostMigrateBucket(ctx context.Context, bmInfo *gfs } if bmInfo.GetFinished() { - go func() { - m.GenerateGCBucketMigrationTask(ctx, bucketID, bucketSize) - }() + go m.GenerateGCBucketMigrationTask(ctx, bucketID, bucketSize) } return nil From cc641ccfd1cca53914ce30380828138539454c6b Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Fri, 24 Nov 2023 11:27:02 +0800 Subject: [PATCH 08/10] feat: fix unit test --- modular/executor/executor_task_test.go | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/modular/executor/executor_task_test.go b/modular/executor/executor_task_test.go index 3c9e67c4b..6ae603dce 100644 --- a/modular/executor/executor_task_test.go +++ b/modular/executor/executor_task_test.go @@ -541,6 +541,7 @@ func TestExecuteModular_HandleGCObjectTask(t *testing.T) { m1 := consensus.NewMockConsensus(ctrl) m1.EXPECT().QueryStorageParamsByTimestamp(gomock.Any(), gomock.Any()).Return(nil, mockErr).Times(1) + m1.EXPECT().QuerySP(gomock.Any(), gomock.Any()).Return(&sptypes.StorageProvider{Id: 1}, nil).Times(1) e.baseApp.SetConsensus(m1) return e }, @@ -569,6 +570,7 @@ func TestExecuteModular_HandleGCObjectTask(t *testing.T) { m1 := consensus.NewMockConsensus(ctrl) m1.EXPECT().QueryStorageParamsByTimestamp(gomock.Any(), gomock.Any()).Return(&storagetypes.Params{ VersionedParams: storagetypes.VersionedParams{MaxSegmentSize: 10}}, nil).Times(1) + m1.EXPECT().QuerySP(gomock.Any(), gomock.Any()).Return(&sptypes.StorageProvider{Id: 1}, nil).Times(1) e.baseApp.SetConsensus(m1) m2 := piecestore.NewMockPieceOp(ctrl) @@ -608,6 +610,7 @@ func TestExecuteModular_HandleGCObjectTask(t *testing.T) { m1 := consensus.NewMockConsensus(ctrl) m1.EXPECT().QueryStorageParamsByTimestamp(gomock.Any(), gomock.Any()).Return(&storagetypes.Params{ VersionedParams: storagetypes.VersionedParams{MaxSegmentSize: 10}}, nil).Times(1) + m1.EXPECT().QuerySP(gomock.Any(), gomock.Any()).Return(&sptypes.StorageProvider{Id: 1}, nil).Times(1) e.baseApp.SetConsensus(m1) m2 := piecestore.NewMockPieceOp(ctrl) @@ -639,26 +642,12 @@ func TestExecuteModular_HandleGCObjectTask(t *testing.T) { m.EXPECT().ListDeletedObjectsByBlockNumberRange(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(waitingGCObjects, uint64(0), nil).Times(1) m.EXPECT().ReportTask(gomock.Any(), gomock.Any()).Return(nil).Times(1) - m.EXPECT().GetBucketByBucketName(gomock.Any(), gomock.Any(), gomock.Any()).Return(&metadatatypes.Bucket{ - BucketInfo: &storagetypes.BucketInfo{Id: sdkmath.NewUint(1)}}, nil).Times(1) - m.EXPECT().GetGlobalVirtualGroup(gomock.Any(), gomock.Any(), gomock.Any()).Return(&virtual_types.GlobalVirtualGroup{ - SecondarySpIds: []uint32{1}}, nil).Times(1) e.baseApp.SetGfSpClient(m) m1 := consensus.NewMockConsensus(ctrl) - m1.EXPECT().QueryStorageParamsByTimestamp(gomock.Any(), gomock.Any()).Return(&storagetypes.Params{ - VersionedParams: storagetypes.VersionedParams{MaxSegmentSize: 10}}, nil).Times(1) m1.EXPECT().QuerySP(gomock.Any(), gomock.Any()).Return(nil, mockErr).Times(1) e.baseApp.SetConsensus(m1) - m2 := piecestore.NewMockPieceOp(ctrl) - m2.EXPECT().SegmentPieceCount(gomock.Any(), gomock.Any()).Return(uint32(1)).Times(1) - m2.EXPECT().SegmentPieceKey(gomock.Any(), gomock.Any()).Return("test").Times(1) - e.baseApp.SetPieceOp(m2) - - m3 := piecestore.NewMockPieceStore(ctrl) - m3.EXPECT().DeletePiece(gomock.Any(), gomock.Any()).Return(nil).Times(1) - e.baseApp.SetPieceStore(m3) return e }, }, From 924231fcff311f4fde9737ee1ec9f202884d19ee Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Fri, 24 Nov 2023 16:03:58 +0800 Subject: [PATCH 09/10] feat: fix ListIntegrityMetaByObjectIDRange API --- deployment/localup/localup.sh | 2 + modular/executor/execute_gc.go | 4 +- modular/metadata/metadata_object_service.go | 2 +- store/sqldb/object_integrity.go | 64 ++++++++++----------- store/sqldb/object_integrity_test.go | 14 +++++ 5 files changed, 49 insertions(+), 37 deletions(-) diff --git a/deployment/localup/localup.sh b/deployment/localup/localup.sh index b1f8e19dd..b1e2cfbbe 100644 --- a/deployment/localup/localup.sh +++ b/deployment/localup/localup.sh @@ -160,6 +160,8 @@ function make_config() { sed -i -e "s/EnableGCMeta = .*/EnableGCMeta = true/g" config.toml sed -i -e "s/GCMetaTimeInterval = .*/GCMetaTimeInterval = 3/g" config.toml sed -i -e "s/GCZombiePieceTimeInterval = .*/GCZombiePieceTimeInterval = 3/g" config.toml + sed -i -e "s/GCZombieSafeObjectIDDistance = .*/GCZombieSafeObjectIDDistance = 1/g" config.toml + sed -i -e "s/GCZombiePieceObjectIDInterval = .*/GCZombiePieceObjectIDInterval = 5/g" config.toml echo "succeed to generate config.toml in "${sp_dir} cd - >/dev/null diff --git a/modular/executor/execute_gc.go b/modular/executor/execute_gc.go index 34753a247..99fafc898 100644 --- a/modular/executor/execute_gc.go +++ b/modular/executor/execute_gc.go @@ -46,8 +46,8 @@ func (gc *GCWorker) deleteObjectPiecesAndIntegrityMeta(ctx context.Context, inte } // delete integrity meta - _ = gc.e.baseApp.GfSpDB().DeleteObjectIntegrity(objID, redundancyIdx) - log.CtxDebugw(ctx, "succeed to delete all object segment and integrity meta", "object_id", objID, "integrity_meta", integrityMeta) + err := gc.e.baseApp.GfSpDB().DeleteObjectIntegrity(objID, redundancyIdx) + log.CtxDebugw(ctx, "succeed to delete all object segment and integrity meta", "object_id", objID, "integrity_meta", integrityMeta, "error", err) return nil } diff --git a/modular/metadata/metadata_object_service.go b/modular/metadata/metadata_object_service.go index cba013273..d064496df 100644 --- a/modular/metadata/metadata_object_service.go +++ b/modular/metadata/metadata_object_service.go @@ -632,6 +632,6 @@ func (r *MetadataModular) GfSpGetLatestObjectID(ctx context.Context, req *types. } resp = &types.GfSpGetLatestObjectIDResponse{ObjectId: objID} - log.CtxInfow(ctx, "succeed to get latest object id") + log.CtxInfow(ctx, "succeed to get latest object id", "object_id", objID) return resp, nil } diff --git a/store/sqldb/object_integrity.go b/store/sqldb/object_integrity.go index 50efd22dd..3378bba29 100644 --- a/store/sqldb/object_integrity.go +++ b/store/sqldb/object_integrity.go @@ -28,6 +28,10 @@ const ( SPDBSuccessDelObjectIntegrity = "del_object_integrity_meta_success" // SPDBFailureDelObjectIntegrity defines the metrics label of unsuccessfully del object integrity SPDBFailureDelObjectIntegrity = "del_object_integrity_meta_failure" + // SPDBSuccessListObjectIntegrity defines the metrics label of successfully list object integrity + SPDBSuccessListObjectIntegrity = "list_object_integrity_meta_success" + // SPDBFailureListObjectIntegrity defines the metrics label of unsuccessfully list object integrity + SPDBFailureListObjectIntegrity = "list_object_integrity_meta_failure" // SPDBSuccessUpdatePieceChecksum defines the metrics label of successfully update object piece checksum SPDBSuccessUpdatePieceChecksum = "append_object_checksum_integrity_success" @@ -218,22 +222,23 @@ func (b ByRedundancyIndexAndObjectID) Less(i, j int) bool { } func (b ByRedundancyIndexAndObjectID) Swap(i, j int) { b[i], b[j] = b[j], b[i] } -// ListIntegrityMetaByObjectIDRange list objects info by a block number range +// ListIntegrityMetaByObjectIDRange list integrity meta by a block number range func (s *SpDBImpl) ListIntegrityMetaByObjectIDRange(startObjectID int64, endObjectID int64, includePrivate bool) ([]*corespdb.IntegrityMeta, error) { var ( - totalObjects []*corespdb.IntegrityMeta - objects []*corespdb.IntegrityMeta - err error + totalIntegrityMetas []*IntegrityMetaTable + integrityMetas []*IntegrityMetaTable + resIntegrityMetas []*corespdb.IntegrityMeta + err error ) startTime := time.Now() defer func() { if err != nil { - metrics.SPDBCounter.WithLabelValues(SPDBFailureGetObjectIntegrity).Inc() - metrics.SPDBTime.WithLabelValues(SPDBFailureGetObjectIntegrity).Observe( + metrics.SPDBCounter.WithLabelValues(SPDBFailureListObjectIntegrity).Inc() + metrics.SPDBTime.WithLabelValues(SPDBFailureListObjectIntegrity).Observe( time.Since(startTime).Seconds()) } else { - metrics.SPDBCounter.WithLabelValues(SPDBSuccessGetObjectIntegrity).Inc() - metrics.SPDBTime.WithLabelValues(SPDBSuccessGetObjectIntegrity).Observe( + metrics.SPDBCounter.WithLabelValues(SPDBSuccessListObjectIntegrity).Inc() + metrics.SPDBTime.WithLabelValues(SPDBSuccessListObjectIntegrity).Observe( time.Since(startTime).Seconds()) } }() @@ -242,39 +247,30 @@ func (s *SpDBImpl) ListIntegrityMetaByObjectIDRange(startObjectID int64, endObje for i := 0; i < IntegrityMetasNumberOfShards; i++ { err = s.db.Table(GetIntegrityMetasTableNameByShardNumber(i)). Select("*"). - Where("object_id >= ? and object_id <= ?", startObjectID, endObjectID). + Where("object_id >= ? and object_id < ?", startObjectID, endObjectID). Limit(ListObjectsDefaultSize). Order("object_id,redundancy_index asc"). - Find(&objects).Error - totalObjects = append(totalObjects, objects...) + Find(&integrityMetas).Error + totalIntegrityMetas = append(totalIntegrityMetas, integrityMetas...) } - } else { - for i := 0; i < IntegrityMetasNumberOfShards; i++ { - integrityMetasTableName := GetIntegrityMetasTableNameByShardNumber(i) - joins := fmt.Sprintf("right join buckets on buckets.bucket_id = %s.bucket_id", integrityMetasTableName) - order := fmt.Sprintf("%s.object_id, %s.redundancy_index asc", integrityMetasTableName, integrityMetasTableName) - where := fmt.Sprintf("%s.object_id >= ? and %s.object_id <= ? and "+ - "((%s.visibility='VISIBILITY_TYPE_PUBLIC_READ') or "+ - "(%s.visibility='VISIBILITY_TYPE_INHERIT' and buckets.visibility='VISIBILITY_TYPE_PUBLIC_READ'))", - integrityMetasTableName, integrityMetasTableName, integrityMetasTableName, integrityMetasTableName) - - err = s.db.Table(integrityMetasTableName). - Select(integrityMetasTableName+".*"). - Joins(joins). - Where(where, startObjectID, endObjectID). - Limit(ListObjectsDefaultSize). - Order(order). - Find(&objects).Error - totalObjects = append(totalObjects, objects...) + } + if len(totalIntegrityMetas) > ListObjectsDefaultSize { + totalIntegrityMetas = totalIntegrityMetas[0:ListObjectsDefaultSize] + } + + for _, metaQuery := range totalIntegrityMetas { + meta := &corespdb.IntegrityMeta{ + ObjectID: metaQuery.ObjectID, + RedundancyIndex: metaQuery.RedundancyIndex, + IntegrityChecksum: []byte(metaQuery.IntegrityChecksum), } + meta.PieceChecksumList, err = util.StringToBytesSlice(metaQuery.PieceChecksumList) + resIntegrityMetas = append(resIntegrityMetas, meta) } - sort.Sort(ByRedundancyIndexAndObjectID(totalObjects)) + sort.Sort(ByRedundancyIndexAndObjectID(resIntegrityMetas)) - if len(totalObjects) > ListObjectsDefaultSize { - totalObjects = totalObjects[0:ListObjectsDefaultSize] - } - return totalObjects, err + return resIntegrityMetas, err } // UpdatePieceChecksum 1) If the IntegrityMetaTable does not exist, it will be created. diff --git a/store/sqldb/object_integrity_test.go b/store/sqldb/object_integrity_test.go index af911c250..9a67ca149 100644 --- a/store/sqldb/object_integrity_test.go +++ b/store/sqldb/object_integrity_test.go @@ -10,6 +10,7 @@ import ( "github.com/stretchr/testify/assert" "gorm.io/gorm" + "github.com/bnb-chain/greenfield-storage-provider/core/piecestore" corespdb "github.com/bnb-chain/greenfield-storage-provider/core/spdb" ) @@ -232,6 +233,19 @@ func TestSpDBImpl_DeleteObjectIntegrityFailure(t *testing.T) { assert.Equal(t, mockDBInternalError, err) } +func TestSpDBImpl_ListIntegrityChecksumSuccess(t *testing.T) { + s, mock := setupDB(t) + for i := 0; i < IntegrityMetasNumberOfShards; i++ { + mock.ExpectQuery(fmt.Sprintf("SELECT * FROM `%s` WHERE object_id >= ? and object_id <= ? ORDER BY object_id,redundancy_index asc LIMIT 1000", fmt.Sprintf("integrity_meta_%02d", i))). + WithArgs(0, 1000).WillReturnRows( + sqlmock.NewRows([]string{"object_id", "redundancy_index", "integrity_checksum", "piece_checksum_list"}). + AddRow(i, piecestore.PrimarySPRedundancyIndex, "test", "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d")) + } + metas, err := s.ListIntegrityMetaByObjectIDRange(0, 1000, true) + assert.Equal(t, len(metas), IntegrityMetasNumberOfShards) + assert.Nil(t, err) +} + func TestSpDBImpl_UpdatePieceChecksumSuccess1(t *testing.T) { t.Log("Success case description: get object integrity has data and update table") var ( From d0c1442b1fc18675424f90d8cfef9c4ef3708294 Mon Sep 17 00:00:00 2001 From: Chris Li <271678682li@gmail.com> Date: Fri, 24 Nov 2023 16:05:14 +0800 Subject: [PATCH 10/10] feat: fix ListIntegrityMetaByObjectIDRange API --- store/sqldb/object_integrity_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/store/sqldb/object_integrity_test.go b/store/sqldb/object_integrity_test.go index 9a67ca149..a02e4c70f 100644 --- a/store/sqldb/object_integrity_test.go +++ b/store/sqldb/object_integrity_test.go @@ -236,7 +236,7 @@ func TestSpDBImpl_DeleteObjectIntegrityFailure(t *testing.T) { func TestSpDBImpl_ListIntegrityChecksumSuccess(t *testing.T) { s, mock := setupDB(t) for i := 0; i < IntegrityMetasNumberOfShards; i++ { - mock.ExpectQuery(fmt.Sprintf("SELECT * FROM `%s` WHERE object_id >= ? and object_id <= ? ORDER BY object_id,redundancy_index asc LIMIT 1000", fmt.Sprintf("integrity_meta_%02d", i))). + mock.ExpectQuery(fmt.Sprintf("SELECT * FROM `%s` WHERE object_id >= ? and object_id < ? ORDER BY object_id,redundancy_index asc LIMIT 1000", fmt.Sprintf("integrity_meta_%02d", i))). WithArgs(0, 1000).WillReturnRows( sqlmock.NewRows([]string{"object_id", "redundancy_index", "integrity_checksum", "piece_checksum_list"}). AddRow(i, piecestore.PrimarySPRedundancyIndex, "test", "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d"))