Documentation ¶
Index ¶
- Constants
- Variables
- func EventsCh(ctx context.Context, c *Conn, maxRetriesOnError int) <-chan Uevent
- func FlushLoopBackReservations() error
- func Format(ctx context.Context, path, fs string, options []string, force bool) (string, error)
- func GetDirectCSIPath(driveName string) string
- func GetMajorMinor(devicePath string) (uint32, uint32, error)
- func MakeBlockFile(path string, major, minor uint32) error
- func Mount(source, target, fsType string, mountOpts []MountOption, ...) error
- func ReserveLoopbackDevices(devCount int) error
- func SafeMount(source, target, fsType string, mountOpts []MountOption, ...) error
- func SafeUnmount(target string, opts []UnmountOption) error
- func SafeUnmountAll(path string, opts []UnmountOption) error
- func SetXFSUUID(ctx context.Context, uuid, path string) (string, error)
- func Unmount(target string, opts []UnmountOption) error
- func WatchBlockDevices(ctx context.Context) (<-chan BlockDevice, error)
- type BlockDevice
- type Conn
- type Decoder
- type DefaultDriveFormatter
- type DefaultDriveMounter
- type DefaultDriveStatter
- type DefaultVolumeMounter
- type DriveFormatter
- type DriveInfo
- type DriveMounter
- type DriveStatter
- type FSInfo
- type FSType
- type MasterInfo
- type MountInfo
- type MountOption
- type Partition
- type SuperBlock
- type Uevent
- type UnmountOption
- type VolumeMounter
Constants ¶
View Source
const ( HostDevRoot = "/dev" DefaultProcFS = "/proc" DirectCSIRoot = "/var/lib/direct-csi" MountRoot = "/var/lib/direct-csi/mnt" DirectCSIDevRoot = "/var/lib/direct-csi/devices" )
View Source
const ( MountOptionMSRemount MountOption = "remount" MountOptionMSBind = "bind" MountOptionMSPrivate = "private" MountOptionMSSlave = "slave" MountOptionMSUnBindable = "unbindable" MountOptionMSMove = "move" MountOptionMSDirSync = "dirsync" MountOptionMSMandLock = "mand" MountOptionMSNoATime = "noatime" MountOptionMSNoDev = "nodev" MountOptionMSNoDirATime = "nodiratime" MountOptionMSNoExec = "noexec" MountOptionMSNoSUID = "nosuid" MountOptionMSReadOnly = "ro" MountOptionMSRelatime = "relatime" MountOptionMSRecursive = "recursive" MountOptionMSSilent = "silent" MountOptionMSStrictATime = "strictatime" MountOptionMSSynchronous = "sync" )
View Source
const ( UnmountOptionForce UnmountOption = "force" UnmountOptionDetach = "detach" UnmountOptionExpire = "expire" )
View Source
const ( None uint32 = 0x0 ADFS_SUPER_MAGIC = 0xadf5 AFFS_SUPER_MAGIC = 0xadff AFS_SUPER_MAGIC = 0x5346414f ANON_INODE_FS_MAGIC = 0x09041934 /* Anonymous inode FS (for pseudofiles that have no name; e.g., epoll, signalfd, bpf) */ AUTOFS_SUPER_MAGIC = 0x0187 BDEVFS_MAGIC = 0x62646576 BEFS_SUPER_MAGIC = 0x42465331 BFS_MAGIC = 0x1badface BINFMTFS_MAGIC = 0x42494e4d BPF_FS_MAGIC = 0xcafe4a11 BTRFS_SUPER_MAGIC = 0x9123683e BTRFS_TEST_MAGIC = 0x73727279 CGROUP_SUPER_MAGIC = 0x27e0eb /* Cgroup pseudo FS */ CGROUP2_SUPER_MAGIC = 0x63677270 /* Cgroup v2 pseudo FS */ CIFS_MAGIC_NUMBER = 0xff534d42 CODA_SUPER_MAGIC = 0x73757245 COH_SUPER_MAGIC = 0x012ff7b7 CRAMFS_MAGIC = 0x28cd3d45 DEBUGFS_MAGIC = 0x64626720 DEVFS_SUPER_MAGIC = 0x1373 /* Linux 2.6.17 and earlier */ DEVPTS_SUPER_MAGIC = 0x1cd1 ECRYPTFS_SUPER_MAGIC = 0xf15f EFIVARFS_MAGIC = 0xde5e81e4 EFS_SUPER_MAGIC = 0x00414a53 EXT_SUPER_MAGIC = 0x137d /* Linux 2.0 and earlier */ EXT2_OLD_SUPER_MAGIC = 0xef51 EXT2_SUPER_MAGIC = 0xef53 EXT3_SUPER_MAGIC = 0xef53 EXT4_SUPER_MAGIC = 0xef53 F2FS_SUPER_MAGIC = 0xf2f52010 FUSE_SUPER_MAGIC = 0x65735546 FUTEXFS_SUPER_MAGIC = 0xbad1dea /* Unused */ HFS_SUPER_MAGIC = 0x4244 HOSTFS_SUPER_MAGIC = 0x00c0ffee HPFS_SUPER_MAGIC = 0xf995e849 HUGETLBFS_MAGIC = 0x958458f6 ISOFS_SUPER_MAGIC = 0x9660 JFFS2_SUPER_MAGIC = 0x72b6 JFS_SUPER_MAGIC = 0x3153464a MINIX_SUPER_MAGIC = 0x137f /* original minix FS */ MINIX_SUPER_MAGIC2 = 0x138f /* 30 char minix FS */ MINIX2_SUPER_MAGIC = 0x2468 /* minix V2 FS */ MINIX2_SUPER_MAGIC2 = 0x2478 /* minix V2 FS, 30 char names */ MINIX3_SUPER_MAGIC = 0x4d5a /* minix V3 FS, 60 char names */ MQUEUE_MAGIC = 0x19800202 /* POSIX message queue FS */ MSDOS_SUPER_MAGIC = 0x4d44 MTD_INODE_FS_MAGIC = 0x11307854 NCP_SUPER_MAGIC = 0x564c NFS_SUPER_MAGIC = 0x6969 NILFS_SUPER_MAGIC = 0x3434 NSFS_MAGIC = 0x6e736673 NTFS_SB_MAGIC = 0x5346544e OCFS2_SUPER_MAGIC = 0x7461636f OPENPROM_SUPER_MAGIC = 0x9fa1 OVERLAYFS_SUPER_MAGIC = 0x794c7630 PIPEFS_MAGIC = 0x50495045 PROC_SUPER_MAGIC = 0x9fa0 /* /proc FS */ PSTOREFS_MAGIC = 0x6165676c QNX4_SUPER_MAGIC = 0x002f QNX6_SUPER_MAGIC = 0x68191122 RAMFS_MAGIC = 0x858458f6 REISERFS_SUPER_MAGIC = 0x52654973 ROMFS_MAGIC = 0x7275 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c SMACK_MAGIC = 0x43415d53 SMB_SUPER_MAGIC = 0x517b SMB2_MAGIC_NUMBER = 0xfe534d42 SOCKFS_MAGIC = 0x534f434b SQUASHFS_MAGIC = 0x73717368 SYSFS_MAGIC = 0x62656572 SYSV2_SUPER_MAGIC = 0x012ff7b6 SYSV4_SUPER_MAGIC = 0x012ff7b5 TMPFS_MAGIC = 0x01021994 TRACEFS_MAGIC = 0x74726163 UDF_SUPER_MAGIC = 0x15013346 UFS_MAGIC = 0x00011954 USBDEVICE_SUPER_MAGIC = 0x9fa2 V9FS_MAGIC = 0x01021997 VXFS_SUPER_MAGIC = 0xa501fcf5 XENFS_SUPER_MAGIC = 0xabba1974 XENIX_SUPER_MAGIC = 0x012ff7b4 XFS_SUPER_MAGIC = 0x58465342 )
filesystem constants
View Source
const ( DirectCSIPartitionInfix = "-part-" HostPartitionInfix = "p" )
Variables ¶
View Source
var ( ErrNoFS = errors.New("no filesystem found") ErrNotGPT = errors.New("Not a GPR partition") ErrNotClassicMBR = errors.New("Not a Classic MBR partition") ErrNotModernStandardMBR = errors.New("Not a Modern Standard MBR partition") ErrNotAAPMBR = errors.New("Not a AAP MBR partition") ErrNotPartition = errors.New("Not a partitioned volume") )
Functions ¶
func FlushLoopBackReservations ¶ added in v1.3.0
func FlushLoopBackReservations() error
func GetDirectCSIPath ¶ added in v1.4.0
func MakeBlockFile ¶ added in v1.4.0
func Mount ¶
func Mount(source, target, fsType string, mountOpts []MountOption, superblockOpts []string) error
func ReserveLoopbackDevices ¶ added in v1.3.0
func SafeMount ¶
func SafeMount(source, target, fsType string, mountOpts []MountOption, superblockOpts []string) error
func SafeUnmount ¶
func SafeUnmount(target string, opts []UnmountOption) error
func SafeUnmountAll ¶ added in v1.1.0
func SafeUnmountAll(path string, opts []UnmountOption) error
func SetXFSUUID ¶ added in v1.4.0
func Unmount ¶
func Unmount(target string, opts []UnmountOption) error
func WatchBlockDevices ¶
func WatchBlockDevices(ctx context.Context) (<-chan BlockDevice, error)
WatchBlockDevices - Watches for hotplugs and devices and returns a channel which emits block devices.
Types ¶
type BlockDevice ¶
type BlockDevice struct { Devname string `json:"devName,omitempty"` Devtype string `json:"devType,omitempty"` Partitions []Partition `json:"partitions,omitempty"` DeviceError error `json:"error, omitempty"` MasterInfo *DriveInfo `json:"driveInfo,omitempty"` }
func FindDevices ¶
func FindDevices(ctx context.Context, loopBackOnly bool) ([]BlockDevice, error)
func (*BlockDevice) DirectCSIDrivePath ¶ added in v1.2.6
func (b *BlockDevice) DirectCSIDrivePath() string
func (*BlockDevice) Error ¶ added in v1.2.6
func (b *BlockDevice) Error() string
func (*BlockDevice) GetPartitions ¶
func (b *BlockDevice) GetPartitions() []Partition
func (*BlockDevice) HostDrivePath ¶ added in v1.2.6
func (b *BlockDevice) HostDrivePath() string
func (*BlockDevice) TagError ¶ added in v1.2.1
func (b *BlockDevice) TagError(err error)
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
Conn wraps the NETLINK fd.
type Decoder ¶
type Decoder struct {
// contains filtered or unexported fields
}
func NewDecoder ¶
func (*Decoder) ReadAndDecode ¶
Decode - Parses the incoming uevent and extracts values
type DefaultDriveFormatter ¶ added in v1.3.0
type DefaultDriveFormatter struct{}
func (*DefaultDriveFormatter) FormatDrive ¶ added in v1.3.0
func (*DefaultDriveFormatter) MakeBlockFile ¶ added in v1.4.0
func (c *DefaultDriveFormatter) MakeBlockFile(path string, major, minor uint32) error
type DefaultDriveMounter ¶ added in v1.3.0
type DefaultDriveMounter struct{}
func (*DefaultDriveMounter) MountDrive ¶ added in v1.3.0
func (c *DefaultDriveMounter) MountDrive(source, target string, mountOpts []string) error
func (*DefaultDriveMounter) UnmountDrive ¶ added in v1.3.0
func (c *DefaultDriveMounter) UnmountDrive(path string) error
type DefaultDriveStatter ¶ added in v1.3.0
type DefaultDriveStatter struct{}
func (*DefaultDriveStatter) GetFreeCapacityFromStatfs ¶ added in v1.3.0
func (c *DefaultDriveStatter) GetFreeCapacityFromStatfs(path string) (int64, error)
type DefaultVolumeMounter ¶ added in v1.3.0
type DefaultVolumeMounter struct{}
func (*DefaultVolumeMounter) MountVolume ¶ added in v1.3.0
func (*DefaultVolumeMounter) UnmountVolume ¶ added in v1.3.0
func (c *DefaultVolumeMounter) UnmountVolume(targetPath string) error
type DriveFormatter ¶ added in v1.3.0
type DriveInfo ¶
type DriveInfo struct { NumBlocks uint64 `json:"numBlocks,omitempty"` StartBlock uint64 `json:"startBlock,omitempty"` EndBlock uint64 `json:"endBlock,omitempty"` TotalCapacity uint64 `json:"totalCapacity,omitempty"` LogicalBlockSize uint64 `json:"logicalBlockSize,omitempty"` PhysicalBlockSize uint64 `json:"physicalBlockSize,omitempty"` Path string `json:"path,omitempty"` Major uint32 `json:"major,omitempty"` Minor uint32 `json:"minor",omitempty` SerialNumber string `json:"serialNumber",omitempty` *FSInfo `json:"fsInfo,omitempty"` }
type DriveMounter ¶ added in v1.3.0
type DriveStatter ¶ added in v1.3.0
type MasterInfo ¶ added in v1.3.6
type MountInfo ¶
type MountInfo struct { Mountpoint string `json:"mountPoint,omitempty"` MountFlags []string `json:"mountFlags,omitempty"` MountRoot string `json:"mountRoot,omitempty"` MountID uint32 `json:"mountID,omitempty"` ParentID uint32 `json:"parentID,omitempty"` MountSource string `json:"mountSource,omitempty"` SuperblockOptions []string `json:"superblockOptions,omitempty"` FSType string `json:"fsType,omitempty"` OptionalFields []string `json:"optionalFields,omitempty"` Major uint32 `json:"major,omitempty"` Minor uint32 `json:"minor,omitempty"` }
func ProbeMountInfo ¶
ProbeMountInfo - fetches the list of mounted filesystems on particular node
type Partition ¶
type Partition struct { PartitionNum uint32 `json:"partitionNum,omitempty"` Type string `json:"partitionType,omitempty"` TypeUUID string `json:"partitionTypeUUID,omitempty"` PartitionGUID string `json:"partitionGUID,omitempty"` DiskGUID string `json:"diskGUID,omitempty"` MasterInfo *DriveInfo `json:"driveInfo,omitempty"` }
type SuperBlock ¶ added in v1.4.0
type SuperBlock interface {
Is() bool
}
Source Files ¶
Click to show internal directories.
Click to hide internal directories.