utils

package
v0.0.0-...-b43e092 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2018 License: Apache-2.0, MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

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 ComputeRandomTimeWindow

func ComputeRandomTimeWindow() (string, string)

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

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 FindFreePort

func FindFreePort() (int, error)

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

func FormatMaintenanceTime

func FormatMaintenanceTime(t time.Time) string

FormatMaintenanceTime formats a time object to the maintenance time format.

func FuncName

func FuncName(f interface{}) string

FuncName takes a function <f> as input and returns its name as a string. If the function is a method of a struct, the struct will be also prefixed, e.g. 'Botanist.CreateNamespace'.

func GenerateRandomString

func GenerateRandomString(n int) string

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

func GenerateRandomStringFromCharset

func GenerateRandomStringFromCharset(n int, allowedCharacters string) string

GenerateRandomStringFromCharset generates a random string of the specified length <n>. The set of allowed characters can be specified.

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 LookupDNS

func LookupDNS(domain string) []string

LookupDNS 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 MergeMaps

func MergeMaps(defaults, custom map[string]interface{}) map[string]interface{}

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

func ParseMaintenanceTime

func ParseMaintenanceTime(value string) (time.Time, error)

ParseMaintenanceTime parses the maintenance time and returns it as Time object. In case the parse fails, an error is returned.

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(logger *logrus.Entry, maxWaitTime time.Duration, f func() (bool, error)) error

Retry tries a condition function <f> until it returns true or the timeout <maxWaitTime> is reached. Retry always waits the 5 seconds before retrying <f> the next time. It ensures that the function <f> is always executed at least once.

func RetryFunc

func RetryFunc(logger *logrus.Entry, f func() error) func() (bool, error)

RetryFunc is a convenience wrapper which returns a condition function that fits the requirements of the Retry function. The function <f> must not require any arguments and only return an error. It will be executed and if it returns an error, the returned-tuple will be (false, err), whereby it will be (true, nil) if the execution of <f> was successful.

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

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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