utils

package
v1.21.2 Latest Latest
Warning

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

Go to latest
Published: May 19, 2021 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 36 Imported by: 134

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AlwaysTimeWindow = NewMaintenanceTimeWindow(NewMaintenanceTime(0, 0, 0), NewMaintenanceTime(23, 59, 59))

AlwaysTimeWindow is a MaintenanceTimeWindow that contains all durations.

View Source
var RandomFunc = rand.Int63nRange

RandomFunc is a function that computes a random number.

Functions

func ComputeChecksum added in v1.8.0

func ComputeChecksum(data interface{}) string

ComputeChecksum computes a SHA256 checksum for the give map.

func ComputeSHA1Hex

func ComputeSHA1Hex(in []byte) string

ComputeSHA1Hex computes the hexadecimal representation of the SHA1 hash of the given input byte slice <in>, converts it to a string and returns it (length of returned string is 40 characters).

func ComputeSHA256Hex

func ComputeSHA256Hex(in []byte) string

ComputeSHA256Hex computes the hexadecimal representation of the SHA256 hash of the given input byte slice <in>, converts it to a string and returns it.

func ComputeSecretCheckSum added in v1.8.0

func ComputeSecretCheckSum(data map[string][]byte) string

ComputeSecretCheckSum computes the sha256 checksum of secret data.

func CreateOrUpdateObject added in v1.5.0

func CreateOrUpdateObject(ctx context.Context, c client.Client, gvk schema.GroupVersionKind, name, namespace string, content map[string]interface{}) error

CreateOrUpdateObject creates or updates the object with the given GVK, name, and namespace using the given client. The object is created or updated with the given content, except for system metadata fields, namespace, and name. This function can be combined with runtime.DefaultUnstructuredConverter.ToUnstructured to create or update an object from runtime.RawExtension.

func CreateOrUpdateObjectByRef added in v1.5.0

func CreateOrUpdateObjectByRef(ctx context.Context, c client.Client, ref *autoscalingv1.CrossVersionObjectReference, namespace string, content map[string]interface{}) error

CreateOrUpdateObjectByRef creates or updates the object with the given reference and namespace using the given client. The object is created or updated with the given content, except for system metadata fields. This function can be combined with runtime.DefaultUnstructuredConverter.ToUnstructured to create or update an object from runtime.RawExtension.

func CreateSHA1Secret

func CreateSHA1Secret(username, password []byte) string

CreateSHA1Secret takes a username and a password and returns a sha1-schemed credentials pair as string.

func DecodeBase64

func DecodeBase64(in string) ([]byte, error)

DecodeBase64 takes a Base64-encoded string and returns the decoded byte slice.

func DecodeCertificate

func DecodeCertificate(bytes []byte) (*x509.Certificate, error)

DecodeCertificate takes a byte slice, decodes it from the PEM format, converts it to an x509.Certificate object, and returns it. In case an error occurs, it returns the error.

func DecodePrivateKey

func DecodePrivateKey(bytes []byte) (*rsa.PrivateKey, error)

DecodePrivateKey takes a byte slice, decodes it from the PEM format, converts it to an rsa.PrivateKey object, and returns it. In case an error occurs, it returns the error.

func DecodeRSAPrivateKeyFromPKCS8 added in v1.7.0

func DecodeRSAPrivateKeyFromPKCS8(bytes []byte) (*rsa.PrivateKey, error)

DecodeRSAPrivateKeyFromPKCS8 takes a byte slice, decodes it from the PKCS8 format, tries to convert it to an rsa.PrivateKey object, and returns it. In case an error occurs, it returns the error.

func DeleteFromValuesMap added in v1.18.0

func DeleteFromValuesMap(values map[string]interface{}, keys ...interface{}) (map[string]interface{}, error)

DeleteFromValuesMap deletes the element at the specified location in the given values map, e.g. DeleteFromValuesMap(values, "a", 0, "b") deletes values["a"][0]["b"]. If such an element does not exist, it returns the given values map unmodified. All keys must be of type either string (for map keys) or int (for slice indexes). If a key type doesn't match the corresponding element type (string for map, int for slice), an error is returned.

func DeleteObject added in v1.5.0

func DeleteObject(ctx context.Context, c client.Client, gvk schema.GroupVersionKind, name, namespace string) error

DeleteObject deletes the object with the given GVK, name, and namespace using the given client.

func DeleteObjectByRef added in v1.5.0

func DeleteObjectByRef(ctx context.Context, c client.Client, ref *autoscalingv1.CrossVersionObjectReference, namespace string) error

