mount

package
v0.14.2-0...-43ec88f Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2015 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package mount defines an interface to mounting filesystems.

TODO(thockin): This whole pkg is pretty linux-centric. As soon as we have an alternate platform, we will need to abstract further.

Index

Constants

View Source
const FakeActionMount = "mount"

Values for FakeAction.Action

View Source
const FakeActionUnmount = "unmount"
View Source
const FlagBind = syscall.MS_BIND
View Source
const FlagReadOnly = syscall.MS_RDONLY

Variables

This section is empty.

Functions

func GetDeviceNameFromMount

func GetDeviceNameFromMount(mounter Interface, mountPath string) (string, int, error)

GetDeviceNameFromMount: given a mnt point, find the device from /proc/mounts returns the device name, reference count, and error code

func GetMountRefs

func GetMountRefs(mounter Interface, mountPath string) ([]string, error)

GetMountRefs finds all other references to the device referenced by mountPath; returns a list of paths.

Types

type FakeAction

type FakeAction struct {
	Action string // "mount" or "unmount"
	Target string // applies to both mount and unmount actions
	Source string // applies only to "mount" actions
	FSType string // applies only to "mount" actions
}

FakeAction objects are logged every time a fake mount or unmount is called.

type FakeMounter

type FakeMounter struct {
	MountPoints []MountPoint
	Log         []FakeAction
}

FakeMounter implements mount.Interface for tests.

func (*FakeMounter) IsMountPoint

func (f *FakeMounter) IsMountPoint(file string) (bool, error)

func (*FakeMounter) List

func (f *FakeMounter) List() ([]MountPoint, error)

func (*FakeMounter) Mount

func (f *FakeMounter) Mount(source string, target string, fstype string, flags uintptr, data string) error

func (*FakeMounter) ResetLog

func (f *FakeMounter) ResetLog()

func (*FakeMounter) Unmount

func (f *FakeMounter) Unmount(target string, flags int) error

type Interface

type Interface interface {
	// Mount wraps syscall.Mount().
	Mount(source string, target string, fstype string, flags uintptr, data string) error
	// Umount wraps syscall.Mount().
	Unmount(target string, flags int) error
	// List returns a list of all mounted filesystems.  This can be large.
	// On some platforms, reading mounts is not guaranteed consistent (i.e.
	// it could change between chunked reads). This is guaranteed to be
	// consistent.
	List() ([]MountPoint, error)
	// IsMountPoint determines if a directory is a mountpoint.
	IsMountPoint(file string) (bool, error)
}

Each supported platform must define the following flags:

  • FlagBind: specifies a bind mount
  • FlagReadOnly: the mount will be read-only

func New

func New() Interface

New returns a mount.Interface for the current system.

type MountPoint

type MountPoint struct {
	Device string
	Path   string
	Type   string
	Opts   []string
	Freq   int
	Pass   int
}

This represents a single line in /proc/mounts or /etc/fstab.

type Mounter

type Mounter struct{}

Mounter implements mount.Interface for linux platform.

func (*Mounter) IsMountPoint

func (mounter *Mounter) IsMountPoint(file string) (bool, error)

IsMountPoint determines if a directory is a mountpoint, by comparing the device for the directory with the device for it's parent. If they are the same, it's not a mountpoint, if they're different, it is.

func (*Mounter) List

func (*Mounter) List() ([]MountPoint, error)

List returns a list of all mounted filesystems.

func (*Mounter) Mount

func (mounter *Mounter) Mount(source string, target string, fstype string, flags uintptr, data string) error

Mount wraps syscall.Mount()

func (*Mounter) Unmount

func (mounter *Mounter) Unmount(target string, flags int) error

Unmount wraps syscall.Unmount()

Jump to

Keyboard shortcuts

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