utils

package
v0.0.0-...-273f5df Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2020 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BindFlags

func BindFlags(flags *pflag.FlagSet) clientcmd.ClientConfig

BindFlags applies standard Go flags and the flags used by kubeclient to the specified FlagSet.

func CallInNetNSWithSysfsRemounted

func CallInNetNSWithSysfsRemounted(innerNS ns.NetNS, toCall func(ns.NetNS) error) error

CallInNetNSWithSysfsRemounted enters particular netns, adds new sysfs mount on top of /sys, calls "toCall" callback in this netns removing temporary mount on /sys at the end.

func GetBoolFromString

func GetBoolFromString(str string) bool

GetBoolFromString returns false if str is an empty string or is equal to one of: "0", "f" or "false". Case doesnt't matter anythging else is true

func GetK8sClientConfig

func GetK8sClientConfig(host string) (*rest.Config, error)

GetK8sClientConfig returns config that is needed to access k8s

func GetK8sClientset

func GetK8sClientset(config *rest.Config) (*kubernetes.Clientset, error)

GetK8sClientset returns clientset for standard k8s APIs

func Merge

func Merge(base, override interface{}) interface{}

Merge will take two data sets and merge them together - returning a new data set

func NewUUID

func NewUUID() string

NewUUID returns a new uuid4 as a string

func NewUUID5

func NewUUID5(nsUUID, s string) string

NewUUID5 returns a new uuid5 as a string

func ReadJSON

func ReadJSON(filename string, v interface{}) error

ReadJSON converts data from file specified by `filename` to provided as `v` interface.

func Stringify

func Stringify(value interface{}) string

Stringify returns string representation for provided value.

func ToJSON

func ToJSON(o interface{}) string

ToJSON converts the specified object to indented JSON. It panics in case if the object connot be converted.

func ToJSONUnindented

func ToJSONUnindented(o interface{}) string

ToJSONUnindented converts the specified object to unindented JSON. It panics in case if the object connot be converted.

func WaitForProcess

func WaitForProcess(procFile string) (int, error)

WaitForProcess waits for the following conditions to be true at the same time:

  • the specified procFile is readable and contains two numeric values separated by space, PID and start time in jiffies (field 22 in /proc/PID/stat, starting from 1)
  • the process with the PID read from procFile exists and has start time equal to the start time read from procFile

This avoids possible problems with stale procFile that could happen if only PID was stored there. The command can be used in shell script to generate the "procfile" for the current shell: /bin/sh -c 'echo "$$ `cut -d" " -f22 /proc/$$/stat`"'

func WaitLoop

func WaitLoop(test func() (bool, error), retryPeriod time.Duration, timeout time.Duration, clock clockwork.Clock) error

WaitLoop executes test func in loop until it returns error, true, or the timeout elapses. clock argument denotes a clock object to use for waiting. When clock is nil, WaitLoop uses clockwork.NewRealClock()

func WriteJSON

func WriteJSON(filename string, v interface{}, perm os.FileMode) error

WriteJSON saves under specified `filename` data provided in `v` interface setting file mode according to `perm` value.

Types

type Command

type Command interface {
	// Output runs the command and returns its standard output.
	// If stdin is non-nil, it's passed to the command's standed
	// input. Any returned error will usually be of type
	// *ExitError with ExitError.Stderr containing the stderr
	// output of the command.
	Run(stdin []byte) ([]byte, error)
}

Command represents an external command being prepared or run.

type Commander

type Commander interface {
	// Command returns an isntance of Command to execute the named
	// program with the given arguments.
	Command(name string, arg ...string) Command
}

Commander is used to run external commands.

var DefaultCommander Commander = &defaultCommander{}

DefaultCommander is an implementation of Commander that runs the commands using exec.Command.

type ShellTemplate

type ShellTemplate struct {
	*template.Template
}

ShellTemplate denotes a simple template used to generate shell commands. It adds 'shellquote' function to go-template that can be used to quote string values for the shell.

func NewShellTemplate

func NewShellTemplate(text string) *ShellTemplate

NewShellTemplate returns a new shell template using the specified text. It panics if the template doesn't compile.

func (*ShellTemplate) ExecuteToString

func (t *ShellTemplate) ExecuteToString(data interface{}) (string, error)

ExecuteToString executes the template using the specified data and returns the result as a string.

func (*ShellTemplate) MustExecuteToString

func (t *ShellTemplate) MustExecuteToString(data interface{}) string

MustExecuteToString executes the template using the specified data and returns the result as a string. It panics upon an error

type VFInfo

type VFInfo struct {
	// ID contains VF number
	ID int
	// Mac contains hardware mac address
	Mac string
	// VLanID contains vlan id
	VLanID int
	// SpoofChecking holds status of spoof checking
	SpoofChecking bool
	// LinkState holds state of link (nil means auto)
	LinkState *bool
}

VFInfo contains information about particular VF

func ParseIPLinkOutput

func ParseIPLinkOutput(data []byte) ([]VFInfo, error)

ParseIPLinkOutput takes output of `ip link show somelink` and parses it to list of VFInfo structures

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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