Documentation ¶
Index ¶
- Constants
- func BytesToGbRoundDown(bytes int64) int64
- func BytesToGbRoundUp(bytes int64) int64
- func CodeForError(err error) *codes.Code
- func ConvertLabelsStringToMap(labels string) (map[string]string, error)
- func ConvertMiStringToInt64(str string) (int64, error)
- func ConvertStringToAvailabilityClass(str string) (string, error)
- func ConvertStringToBool(str string) (bool, error)
- func ConvertStringToInt64(str string) (int64, error)
- func CreateNodeID(project, zone, name string) string
- func CreateZonalVolumeID(project, zone, name string) string
- func GbToBytes(Gb int64) int64
- func GenerateUnderspecifiedVolumeID(diskName string, isZonal bool) string
- func GetDeviceName(volKey *meta.Key) (string, error)
- func GetRegionFromZones(zones []string) (string, error)
- func KeyToVolumeID(volKey *meta.Key, project string) (string, error)
- func LoggedError(msg string, err error) error
- func NodeIDToZoneAndName(id string) (string, string, error)
- func ParseMachineType(machineTypeUrl string) (string, error)
- func ProcessStorageLocations(storageLocations string) ([]string, error)
- func SnapshotIDToProjectKey(id string) (string, string, string, error)
- func ValidateSnapshotType(snapshotType string) error
- func VolumeIDToKey(id string) (string, *meta.Key, error)
- type DiskParameters
- type SnapshotParameters
- type VolumeLocks
Constants ¶
const ( // Keys for Topology. This key will be shared amongst drivers from GCP TopologyKeyZone = "topology.gke.io/zone" // VolumeAttributes for Partition VolumeAttributePartition = "partition" UnspecifiedValue = "UNSPECIFIED" )
const ( // Parameters for StorageClass ParameterKeyType = "type" ParameterKeyReplicationType = "replication-type" ParameterKeyDiskEncryptionKmsKey = "disk-encryption-kms-key" ParameterKeyLabels = "labels" ParameterKeyProvisionedIOPSOnCreate = "provisioned-iops-on-create" ParameterKeyProvisionedThroughputOnCreate = "provisioned-throughput-on-create" ParameterAvailabilityClass = "availability-class" // Parameters for VolumeSnapshotClass ParameterKeyStorageLocations = "storage-locations" ParameterKeySnapshotType = "snapshot-type" ParameterKeyImageFamily = "image-family" DiskSnapshotType = "snapshots" DiskImageType = "images" // Parameters for AvailabilityClass ParameterNoAvailabilityClass = "none" ParameterRegionalHardFailoverClass = "regional-hard-failover" // Keys for PV and PVC parameters as reported by external-provisioner ParameterKeyPVCName = "csi.storage.k8s.io/pvc/name" ParameterKeyPVCNamespace = "csi.storage.k8s.io/pvc/namespace" ParameterKeyPVName = "csi.storage.k8s.io/pv/name" // Keys for Snapshot and SnapshotContent parameters as reported by external-snapshotter ParameterKeyVolumeSnapshotName = "csi.storage.k8s.io/volumesnapshot/name" ParameterKeyVolumeSnapshotNamespace = "csi.storage.k8s.io/volumesnapshot/namespace" ParameterKeyVolumeSnapshotContentName = "csi.storage.k8s.io/volumesnapshotcontent/name" )
const (
VolumeOperationAlreadyExistsFmt = "An operation with the given Volume ID %s already exists"
)
Variables ¶
This section is empty.
Functions ¶
func BytesToGbRoundDown ¶ added in v1.0.3
func BytesToGbRoundUp ¶ added in v1.0.3
func CodeForError ¶ added in v1.7.10
CodeForError returns a pointer to the grpc error code that maps to the http error code for the passed in user googleapi error or context error. Returns codes.Internal if the given error is not a googleapi error caused by the user. The following http error codes are considered user errors: (1) http 400 Bad Request, returns grpc InvalidArgument, (2) http 403 Forbidden, returns grpc PermissionDenied, (3) http 404 Not Found, returns grpc NotFound (4) http 429 Too Many Requests, returns grpc ResourceExhausted The following errors are considered context errors: (1) "context deadline exceeded", returns grpc DeadlineExceeded, (2) "context canceled", returns grpc Canceled
func ConvertLabelsStringToMap ¶ added in v1.0.3
ConvertLabelsStringToMap converts the labels from string to map example: "key1=value1,key2=value2" gets converted into {"key1": "value1", "key2": "value2"} See https://cloud.google.com/compute/docs/labeling-resources#label_format for details.
func ConvertMiStringToInt64 ¶ added in v1.8.7
ConvertMiStringToInt64 converts a GiB string to int64
func ConvertStringToAvailabilityClass ¶ added in v1.10.3
ConvertStringToAvailabilityClass converts a string to an availability class string.
func ConvertStringToBool ¶ added in v1.9.8
ConvertStringToBool converts a string to a boolean.
func ConvertStringToInt64 ¶ added in v1.7.10
ConvertStringToInt64 converts a string to int64
func CreateNodeID ¶
func CreateZonalVolumeID ¶ added in v0.6.0
func GetRegionFromZones ¶
func KeyToVolumeID ¶ added in v0.6.0
func LoggedError ¶ added in v1.7.10
func ParseMachineType ¶ added in v1.7.9
ParseMachineType returns an extracted machineType from a URL, or empty if not found. machineTypeUrl: Full or partial URL of the machine type resource, in the format:
zones/zone/machineTypes/machine-type
func ProcessStorageLocations ¶ added in v1.0.3
ProcessStorageLocations trims and normalizes storage location to lower letters.
func SnapshotIDToProjectKey ¶ added in v1.0.3
func ValidateSnapshotType ¶ added in v1.5.0
ValidateSnapshotType validates the type
Types ¶
type DiskParameters ¶ added in v0.7.0
type DiskParameters struct { // Values: pd-standard, pd-balanced, pd-ssd, or any other PD disk type. Not validated. // Default: pd-standard DiskType string // Values: "none", regional-pd // Default: "none" ReplicationType string // Values: {string} // Default: "" DiskEncryptionKMSKey string // Values: {map[string]string} // Default: "" Tags map[string]string // Values: {map[string]string} // Default: "" Labels map[string]string // Values: {int64} // Default: none ProvisionedIOPSOnCreate int64 // Values: {int64} // Default: none ProvisionedThroughputOnCreate int64 // Default: false ForceAttach bool }
DiskParameters contains normalized and defaulted disk parameters
func ExtractAndDefaultParameters ¶ added in v0.7.0
func ExtractAndDefaultParameters(parameters map[string]string, driverName string, extraVolumeLabels map[string]string) (DiskParameters, error)
ExtractAndDefaultParameters will take the relevant parameters from a map and put them into a well defined struct making sure to default unspecified fields. extraVolumeLabels are added as labels; if there are also labels specified in parameters, any matching extraVolumeLabels will be overridden.
type SnapshotParameters ¶ added in v1.0.3
type SnapshotParameters struct { StorageLocations []string SnapshotType string ImageFamily string Tags map[string]string Labels map[string]string }
SnapshotParameters contains normalized and defaulted parameters for snapshots
func ExtractAndDefaultSnapshotParameters ¶ added in v1.0.3
func ExtractAndDefaultSnapshotParameters(parameters map[string]string, driverName string) (SnapshotParameters, error)
type VolumeLocks ¶ added in v0.6.0
type VolumeLocks struct {
// contains filtered or unexported fields
}
VolumeLocks implements a map with atomic operations. It stores a set of all volume IDs with an ongoing operation.
func NewVolumeLocks ¶ added in v0.6.0
func NewVolumeLocks() *VolumeLocks
func (*VolumeLocks) Release ¶ added in v0.6.0
func (vl *VolumeLocks) Release(volumeID string)
func (*VolumeLocks) TryAcquire ¶ added in v0.6.0
func (vl *VolumeLocks) TryAcquire(volumeID string) bool
TryAcquire tries to acquire the lock for operating on volumeID and returns true if successful. If another operation is already using volumeID, returns false.