kubernetes.v0: gopkg.in/kubernetes/kubernetes.v0/pkg/util Index | Files | Directories

package util

import "gopkg.in/kubernetes/kubernetes.v0/pkg/util"

Package util implements various utility functions used in both testing and implementation of Kubernetes. Package util may not depend on any other package in the Kubernetes package tree.


Package Files

atomic_value.go bool_flag.go cache.go clock.go configuration_map.go crypto.go diff.go doc.go escape.go fake_handler.go flags.go hash.go http.go list.go logs.go net.go pflag_import.go port_range.go port_split.go resource_container_linux.go runner.go set.go ssh.go string_flag.go template.go throttle.go time.go trace.go util.go uuid.go validation.go


const CIdentifierFmt string = "[A-Za-z_][A-Za-z0-9_]*"
const DNS1123LabelFmt string = "[a-z0-9]([-a-z0-9]*[a-z0-9])?"
const DNS1123LabelMaxLength int = 63
const DNS1123SubdomainFmt string = DNS1123LabelFmt + "(\\." + DNS1123LabelFmt + ")*"
const DNS1123SubdomainMaxLength int = 253
const DNS952LabelFmt string = "[a-z]([-a-z0-9]*[a-z0-9])?"
const DNS952LabelMaxLength int = 24
const IdentifierNoHyphensBeginEndFmt string = "[a-z0-9]([a-z0-9-]*[a-z0-9])*"
const LabelValueFmt string = "(" + QualifiedNameFmt + ")?"
const LabelValueMaxLength int = 63
const QualifiedNameFmt string = "(" + qnameCharFmt + qnameExtCharFmt + "*)?" + qnameCharFmt
const QualifiedNameMaxLength int = 63


var ErrorHandlers = []func(error){logError}

ErrorHandlers is a list of functions which will be invoked when an unreturnable error occurs.

var NeverStop <-chan struct{} = make(chan struct{})

NeverStop may be passed to Until to make it never stop.

var PanicHandlers = []func(interface{}){logPanic}

PanicHandlers is a list of functions which will be invoked when a panic happens.

var ReallyCrash bool

For testing, bypass HandleCrash.

func AddAllFlagsToPFlags Uses

func AddAllFlagsToPFlags()

AddAllFlagsToPFlags adds all of the top level 'flag' package flags to the top level 'pflag' flags.

func AddFlagSetToPFlagSet Uses

func AddFlagSetToPFlagSet(fsIn *flag.FlagSet, fsOut *pflag.FlagSet)

AddFlagSetToPFlagSet adds all of the flags in a 'flag.FlagSet' package flags to a 'pflag.FlagSet'.

func AddPFlagSetToPFlagSet Uses

func AddPFlagSetToPFlagSet(fsFrom *pflag.FlagSet, fsTo *pflag.FlagSet)

AddPFlagSetToPFlagSet merges the flags of fsFrom into fsTo.

func AllPtrFieldsNil Uses

func AllPtrFieldsNil(obj interface{}) bool

Tests whether all pointer fields in a struct are nil. This is useful when, for example, an API struct is handled by plugins which need to distinguish "no plugin accepted this spec" from "this spec is empty".

This function is only valid for structs and pointers to structs. Any other type will cause a panic. Passing a typed nil pointer will return true.

func ApplyOomScoreAdj Uses

func ApplyOomScoreAdj(pid int, value int) error

Writes 'value' to /proc/<pid>/oom_score_adj. PID = 0 means self

func CertPoolFromFile Uses

func CertPoolFromFile(filename string) (*x509.CertPool, error)

CertPoolFromFile returns an x509.CertPool containing the certificates in the given PEM-encoded file. Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates

func CertsFromPEM Uses

func CertsFromPEM(pemCerts []byte) ([]*x509.Certificate, error)

CertsFromPEM returns the x509.Certificates contained in the given PEM-encoded byte array Returns an error if a certificate could not be parsed, or if the data does not contain any certificates

