8ce619706b
Currently, pending audit is finding segment by segment location (path) because we want to move audit to segmentloop and we will have only StreamID and Position we need to add columns for those fields. Altering existing table can cause issues while migration and deployment. Cleaner choise is to make new table. This change contains migration with new segment_pending_audit table that will replace pending_audits table and adjustments to use new table in the code. Table pending_audits will be dropped with next release. Change-Id: Id507e29c152da594bac1fd812c78d7ecf45ec51f
48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
// Copyright (C) 2019 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
package audit
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/zeebo/errs"
|
|
|
|
"storj.io/common/pb"
|
|
"storj.io/common/storj"
|
|
"storj.io/common/uuid"
|
|
"storj.io/storj/satellite/metabase"
|
|
)
|
|
|
|
var (
|
|
// ContainError is the containment errs class.
|
|
ContainError = errs.Class("containment")
|
|
|
|
// ErrContainedNotFound is the errs class for when a pending audit isn't found.
|
|
ErrContainedNotFound = errs.Class("pending audit not found")
|
|
|
|
// ErrContainDelete is the errs class for when a pending audit can't be deleted.
|
|
ErrContainDelete = errs.Class("unable to delete pending audit")
|
|
)
|
|
|
|
// PendingAudit contains info needed for retrying an audit for a contained node.
|
|
type PendingAudit struct {
|
|
NodeID storj.NodeID
|
|
PieceID storj.PieceID
|
|
StripeIndex int32
|
|
ShareSize int32
|
|
ExpectedShareHash []byte
|
|
ReverifyCount int32
|
|
StreamID uuid.UUID
|
|
Position metabase.SegmentPosition
|
|
}
|
|
|
|
// Containment holds information about pending audits for contained nodes.
|
|
//
|
|
// architecture: Database
|
|
type Containment interface {
|
|
Get(ctx context.Context, nodeID pb.NodeID) (*PendingAudit, error)
|
|
IncrementPending(ctx context.Context, pendingAudit *PendingAudit) error
|
|
Delete(ctx context.Context, nodeID pb.NodeID) (bool, error)
|
|
}
|