From c736dedfa6ac8f9e12f3903cc59a4636c8de76fc Mon Sep 17 00:00:00 2001 From: LexLuthr Date: Mon, 1 Aug 2022 23:19:47 +0530 Subject: [PATCH] move requestremove inside runSched --- api/api_storage.go | 2 +- api/proxy_gen.go | 8 +-- build/openrpc/miner.json.gz | Bin 14340 -> 14330 bytes cmd/lotus-miner/sealing.go | 14 +++++ documentation/en/api-v0-methods-miner.md | 7 +-- documentation/en/cli-lotus-miner.md | 2 +- node/impl/storminer.go | 6 +-- storage/sealer/manager.go | 4 +- storage/sealer/sched.go | 64 +++++++++++++++++++---- 9 files changed, 79 insertions(+), 28 deletions(-) diff --git a/api/api_storage.go b/api/api_storage.go index 9c3262df9..d86ed4724 100644 --- a/api/api_storage.go +++ b/api/api_storage.go @@ -151,7 +151,7 @@ type StorageMiner interface { SealingSchedDiag(ctx context.Context, doSched bool) (interface{}, error) //perm:admin SealingAbort(ctx context.Context, call storiface.CallID) error //perm:admin //SealingSchedRemove removes a request from sealing pipeline - SealingRemoveRequest(ctx context.Context, sectorID abi.SectorID, task string, priority int) error //perm:admin + SealingRemoveRequest(ctx context.Context, SchedId uuid.UUID) error //perm:admin // paths.SectorIndex StorageAttach(context.Context, storiface.StorageInfo, fsutil.FsStat) error //perm:admin diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 7c377f9b4..506e615f2 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -802,7 +802,7 @@ type StorageMinerStruct struct { SealingAbort func(p0 context.Context, p1 storiface.CallID) error `perm:"admin"` - SealingRemoveRequest func(p0 context.Context, p1 abi.SectorID, p2 string, p3 int) error `perm:"admin"` + SealingRemoveRequest func(p0 context.Context, p1 uuid.UUID) error `perm:"admin"` SealingSchedDiag func(p0 context.Context, p1 bool) (interface{}, error) `perm:"admin"` @@ -4763,14 +4763,14 @@ func (s *StorageMinerStub) SealingAbort(p0 context.Context, p1 storiface.CallID) return ErrNotSupported } -func (s *StorageMinerStruct) SealingRemoveRequest(p0 context.Context, p1 abi.SectorID, p2 string, p3 int) error { +func (s *StorageMinerStruct) SealingRemoveRequest(p0 context.Context, p1 uuid.UUID) error { if s.Internal.SealingRemoveRequest == nil { return ErrNotSupported } - return s.Internal.SealingRemoveRequest(p0, p1, p2, p3) + return s.Internal.SealingRemoveRequest(p0, p1) } -func (s *StorageMinerStub) SealingRemoveRequest(p0 context.Context, p1 abi.SectorID, p2 string, p3 int) error { +func (s *StorageMinerStub) SealingRemoveRequest(p0 context.Context, p1 uuid.UUID) error { return ErrNotSupported } diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index ca987eeef1fd61372ecf1c52647d07b855b596ee..310ac2727c3291a625813d76710bc3b0c5c751e0 100644 GIT binary patch literal 14330 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