util

package
v0.114.0 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VolumeStackPrefix     = "volume-"
	ControllerServiceName = "controller"
	ReplicaServiceName    = "replica"

	HostProcPath                 = "/host/proc"
	ReplicaDirectory             = "/replicas/"
	DeviceDirectory              = "/dev/longhorn/"
	TemporaryMountPointDirectory = "/tmp/mnt/"

	DefaultKubernetesTolerationKey = "kubernetes.io"

	DiskConfigFile = "longhorn-disk.cfg"

	SizeAlignment     = 2 * 1024 * 1024
	MinimalVolumeSize = 10 * 1024 * 1024
)

Variables

View Source
var (
	APIRetryInterval       = 500 * time.Millisecond
	APIRetryJitterInterval = 50 * time.Millisecond
	APIRetryCounts         = 10
)

Functions

func AddFinalizer

func AddFinalizer(name string, obj runtime.Object) error

func AutoCorrectName

func AutoCorrectName(name string, maxLength int) string

AutoCorrectName converts name to lowercase, and correct overlength name by replaces the name suffix with 8 char from its checksum to ensure uniquenedoss.

func Backoff

func Backoff(maxDuration time.Duration, timeoutMessage string, f func() (bool, error)) error

func CheckBackupType

func CheckBackupType(backupTarget string) (string, error)

func CmdOutLines

func CmdOutLines(cmd *exec.Cmd, cancel <-chan interface{}) (<-chan string, <-chan error)

func Contains

func Contains(list []string, item string) bool

func ConvertSize

func ConvertSize(size interface{}) (int64, error)

func CopyHostDirectoryContent

func CopyHostDirectoryContent(src, dest string) (err error)

func CopyReq

func CopyReq(req *http.Request) *http.Request

func CreateDiskPathReplicaSubdirectory

func CreateDiskPathReplicaSubdirectory(path string) error

func DeleteDiskPathReplicaSubdirectoryAndDiskCfgFile

func DeleteDiskPathReplicaSubdirectoryAndDiskCfgFile(
	nsExec *iscsi_util.NamespaceExecutor, path string) error

func DetectFileSystem

func DetectFileSystem(volumeName string) (string, error)

func Execute

func Execute(envs []string, binary string, args ...string) (string, error)

func ExecuteWithTimeout

func ExecuteWithTimeout(timeout time.Duration, envs []string, binary string, args ...string) (string, error)

func ExecuteWithoutTimeout

func ExecuteWithoutTimeout(envs []string, binary string, args ...string) (string, error)

func ExpandFileSystem

func ExpandFileSystem(volumeName string) (err error)

func FilteredLoggingHandler

func FilteredLoggingHandler(filteredPaths map[string]struct{}, writer io.Writer, router http.Handler) http.Handler

func FinalizerExists

func FinalizerExists(name string, obj runtime.Object) bool

func FormatLocalTime

func FormatLocalTime(t time.Time, loc *time.Location) string

func FormatTimeZ

func FormatTimeZ(t time.Time) string

func FromMillis

func FromMillis(t int64) time.Time

func GetAnnotation

func GetAnnotation(obj runtime.Object, annotationKey string) (string, error)

func GetBackupID

func GetBackupID(backupURL string) (string, error)

func GetChecksumSHA512

func GetChecksumSHA512(data []byte) string

func GetDistinctTolerations

func GetDistinctTolerations(tolerationList []v1.Toleration) []v1.Toleration

func GetLocalIPs

func GetLocalIPs() ([]string, error)

func GetRequiredEnv

func GetRequiredEnv(key string) (string, error)

func GetSortedKeysFromMap

func GetSortedKeysFromMap(maps interface{}) []string

func GetStringChecksum

func GetStringChecksum(data string) string

func GetStringHash

func GetStringHash(data string) string

func GetTolerationChecksum

func GetTolerationChecksum(t v1.Toleration) string

func IsKubernetesDefaultToleration

func IsKubernetesDefaultToleration(toleration v1.Toleration) bool

func IsKubernetesVersionAtLeast

func IsKubernetesVersionAtLeast(kubeClient clientset.Interface, vers string) (bool, error)

func IsSupportedFileSystem

func IsSupportedFileSystem(fsType string) bool

func LimitToPeriod

func LimitToPeriod(p, t [2]time.Time) [2]time.Time

func MinInt

func MinInt(a, b int) int

func Now

func Now() string

func ParseLabels

func ParseLabels(labels []string) (map[string]string, error)

ParseLabels parses the provided Labels based on longhorn-engine's implementation: https://github.com/longhorn/longhorn-engine/blob/master/util/util.go

func ParseLocalTime

func ParseLocalTime(ts string, loc *time.Location) (time.Time, error)

func ParsePeriod

func ParsePeriod(s string, loc *time.Location) ([2]time.Time, error)

func ParseTime

func ParseTime(t string) (time.Time, error)

func ParseTimeZ

func ParseTimeZ(s string) (time.Time, error)

func RandomID

func RandomID() string

func RegisterShutdownChannel

func RegisterShutdownChannel(done chan struct{})

func RemoveFinalizer

func RemoveFinalizer(name string, obj runtime.Object) error

func RemoveHostDirectoryContent

func RemoveHostDirectoryContent(directory string) (err error)

func RetryOnConflictCause

func RetryOnConflictCause(fn func() (interface{}, error)) (interface{}, error)

func RetryOnErrorCondition

func RetryOnErrorCondition(fn func() (interface{}, error), predicate func(error) bool) (interface{}, error)

func RetryOnNotFoundCause

func RetryOnNotFoundCause(fn func() (interface{}, error)) (interface{}, error)

func RoundUpSize

func RoundUpSize(size int64) int64

func RunAsync

func RunAsync(wg *sync.WaitGroup, f func())

func SetAnnotation

func SetAnnotation(obj runtime.Object, annotationKey, annotationValue string) error

func SplitStringToMap

func SplitStringToMap(str, separator string) map[string]struct{}

func TimestampAfterTimeout

func TimestampAfterTimeout(ts string, timeout time.Duration) bool

func TimestampWithinLimit

func TimestampWithinLimit(latest time.Time, ts string, limit time.Duration) bool

func TolerationListToMap

func TolerationListToMap(tolerationList []v1.Toleration) map[string]v1.Toleration

func UUID

func UUID() string

func ValidateName

func ValidateName(name string) bool

func ValidateSnapshotLabels

func ValidateSnapshotLabels(labels map[string]string) (map[string]string, error)

func ValidateTags

func ValidateTags(inputTags []string) ([]string, error)

func WaitForAPI

func WaitForAPI(url string, timeout int) error

WaitForAPI timeout in second

func WaitForDevice

func WaitForDevice(dev string, timeout int) error

WaitForDevice timeout in second

Types

type DiskConfig

type DiskConfig struct {
	DiskUUID string `json:"diskUUID"`
}

func GenerateDiskConfig

func GenerateDiskConfig(path string) (*DiskConfig, error)

func GetDiskConfig

func GetDiskConfig(path string) (*DiskConfig, error)

type DiskInfo

type DiskInfo struct {
	Fsid             string
	Path             string
	Type             string
	FreeBlock        int64
	TotalBlock       int64
	BlockSize        int64
	StorageMaximum   int64
	StorageAvailable int64
}

func GetDiskInfo

func GetDiskInfo(directory string) (info *DiskInfo, err error)

type MetadataConfig

type MetadataConfig struct {
	DriverName          string
	Image               string
	OrcImage            string
	DriverContainerName string
}

Jump to

Keyboard shortcuts

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