util

package
v0.3.93 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const MaxMessageLength = 2048

Variables

This section is empty.

Functions

func Batch

func Batch[T any](elements []T, batchSize int) [][]T

func CloseToDeadline

func CloseToDeadline(ctx *armadacontext.Context, tolerance time.Duration) bool

func Concat added in v0.3.49

func Concat[T any](slices ...[]T) []T

func ContainsString

func ContainsString(list []string, val string) bool

func DeepCopy

func DeepCopy(a map[string]string) map[string]string

func DeepCopyListUint32

func DeepCopyListUint32(list []uint32) []uint32

func Equal

func Equal(a map[string]string, b map[string]string) bool

func Filter

func Filter[S ~[]E, E any](s S, predicate func(e E) bool) S

func FilterKeys

func FilterKeys(a map[string]string, keys []string) map[string]string

func FormatBinarySI

func FormatBinarySI(q int64) string

func GetClusterAvailableCapacity

func GetClusterAvailableCapacity(report *api.ClusterUsageReport) armadaresource.ComputeResources

GetClusterAvailableCapacity returns the total resource to be shared amongst queues. This is the total capacity available to armada on schedulable nodes + the capacity currently in use on unschedulable nodes.

func GetClusterCapacity

func GetClusterCapacity(report *api.ClusterUsageReport) armadaresource.ComputeResources

GetClusterCapacity returns the total capacity on all nodes on a cluster, even if they are unschedulable.

func GetOrDefault

func GetOrDefault(m map[string]float64, key string, def float64) float64

func GetQueueReports

func GetQueueReports(report *api.ClusterUsageReport) []*api.QueueReport

func InverseMap

func InverseMap[K comparable, V comparable](a map[K]V) map[V]K

InverseMap creates a new map where each key: value pair is swapped If the same value is present multiple times, a random one will be selected (depending on map key-value iteration)

func Map added in v0.3.50

func Map[T any, U any](list []T, fn func(val T) U) []U

func MergeMaps

func MergeMaps(a map[string]string, b map[string]string) map[string]string

func Min

func Min(a, b int) int

func NewThreadsafeRand

func NewThreadsafeRand(seed int64) *rand.Rand

NewThreadsafeRand Returns a *rand.Rand that is safe to share across multiple goroutines

func NewULID

func NewULID() string

NewULID returns a new ULID for the current time generated from a global RNG. The ULID is returned as a string converted to lower-case to ensure it is a valid DNS subdomain name; see https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names

func PodSpecFromJob

func PodSpecFromJob(job *api.Job) *v1.PodSpec

func RemoveNullsFromJson

func RemoveNullsFromJson(json []byte) []byte

func RemoveNullsFromString

func RemoveNullsFromString(s string) string

func RetryUntilSuccess added in v0.3.91

func RetryUntilSuccess(ctx *armadacontext.Context, performAction func() error, onError func(error))

func StringFromUlid

func StringFromUlid(id ulid.ULID) string

StringFromUlid returns a string representation of a proto UUID. Because Kubernetes requires ids to be valid DNS subdomain names, the string is returned in lower-case; see https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names

func StringListToSet

func StringListToSet(list []string) map[string]bool

func SubtractStringList

func SubtractStringList(a []string, b []string) []string

func SumReportClusterCapacity

func SumReportClusterCapacity(reports map[string]*api.ClusterUsageReport) armadaresource.ComputeResources

func Truncate

func Truncate(s string, max int) string

func ULID

func ULID() ulid.ULID

ULID returns a new ULID for the current time generated from a global RNG.

Types

type Clock

type Clock interface {
	Now() time.Time
}

type DefaultClock

type DefaultClock struct{}

func (*DefaultClock) Now

func (c *DefaultClock) Now() time.Time

type DummyClock

type DummyClock struct {
	T time.Time
}

func (*DummyClock) Now

func (c *DummyClock) Now() time.Time

type LockedSource

type LockedSource struct {
	// contains filtered or unexported fields
}

LockedSource is a random source that is uses a mutex to ensure it is threadsafe

func (*LockedSource) Int63

func (r *LockedSource) Int63() (n int64)

func (*LockedSource) Seed

func (r *LockedSource) Seed(seed int64)

type UTCClock

type UTCClock struct{}

func (*UTCClock) Now

func (c *UTCClock) Now() time.Time

Jump to

Keyboard shortcuts

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