DeleteObjectByRef deletes the object with the given reference and namespace using the given client.

func DurationPtr added in v1.17.0

func DurationPtr(d time.Duration) *time.Duration

DurationPtr returns a time.Duration pointer to its argument.

func EncodeBase64

func EncodeBase64(in []byte) string

EncodeBase64 takes a byte slice and returns the Base64-encoded string.

func EncodeCertificate

func EncodeCertificate(certificate []byte) []byte

EncodeCertificate takes a certificate as a byte slice, encodes it to the PEM format, and returns it as byte slice.

func EncodePrivateKey

func EncodePrivateKey(key *rsa.PrivateKey) []byte

EncodePrivateKey takes a RSA private key object, encodes it to the PEM format, and returns it as a byte slice.

func EncodePrivateKeyInPKCS8

func EncodePrivateKeyInPKCS8(key *rsa.PrivateKey) ([]byte, error)

EncodePrivateKeyInPKCS8 takes a RSA private key object, encodes it to the PKCS8 format, and returns it as a byte slice.

func EncodeSHA1

func EncodeSHA1(in []byte) string

EncodeSHA1 takes a byte slice and returns the sha1-hashed string (base64-encoded).

func FindFreePort

func FindFreePort() (int, error)

FindFreePort finds a free port on the host machine and returns it.

func FromValuesMap added in v1.18.0

func FromValuesMap(values map[string]interface{}, v interface{}) error

FromValuesMap converts the given values map values to the given value v, by first marshalling it to JSON, and then unmarshalling the result from JSON into v. If values cannot be marshalled to JSON, or if the result cannot be unmarshalled into v, an error is returned.

func GenerateRandomString

func GenerateRandomString(n int) (string, error)

GenerateRandomString uses crypto/rand to generate a random string of the specified length <n>. The set of allowed characters is [0-9a-zA-Z], thus no special characters are included in the output. Returns error if there was a problem during the random generation.

func GenerateRandomStringFromCharset

func GenerateRandomStringFromCharset(n int, allowedCharacters string) (string, error)

GenerateRandomStringFromCharset generates a cryptographically secure random string of the specified length <n>. The set of allowed characters can be specified. Returns error if there was a problem during the random generation.

func GetFromValuesMap added in v1.18.0

func GetFromValuesMap(values map[string]interface{}, keys ...interface{}) (interface{}, error)

GetFromValuesMap returns the element at the specified location in the given values map, e.g. GetFromValuesMap(values, "a", 0, "b") returns values["a"][0]["b"], if such an element exists. If such an element does not exist, it returns nil. All keys must be of type either string (for map keys) or int (for slice indexes). If a key type doesn't match the corresponding element type (string for map, int for slice), an error is returned.

func GetObject added in v1.5.0

func GetObject(ctx context.Context, c client.Client, gvk schema.GroupVersionKind, name, namespace string) (map[string]interface{}, error)

GetObjectByRef returns the object with the given GVK, name, and namespace as a map using the given client. The full content of the object is returned as map[string]interface{}, except for system metadata fields. This function can be combined with runtime.DefaultUnstructuredConverter.FromUnstructured to get the object content as runtime.RawExtension.

func GetObjectByRef added in v1.5.0

func GetObjectByRef(ctx context.Context, c client.Client, ref *autoscalingv1.CrossVersionObjectReference, namespace string) (map[string]interface{}, error)

GetObjectByRef returns the object with the given reference and namespace using the given client. The full content of the object is returned as map[string]interface{}, except for system metadata fields. This function can be combined with runtime.DefaultUnstructuredConverter.FromUnstructured to get the object content as runtime.RawExtension.

func HashForMap

func HashForMap(m map[string]interface{}) string

HashForMap creates a hash value for a map of type map[string]interface{} and returns it.

func IDForKeyWithOptionalValue added in v1.6.0

func IDForKeyWithOptionalValue(key string, value *string) string

IDForKeyWithOptionalValue returns an identifier for the given key + optional value.

func Indent added in v1.13.0

func Indent(str string, spaces int) string

Indent indents the given string with the given number of spaces.

func InitValuesMap added in v1.18.0

func InitValuesMap(values map[string]interface{}) map[string]interface{}

InitValuesMap returns the given values map if it is non-nil, or a newly allocated values map if it is nil.

func IsTrue added in v1.1.0

func IsTrue(value *bool) bool

IsTrue returns true if the passed bool pointer is not nil and true.

func MergeMaps

func MergeMaps(a, b map[string]interface{}) map[string]interface{}

