Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetupTestCerts ¶
SetupTestCerts populates the given test directory with server certificates.
Since generating certificates is CPU intensive, they will be simply symlink'ed from the test/deps/ directory.
FIXME: this function is exported because some tests use it directly. Eventually we should rework those tests to use NewTestOS instead.
Types ¶
type InotifyInfo ¶
type InotifyInfo struct {
Fd int
sync.RWMutex
Targets map[string]*InotifyTargetInfo
}
InotifyInfo records the inotify information associated with a given inotify instance.
type InotifyTargetInfo ¶
InotifyTargetInfo records the inotify information associated with a given inotify target.
type OS ¶
type OS struct {
// Directories
CacheDir string // Cache directory (e.g. /var/cache/incus/).
LogDir string // Log directory (e.g. /var/log/incus/).
RunDir string // Runtime directory (e.g. /run/incus/).
VarDir string // Data directory (e.g. /var/lib/incus/).
// Daemon environment
Architectures []int // Cache of detected system architectures
BackingFS string // Backing filesystem of $INCUS_DIR/containers
ExecPath string // Absolute path to the daemon
IdmapSet *idmap.Set // Information about user/group ID mapping
InotifyWatch InotifyInfo
LxcPath string // Path to the $INCUS_DIR/containers directory
MockMode bool // If true some APIs will be mocked (for testing)
Nodev bool
RunningInUserNS bool
Hostname string
// Privilege dropping
UnprivUser string
UnprivUID uint32
UnprivGroup string
UnprivGID uint32
// Apparmor features
AppArmorAdmin bool
AppArmorAvailable bool
AppArmorConfined bool
AppArmorStacked bool
AppArmorStacking bool
// Cgroup features
CGInfo cgroup.Info
// Kernel features
CloseRange bool // CloseRange indicates support for the close_range syscall.
ContainerCoreScheduling bool // ContainerCoreScheduling indicates LXC and kernel support for core scheduling.
CoreScheduling bool // CoreScheduling indicates support for core scheduling syscalls.
IdmappedMounts bool // IdmappedMounts indicates kernel support for VFS idmap.
NativeTerminals bool // NativeTerminals indicates support for TIOGPTPEER ioctl.
NetnsGetifaddrs bool // NetnsGetifaddrs indicates support for NETLINK_GET_STRICT_CHK.
PidFds bool // PidFds indicates support for PID fds.
PidFdsThread bool // PidFds indicates support for thread PID fds.
PidFdSetns bool // PidFdSetns indicates support for setns through PID fds.
SeccompListenerAddfd bool // SeccompListenerAddfd indicates support for passing new FD to process through seccomp notify.
SeccompListener bool // SeccompListener indicates support for seccomp notify.
SeccompListenerContinue bool // SeccompListenerContinue indicates support continuing syscalls path for process through seccomp notify.
UeventInjection bool // UeventInjection indicates support for injecting uevents to a specific netns.
UnprivBinfmt bool // UnprivBinfmt indicates support for mounting binfmt_misc inside of a user namespace.
VFS3Fscaps bool // VFS3FScaps indicates support for v3 filesystem capacbilities.
// LXC features
LXCFeatures map[string]bool
// OS info
ReleaseInfo map[string]string
KernelVersion version.DottedVersion
Uname *linux.Utsname
BootTime time.Time
IncusOS *incusos.Client
}
OS is a high-level facade for accessing operating-system level functionalities.
func DefaultOS ¶
func DefaultOS() *OS
DefaultOS returns a fresh uninitialized OS instance with default values.
func (*OS) GetUnixSocket ¶
GetUnixSocket returns the full path to the unix.socket file that this daemon is listening on. Used by tests.
func (*OS) GlobalDatabaseDir ¶
GlobalDatabaseDir returns the path of the global database directory.
func (*OS) GlobalDatabasePath ¶
GlobalDatabasePath returns the path of the global database SQLite file managed by dqlite.
func (*OS) InitStorage ¶
InitStorage initializes the storage layer after it has been mounted.
func (*OS) LocalDatabasePath ¶
LocalDatabasePath returns the path of the local database file.