diff --git a/localworker.go b/localworker.go index 0b8a252e3..7de302428 100644 --- a/localworker.go +++ b/localworker.go @@ -15,6 +15,7 @@ import ( "github.com/filecoin-project/sector-storage/ffiwrapper" "github.com/filecoin-project/sector-storage/sealtasks" "github.com/filecoin-project/sector-storage/stores" + "github.com/filecoin-project/sector-storage/storiface" ) var pathTypes = []stores.SectorFileType{stores.FTUnsealed, stores.FTSealed, stores.FTCache} @@ -167,7 +168,7 @@ func (l *LocalWorker) Paths(ctx context.Context) ([]stores.StoragePath, error) { return l.localStore.Local(ctx) } -func (l *LocalWorker) Info(context.Context) (WorkerInfo, error) { +func (l *LocalWorker) Info(context.Context) (storiface.WorkerInfo, error) { hostname, err := os.Hostname() // TODO: allow overriding from config if err != nil { panic(err) @@ -180,17 +181,17 @@ func (l *LocalWorker) Info(context.Context) (WorkerInfo, error) { h, err := sysinfo.Host() if err != nil { - return WorkerInfo{}, xerrors.Errorf("getting host info: %w", err) + return storiface.WorkerInfo{}, xerrors.Errorf("getting host info: %w", err) } mem, err := h.Memory() if err != nil { - return WorkerInfo{}, xerrors.Errorf("getting memory info: %w", err) + return storiface.WorkerInfo{}, xerrors.Errorf("getting memory info: %w", err) } - return WorkerInfo{ + return storiface.WorkerInfo{ Hostname: hostname, - Resources: WorkerResources{ + Resources: storiface.WorkerResources{ MemPhysical: mem.Total, MemSwap: mem.VirtualTotal, MemReserved: mem.VirtualUsed + mem.Total - mem.Available, // TODO: sub this process diff --git a/manager.go b/manager.go index 45fcfb38c..f0b6308c9 100644 --- a/manager.go +++ b/manager.go @@ -19,6 +19,7 @@ import ( "github.com/filecoin-project/sector-storage/ffiwrapper" "github.com/filecoin-project/sector-storage/sealtasks" "github.com/filecoin-project/sector-storage/stores" + "github.com/filecoin-project/sector-storage/storiface" ) var log = logging.Logger("advmgr") @@ -35,26 +36,11 @@ type Worker interface { // Returns paths accessible to the worker Paths(context.Context) ([]stores.StoragePath, error) - Info(context.Context) (WorkerInfo, error) + Info(context.Context) (storiface.WorkerInfo, error) Close() error } -type WorkerInfo struct { - Hostname string - - Resources WorkerResources -} - -type WorkerResources struct { - MemPhysical uint64 - MemSwap uint64 - - MemReserved uint64 // Used by system / other processes - - GPUs []string -} - type SectorManager interface { SectorSize() abi.SectorSize diff --git a/sched.go b/sched.go index fb689663a..233f9faa2 100644 --- a/sched.go +++ b/sched.go @@ -6,6 +6,7 @@ import ( "github.com/filecoin-project/specs-actors/actors/abi" "github.com/filecoin-project/sector-storage/sealtasks" + "github.com/filecoin-project/sector-storage/storiface" ) const mib = 1 << 20 @@ -39,7 +40,7 @@ func (r *workerRequest) respond(resp workerResponse) { type workerHandle struct { w Worker - info WorkerInfo + info storiface.WorkerInfo memUsedMin uint64 memUsedMax uint64 diff --git a/stats.go b/stats.go index 70a5f341a..492919460 100644 --- a/stats.go +++ b/stats.go @@ -1,22 +1,15 @@ package sectorstorage -type WorkerStats struct { - Info WorkerInfo +import "github.com/filecoin-project/sector-storage/storiface" - MemUsedMin uint64 - MemUsedMax uint64 - GpuUsed bool - CpuUse int -} - -func (m *Manager) WorkerStats() map[uint64]WorkerStats { +func (m *Manager) WorkerStats() map[uint64]storiface.WorkerStats { m.workersLk.Lock() defer m.workersLk.Unlock() - out := map[uint64]WorkerStats{} + out := map[uint64]storiface.WorkerStats{} for id, handle := range m.workers { - out[uint64(id)] = WorkerStats{ + out[uint64(id)] = storiface.WorkerStats{ Info: handle.info, MemUsedMin: handle.memUsedMin, MemUsedMax: handle.memUsedMax, diff --git a/storiface/worker.go b/storiface/worker.go new file mode 100644 index 000000000..e739dbc44 --- /dev/null +++ b/storiface/worker.go @@ -0,0 +1,25 @@ +package storiface + +type WorkerInfo struct { + Hostname string + + Resources WorkerResources +} + +type WorkerResources struct { + MemPhysical uint64 + MemSwap uint64 + + MemReserved uint64 // Used by system / other processes + + GPUs []string +} + +type WorkerStats struct { + Info WorkerInfo + + MemUsedMin uint64 + MemUsedMax uint64 + GpuUsed bool + CpuUse int +}