MergeMaps takes two maps <a>, <b> and merges them. If <b> defines a value with a key already existing in the <a> map, the <a> value for that key will be overwritten.

func MergeStringMaps

func MergeStringMaps(oldMap map[string]string, newMaps ...map[string]string) map[string]string

MergeStringMaps merges the content of the newMaps with the oldMap. If a key already exists then it gets overwritten by the last value with the same key.

func MustNewRequirement added in v1.12.0

func MustNewRequirement(key string, op selection.Operator, vals ...string) labels.Requirement

MustNewRequirement creates a labels.Requirement with the given values and panics if there is an error.

func QuantityPtr added in v1.8.0

func QuantityPtr(q resource.Quantity) *resource.Quantity

QuantityPtr returns a Quantity pointer to its argument.

func RandomDuration added in v1.8.1

func RandomDuration(max time.Duration) time.Duration

RandomDuration takes a time.Duration and computes a non-negative pseudo-random duration in [0,max). It returns 0ns if max is <= 0ns.

func RandomDurationWithMetaDuration added in v1.8.1

func RandomDurationWithMetaDuration(max *metav1.Duration) time.Duration

RandomDurationWithMetaDuration takes a *metav1.Duration and computes a non-negative pseudo-random duration in [0,max). It returns 0ns if max is nil or <= 0ns.

func RenderLocalTemplate

func RenderLocalTemplate(tpl string, values interface{}) ([]byte, error)

RenderLocalTemplate uses a template <tpl> given as a string and renders it. Thus, the template does not necessarily need to be stored as a file.

func RenderTemplate

func RenderTemplate(filename string, values interface{}) ([]byte, error)

RenderTemplate reads the template file in the <templateDir> directory and renders it. It injects a bunch of standard functions which can be used in the template file.

func RenderTemplateWithFuncs

func RenderTemplateWithFuncs(filename string, funcs template.FuncMap, values interface{}) ([]byte, error)

RenderTemplateWithFuncs reads the template file in the <templateDir> directory and renders it. It allows providing a user-defined template.FuncMap <funcs> to the template which will be merged with the standard functions and provided to the template file. The user-defined functions always take precedence in the merge process.

func RenderTemplatesWithFuncs

func RenderTemplatesWithFuncs(filenames []string, funcs template.FuncMap, values interface{}) ([]byte, error)

RenderTemplatesWithFuncs does the same as RenderTemplateWithFuncs except that it allows providing multiple template files instead of only exactly one.

func SHA1

func SHA1(in []byte) []byte

SHA1 takes a byte slice and returns the sha1-hashed byte slice.

func SHA256

func SHA256(in []byte) []byte

SHA256 takes a byte slice and returns the sha256-hashed byte slice.

func SetToValuesMap added in v1.18.0

func SetToValuesMap(values map[string]interface{}, v interface{}, keys ...interface{}) (map[string]interface{}, error)

SetToValuesMap sets the given element v to the specified location in the given values map, e.g. SetToValuesMap(values, v, "a", 0, "b") sets values["a"][0]["b"] = v. All map and slice elements along the way that don't exist are created and set at their corresponding locations. All keys must be of type either string (for map keys) or int (for slice indexes). Slice indexes must refer to existing slice elements or the first element beyond the end of a slice. If a key type doesn't match the corresponding element type (string for map, int for slice), an error is returned.

func ShallowCopyMapStringInterface added in v1.17.0

func ShallowCopyMapStringInterface(values map[string]interface{}) map[string]interface{}

ShallowCopyMapStringInterface creates a shallow copy of the given map.

func TestEmail

func TestEmail(email string) bool

TestEmail validates the provided <email> against a regular expression and returns whether it matches.

func TimeElapsed

func TimeElapsed(timestamp *metav1.Time, duration time.Duration) bool

TimeElapsed takes a <timestamp> and a <duration> checks whether the elapsed time until now is less than the <duration>. If yes, it returns true, otherwise it returns false.

func ToValuesMap added in v1.18.0

func ToValuesMap(v interface{}) (map[string]interface{}, error)

ToValuesMap converts the given value v to a values map, by first marshalling it to JSON, and then unmarshalling the result from JSON into a values map. If v cannot be marshalled to JSON, or if the result cannot be unmarshalled into a values map, an error is returned.

func ValueExists

func ValueExists(value string, list []string) bool

ValueExists returns true or false, depending on whether the given string <value> is part of the given []string list <list>.

Types

type MaintenanceTime

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

