system

package
v1.11.1 Latest Latest
Warning

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

Go to latest
Published: Oct 12, 2020 License: Apache-2.0 Imports: 17 Imported by: 42

Documentation

Index

Constants

View Source
const (
	// SddlAdministratorsLocalSystem is local administrators plus NT AUTHORITY\System
	SddlAdministratorsLocalSystem = "D:P(A;OICI;GA;;;BA)(A;OICI;GA;;;SY)"
	// SddlNtvmAdministratorsLocalSystem is NT VIRTUAL MACHINE\Virtual Machines plus local administrators plus NT AUTHORITY\System
	SddlNtvmAdministratorsLocalSystem = "D:P(A;OICI;GA;;;S-1-5-83-0)(A;OICI;GA;;;BA)(A;OICI;GA;;;SY)"
)

Variables

View Source
var (
	// ErrNotSupportedPlatform means the platform is not supported.
	ErrNotSupportedPlatform = errors.New("platform and architecture is not supported")
)

Functions

func CheckSystemDriveAndRemoveDriveLetter

func CheckSystemDriveAndRemoveDriveLetter(path string) (string, error)

CheckSystemDriveAndRemoveDriveLetter verifies and manipulates a Windows path. This is used, for example, when validating a user provided path in docker cp. If a drive letter is supplied, it must be the system drive. The drive letter is always removed. Also, it translates it to OS semantics (IOW / to \). We need the path in this syntax so that it can ultimately be concatenated with a Windows long-path which doesn't support drive-letters. Examples: C: --> Fail C:\ --> \ a --> a /a --> \a d:\ --> Fail

func Chtimes

func Chtimes(name string, atime time.Time, mtime time.Time) error

Chtimes changes the access time and modified time of a file at the given path

func CommandLineToArgv

func CommandLineToArgv(commandLine string) ([]string, error)

CommandLineToArgv wraps the Windows syscall to turn a commandline into an argument array.

func CreateSequential added in v1.11.1

func CreateSequential(name string) (*os.File, error)

CreateSequential creates the named file with mode 0666 (before umask), truncating it if it already exists. If successful, methods on the returned File can be used for I/O; the associated file descriptor has mode O_RDWR. If there is an error, it will be of type *PathError.

func DefaultPathEnv

func DefaultPathEnv(platform string) string

DefaultPathEnv is unix style list of directories to search for executables. Each directory is separated from the next by a colon ':' character .

func EnsureRemoveAll

func EnsureRemoveAll(dir string) error

EnsureRemoveAll wraps `os.RemoveAll` to check for specific errors that can often be remedied. Only use `EnsureRemoveAll` if you really want to make every effort to remove a directory.

Because of the way `os.Remove` (and by extension `os.RemoveAll`) works, there can be a race between reading directory entries and then actually attempting to remove everything in the directory. These types of errors do not need to be returned since it's ok for the dir to be gone we can just retry the remove operation.

This should not return a `os.ErrNotExist` kind of error under any circumstances

func GetExitCode

func GetExitCode(err error) (int, error)

GetExitCode returns the ExitStatus of the specified error if its type is exec.ExitError, returns 0 and an error otherwise.

func HasWin32KSupport

func HasWin32KSupport() bool

HasWin32KSupport determines whether containers that depend on win32k can run on this machine. Win32k is the driver used to implement windowing.

func IsAbs added in v1.11.1

func IsAbs(path string) bool

IsAbs is a platform-specific wrapper for filepath.IsAbs. On Windows, golang filepath.IsAbs does not consider a path \windows\system32 as absolute as it doesn't start with a drive-letter/colon combination. However, in docker we need to verify things such as WORKDIR /windows/system32 in a Dockerfile (which gets translated to \windows\system32 when being processed by the daemon. This SHOULD be treated as absolute from a docker processing perspective.

func IsIoTCore

func IsIoTCore() bool

IsIoTCore returns true if the currently running image is based off of Windows 10 IoT Core. @engine maintainers - this function should not be removed or modified as it is used to enforce licensing restrictions on Windows.

func IsWindowsClient

func IsWindowsClient() bool

IsWindowsClient returns true if the SKU is client @engine maintainers - this function should not be removed or modified as it is used to enforce licensing restrictions on Windows.

func LCOWSupported

func LCOWSupported() bool

LCOWSupported returns true if Linux containers on Windows are supported.

func LUtimesNano

func LUtimesNano(path string, ts []syscall.Timespec) error

LUtimesNano is only supported on linux and freebsd.

func Lgetxattr

