Command to list active sector locks
This commit is contained in:
@@ -48,6 +48,7 @@ stored while moving through the sealing pipeline (references as 'seal').`,
|
||||
storageListCmd,
|
||||
storageFindCmd,
|
||||
storageCleanupCmd,
|
||||
storageLocks,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -758,3 +759,43 @@ func cleanupRemovedSectorData(ctx context.Context, api api.StorageMiner, napi v0
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
var storageLocks = &cli.Command{
|
||||
Name: "locks",
|
||||
Usage: "show active sector locks",
|
||||
Action: func(cctx *cli.Context) error {
|
||||
api, closer, err := lcli.GetStorageMinerAPI(cctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer closer()
|
||||
ctx := lcli.ReqContext(cctx)
|
||||
|
||||
locks, err := api.StorageGetLocks(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, lock := range locks.Locks {
|
||||
st, err := api.SectorsStatus(ctx, lock.Sector.Number, false)
|
||||
if err != nil {
|
||||
return xerrors.Errorf("getting sector status(%d): %w", lock.Sector.Number, err)
|
||||
}
|
||||
|
||||
lockstr := fmt.Sprintf("%d\t%s\t", lock.Sector.Number, color.New(stateOrder[sealing.SectorState(st.State)].col).Sprint(st.State))
|
||||
|
||||
for i := 0; i < storiface.FileTypes; i++ {
|
||||
if lock.Write[i] > 0 {
|
||||
lockstr += fmt.Sprintf("%s(%s) ", storiface.SectorFileType(1<<i).String(), color.RedString("W"))
|
||||
}
|
||||
if lock.Read[i] > 0 {
|
||||
lockstr += fmt.Sprintf("%s(%s:%d) ", storiface.SectorFileType(1<<i).String(), color.GreenString("R"), lock.Read[i])
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println(lockstr)
|
||||
}
|
||||
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user