package system
import "github.com/dotcloud/docker/pkg/system"
Index ¶
- Constants
- Variables
- func CheckSystemDriveAndRemoveDriveLetter(path string, driver PathVerifier) (string, error)
- func Chtimes(name string, atime time.Time, mtime time.Time) error
- func ContainerdRuntimeSupported() bool
- func CreateSequential(name string) (*os.File, error)
- func DefaultPathEnv(os string) string
- func EscapeArgs(args []string) string
- func GetExitCode(err error) (int, error)
- func GetLongPathName(path string) (string, error)
- func GetSecurityDescriptorDacl(securityDescriptor *byte, daclPresent *uint32, dacl **byte, daclDefaulted *uint32) (result error)
- func HasWin32KSupport() bool
- func InitContainerdRuntime(experimental bool, cdPath string)
- func InitLCOW(experimental bool)
- func IsAbs(path string) bool
- func IsOSSupported(os string) bool
- func IsProcessAlive(pid int) bool
- func IsWindowsClient() bool
- func KillProcess(pid int)
- func LCOWSupported() bool
- func LUtimesNano(path string, ts []syscall.Timespec) error
- func Lgetxattr(path string, attr string) ([]byte, error)
- func Lsetxattr(path string, attr string, data []byte, flags int) error
- func Mkdev(major int64, minor int64) uint32
- func MkdirAll(path string, _ os.FileMode) error
- func MkdirAllWithACL(path string, perm os.FileMode, sddl string) error
- func Mknod(path string, mode uint32, dev int) error
- func OpenFileSequential(name string, flag int, _ os.FileMode) (*os.File, error)
- func OpenSequential(name string) (*os.File, error)
- func SetNamedSecurityInfo(objectName *uint16, objectType uint32, securityInformation uint32, sidOwner *windows.SID, sidGroup *windows.SID, dacl *byte, sacl *byte) (result error)
- func TempFileSequential(dir, prefix string) (f *os.File, err error)
- func Umask(newmask int) (oldmask int, err error)
- func Unmount(_ string) error
- func ValidatePlatform(platform specs.Platform) error
- type MemInfo
- type OSVersion
- type PathVerifier
- type StatT
Constants ¶
const ( OWNER_SECURITY_INFORMATION = windows.OWNER_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.OWNER_SECURITY_INFORMATION GROUP_SECURITY_INFORMATION = windows.GROUP_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.GROUP_SECURITY_INFORMATION DACL_SECURITY_INFORMATION = windows.DACL_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.DACL_SECURITY_INFORMATION SACL_SECURITY_INFORMATION = windows.SACL_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.SACL_SECURITY_INFORMATION LABEL_SECURITY_INFORMATION = windows.LABEL_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.LABEL_SECURITY_INFORMATION ATTRIBUTE_SECURITY_INFORMATION = windows.ATTRIBUTE_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.ATTRIBUTE_SECURITY_INFORMATION SCOPE_SECURITY_INFORMATION = windows.SCOPE_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.SCOPE_SECURITY_INFORMATION PROCESS_TRUST_LABEL_SECURITY_INFORMATION = 0x00000080 ACCESS_FILTER_SECURITY_INFORMATION = 0x00000100 BACKUP_SECURITY_INFORMATION = windows.BACKUP_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.BACKUP_SECURITY_INFORMATION PROTECTED_DACL_SECURITY_INFORMATION = windows.PROTECTED_DACL_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.PROTECTED_DACL_SECURITY_INFORMATION PROTECTED_SACL_SECURITY_INFORMATION = windows.PROTECTED_SACL_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.PROTECTED_SACL_SECURITY_INFORMATION UNPROTECTED_DACL_SECURITY_INFORMATION = windows.UNPROTECTED_DACL_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.UNPROTECTED_DACL_SECURITY_INFORMATION UNPROTECTED_SACL_SECURITY_INFORMATION = windows.UNPROTECTED_SACL_SECURITY_INFORMATION // Deprecated: use golang.org/x/sys/windows.UNPROTECTED_SACL_SECURITY_INFORMATION )
const ( SE_UNKNOWN_OBJECT_TYPE = windows.SE_UNKNOWN_OBJECT_TYPE // Deprecated: use golang.org/x/sys/windows.SE_UNKNOWN_OBJECT_TYPE SE_FILE_OBJECT = windows.SE_FILE_OBJECT // Deprecated: use golang.org/x/sys/windows.SE_FILE_OBJECT SE_SERVICE = windows.SE_SERVICE // Deprecated: use golang.org/x/sys/windows.SE_SERVICE SE_PRINTER = windows.SE_PRINTER // Deprecated: use golang.org/x/sys/windows.SE_PRINTER SE_REGISTRY_KEY = windows.SE_REGISTRY_KEY // Deprecated: use golang.org/x/sys/windows.SE_REGISTRY_KEY SE_LMSHARE = windows.SE_LMSHARE // Deprecated: use golang.org/x/sys/windows.SE_LMSHARE SE_KERNEL_OBJECT = windows.SE_KERNEL_OBJECT // Deprecated: use golang.org/x/sys/windows.SE_KERNEL_OBJECT SE_WINDOW_OBJECT = windows.SE_WINDOW_OBJECT // Deprecated: use golang.org/x/sys/windows.SE_WINDOW_OBJECT SE_DS_OBJECT = windows.SE_DS_OBJECT // Deprecated: use golang.org/x/sys/windows.SE_DS_OBJECT SE_DS_OBJECT_ALL = windows.SE_DS_OBJECT_ALL // Deprecated: use golang.org/x/sys/windows.SE_DS_OBJECT_ALL SE_PROVIDER_DEFINED_OBJECT = windows.SE_PROVIDER_DEFINED_OBJECT // Deprecated: use golang.org/x/sys/windows.SE_PROVIDER_DEFINED_OBJECT SE_WMIGUID_OBJECT = windows.SE_WMIGUID_OBJECT // Deprecated: use golang.org/x/sys/windows.SE_WMIGUID_OBJECT SE_REGISTRY_WOW64_32KEY = windows.SE_REGISTRY_WOW64_32KEY // Deprecated: use golang.org/x/sys/windows.SE_REGISTRY_WOW64_32KEY )
const ( ContainerAdministratorSidString = "S-1-5-93-2-1" ContainerUserSidString = "S-1-5-93-2-2" )
const ( // SddlAdministratorsLocalSystem is local administrators plus NT AUTHORITY\System SddlAdministratorsLocalSystem = "D:P(A;OICI;GA;;;BA)(A;OICI;GA;;;SY)" )
const (
SeTakeOwnershipPrivilege = "SeTakeOwnershipPrivilege"
)
Variables ¶
var ( // ErrNotSupportedPlatform means the platform is not supported. ErrNotSupportedPlatform = errors.New("platform and architecture is not supported") // ErrNotSupportedOperatingSystem means the operating system is not supported. ErrNotSupportedOperatingSystem = errors.New("operating system is not supported") )
EnsureRemoveAll is an alias to os.RemoveAll on Windows
Functions ¶
func CheckSystemDriveAndRemoveDriveLetter ¶
func CheckSystemDriveAndRemoveDriveLetter(path string, driver PathVerifier) (string, error)
CheckSystemDriveAndRemoveDriveLetter verifies that a path, if it includes a drive letter, is the system drive. On Linux: this is a no-op. On Windows: this does the following> 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 ¶
Chtimes changes the access time and modified time of a file at the given path
func ContainerdRuntimeSupported ¶
func ContainerdRuntimeSupported() bool
ContainerdRuntimeSupported returns true if the use of ContainerD runtime is supported.
func CreateSequential ¶
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 ¶
DefaultPathEnv is unix style list of directories to search for executables. Each directory is separated from the next by a colon ':' character .
func EscapeArgs ¶
EscapeArgs makes a Windows-style escaped command line from a set of arguments
func GetExitCode ¶
GetExitCode returns the ExitStatus of the specified error if its type is exec.ExitError, returns 0 and an error otherwise.
func GetLongPathName ¶
GetLongPathName converts Windows short pathnames to full pathnames. For example C:\Users\ADMIN~1 --> C:\Users\Administrator. It is a no-op on non-Windows platforms
func GetSecurityDescriptorDacl ¶
func GetSecurityDescriptorDacl(securityDescriptor *byte, daclPresent *uint32, dacl **byte, daclDefaulted *uint32) (result error)
Deprecated: uses golang.org/x/sys/windows.SecurityDescriptorFromString() and golang.org/x/sys/windows.SECURITY_DESCRIPTOR.DACL()
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 InitContainerdRuntime ¶
InitContainerdRuntime sets whether to use ContainerD for runtime on Windows. This is an experimental feature still in development, and also requires an environment variable to be set (so as not to turn the feature on from simply experimental which would also mean LCOW.
func InitLCOW ¶
func InitLCOW(experimental bool)
InitLCOW sets whether LCOW is supported or not. Requires RS5+
func IsAbs ¶
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 IsOSSupported ¶
IsOSSupported determines if an operating system is supported by the host
func IsProcessAlive ¶
IsProcessAlive returns true if process with a given pid is running.
func IsWindowsClient ¶
func IsWindowsClient() bool
IsWindowsClient returns true if the SKU is client
func KillProcess ¶
func KillProcess(pid int)
KillProcess force-stops a process.
func LCOWSupported ¶
func LCOWSupported() bool
func LUtimesNano ¶
LUtimesNano is only supported on linux and freebsd.
func Lgetxattr ¶
Lgetxattr is not supported on platforms other than linux.
func Lsetxattr ¶
Lsetxattr is not supported on platforms other than linux.
func Mkdev ¶
Mkdev is not implemented on Windows.
func MkdirAll ¶
MkdirAll implementation that is volume path aware for Windows. It can be used as a drop-in replacement for os.MkdirAll()
func MkdirAllWithACL ¶
MkdirAllWithACL is a wrapper for MkdirAll that creates a directory with an appropriate SDDL defined ACL.
func Mknod ¶
Mknod is not implemented on Windows.
func OpenFileSequential ¶
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 ¶
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 SetNamedSecurityInfo ¶
func SetNamedSecurityInfo(objectName *uint16, objectType uint32, securityInformation uint32, sidOwner *windows.SID, sidGroup *windows.SID, dacl *byte, sacl *byte) (result error)
Deprecated: use golang.org/x/sys/windows.SetNamedSecurityInfo()
func TempFileSequential ¶
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 ¶
Umask is not supported on the windows platform.
func Unmount ¶
Unmount is a platform-specific helper function to call the unmount syscall. Not supported on Windows
func ValidatePlatform ¶
ValidatePlatform determines if a platform structure is valid. TODO This is a temporary windows-only function, should be replaced by comparison of worker capabilities
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 ¶
ReadMemInfo retrieves memory statistics of the host system and returns a
MemInfo type.
type OSVersion ¶
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 dockerd.exe must be manifested to get the correct version information. Deprecated: use github.com/Microsoft/hcsshim/osversion.Get() instead
type PathVerifier ¶
PathVerifier defines the subset of a PathDriver that CheckSystemDriveAndRemoveDriveLetter actually uses in order to avoid system depending on containerd/continuity.
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 ¶
Lstat calls os.Lstat to get a fileinfo interface back. This is then copied into our own locally defined structure.
func Stat ¶
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) Mode ¶
Mode returns file's permission mode.
func (StatT) Mtim ¶
Mtim returns file's last modification time.
func (StatT) Size ¶
Size returns file's size.
Source Files ¶
args_windows.go chtimes.go chtimes_windows.go errors.go exitcode.go filesys_windows.go init.go init_windows.go lcow.go lstat_windows.go meminfo.go meminfo_windows.go mknod_windows.go path.go path_windows.go process_windows.go rm_windows.go stat_windows.go syscall_windows.go umask_windows.go utimes_unsupported.go xattrs_unsupported.go
- Version
- v20.10.23+incompatible
- Published
- Jan 18, 2023
- Platform
- windows/amd64
- Imports
- 18 packages
- Last checked
- 43 minutes ago –
Tools for package owners.