func ChooseHostInterface Uses

func ChooseHostInterface() (net.IP, error)

ChooseHostInterface is a method used fetch an IP for a daemon. It uses data from /proc/net/route file. For a node with no internet connection ,it returns error For a multi n/w interface node it returns the IP of the interface with gateway on it.

func CompileRegexps Uses

func CompileRegexps(regexpStrings []string) ([]*regexp.Regexp, error)

Takes a list of strings and compiles them into a list of regular expressions

func DeepHashObject Uses

func DeepHashObject(hasher hash.Hash, objectToWrite interface{})

DeepHashObject writes specified object to hash using the spew library which follows pointers and prints actual values of the nested objects ensuring the hash does not change when a pointer changes.

func EncodePrivateKey Uses

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

func EncodePublicKey Uses

func EncodePublicKey(public *rsa.PublicKey) ([]byte, error)

func EncodeSSHKey Uses

func EncodeSSHKey(public *rsa.PublicKey) ([]byte, error)

func EscapeQualifiedNameForDisk Uses

func EscapeQualifiedNameForDisk(in string) string

EscapeQualifiedNameForDisk converts a plugin name, which might contain a / into a string that is safe to use on-disk. This assumes that the input has already been validates as a qualified name. we use "~" rather than ":" here in case we ever use a filesystem that doesn't allow ":".

func ExecuteTemplate Uses

func ExecuteTemplate(w io.Writer, templateText string, data interface{}) error

ExecuteTemplate executes templateText with data and output written to w.

func ExecuteTemplateToString Uses

func ExecuteTemplateToString(templateText string, data interface{}) (string, error)

func FileExists Uses

func FileExists(filename string) (bool, error)

func FlushLogs Uses

func FlushLogs()

FlushLogs flushes logs immediately.

func Forever Uses

func Forever(f func(), period time.Duration)

Forever loops forever running f every period. Catches any panics, and keeps going. Deprecated. Please use Until and pass NeverStop as the stopCh.

func GenerateKey Uses

func GenerateKey(bits int) (*rsa.PrivateKey, *rsa.PublicKey, error)

func GenerateSelfSignedCert Uses

func GenerateSelfSignedCert(host, certPath, keyPath string, alternateIPs []net.IP, alternateDNS []string) error

GenerateSelfSignedCert creates a self-signed certificate and key for the given host. Host may be an IP or a DNS name You may also specify additional subject alt names (either ip or dns names) for the certificate The certificate will be created with file mode 0644. The key will be created with file mode 0600. If the certificate or key files already exist, they will be overwritten. Any parent directories of the certPath or keyPath will be created as needed with file mode 0755.

func GetClient Uses

func GetClient(req *http.Request) string

func HandleCrash Uses

func HandleCrash()

HandleCrash simply catches a crash and logs an error. Meant to be called via defer.

func HandleError Uses

func HandleError(err error)

HandlerError is a method to invoke when a non-user facing piece of code cannot return an error and needs to indicate it has been ignored. Invoking this method is preferable to logging the error - the default behavior is to log but the errors may be sent to a remote server for analysis.

func InitFlags Uses

func InitFlags()

InitFlags normalizes and parses the command line flags

func InitLogs Uses

func InitLogs()

InitLogs initializes logs the way we want for kubernetes.

func IsCIdentifier Uses

func IsCIdentifier(value string) bool

IsCIdentifier tests for a string that conforms the definition of an identifier in C. This checks the format, but not the length.

func IsDNS1123Label Uses

func IsDNS1123Label(value string) bool

IsDNS1123Label tests for a string that conforms to the definition of a label in DNS (RFC 1123).

func IsDNS1123Subdomain Uses

func IsDNS1123Subdomain(value string) bool

IsDNS1123Subdomain tests for a string that conforms to the definition of a subdomain in DNS (RFC 1123).

