util

package
v0.0.0-...-dacd781 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetContainerPorts

func GetContainerPorts(pods ...*v1.Pod) []*v1.ContainerPort

GetContainerPorts returns the used host ports of Pods: if 'port' was used, a 'port:true' pair will be in the result; but it does not resolve port conflict.

func GetPodFullName

func GetPodFullName(pod *v1.Pod) string

GetPodFullName returns a name that uniquely identifies a pod.

func GetPodPriority

func GetPodPriority(pod *v1.Pod) int32

GetPodPriority return priority of the given pod.

func HigherPriorityPod

func HigherPriorityPod(pod1, pod2 interface{}) bool

HigherPriorityPod return true when priority of the first pod is higher than the second one. It takes arguments of the type "interface{}" to be used with SortableList, but expects those arguments to be *v1.Pod.

func PodPriorityEnabled

func PodPriorityEnabled() bool

PodPriorityEnabled indicates whether pod priority feature is enabled.

Types

type Clock

type Clock interface {
	Now() time.Time
}

Clock provides an interface for getting the current time

type Heap

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

Heap is a producer/consumer queue that implements a heap data structure. It can be used to implement priority queues and similar data structures.

func NewHeap

func NewHeap(keyFn KeyFunc, lessFn LessFunc) *Heap

NewHeap returns a Heap which can be used to queue up items to process.

func (*Heap) Add

func (h *Heap) Add(obj interface{}) error

Add inserts an item, and puts it in the queue. The item is updated if it already exists.

func (*Heap) AddIfNotPresent

func (h *Heap) AddIfNotPresent(obj interface{}) error

AddIfNotPresent inserts an item, and puts it in the queue. If an item with the key is present in the map, no changes is made to the item.

func (*Heap) Delete

func (h *Heap) Delete(obj interface{}) error

Delete removes an item.

func (*Heap) Get

func (h *Heap) Get(obj interface{}) (interface{}, bool, error)

Get returns the requested item, or sets exists=false.

func (*Heap) GetByKey

func (h *Heap) GetByKey(key string) (interface{}, bool, error)

GetByKey returns the requested item, or sets exists=false.

func (*Heap) Len

func (h *Heap) Len() int

Len returns the number of items in the heap.

func (*Heap) List

func (h *Heap) List() []interface{}

List returns a list of all the items.

func (*Heap) Peek

func (h *Heap) Peek() interface{}

Peek returns the head of the heap without removing it.

func (*Heap) Pop

func (h *Heap) Pop() (interface{}, error)

Pop returns the head of the heap and removes it.

func (*Heap) Update

func (h *Heap) Update(obj interface{}) error

Update is the same as Add in this implementation. When the item does not exist, it is added.

type KeyFunc

type KeyFunc func(obj interface{}) (string, error)

KeyFunc is a function type to get the key from an object.

type LessFunc

type LessFunc func(item1, item2 interface{}) bool

LessFunc is a function that receives two items and returns true if the first item should be placed before the second one when the list is sorted.

type PodBackoff

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

PodBackoff is used to restart a pod with back-off delay.

func CreateDefaultPodBackoff

func CreateDefaultPodBackoff() *PodBackoff

CreateDefaultPodBackoff creates a default pod back-off object.

func CreatePodBackoff

func CreatePodBackoff(defaultDuration, maxDuration time.Duration) *PodBackoff

CreatePodBackoff creates a pod back-off object by default duration and max duration.

func CreatePodBackoffWithClock

func CreatePodBackoffWithClock(defaultDuration, maxDuration time.Duration, clock clock) *PodBackoff

CreatePodBackoffWithClock creates a pod back-off object by default duration, max duration and clock.

func (*PodBackoff) BackoffPod

func (p *PodBackoff) BackoffPod(podID ktypes.NamespacedName) time.Duration

BackoffPod updates the backoff for a podId and returns the duration until backoff completion

func (*PodBackoff) ClearPodBackoff

func (p *PodBackoff) ClearPodBackoff(podID ktypes.NamespacedName) bool

ClearPodBackoff removes all tracking information for podID (clears expiry)

func (*PodBackoff) Gc

func (p *PodBackoff) Gc()

Gc execute garbage collection on the pod back-off.

func (*PodBackoff) GetBackoffTime

func (p *PodBackoff) GetBackoffTime(podID ktypes.NamespacedName) (time.Time, bool)

GetBackoffTime returns the time that podID completes backoff

func (*PodBackoff) MaxDuration

func (p *PodBackoff) MaxDuration() time.Duration

MaxDuration returns the max time duration of the back-off.

func (*PodBackoff) TryBackoffAndWait

func (p *PodBackoff) TryBackoffAndWait(podID ktypes.NamespacedName, stop <-chan struct{}) bool

TryBackoffAndWait tries to acquire the backoff lock

type RealClock

type RealClock struct{}

RealClock implements a clock using time

func (RealClock) Now

func (RealClock) Now() time.Time

Now returns the current time with time.Now

type SortableList

type SortableList struct {
	Items    []interface{}
	CompFunc LessFunc
}

SortableList is a list that implements sort.Interface.

func (*SortableList) Len

func (l *SortableList) Len() int

func (*SortableList) Less

func (l *SortableList) Less(i, j int) bool

func (*SortableList) Sort

func (l *SortableList) Sort()

Sort sorts the items in the list using the given CompFunc. Item1 is placed before Item2 when CompFunc(Item1, Item2) returns true.

func (*SortableList) Swap

func (l *SortableList) Swap(i, j int)

Jump to

Keyboard shortcuts

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