Documentation ¶
Index ¶
- Constants
- func BackupVolumeSourceToCSIVolumeHandle(backupVolumeSource string) (string, error)
- func BytesToGb(bytes int64) int64
- func ConvertLabelsStringToMap(labels string) (map[string]string, error)
- func GbToBytes(gbs int64) int64
- func GetBackupLocation(params map[string]string) string
- func GetRegionFromZone(location string) (string, error)
- func IsBackupHandle(handle string) (bool, error)
- func IsSnapshotTypeSupported(params map[string]string) (bool, error)
- func Max(a, b int64) int64
- func Min(a, b int64) int64
- func ParseTimestamp(timestamp string) (*timestamppb.Timestamp, error)
- func RoundBytesToGb(bytes int64) int64
- type IPAllocator
- type VolumeLocks
Constants ¶
const ( // the ipRangeSize for Filestore instances IpRangeSize = 29 // the ipRangeSize for enterprise tier Filestore instances IpRangeSizeEnterprise = 24 )
const ( Gb = 1024 * 1024 * 1024 Tb = 1024 * Gb // VolumeSnapshot parameters VolumeSnapshotTypeKey = "type" VolumeSnapshotLocationKey = "location" VolumeSnapshotTypeSnapshot = "snapshot" VolumeSnapshotTypeBackup = "backup" SnapshotHandleBackupKey = "backups" )
const (
VolumeOperationAlreadyExistsFmt = "An operation with the given volume key %s already exists"
)
Variables ¶
This section is empty.
Functions ¶
func BackupVolumeSourceToCSIVolumeHandle ¶ added in v0.3.1
func ConvertLabelsStringToMap ¶ added in v0.3.1
ConvertLabelsStringToMap converts the labels from string to map example: "key1=value1,key2=value2" gets converted into {"key1": "value1", "key2": "value2"}
func GetBackupLocation ¶ added in v0.3.1
func GetRegionFromZone ¶ added in v0.3.1
func IsBackupHandle ¶ added in v0.3.1
func IsSnapshotTypeSupported ¶ added in v0.3.1
func ParseTimestamp ¶ added in v0.3.1
func ParseTimestamp(timestamp string) (*timestamppb.Timestamp, error)
Types ¶
type IPAllocator ¶ added in v0.2.0
type IPAllocator struct {
// contains filtered or unexported fields
}
IPAllocator struct consists of shared resources that are used to keep track of the CIDR IPRanges currently reserved by service instances
func NewIPAllocator ¶ added in v0.2.0
func NewIPAllocator(pendingIPRanges map[string]bool) *IPAllocator
NewIPAllocator is the constructor to initialize the IPAllocator object Argument pendingIPRanges map[string]bool is a set of IP ranges currently reserved by service instances but pending reservation in the cloud instances
func (*IPAllocator) GetUnreservedIPRange ¶ added in v0.2.0
func (ipAllocator *IPAllocator) GetUnreservedIPRange(cidr string, ipRangeSize int, cloudInstancesReservedIPRanges map[string]bool) (string, error)
GetUnreservedIPRange returns an unreserved IP block. cidr: Provided cidr address in which we need to look for an unreserved IP range with specified size ipRangeSize: the size of the unreserved IP range we are looking for cloudInstancesReservedIPRanges: All the used IP ranges in the cloud instances All the used IP ranges in the service instances not updated in cloud instances is extracted from the pendingIPRanges list in the IPAllocator Finally a final reservedIPRange list is created by merging these two lists Potential error cases: 1) No IP range in the CIDR is unreserved 2) Parsing the CIDR resulted in an error
func (*IPAllocator) ReleaseIPRange ¶ added in v0.2.0
func (ipAllocator *IPAllocator) ReleaseIPRange(ipRange string)
ReleaseIPRange releases the pending IPRange Argument ipRange string is an IPV4 range which needs to be released
type VolumeLocks ¶ added in v0.5.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.5.0
func NewVolumeLocks() *VolumeLocks
func (*VolumeLocks) Release ¶ added in v0.5.0
func (vl *VolumeLocks) Release(volumeID string)
func (*VolumeLocks) TryAcquire ¶ added in v0.5.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.