func IsDNS952Label Uses

func IsDNS952Label(value string) bool

IsDNS952Label tests for a string that conforms to the definition of a label in DNS (RFC 952).

func IsProbableEOF Uses

func IsProbableEOF(err error) bool

IsProbableEOF returns true if the given error resembles a connection termination scenario that would justify assuming that the watch is empty. These errors are what the Go http stack returns back to us which are general connection closure errors (strongly correlated) and callers that need to differentiate probable errors in connection behavior between normal "this is disconnected" should use the method.

func IsQualifiedName Uses

func IsQualifiedName(value string) bool

func IsValidIPv4 Uses

func IsValidIPv4(value string) bool

IsValidIPv4 tests that the argument is a valid IPv4 address.

func IsValidLabelValue Uses

func IsValidLabelValue(value string) bool

func IsValidPortName Uses

func IsValidPortName(port string) bool

IsValidPortName check that the argument is valid syntax. It must be non empty and no more than 15 characters long It must contains at least one letter [a-z] and it must contains only [a-z0-9-]. Hypens ('-') cannot be leading or trailing character of the string and cannot be adjacent to other hyphens. Although RFC 6335 allows upper and lower case characters but case is ignored for comparison purposes: (HTTP and http denote the same service).

func IsValidPortNum Uses

func IsValidPortNum(port int) bool

IsValidPortNum tests that the argument is a valid, non-zero port number.

func JoinQualifiedName Uses

func JoinQualifiedName(namespace, name string) string

Joins 'namespace' and 'name' and returns a fully qualified name Assumes that the input is valid.

func MakePrivateKeySignerFromBytes Uses

func MakePrivateKeySignerFromBytes(buffer []byte) (ssh.Signer, error)

func MakePrivateKeySignerFromFile Uses

func MakePrivateKeySignerFromFile(key string) (ssh.Signer, error)

func NewLogger Uses

func NewLogger(prefix string) *log.Logger

NewLogger creates a new log.Logger which sends logs to glog.Info.

func NewUUID Uses

func NewUUID() types.UID


* The UUID package is naive and can generate identical UUIDs if the time interval is quick enough.
* Block subsequent UUIDs for 200 Nanoseconds, the UUID uses 100 ns increments, we block for 200 to be safe
* Blocks in a go routine, so that the caller doesn't have to wait.
* TODO: save old unused UUIDs so that no one has to block.

func ObjectDiff Uses

func ObjectDiff(a, b interface{}) string

ObjectDiff writes the two objects out as JSON and prints out the identical part of the objects followed by the remaining part of 'a' and finally the remaining part of 'b'. For debugging tests.

func ObjectGoPrintDiff Uses

func ObjectGoPrintDiff(a, b interface{}) string

ObjectGoPrintDiff is like ObjectDiff, but uses go-spew to print the objects, which shows absolutely everything by recursing into every single pointer (go's %#v formatters OTOH stop at a certain point). This is needed when you can't figure out why reflect.DeepEqual is returning false and nothing is showing you differences. This will.

func ObjectGoPrintSideBySide Uses

func ObjectGoPrintSideBySide(a, b interface{}) string

ObjectGoPrintSideBySide prints a and b as textual dumps side by side, enabling easy visual scanning for mismatches.

func ParsePublicKeyFromFile Uses

func ParsePublicKeyFromFile(keyFile string) (*rsa.PublicKey, error)

func RunInResourceContainer Uses

func RunInResourceContainer(containerName string) error

Creates resource-only containerName if it does not already exist and moves the current process to it.

containerName must be an absolute container name.

func RunSSHCommand Uses

func RunSSHCommand(cmd, user, host string, signer ssh.Signer) (string, string, int, error)

RunSSHCommand returns the stdout, stderr, and exit code from running cmd on host as specific user, along with any SSH-level error. If user=="", it will default (like SSH) to os.Getenv("USER")

func ShortenString Uses

func ShortenString(str string, n int) string

func SplitPort Uses

func SplitPort(id string) (name, port string, valid bool)

Takes a string of the form "name:port" or "name".

* If id is of the form "name" or "name:", then return (name, "", true)
* If id is of the form "name:port", then return (name, port, true)
* Otherwise, return ("", "", false)

Additionally, name must be non-empty or valid will be returned false.

Port is returned as a string, and it is not required to be numeric (could be used for a named port, for example).

func SplitQualifiedName Uses

func SplitQualifiedName(str string) (string, string)

Splits a fully qualified name and returns its namespace and name. Assumes that the input 'str' has been validated.

func StringDiff Uses

func StringDiff(a, b string) string

StringDiff diffs a and b and returns a human readable diff.

func UnescapeQualifiedNameForDisk Uses

func UnescapeQualifiedNameForDisk(in string) string

UnescapeQualifiedNameForDisk converts an escaped plugin name (as per EscapeQualifiedNameForDisk) back to its normal form. This assumes that the input has already been validates as a qualified name.

func Until Uses

func Until(f func(), period time.Duration, stopCh <-chan struct{})

Until loops until stop channel is closed, running f every period. Catches any panics, and keeps going. f may not be invoked if stop channel is already closed.

func UsingSystemdInitSystem Uses

func UsingSystemdInitSystem() bool

Detects if using systemd as the init system Please note that simply reading /proc/1/cmdline can be misleading because some installation of various init programs can automatically make /sbin/init a symlink or even a renamed version of their main program. TODO(dchen1107): realiably detects the init system using on the system: systemd, upstart, initd, etc.

func WarnWordSepNormalizeFunc Uses

func WarnWordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName

WarnWordSepNormalizeFunc changes and warns for flags that contain "_" separators

func WordSepNormalizeFunc Uses

func WordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName

WordSepNormalizeFunc changes all flags that contain "_" separators

type AtomicValue Uses

type AtomicValue struct {
    // contains filtered or unexported fields

TODO(ArtfulCoder) sync/atomic/Value was added in golang 1.4 Once support is dropped for go 1.3, this type must be deprecated in favor of sync/atomic/Value. The functions are named Load/Store to match sync/atomic/Value function names.

func (*AtomicValue) Load Uses

func (at *AtomicValue) Load() interface{}

func (*AtomicValue) Store Uses

func (at *AtomicValue) Store(val interface{})

type BoolFlag Uses

type BoolFlag struct {
    // contains filtered or unexported fields

BoolFlag is a boolean flag compatible with flags and pflags that keeps track of whether it had a value supplied or not. Beware! If you use this type, you must actually specify --flag-name=true, you cannot leave it as --flag-name and still have the value set

func (*BoolFlag) Default Uses

func (f *BoolFlag) Default(value bool)

func (BoolFlag) Provided Uses

func (f BoolFlag) Provided() bool

func (*BoolFlag) Set Uses

func (f *BoolFlag) Set(value string) error

func (BoolFlag) String Uses

func (f BoolFlag) String() string

func (*BoolFlag) Type Uses

func (f *BoolFlag) Type() string

func (BoolFlag) Value Uses

func (f BoolFlag) Value() bool

type Cache Uses

type Cache []*cacheShard

func NewCache Uses

func NewCache(maxSize int) Cache

func (*Cache) Add Uses

func (c *Cache) Add(index uint64, obj interface{}) bool

Returns true if object already existed, false otherwise.

func (*Cache) Get Uses

func (c *Cache) Get(index uint64) (obj interface{}, found bool)

type Clock Uses

type Clock interface {
    Now() time.Time
    Since(time.Time) time.Duration

Clock allows for injecting fake or real clocks into code that needs to do arbitrary things based on time.

type ConfigurationMap Uses

type ConfigurationMap map[string]string

func (*ConfigurationMap) Set Uses

func (m *ConfigurationMap) Set(value string) error

func (*ConfigurationMap) String Uses

func (m *ConfigurationMap) String() string

func (*ConfigurationMap) Type Uses

func (*ConfigurationMap) Type() string

type Empty Uses

type Empty struct{}

Empty is public since it is used by some internal API objects for conversions between external string arrays and internal sets, and conversion logic requires public types today.

type FakeClock Uses

type FakeClock struct {
    Time time.Time

FakeClock implements Clock, but returns an arbitrary time.

func (*FakeClock) Now Uses

func (f *FakeClock) Now() time.Time

Now returns f's time.

func (*FakeClock) Since Uses

func (f *FakeClock) Since(ts time.Time) time.Duration

Since returns time since the time in f.

type FakeHandler Uses

type FakeHandler struct {
    RequestReceived *http.Request
    RequestBody     string
    StatusCode      int
    ResponseBody    string
    // For logging - you can use a *testing.T
    // This will keep log messages associated with the test.
    T   LogInterface
    // contains filtered or unexported fields

FakeHandler is to assist in testing HTTP requests. Notice that FakeHandler is not thread safe and you must not direct traffic to except for the request you want to test. You can do this by hiding it in an http.ServeMux.

func (*FakeHandler) ServeHTTP Uses

func (f *FakeHandler) ServeHTTP(response http.ResponseWriter, request *http.Request)

func (*FakeHandler) ValidateRequest Uses

func (f *FakeHandler) ValidateRequest(t TestInterface, expectedPath, expectedMethod string, body *string)

ValidateRequest verifies that FakeHandler received a request with expected path, method, and body.

func (*FakeHandler) ValidateRequestCount Uses

func (f *FakeHandler) ValidateRequestCount(t TestInterface, count int) bool

type GlogWriter Uses

type GlogWriter struct{}

GlogWriter serves as a bridge between the standard log package and the glog package.

func (GlogWriter) Write Uses

func (writer GlogWriter) Write(data []byte) (n int, err error)

Write implements the io.Writer interface.

type HighWaterMark Uses

type HighWaterMark int64

HighWaterMark is a thread-safe object for tracking the maximum value seen for some quantity.

func (*HighWaterMark) Check Uses

func (hwm *HighWaterMark) Check(current int64) bool

Check returns true iff 'current' is the highest value ever seen.

type IP Uses

type IP net.IP

IP adapts net.IP for use as a flag.

func (*IP) Set Uses

func (ip *IP) Set(value string) error

func (IP) String Uses

func (ip IP) String() string

func (*IP) Type Uses

func (*IP) Type() string

type IPNet Uses

type IPNet net.IPNet

IPNet adapts net.IPNet for use as a flag.

func (*IPNet) Set Uses

func (ipnet *IPNet) Set(value string) error

func (IPNet) String Uses

func (ipnet IPNet) String() string

func (*IPNet) Type Uses

func (*IPNet) Type() string

type IntOrString Uses

type IntOrString struct {
    Kind   IntstrKind
    IntVal int
    StrVal string

IntOrString is a type that can hold an int or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.

func NewIntOrStringFromInt Uses

func NewIntOrStringFromInt(val int) IntOrString

NewIntOrStringFromInt creates an IntOrString object with an int value.

func NewIntOrStringFromString Uses

func NewIntOrStringFromString(val string) IntOrString

NewIntOrStringFromString creates an IntOrString object with a string value.

func (*IntOrString) Fuzz Uses

func (intstr *IntOrString) Fuzz(c fuzz.Continue)

func (IntOrString) MarshalJSON Uses

func (intstr IntOrString) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface.

func (*IntOrString) String Uses

func (intstr *IntOrString) String() string

String returns the string value, or Itoa's the int value.

func (*IntOrString) UnmarshalJSON Uses

func (intstr *IntOrString) UnmarshalJSON(value []byte) error

UnmarshalJSON implements the json.Unmarshaller interface.

type IntstrKind Uses

type IntstrKind int

IntstrKind represents the stored type of IntOrString.

const (
    IntstrInt    IntstrKind = iota // The IntOrString holds an int.
    IntstrString                   // The IntOrString holds a string.

type LogInterface Uses

type LogInterface interface {
    Logf(format string, args ...interface{})

LogInterface is a simple interface to allow injection of Logf to report serving errors.

type PortRange Uses

type PortRange struct {
    Base int
    Size int

PortRange represents a range of TCP/UDP ports. To represent a single port, set Size to 1.

func ParsePortRange Uses

func ParsePortRange(value string) (*PortRange, error)

ParsePortRange parses a string of the form "min-max", inclusive at both ends, and initializs a new PortRange from it.

func (*PortRange) Contains Uses

func (pr *PortRange) Contains(p int) bool

Contains tests whether a given port falls within the PortRange.

func (*PortRange) Set Uses

func (pr *PortRange) Set(value string) error

Set parses a string of the form "min-max", inclusive at both ends, and sets the PortRange from it. This is part of the flag.Value and pflag.Value interfaces.

func (PortRange) String Uses

func (pr PortRange) String() string

String converts the PortRange to a string representation, which can be parsed by PortRange.Set or ParsePortRange.

func (*PortRange) Type Uses

func (*PortRange) Type() string

Type returns a descriptive string about this type. This is part of the pflag.Value interface.

type RateLimiter Uses

type RateLimiter interface {
    // CanAccept returns true if the rate is below the limit, false otherwise
    CanAccept() bool
    // Accept returns once a token becomes available.
    // Stop stops the rate limiter, subsequent calls to CanAccept will return false

func NewFakeRateLimiter Uses

func NewFakeRateLimiter() RateLimiter

func NewTokenBucketRateLimiter Uses

func NewTokenBucketRateLimiter(qps float32, burst int) RateLimiter

NewTokenBucketRateLimiter creates a rate limiter which implements a token bucket approach. The rate limiter allows bursts of up to 'burst' to exceed the QPS, while still maintaining a smoothed qps rate of 'qps'. The bucket is initially filled with 'burst' tokens, and refills at a rate of 'qps'. The maximum number of tokens in the bucket is capped at 'burst'.

type RealClock Uses

type RealClock struct{}

RealClock really calls time.Now()

func (RealClock) Now Uses

func (r RealClock) Now() time.Time

Now returns the current time.

func (RealClock) Since Uses

func (r RealClock) Since(ts time.Time) time.Duration

Since returns time since the specified timestamp.

type Route Uses

type Route struct {
    Interface   string
    Destination net.IP
    Gateway     net.IP

type Runner Uses

type Runner struct {
    // contains filtered or unexported fields

Runner is an abstraction to make it easy to start and stop groups of things that can be described by a single function which waits on a channel close to exit.

func NewRunner Uses

func NewRunner(f ...func(stop chan struct{})) *Runner

NewRunner makes a runner for the given function(s). The function(s) should loop until the channel is closed.

func (*Runner) Start Uses

func (r *Runner) Start()

Start begins running.

func (*Runner) Stop Uses

func (r *Runner) Stop()

Stop stops running.

type SSHTunnel Uses

type SSHTunnel struct {
    Config  *ssh.ClientConfig
    Host    string
    SSHPort string
    // contains filtered or unexported fields

TODO: Unit tests for this code, we can spin up a test SSH server with instructions here: https://godoc.org/golang.org/x/crypto/ssh#ServerConn

func NewSSHTunnel Uses

func NewSSHTunnel(user, keyfile, host string) (*SSHTunnel, error)

func NewSSHTunnelFromBytes Uses

func NewSSHTunnelFromBytes(user string, privateKey []byte, host string) (*SSHTunnel, error)

func (*SSHTunnel) Close Uses

func (s *SSHTunnel) Close() error

func (*SSHTunnel) Dial Uses

func (s *SSHTunnel) Dial(network, address string) (net.Conn, error)

func (*SSHTunnel) Open Uses

func (s *SSHTunnel) Open() error

type SSHTunnelEntry Uses

type SSHTunnelEntry struct {
    Address string
    Tunnel  *SSHTunnel

Should be thread safe.

type SSHTunnelList Uses

type SSHTunnelList struct {
    // contains filtered or unexported fields

Not thread safe!

func MakeSSHTunnels Uses

func MakeSSHTunnels(user, keyfile string, addresses []string) *SSHTunnelList

func (*SSHTunnelList) Close Uses

func (l *SSHTunnelList) Close()

Close asynchronously closes all tunnels in the list after waiting for 1 minute. Tunnels will still be open upon this function's return, but should no longer be used.

func (*SSHTunnelList) Has Uses

func (l *SSHTunnelList) Has(addr string) bool

func (*SSHTunnelList) Len Uses

func (l *SSHTunnelList) Len() int

func (*SSHTunnelList) Open Uses

func (l *SSHTunnelList) Open() error

Open attempts to open all tunnels in the list, and removes any tunnels that failed to open.

func (*SSHTunnelList) PickRandomTunnel Uses

func (l *SSHTunnelList) PickRandomTunnel() (SSHTunnelEntry, error)

Returns a random tunnel, xor an error if there are none.

type StringFlag Uses

type StringFlag struct {
    // contains filtered or unexported fields

StringFlag is a string flag compatible with flags and pflags that keeps track of whether it had a value supplied or not.

func NewStringFlag Uses

func NewStringFlag(defaultVal string) StringFlag

func (*StringFlag) Default Uses

func (f *StringFlag) Default(value string)

func (StringFlag) Provided Uses

func (f StringFlag) Provided() bool

func (*StringFlag) Set Uses

func (f *StringFlag) Set(value string) error

func (StringFlag) String Uses

func (f StringFlag) String() string

func (*StringFlag) Type Uses

func (f *StringFlag) Type() string

func (StringFlag) Value Uses

func (f StringFlag) Value() string

type StringList Uses

type StringList []string

func (*StringList) Set Uses

func (sl *StringList) Set(value string) error

func (*StringList) String Uses

func (sl *StringList) String() string

func (*StringList) Type Uses

func (*StringList) Type() string

type StringSet Uses

type StringSet map[string]Empty

StringSet is a set of strings, implemented via map[string]struct{} for minimal memory consumption.

func KeySet Uses

func KeySet(theMap reflect.Value) StringSet

KeySet creates a StringSet from a keys of a map[string](? extends interface{}). Since you can't describe that map type in the Go type system the reflected value is required.

func NewStringSet Uses

func NewStringSet(items ...string) StringSet

NewStringSet creates a StringSet from a list of values.

func (StringSet) Delete Uses

func (s StringSet) Delete(items ...string)

Delete removes all items from the set.

func (StringSet) Difference Uses

func (s StringSet) Difference(s2 StringSet) StringSet

Difference returns a set of objects that are not in s2 For example: s1 = {1, 2, 3} s2 = {1, 2, 4, 5} s1.Difference(s2) = {3} s2.Difference(s1) = {4, 5}

func (StringSet) Has Uses

func (s StringSet) Has(item string) bool

Has returns true iff item is contained in the set.

func (StringSet) HasAll Uses

func (s StringSet) HasAll(items ...string) bool

HasAll returns true iff all items are contained in the set.

func (StringSet) HasAny Uses

func (s StringSet) HasAny(items ...string) bool

HasAny returns true if any items are contained in the set.

func (StringSet) Insert Uses

func (s StringSet) Insert(items ...string)

Insert adds items to the set.

func (StringSet) IsSuperset Uses

func (s1 StringSet) IsSuperset(s2 StringSet) bool

IsSuperset returns true iff s1 is a superset of s2.

func (StringSet) Len Uses

func (s StringSet) Len() int

Len returns the size of the set.

func (StringSet) List Uses

func (s StringSet) List() []string

List returns the contents as a sorted string slice.

func (StringSet) PopAny Uses

func (s StringSet) PopAny() (string, bool)

Returns a single element from the set.

func (StringSet) Union Uses

func (s1 StringSet) Union(s2 StringSet) StringSet

Union returns a new set which includes items in either s1 or s2. vof objects that are not in s2 For example: s1 = {1, 2} s2 = {3, 4} s1.Union(s2) = {1, 2, 3, 4} s2.Union(s1) = {1, 2, 3, 4}

type TestInterface Uses

type TestInterface interface {
    Errorf(format string, args ...interface{})
    Logf(format string, args ...interface{})

TestInterface is a simple interface providing Errorf, to make injection for testing easier (insert 'yo dawg' meme here).

type Time Uses

type Time struct {

Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.

func Date Uses

func Date(year int, month time.Month, day, hour, min, sec, nsec int, loc *time.Location) Time

Date returns the Time corresponding to the supplied parameters by wrapping time.Date.

func NewTime Uses

func NewTime(time time.Time) Time

NewTime returns a wrapped instance of the provided time

func Now Uses

func Now() Time

Now returns the current local time.

func Unix Uses

func Unix(sec int64, nsec int64) Time

Unix returns the local time corresponding to the given Unix time by wrapping time.Unix.

func (Time) Before Uses

func (t Time) Before(u Time) bool

Before reports whether the time instant t is before u.

func (Time) Equal Uses

func (t Time) Equal(u Time) bool

Equal reports whether the time instant t is equal to u.

func (*Time) Fuzz Uses

func (t *Time) Fuzz(c fuzz.Continue)

Fuzz satisfies fuzz.Interface.

func (*Time) IsZero Uses

func (t *Time) IsZero() bool

IsZero returns true if the value is nil or time is zero.

func (Time) MarshalJSON Uses

func (t Time) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (Time) Rfc3339Copy Uses

func (t Time) Rfc3339Copy() Time

Rfc3339Copy returns a copy of the Time at second-level precision.

func (*Time) UnmarshalJSON Uses

func (t *Time) UnmarshalJSON(b []byte) error

UnmarshalJSON implements the json.Unmarshaller interface.

type Trace Uses

type Trace struct {
    // contains filtered or unexported fields

func NewTrace Uses

func NewTrace(name string) *Trace

func (*Trace) Log Uses

func (t *Trace) Log()

func (*Trace) LogIfLong Uses

func (t *Trace) LogIfLong(threshold time.Duration)

func (*Trace) Step Uses

func (t *Trace) Step(msg string)

func (*Trace) TotalTime Uses

func (t *Trace) TotalTime() time.Duration


configPackage config provides utility objects for decoupling sources of configuration and the actual configuration state.
errorsPackage errors implements various utility functions and types around errors.
execPackage exec provides an injectable interface and implementations for running commands.
flushwriterPackage flushwriter implements a wrapper for a writer that flushes on every write if that writer implements the io.Flusher interface
httpstreamPackage httpstream adds multiplexed streaming support to HTTP requests and responses via connection upgrades.
iptablesPackage iptables provides an interface and implementations for running iptables commands.
mountPackage mount defines an interface to mounting filesystems.
proxyPackage proxy provides transport and upgrade support for proxies
slicePackage slice provides utility methods for common operations on slices.
waitPackage wait provides tools for polling or listening for changes to a condition.
workqueuePackage workqueue provides a simple queue that supports the following features: * Fair: items processed in the order in which they are added.

Package util imports 47 packages (graph). Updated 2016-07-16. Refresh now. Tools for package owners.