func Lgetxattr(path string, attr string) ([]byte, error)

Lgetxattr is not supported on platforms other than linux.

func Lsetxattr

func Lsetxattr(path string, attr string, data []byte, flags int) error

Lsetxattr is not supported on platforms other than linux.

func Mkdev

func Mkdev(major int64, minor int64) uint32

Mkdev is not implemented on Windows.

func MkdirAll added in v1.11.1

func MkdirAll(path string, _ os.FileMode, sddl string) error

MkdirAll implementation that is volume path aware for Windows.

func MkdirAllWithACL added in v1.11.1

func MkdirAllWithACL(path string, perm os.FileMode, sddl string) error

MkdirAllWithACL is a wrapper for MkdirAll that creates a directory with an appropriate SDDL defined ACL.

func Mknod

func Mknod(path string, mode uint32, dev int) error

Mknod is not implemented on Windows.

func OpenFileSequential added in v1.11.1

func OpenFileSequential(name string, flag int, _ os.FileMode) (*os.File, error)

OpenFileSequential is the generalized open call; most users will use Open or Create instead. If there is an error, it will be of type *PathError.

func OpenSequential added in v1.11.1

func OpenSequential(name string) (*os.File, error)

OpenSequential opens the named file for reading. If successful, methods on the returned file can be used for reading; the associated file descriptor has mode O_RDONLY. If there is an error, it will be of type *PathError.

func ProcessExitCode

func ProcessExitCode(err error) (exitCode int)

ProcessExitCode process the specified error and returns the exit status code if the error was of type exec.ExitError, returns nothing otherwise.

func TempFileSequential added in v1.11.1

func TempFileSequential(dir, prefix string) (f *os.File, err error)

TempFileSequential is a copy of ioutil.TempFile, modified to use sequential file access. Below is the original comment from golang: TempFile creates a new temporary file in the directory dir with a name beginning with prefix, opens the file for reading and writing, and returns the resulting *os.File. If dir is the empty string, TempFile uses the default directory for temporary files (see os.TempDir). Multiple programs calling TempFile simultaneously will not choose the same file. The caller can use f.Name() to find the pathname of the file. It is the caller's responsibility to remove the file when no longer needed.

func Umask

func Umask(newmask int) (oldmask int, err error)

Umask is not supported on the windows platform.

func Unmount

func Unmount(dest string) error

Unmount is a platform-specific helper function to call the unmount syscall. Not supported on Windows

Types

type MemInfo

type MemInfo struct {
	// Total usable RAM (i.e. physical RAM minus a few reserved bits and the
	// kernel binary code).
	MemTotal int64

	// Amount of free memory.
	MemFree int64

	// Total amount of swap space available.
	SwapTotal int64

	// Amount of swap space that is currently unused.
	SwapFree int64
}

MemInfo contains memory statistics of the host system.

func ReadMemInfo

func ReadMemInfo() (*MemInfo, error)

ReadMemInfo retrieves memory statistics of the host system and returns a

MemInfo type.

type OSVersion

type OSVersion struct {
	Version      uint32
	MajorVersion uint8
	MinorVersion uint8
	Build        uint16
}

OSVersion is a wrapper for Windows version information https://msdn.microsoft.com/en-us/library/windows/desktop/ms724439(v=vs.85).aspx

func GetOSVersion

func GetOSVersion() OSVersion

GetOSVersion gets the operating system version on Windows. Note that docker.exe must be manifested to get the correct version information.

type StatT

type StatT struct {
	// contains filtered or unexported fields
}

StatT type contains status of a file. It contains metadata like permission, size, etc about a file.

func Lstat

func Lstat(path string) (*StatT, error)

Lstat calls os.Lstat to get a fileinfo interface back. This is then copied into our own locally defined structure.

func Stat

func Stat(path string) (*StatT, error)

Stat takes a path to a file and returns a system.StatT type pertaining to that file.

Throws an error if the file does not exist

func (StatT) GID

func (s StatT) GID() uint32

GID returns file's group id of owner.

on windows this is always 0 because there is no concept of GID

func (StatT) Mode

func (s StatT) Mode() os.FileMode

Mode returns file's permission mode.

func (StatT) Mtim

func (s StatT) Mtim() time.Time

Mtim returns file's last modification time.

func (StatT) Size

func (s StatT) Size() int64

Size returns file's size.

func (StatT) UID

func (s StatT) UID() uint32

UID returns file's user id of owner.

on windows this is always 0 because there is no concept of UID

Jump to

Keyboard shortcuts

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