Updates for sectors-storge next
This commit is contained in:
parent
2b9c05d395
commit
8e0d33a1fd
@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
|
"github.com/filecoin-project/sector-storage/fsutil"
|
||||||
"github.com/filecoin-project/sector-storage/stores"
|
"github.com/filecoin-project/sector-storage/stores"
|
||||||
"github.com/filecoin-project/sector-storage/storiface"
|
"github.com/filecoin-project/sector-storage/storiface"
|
||||||
"github.com/filecoin-project/specs-actors/actors/abi"
|
"github.com/filecoin-project/specs-actors/actors/abi"
|
||||||
@ -49,7 +50,7 @@ type StorageMiner interface {
|
|||||||
|
|
||||||
StorageList(ctx context.Context) (map[stores.ID][]stores.Decl, error)
|
StorageList(ctx context.Context) (map[stores.ID][]stores.Decl, error)
|
||||||
StorageLocal(ctx context.Context) (map[stores.ID]string, error)
|
StorageLocal(ctx context.Context) (map[stores.ID]string, error)
|
||||||
StorageStat(ctx context.Context, id stores.ID) (stores.FsStat, error)
|
StorageStat(ctx context.Context, id stores.ID) (fsutil.FsStat, error)
|
||||||
|
|
||||||
// WorkerConnect tells the node to connect to workers RPC
|
// WorkerConnect tells the node to connect to workers RPC
|
||||||
WorkerConnect(context.Context, string) error
|
WorkerConnect(context.Context, string) error
|
||||||
|
@ -2,15 +2,17 @@ package apistruct
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/filecoin-project/go-address"
|
|
||||||
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
|
||||||
"github.com/filecoin-project/go-jsonrpc/auth"
|
|
||||||
"github.com/ipfs/go-cid"
|
|
||||||
"github.com/libp2p/go-libp2p-core/network"
|
|
||||||
"github.com/libp2p/go-libp2p-core/peer"
|
|
||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/ipfs/go-cid"
|
||||||
|
"github.com/libp2p/go-libp2p-core/network"
|
||||||
|
"github.com/libp2p/go-libp2p-core/peer"
|
||||||
|
|
||||||
|
"github.com/filecoin-project/go-address"
|
||||||
|
"github.com/filecoin-project/go-fil-markets/storagemarket"
|
||||||
|
"github.com/filecoin-project/go-jsonrpc/auth"
|
||||||
|
"github.com/filecoin-project/sector-storage/fsutil"
|
||||||
"github.com/filecoin-project/sector-storage/sealtasks"
|
"github.com/filecoin-project/sector-storage/sealtasks"
|
||||||
"github.com/filecoin-project/sector-storage/stores"
|
"github.com/filecoin-project/sector-storage/stores"
|
||||||
"github.com/filecoin-project/sector-storage/storiface"
|
"github.com/filecoin-project/sector-storage/storiface"
|
||||||
@ -218,8 +220,8 @@ type StorageMinerStruct struct {
|
|||||||
|
|
||||||
StorageList func(context.Context) (map[stores.ID][]stores.Decl, error) `perm:"admin"`
|
StorageList func(context.Context) (map[stores.ID][]stores.Decl, error) `perm:"admin"`
|
||||||
StorageLocal func(context.Context) (map[stores.ID]string, error) `perm:"admin"`
|
StorageLocal func(context.Context) (map[stores.ID]string, error) `perm:"admin"`
|
||||||
StorageStat func(context.Context, stores.ID) (stores.FsStat, error) `perm:"admin"`
|
StorageStat func(context.Context, stores.ID) (fsutil.FsStat, error) `perm:"admin"`
|
||||||
StorageAttach func(context.Context, stores.StorageInfo, stores.FsStat) error `perm:"admin"`
|
StorageAttach func(context.Context, stores.StorageInfo, fsutil.FsStat) error `perm:"admin"`
|
||||||
StorageDeclareSector func(context.Context, stores.ID, abi.SectorID, stores.SectorFileType, bool) error `perm:"admin"`
|
StorageDeclareSector func(context.Context, stores.ID, abi.SectorID, stores.SectorFileType, bool) error `perm:"admin"`
|
||||||
StorageDropSector func(context.Context, stores.ID, abi.SectorID, stores.SectorFileType) error `perm:"admin"`
|
StorageDropSector func(context.Context, stores.ID, abi.SectorID, stores.SectorFileType) error `perm:"admin"`
|
||||||
StorageFindSector func(context.Context, abi.SectorID, stores.SectorFileType, bool) ([]stores.SectorStorageInfo, error) `perm:"admin"`
|
StorageFindSector func(context.Context, abi.SectorID, stores.SectorFileType, bool) ([]stores.SectorStorageInfo, error) `perm:"admin"`
|
||||||
@ -833,7 +835,7 @@ func (c *StorageMinerStruct) WorkerStats(ctx context.Context) (map[uint64]storif
|
|||||||
return c.Internal.WorkerStats(ctx)
|
return c.Internal.WorkerStats(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *StorageMinerStruct) StorageAttach(ctx context.Context, si stores.StorageInfo, st stores.FsStat) error {
|
func (c *StorageMinerStruct) StorageAttach(ctx context.Context, si stores.StorageInfo, st fsutil.FsStat) error {
|
||||||
return c.Internal.StorageAttach(ctx, si, st)
|
return c.Internal.StorageAttach(ctx, si, st)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -857,7 +859,7 @@ func (c *StorageMinerStruct) StorageLocal(ctx context.Context) (map[stores.ID]st
|
|||||||
return c.Internal.StorageLocal(ctx)
|
return c.Internal.StorageLocal(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *StorageMinerStruct) StorageStat(ctx context.Context, id stores.ID) (stores.FsStat, error) {
|
func (c *StorageMinerStruct) StorageStat(ctx context.Context, id stores.ID) (fsutil.FsStat, error) {
|
||||||
return c.Internal.StorageStat(ctx, id)
|
return c.Internal.StorageStat(ctx, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -612,7 +612,7 @@ func runSeals(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, numSectors int, par
|
|||||||
if !skipunseal {
|
if !skipunseal {
|
||||||
log.Infof("[%d] Unsealing sector", i)
|
log.Infof("[%d] Unsealing sector", i)
|
||||||
{
|
{
|
||||||
p, done, err := sbfs.AcquireSector(context.TODO(), abi.SectorID{Miner: mid, Number: 1}, stores.FTUnsealed, stores.FTNone, true)
|
p, done, err := sbfs.AcquireSector(context.TODO(), abi.SectorID{Miner: mid, Number: 1}, stores.FTUnsealed, stores.FTNone, stores.PathSealing)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("acquire unsealed sector for removing: %w", err)
|
return xerrors.Errorf("acquire unsealed sector for removing: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -186,7 +186,7 @@ func presealSector(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, sid abi.Sector
|
|||||||
}
|
}
|
||||||
|
|
||||||
func presealSectorFake(sbfs *basicfs.Provider, sid abi.SectorID, spt abi.RegisteredSealProof, ssize abi.SectorSize) (*genesis.PreSeal, error) {
|
func presealSectorFake(sbfs *basicfs.Provider, sid abi.SectorID, spt abi.RegisteredSealProof, ssize abi.SectorSize) (*genesis.PreSeal, error) {
|
||||||
paths, done, err := sbfs.AcquireSector(context.TODO(), sid, 0, stores.FTSealed|stores.FTCache, true)
|
paths, done, err := sbfs.AcquireSector(context.TODO(), sid, 0, stores.FTSealed|stores.FTCache, stores.PathSealing)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("acquire unsealed sector: %w", err)
|
return nil, xerrors.Errorf("acquire unsealed sector: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -18,11 +18,12 @@ import (
|
|||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
|
"github.com/filecoin-project/sector-storage/fsutil"
|
||||||
|
"github.com/filecoin-project/sector-storage/stores"
|
||||||
"github.com/filecoin-project/specs-actors/actors/abi"
|
"github.com/filecoin-project/specs-actors/actors/abi"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
lcli "github.com/filecoin-project/lotus/cli"
|
lcli "github.com/filecoin-project/lotus/cli"
|
||||||
"github.com/filecoin-project/sector-storage/stores"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const metaFile = "sectorstore.json"
|
const metaFile = "sectorstore.json"
|
||||||
@ -145,7 +146,7 @@ var storageListCmd = &cli.Command{
|
|||||||
type fsInfo struct {
|
type fsInfo struct {
|
||||||
stores.ID
|
stores.ID
|
||||||
sectors []stores.Decl
|
sectors []stores.Decl
|
||||||
stat stores.FsStat
|
stat fsutil.FsStat
|
||||||
}
|
}
|
||||||
|
|
||||||
sorted := make([]fsInfo, 0, len(st))
|
sorted := make([]fsInfo, 0, len(st))
|
||||||
@ -197,13 +198,13 @@ var storageListCmd = &cli.Command{
|
|||||||
percCol = color.FgYellow
|
percCol = color.FgYellow
|
||||||
}
|
}
|
||||||
|
|
||||||
var barCols = uint64(50)
|
var barCols = int64(50)
|
||||||
set := (st.Capacity - st.Available) * barCols / st.Capacity
|
set := (st.Capacity - st.Available) * barCols / st.Capacity
|
||||||
bar := strings.Repeat("|", int(set)) + strings.Repeat(" ", int(barCols-set))
|
bar := strings.Repeat("|", int(set)) + strings.Repeat(" ", int(barCols-set))
|
||||||
|
|
||||||
fmt.Printf("\t[%s] %s/%s %s\n", color.New(percCol).Sprint(bar),
|
fmt.Printf("\t[%s] %s/%s %s\n", color.New(percCol).Sprint(bar),
|
||||||
types.SizeStr(types.NewInt(st.Capacity-st.Available)),
|
types.SizeStr(types.NewInt(uint64(st.Capacity-st.Available))),
|
||||||
types.SizeStr(types.NewInt(st.Capacity)),
|
types.SizeStr(types.NewInt(uint64(st.Capacity))),
|
||||||
color.New(percCol).Sprintf("%d%%", usedPercent))
|
color.New(percCol).Sprintf("%d%%", usedPercent))
|
||||||
fmt.Printf("\t%s; %s; %s\n",
|
fmt.Printf("\t%s; %s; %s\n",
|
||||||
color.YellowString("Unsealed: %d", cnt[0]),
|
color.YellowString("Unsealed: %d", cnt[0]),
|
||||||
|
@ -3,6 +3,7 @@ package impl
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"github.com/filecoin-project/sector-storage/fsutil"
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -175,7 +176,7 @@ func (sm *StorageMinerAPI) SectorsRefs(context.Context) (map[string][]api.Sealed
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sm *StorageMinerAPI) StorageStat(ctx context.Context, id stores.ID) (stores.FsStat, error) {
|
func (sm *StorageMinerAPI) StorageStat(ctx context.Context, id stores.ID) (fsutil.FsStat, error) {
|
||||||
return sm.StorageMgr.FsStat(ctx, id)
|
return sm.StorageMgr.FsStat(ctx, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/filecoin-project/sector-storage/fsutil"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
@ -340,8 +341,16 @@ func (fsr *fsLockedRepo) SetStorage(c func(*stores.StorageConfig)) error {
|
|||||||
return config.WriteStorageFile(fsr.join(fsStorageConfig), sc)
|
return config.WriteStorageFile(fsr.join(fsStorageConfig), sc)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fsr *fsLockedRepo) Stat(path string) (stores.FsStat, error) {
|
func (fsr *fsLockedRepo) Stat(path string) (fsutil.FsStat, error) {
|
||||||
return stores.Stat(path)
|
return fsutil.Statfs(path)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fsr *fsLockedRepo) DiskUsage(path string) (int64, error) {
|
||||||
|
si, err := fsutil.FileSize(path)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return si.OnDisk, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fsr *fsLockedRepo) SetAPIEndpoint(ma multiaddr.Multiaddr) error {
|
func (fsr *fsLockedRepo) SetAPIEndpoint(ma multiaddr.Multiaddr) error {
|
||||||
|
@ -2,6 +2,7 @@ package repo
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"github.com/filecoin-project/sector-storage/fsutil"
|
||||||
|
|
||||||
"github.com/filecoin-project/sector-storage/stores"
|
"github.com/filecoin-project/sector-storage/stores"
|
||||||
|
|
||||||
@ -42,7 +43,8 @@ type LockedRepo interface {
|
|||||||
|
|
||||||
GetStorage() (stores.StorageConfig, error)
|
GetStorage() (stores.StorageConfig, error)
|
||||||
SetStorage(func(*stores.StorageConfig)) error
|
SetStorage(func(*stores.StorageConfig)) error
|
||||||
Stat(path string) (stores.FsStat, error)
|
Stat(path string) (fsutil.FsStat, error)
|
||||||
|
DiskUsage(path string) (int64, error)
|
||||||
|
|
||||||
// SetAPIEndpoint sets the endpoint of the current API
|
// SetAPIEndpoint sets the endpoint of the current API
|
||||||
// so it can be read by API clients
|
// so it can be read by API clients
|
||||||
|
@ -2,6 +2,7 @@ package repo
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"github.com/filecoin-project/sector-storage/fsutil"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -77,8 +78,17 @@ func (lmem *lockedMemRepo) SetStorage(c func(*stores.StorageConfig)) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (lmem *lockedMemRepo) Stat(path string) (stores.FsStat, error) {
|
func (lmem *lockedMemRepo) Stat(path string) (fsutil.FsStat, error) {
|
||||||
return stores.Stat(path)
|
return fsutil.Statfs(path)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func (lmem *lockedMemRepo) DiskUsage(path string) (int64, error) {
|
||||||
|
si, err := fsutil.FileSize(path)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return si.OnDisk, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (lmem *lockedMemRepo) Path() string {
|
func (lmem *lockedMemRepo) Path() string {
|
||||||
|
Loading…
Reference in New Issue
Block a user