29 lines
1.2 KiB
Go
29 lines
1.2 KiB
Go
|
package volumewatcher
|
||
|
|
||
|
import (
|
||
|
cstructs "github.com/hashicorp/nomad/client/structs"
|
||
|
"github.com/hashicorp/nomad/nomad/structs"
|
||
|
)
|
||
|
|
||
|
// VolumeRaftEndpoints exposes the volume watcher to a set of functions
|
||
|
// to apply data transforms via Raft.
|
||
|
type VolumeRaftEndpoints interface {
|
||
|
|
||
|
// UpsertVolumeClaims applys a batch of claims to raft
|
||
|
UpsertVolumeClaims(*structs.CSIVolumeClaimBatchRequest) (uint64, error)
|
||
|
}
|
||
|
|
||
|
// ClientRPC is a minimal interface of the Server, intended as an aid
|
||
|
// for testing logic surrounding server-to-server or server-to-client
|
||
|
// RPC calls and to avoid circular references between the nomad
|
||
|
// package and the volumewatcher
|
||
|
type ClientRPC interface {
|
||
|
ControllerDetachVolume(args *cstructs.ClientCSIControllerDetachVolumeRequest, reply *cstructs.ClientCSIControllerDetachVolumeResponse) error
|
||
|
NodeDetachVolume(args *cstructs.ClientCSINodeDetachVolumeRequest, reply *cstructs.ClientCSINodeDetachVolumeResponse) error
|
||
|
}
|
||
|
|
||
|
// claimUpdater is the function used to update claims on behalf of a volume
|
||
|
// (used to wrap batch updates so that we can test
|
||
|
// volumeWatcher methods synchronously without batching)
|
||
|
type updateClaimsFn func(claims []structs.CSIVolumeClaimRequest) (uint64, error)
|