utils

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2024 License: Apache-2.0 Imports: 21 Imported by: 3

Documentation

Index

Constants

View Source
const CSIEndpoint = "CSI_ENDPOINT"

CSIEndpoint is the name of the environment variable that contains the CSI endpoint.

Variables

View Source
var ErrParseProtoAddrRequired = errors.New(
	"non-empty network address is required")

ErrParseProtoAddrRequired occurs when an empty string is provided to ParseProtoAddr.

Functions

func AreVolumeCapabilitiesCompatible added in v0.3.2

func AreVolumeCapabilitiesCompatible(
	a, b []*csi.VolumeCapability) (bool, error)

AreVolumeCapabilitiesCompatible returns a flag indicating whether the volume capability array "a" is compatible with "b". A true value indicates that "a" and "b" are equivalent or "b" is a superset of "a".

func ChainUnaryClient

ChainUnaryClient chains one or more unary, client interceptors together into a left-to-right series that can be provided to a new gRPC client.

func ChainUnaryServer

ChainUnaryServer chains one or more unary, server interceptors together into a left-to-right series that can be provided to a new gRPC server.

func CompareVolume added in v0.4.0

func CompareVolume(a, b csi.Volume) int

CompareVolume compares two csi.Volume objects and returns a negative number if a < b, a positive number if a > b, and zero if a == b.

func EqualVolume added in v0.4.0

func EqualVolume(a, b *csi.Volume) bool

EqualVolume returns a flag indicating if two csi.Volume objects are equal. If a and b are both nil then false is returned.

func EqualVolumeCapability added in v0.3.2

func EqualVolumeCapability(a, b *csi.VolumeCapability) bool

EqualVolumeCapability returns a flag indicating if two csi.VolumeCapability objects are equal. If a and b are both nil then false is returned.

func GetCSIEndpoint

func GetCSIEndpoint() (network, addr string, err error)

GetCSIEndpoint returns the network address specified by the environment variable CSI_ENDPOINT.

func GetCSIEndpointListener

func GetCSIEndpointListener() (net.Listener, error)

GetCSIEndpointListener returns the net.Listener for the endpoint specified by the environment variable CSI_ENDPOINT.

func IsNilResponse

func IsNilResponse(rep interface{}) bool

IsNilResponse returns a flag indicating whether or not the provided response object is a nil object wrapped inside a non-nil interface.

func IsSuccess

func IsSuccess(err error, successCodes ...codes.Code) error

IsSuccess returns nil if the provided error is an RPC error with an error code that is OK (0) or matches one of the additional, provided successful error codes. Otherwise the original error is returned.

func IsVolumeCapabilityCompatible added in v0.3.2

func IsVolumeCapabilityCompatible(
	a *csi.VolumeCapability, b []*csi.VolumeCapability) (bool, error)

IsVolumeCapabilityCompatible returns a flag indicating whether the volume capability "a" is compatible with the set "b". A true value indicates that "a" and "b" are equivalent or "b" is a superset of "a".

func NewBlockCapability

func NewBlockCapability(
	mode csi.VolumeCapability_AccessMode_Mode) *csi.VolumeCapability

NewBlockCapability returns a new *csi.VolumeCapability for a volume that is to be accessed as a raw device.

func NewMountCapability

func NewMountCapability(
	mode csi.VolumeCapability_AccessMode_Mode,
	fsType string,
	mountFlags ...string) *csi.VolumeCapability

NewMountCapability returns a new *csi.VolumeCapability for a volume that is to be mounted.

func PageSnapshots added in v1.0.0

func PageSnapshots(
	ctx context.Context,
	client csi.ControllerClient,
	req csi.ListSnapshotsRequest,
	opts ...grpc.CallOption) (<-chan csi.Snapshot, <-chan error)

PageSnapshots issues one or more ListSnapshots requests to retrieve all available snaphsots, returning them over a Go channel.

func PageVolumes

func PageVolumes(
	ctx context.Context,
	client csi.ControllerClient,
	req csi.ListVolumesRequest,
	opts ...grpc.CallOption) (<-chan csi.Volume, <-chan error)

PageVolumes issues one or more ListVolumes requests to retrieve all available volumes, returning them over a Go channel.

func ParseMap

func ParseMap(line string) map[string]string

ParseMap parses a string into a map. The string's expected pattern is:

KEY1=VAL1, "KEY2=VAL2 ", "KEY 3= VAL3"

The key/value pairs are separated by a comma and optional whitespace. Please see the encoding/csv package (https://goo.gl/1j1xb9) for information on how to quote keys and/or values to include leading and trailing whitespace.

func ParseMapWS

func ParseMapWS(line string) map[string]string

ParseMapWS parses a string into a map. The string's expected pattern is:

KEY1=VAL1 KEY2="VAL2 " "KEY 3"=' VAL3'

The key/value pairs are separated by one or more whitespace characters. Keys and/or values with whitespace should be quoted with either single or double quotes.

func ParseMethod added in v0.4.0

func ParseMethod(
	fullMethod string) (version int32, service, methodName string, err error)

ParseMethod parses a gRPC method and returns the CSI version, service to which the method belongs, and the method's name. An example value for the "fullMethod" argument is "/csi.v0.Identity/GetPluginInfo".

func ParseProtoAddr

func ParseProtoAddr(protoAddr string) (proto string, addr string, err error)

ParseProtoAddr parses a Golang network address.

func ParseSlice

func ParseSlice(line string) []string

ParseSlice parses a string into a slice. The string's expected pattern is:

VAL1, "VAL2 ", " VAL3 "

The values are separated by a comma and optional whitespace. Please see the encoding/csv package (https://goo.gl/1j1xb9) for information on how to quote values to include leading and trailing whitespace.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL