Documentation ¶
Index ¶
- Constants
- Variables
- func CatchAll(sigc chan os.Signal)
- func CheckLocalDns(resolvConf []byte) bool
- func CompareKernelVersion(a, b *KernelVersionInfo) int
- func CopyDirectory(source, dest string) error
- func CopyEscapable(dst io.Writer, src io.ReadCloser) (written int64, err error)
- func CopyFile(src, dst string) (int64, error)
- func CreatePidFile(pidfile string) error
- func Debugf(format string, a ...interface{})
- func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr, isTerminal bool) error
- func DockerInitPath(localCopy string) string
- func Download(url string) (resp *http.Response, err error)
- func Errorf(format string, a ...interface{})
- func FollowSymlinkInScope(link, root string) (string, error)
- func GetCallerName(depth int) string
- func GetNameserversAsCIDR(resolvConf []byte) []string
- func GetReleaseVersion() string
- func GetResolvConf() ([]byte, error)
- func GetTotalUsedFds() int
- func Go(f func() error) chan error
- func HashData(src io.Reader) (string, error)
- func HumanDuration(d time.Duration) string
- func HumanSize(size int64) string
- func IsGIT(str string) bool
- func IsURL(str string) bool
- func NewBufReader(r io.Reader) *bufReader
- func NewHTTPRequestError(msg string, res *http.Response) error
- func NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser
- func NopWriteCloser(w io.Writer) io.WriteCloser
- func ParseHost(defaultHost string, defaultUnix, addr string) (string, error)
- func ParseRepositoryTag(repos string) (string, string)
- func PartParser(template, data string) (map[string]string, error)
- func ProgressReader(r io.ReadCloser, size int, output io.Writer, sf *StreamFormatter, newline bool, ...) *progressReader
- func RAMInBytes(size string) (bytes int64, err error)
- func RandomString() string
- func RemovePidFile(pidfile string)
- func SelfPath() string
- func ShellQuoteArguments(args []string) string
- func StdCopy(dstout, dsterr io.Writer, src io.Reader) (written int64, err error)
- func StopCatch(sigc chan os.Signal)
- func StripComments(input []byte, commentMarker []byte) []byte
- func TestDirectory(templateDir string) (dir string, err error)
- func TreeSize(dir string) (size int64, err error)
- func Trunc(s string, maxlen int) string
- func TruncateID(id string) string
- type Fataler
- type HTTPAuthDecorator
- type HTTPMetaHeadersDecorator
- type HTTPRequestDecorator
- type HTTPRequestFactory
- type HTTPUserAgentDecorator
- type JSONError
- type JSONLog
- type JSONMessage
- type JSONProgress
- type KernelVersionInfo
- type NopFlusher
- type NopWriter
- type StatusError
- type StdType
- type StdWriter
- type StreamFormatter
- func (sf *StreamFormatter) FormatError(err error) []byte
- func (sf *StreamFormatter) FormatProgress(id, action string, progress *JSONProgress) []byte
- func (sf *StreamFormatter) FormatStatus(id, format string, a ...interface{}) []byte
- func (sf *StreamFormatter) FormatStream(str string) []byte
- func (sf *StreamFormatter) Json() bool
- func (sf *StreamFormatter) Used() bool
- type StreamWriter
- type TarSum
- type TruncIndex
- type Utsname
- type VersionInfo
- type WriteBroadcaster
- type WriteFlusher
Constants ¶
const ( StdWriterPrefixLen = 8 StdWriterFdIndex = 0 StdWriterSizeIndex = 4 )
Variables ¶
var ErrInvalidStdHeader = errors.New("Unrecognized input header")
Functions ¶
func CheckLocalDns ¶
CheckLocalDns looks into the /etc/resolv.conf, it returns true if there is a local nameserver or if there is no nameserver.
func CompareKernelVersion ¶
func CompareKernelVersion(a, b *KernelVersionInfo) int
Compare two KernelVersionInfo struct. Returns -1 if a < b, 0 if a == b, 1 it a > b
func CopyDirectory ¶
FIXME: this is deprecated by CopyWithTar in archive.go
func CopyEscapable ¶
Code c/c from io.Copy() modified to handle escape sequence
func CreatePidFile ¶ added in v0.6.6
func Debugf ¶
func Debugf(format string, a ...interface{})
Debug function, if the debug flag is set, then display. Do nothing otherwise If Docker is in damon mode, also send the debug info on the socket
func DisplayJSONMessagesStream ¶ added in v0.6.6
func DockerInitPath ¶ added in v0.6.6
Figure out the path of our dockerinit (which may be SelfPath())
func FollowSymlinkInScope ¶ added in v0.7.3
FollowSymlink will follow an existing link and scope it to the root path provided.
func GetCallerName ¶ added in v0.7.0
GetCallerName introspects the call stack and returns the name of the function `depth` levels down in the stack.
func GetNameserversAsCIDR ¶ added in v0.6.6
GetNameserversAsCIDR returns nameservers (if any) listed in /etc/resolv.conf as CIDR blocks (e.g., "1.2.3.4/32") This function's output is intended for net.ParseCIDR
func GetReleaseVersion ¶ added in v0.6.6
func GetReleaseVersion() string
func GetResolvConf ¶ added in v0.6.6
GetResolvConf opens and read the content of /etc/resolv.conf. It returns it as byte slice.
func GetTotalUsedFds ¶
func GetTotalUsedFds() int
func Go ¶
Go is a basic promise implementation: it wraps calls a function in a goroutine, and returns a channel which will later return the function's return value.
func HumanDuration ¶
HumanDuration returns a human-readable approximation of a duration (eg. "About a minute", "4 hours ago", etc.)
func HumanSize ¶
HumanSize returns a human-readable approximation of a size using SI standard (eg. "44kB", "17MB")
func NewBufReader ¶
func NewHTTPRequestError ¶ added in v0.6.6
func NewReadCloserWrapper ¶ added in v0.8.1
func NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser
func NopWriteCloser ¶
func NopWriteCloser(w io.Writer) io.WriteCloser
func ParseRepositoryTag ¶ added in v0.6.6
Get a repos name and returns the right reposName + tag The tag can be confusing because of a port in a repository name.
Ex: localhost.localdomain:5000/samalba/hipache:latest
func ProgressReader ¶
func ProgressReader(r io.ReadCloser, size int, output io.Writer, sf *StreamFormatter, newline bool, ID, action string) *progressReader
func RAMInBytes ¶ added in v0.7.0
Parses a human-readable string representing an amount of RAM in bytes, kibibytes, mebibytes or gibibytes, and returns the number of bytes, or -1 if the string is unparseable. Units are case-insensitive, and the 'b' suffix is optional.
func RandomString ¶ added in v0.6.6
func RandomString() string
func RemovePidFile ¶ added in v0.6.6
func RemovePidFile(pidfile string)
func SelfPath ¶
func SelfPath() string
Figure out the absolute path of our own binary (if it's still around).
func ShellQuoteArguments ¶ added in v0.7.0
Take a list of strings and escape them so they will be handled right when passed as arguments to an program via a shell
func StdCopy ¶ added in v0.6.6
StdCopy is a modified version of io.Copy.
StdCopy will demultiplex `src`, assuming that it contains two streams, previously multiplexed together using a StdWriter instance. As it reads from `src`, StdCopy will write to `dstout` and `dsterr`.
StdCopy will read until it hits EOF on `src`. It will then return a nil error. In other words: if `err` is non nil, it indicates a real underlying error.
`written` will hold the total number of bytes written to `dstout` and `dsterr`.
func StripComments ¶ added in v0.6.6
StripComments parses input into lines and strips away comments.
func TestDirectory ¶ added in v0.7.0
TestDirectory creates a new temporary directory and returns its path. The contents of directory at path `templateDir` is copied into the new directory.
func TreeSize ¶ added in v0.7.0
TreeSize walks a directory tree and returns its total size in bytes.
func TruncateID ¶
TruncateID returns a shorthand version of a string identifier for convenience. A collision with other shorthands is very unlikely, but possible. In case of a collision a lookup with TruncIndex.Get() will fail, and the caller will need to use a langer prefix, or the full-length Id.
Types ¶
type Fataler ¶ added in v0.7.0
type Fataler interface {
Fatal(args ...interface{})
}
A common interface to access the Fatal method of both testing.B and testing.T.
type HTTPAuthDecorator ¶ added in v0.7.3
type HTTPAuthDecorator struct {
// contains filtered or unexported fields
}
func (*HTTPAuthDecorator) ChangeRequest ¶ added in v0.7.3
type HTTPMetaHeadersDecorator ¶ added in v0.6.6
func (*HTTPMetaHeadersDecorator) ChangeRequest ¶ added in v0.6.6
type HTTPRequestDecorator ¶ added in v0.6.6
type HTTPRequestDecorator interface { // ChangeRequest() changes the request accordingly. // The changed request will be returned or err will be non-nil // if an error occur. ChangeRequest(req *http.Request) (newReq *http.Request, err error) }
HTTPRequestDecorator is used to change an instance of http.Request. It could be used to add more header fields, change body, etc.
func NewHTTPAuthDecorator ¶ added in v0.7.3
func NewHTTPAuthDecorator(login, password string) HTTPRequestDecorator
func NewHTTPUserAgentDecorator ¶ added in v0.6.6
func NewHTTPUserAgentDecorator(versions ...VersionInfo) HTTPRequestDecorator
type HTTPRequestFactory ¶ added in v0.6.6
type HTTPRequestFactory struct {
// contains filtered or unexported fields
}
HTTPRequestFactory creates an HTTP request and applies a list of decorators on the request.
func NewHTTPRequestFactory ¶ added in v0.6.6
func NewHTTPRequestFactory(d ...HTTPRequestDecorator) *HTTPRequestFactory
func (*HTTPRequestFactory) AddDecorator ¶ added in v0.7.3
func (self *HTTPRequestFactory) AddDecorator(d ...HTTPRequestDecorator)
func (*HTTPRequestFactory) NewRequest ¶ added in v0.6.6
func (h *HTTPRequestFactory) NewRequest(method, urlStr string, body io.Reader, d ...HTTPRequestDecorator) (*http.Request, error)
NewRequest() creates a new *http.Request, applies all decorators in the HTTPRequestFactory on the request, then applies decorators provided by d on the request.
type HTTPUserAgentDecorator ¶ added in v0.6.6
type HTTPUserAgentDecorator struct {
// contains filtered or unexported fields
}
HTTPUserAgentDecorator appends the product/version to the user agent field of a request.
func (*HTTPUserAgentDecorator) ChangeRequest ¶ added in v0.6.6
type JSONError ¶ added in v0.6.6
type JSONMessage ¶
type JSONMessage struct { Stream string `json:"stream,omitempty"` Status string `json:"status,omitempty"` Progress *JSONProgress `json:"progressDetail,omitempty"` ProgressMessage string `json:"progress,omitempty"` //deprecated ID string `json:"id,omitempty"` From string `json:"from,omitempty"` Time int64 `json:"time,omitempty"` Error *JSONError `json:"errorDetail,omitempty"` ErrorMessage string `json:"error,omitempty"` //deprecated }
type JSONProgress ¶ added in v0.7.3
type JSONProgress struct { Current int `json:"current,omitempty"` Total int `json:"total,omitempty"` Start int64 `json:"start,omitempty"` // contains filtered or unexported fields }
func (*JSONProgress) String ¶ added in v0.7.3
func (p *JSONProgress) String() string
type KernelVersionInfo ¶
func GetKernelVersion ¶
func GetKernelVersion() (*KernelVersionInfo, error)
func ParseRelease ¶ added in v0.6.6
func ParseRelease(release string) (*KernelVersionInfo, error)
func (*KernelVersionInfo) String ¶
func (k *KernelVersionInfo) String() string
type StatusError ¶ added in v0.6.6
An StatusError reports an unsuccessful exit by a command.
func (*StatusError) Error ¶ added in v0.6.6
func (e *StatusError) Error() string
type StdType ¶ added in v0.6.6
type StdType [StdWriterPrefixLen]byte
type StdWriter ¶ added in v0.6.6
func NewStdWriter ¶ added in v0.6.6
NewStdWriter instanciates a new Writer. Everything written to it will be encapsulated using a custom format, and written to the underlying `w` stream. This allows multiple write streams (e.g. stdout and stderr) to be muxed into a single connection. `t` indicates the id of the stream to encapsulate. It can be utils.Stdin, utils.Stdout, utils.Stderr.
type StreamFormatter ¶
type StreamFormatter struct {
// contains filtered or unexported fields
}
func NewStreamFormatter ¶
func NewStreamFormatter(json bool) *StreamFormatter
func (*StreamFormatter) FormatError ¶
func (sf *StreamFormatter) FormatError(err error) []byte
func (*StreamFormatter) FormatProgress ¶
func (sf *StreamFormatter) FormatProgress(id, action string, progress *JSONProgress) []byte
func (*StreamFormatter) FormatStatus ¶
func (sf *StreamFormatter) FormatStatus(id, format string, a ...interface{}) []byte
func (*StreamFormatter) FormatStream ¶ added in v0.7.3
func (sf *StreamFormatter) FormatStream(str string) []byte
func (*StreamFormatter) Json ¶ added in v0.8.1
func (sf *StreamFormatter) Json() bool
func (*StreamFormatter) Used ¶
func (sf *StreamFormatter) Used() bool
type StreamWriter ¶ added in v0.6.6
type StreamWriter struct {
// contains filtered or unexported fields
}
type TruncIndex ¶
TruncIndex allows the retrieval of string identifiers by any of their unique prefixes. This is used to retrieve image and container IDs by more convenient shorthand prefixes.
func NewTruncIndex ¶
func NewTruncIndex() *TruncIndex
func (*TruncIndex) Add ¶
func (idx *TruncIndex) Add(id string) error
func (*TruncIndex) Delete ¶
func (idx *TruncIndex) Delete(id string) error
type VersionInfo ¶ added in v0.6.6
VersionInfo is used to model entities which has a version. It is basically a tupple with name and version.
type WriteBroadcaster ¶
func NewWriteBroadcaster ¶
func NewWriteBroadcaster() *WriteBroadcaster
func (*WriteBroadcaster) AddWriter ¶
func (w *WriteBroadcaster) AddWriter(writer io.WriteCloser, stream string)
func (*WriteBroadcaster) CloseWriters ¶
func (w *WriteBroadcaster) CloseWriters() error
type WriteFlusher ¶
func NewWriteFlusher ¶
func NewWriteFlusher(w io.Writer) *WriteFlusher
func (*WriteFlusher) Flush ¶ added in v0.6.6
func (wf *WriteFlusher) Flush()
Flush the stream immediately.