lotus/storage/sealer/storiface/index.go

135 lines
2.7 KiB
Go
Raw Normal View History

2022-01-18 10:57:04 +00:00
package storiface
import (
"strings"
2022-01-18 10:57:04 +00:00
"github.com/filecoin-project/go-state-types/abi"
2022-06-14 15:00:51 +00:00
"github.com/filecoin-project/lotus/storage/sealer/fsutil"
2022-01-18 10:57:04 +00:00
)
// ID identifies sector storage by UUID. One sector storage should map to one
2022-08-29 14:25:30 +00:00
//
// filesystem, local or networked / shared by multiple machines
2022-01-18 10:57:04 +00:00
type ID string
const IDSep = "."
type IDList []ID
func (il IDList) String() string {
l := make([]string, len(il))
for i, id := range il {
l[i] = string(id)
}
return strings.Join(l, IDSep)
}
func ParseIDList(s string) IDList {
strs := strings.Split(s, IDSep)
out := make([]ID, len(strs))
for i, str := range strs {
out[i] = ID(str)
}
return out
}
2022-01-18 10:57:04 +00:00
type Group = string
type StorageInfo struct {
2022-07-01 16:02:10 +00:00
// ID is the UUID of the storage path
ID ID
// URLs for remote access
URLs []string // TODO: Support non-http transports
// Storage path weight; higher number means that the path will be preferred more often
Weight uint64
// MaxStorage is the number of bytes allowed to be used by files in the
// storage path
2022-01-18 10:57:04 +00:00
MaxStorage uint64
2022-07-01 16:02:10 +00:00
// CanStore is true when the path is allowed to be used for io-intensive
// sealing operations
CanSeal bool
// CanStore is true when the path is allowed to be used for long-term storage
2022-01-18 10:57:04 +00:00
CanStore bool
2022-07-01 16:02:10 +00:00
// Groups is the list of path groups this path belongs to
Groups []Group
// AllowTo is the list of paths to which data from this path can be moved to
2022-01-18 10:57:04 +00:00
AllowTo []Group
2022-07-01 16:02:10 +00:00
// AllowTypes lists sector file types which are allowed to be put into this
// path. If empty, all file types are allowed.
//
// Valid values:
// - "unsealed"
// - "sealed"
// - "cache"
// - "update"
// - "update-cache"
// Any other value will generate a warning and be ignored.
AllowTypes []string
// DenyTypes lists sector file types which aren't allowed to be put into this
// path.
//
// Valid values:
// - "unsealed"
// - "sealed"
// - "cache"
// - "update"
// - "update-cache"
// Any other value will generate a warning and be ignored.
DenyTypes []string
2024-04-01 18:19:00 +00:00
// AllowMiners lists miner IDs which are allowed to store their sector data into
// this path. If empty, all miner IDs are allowed
AllowMiners []string
// DenyMiners lists miner IDs which are denied to store their sector data into
// this path
DenyMiners []string
2022-01-18 10:57:04 +00:00
}
type HealthReport struct {
Stat fsutil.FsStat
Err string
}
type SectorStorageInfo struct {
ID ID
URLs []string // TODO: Support non-http transports
BaseURLs []string
Weight uint64
CanSeal bool
CanStore bool
Primary bool
2022-07-01 16:02:10 +00:00
2024-04-01 18:19:00 +00:00
AllowTypes []string
DenyTypes []string
AllowMiners []string
DenyMiners []string
2022-01-18 10:57:04 +00:00
}
type Decl struct {
abi.SectorID
SectorFileType
}
type StoragePath struct {
ID ID
Weight uint64
LocalPath string
CanSeal bool
CanStore bool
}