MaintenanceTime is a structure holding a maintenance time.

func NewMaintenanceTime

func NewMaintenanceTime(hour, minute, second int) *MaintenanceTime

NewMaintenanceTime returns a maintenance time structure based on the given hour, minute, and second.

func ParseMaintenanceTime

func ParseMaintenanceTime(value string) (*MaintenanceTime, error)

ParseMaintenanceTime parses the given value and returns it as MaintenanceTime object. In case the parsing fails, an error is returned. The time object is converted to UTC zone.

func (*MaintenanceTime) Add

func (m *MaintenanceTime) Add(hour, minute, second int) *MaintenanceTime

Add adds hour, minute and second to <m> and returns a new maintenance time.

func (*MaintenanceTime) Compare

func (m *MaintenanceTime) Compare(other *MaintenanceTime) int

Compare compares the two times <m> and <other>. It returns * i < 0 if <m> is before other * i = 0 if <m> is equal other * i > 0 if <m> is after other

func (*MaintenanceTime) Formatted

func (m *MaintenanceTime) Formatted() string

Formatted formats the maintenance time object to the maintenance time format.

func (*MaintenanceTime) Hour

func (m *MaintenanceTime) Hour() int

Hour returns the hour of the maintenance time.

func (*MaintenanceTime) Minute

func (m *MaintenanceTime) Minute() int

Minute returns the minute of the maintenance time.

func (*MaintenanceTime) Second

func (m *MaintenanceTime) Second() int

Second returns the second of the maintenance time.

func (*MaintenanceTime) String

func (m *MaintenanceTime) String() string

String returns the string representation of the maintenance time.

type MaintenanceTimeWindow

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

MaintenanceTimeWindow contains the beginning and the end of a time window in which maintenance operations can be performed.

func NewMaintenanceTimeWindow

func NewMaintenanceTimeWindow(begin, end *MaintenanceTime) *MaintenanceTimeWindow

NewMaintenanceTimeWindow takes a begin and an end of a time window and returns a pointer to a MaintenanceTimeWindow structure.

func ParseMaintenanceTimeWindow

func ParseMaintenanceTimeWindow(begin, end string) (*MaintenanceTimeWindow, error)

ParseMaintenanceTimeWindow takes a begin and an end of a time window in the maintenance format and returns a pointer to a MaintenanceTimeWindow structure.

func RandomMaintenanceTimeWindow

func RandomMaintenanceTimeWindow() *MaintenanceTimeWindow

RandomMaintenanceTimeWindow computes a random time window and returns both in the format HHMMSS+ZONE.

func (*MaintenanceTimeWindow) Begin

Begin returns the begin of the time window.

func (*MaintenanceTimeWindow) Contains

func (m *MaintenanceTimeWindow) Contains(tTime time.Time) bool

Contains returns true in case the given time is within the time window.

func (*MaintenanceTimeWindow) Duration

func (m *MaintenanceTimeWindow) Duration() time.Duration

Duration returns the duration of the maintenance time window.

func (*MaintenanceTimeWindow) End

End returns the end of the time window.

func (*MaintenanceTimeWindow) Equal added in v1.2.0

Equal returns true if the time windows are the same.

func (*MaintenanceTimeWindow) RandomDurationUntilNext

func (m *MaintenanceTimeWindow) RandomDurationUntilNext(from time.Time, shiftBeginToFromIfContained bool) time.Duration

RandomDurationUntilNext computes the duration until a random time within the time window for the next maintenance execution. The <from> parameter is the time from which the calculation for the next maintenance time window shall be performed (typically: time.Now()). The <shiftBeginToFromIfContained> parameter controls whether the beginning of the maintenance time window should be changed to <from> if <from> is already inside the maintenance time window (otherwise, it has no effect). As a consequence, this will return a random duration from <from> until the end of the maintenance time window which is shorter than 24h.

func (*MaintenanceTimeWindow) String

func (m *MaintenanceTimeWindow) String() string

String returns the string representation of the time window.

func (*MaintenanceTimeWindow) WithBegin

WithBegin returns a new maintenance time window with the given <begin> (ending will be kept).

func (*MaintenanceTimeWindow) WithEnd

WithEnd returns a new maintenance time window with the given <end> (beginning will be kept).

Directories

Path Synopsis
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
Package flow provides utilities to construct a directed acyclic computational graph that is then executed and monitored with maximum parallelism.
Package flow provides utilities to construct a directed acyclic computational graph that is then executed and monitored with maximum parallelism.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
client/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
validation

Jump to

Keyboard shortcuts

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