utils

package
v0.0.0-...-32fc51b Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2018 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// RandomFunc is a function that computes a random number.
	RandomFunc = rand.Int63nRange
)

Functions

func CheckVersionMeetsConstraint

func CheckVersionMeetsConstraint(version, constraint string) (bool, error)

CheckVersionMeetsConstraint returns true if the <version> meets the <constraint>.

func CompareVersions

func CompareVersions(version1, operator, version2 string) (bool, error)

CompareVersions returns true if the constraint <version1> compared by <operator> to <version2> returns true, and false otherwise. The comparison is based on semantic versions, i.e. <version1> and <version2> will be converted if needed.

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 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 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 EncodeSHA1

func EncodeSHA1(in []byte) string

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

func Errors

func Errors(err error) []error

Errors returns a list of all nested errors of the given error. If the error is nil, nil is returned. If the error is a multierror, it returns all its errors. Otherwise, it returns a slice containing the error as single element.

func FindFreePort

func FindFreePort() (int, error)

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

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 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 IsTimedOut

func IsTimedOut(err error) bool

IsTimedOut determines whether the given error is a timed out error.

func LastErrorOfTimedOutWithError

func LastErrorOfTimedOutWithError(err error) error

LastErrorOfTimedOutWithError returns the last error if the given error was a <timedOutWithError>. Otherwise, it just returns nil.

func LookupDNSHost

func LookupDNSHost(domain string) []string

LookupDNSHost performs a DNS lookup for the given <domain>. In case of success, it will return the list of records. If the domain is not resolvable, it will return nil.

func LookupDNSHostCNAME

func LookupDNSHostCNAME(domain string) string

LookupDNSHostCNAME performs a CNAME DNS lookup for the given <domain>. In case of success, it will return the record. If the domain is not resolvable (or is not of type CNAME), it will return an empty string.

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 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 Retry

func Retry(interval time.Duration, timeout time.Duration, f ConditionFunc) error

Retry retries <f> until it either succeeds, fails severely or times out. Between each runs, it sleeps for <interval>.

func RetryUntil

func RetryUntil(ctx context.Context, interval time.Duration, f ConditionFunc) error

RetryUntil retries <f> until it either succeeds, fails severely or the given channel <stopCh> is closed. Between each tries, it sleeps for <interval>. The function f is guaranteed to be executed at least once. During each execution, f can't be prematurely killed, thus an operation may run considerably longer than anticipated after closing the <stopCh>.

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 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 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>.

func WaitTimeOfTimedOut

func WaitTimeOfTimedOut(err error) time.Duration

WaitTimeOfTimedOut returns the wait time of the given error if it implements the waitTimer interface: ```

type waitTimer interface {
	WaitTime() time.Duration
}

If the given error does not implement the waitTimer interface, it just returns 0.

func WaitUntilDNSNameResolvable

func WaitUntilDNSNameResolvable(domain string) (string, error)

WaitUntilDNSNameResolvable is a helper function which takes a <domain> and waits for a maximum of five minutes that the domain name is resolvable by a DNS. It returns the first record of the resolution, or an error if it was not successful.

Types

type ConditionFunc

type ConditionFunc func() (ok, severe bool, err error)

ConditionFunc is a function that reports whether it completed successfully or whether it had an error. Via the additional <severe> flag, it shows whether the error has been sever enough to cancel a retrying computation.

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) RandomDurationUntilNext

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

RandomDurationUntilNext computes the duration until a random time within the time window for the next maintenance execution.

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
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.

Jump to

Keyboard shortcuts

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