devmapper

package
v0.7.0-rc4 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2013 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultDataLoopbackSize     int64  = 100 * 1024 * 1024 * 1024
	DefaultMetaDataLoopbackSize int64  = 2 * 1024 * 1024 * 1024
	DefaultBaseFsSize           uint64 = 10 * 1024 * 1024 * 1024
)
View Source
var (
	ErrTaskRun              = errors.New("dm_task_run failed")
	ErrTaskSetName          = errors.New("dm_task_set_name failed")
	ErrTaskSetMessage       = errors.New("dm_task_set_message failed")
	ErrTaskSetAddNode       = errors.New("dm_task_set_add_node failed")
	ErrTaskSetRO            = errors.New("dm_task_set_ro failed")
	ErrTaskAddTarget        = errors.New("dm_task_add_target failed")
	ErrGetDriverVersion     = errors.New("dm_task_get_driver_version failed")
	ErrAttachLoopbackDevice = errors.New("loopback mounting failed")
	ErrGetBlockSize         = errors.New("Can't get block size")
	ErrUdevWait             = errors.New("wait on udev cookie failed")
	ErrSetDevDir            = errors.New("dm_set_dev_dir failed")
	ErrGetLibraryVersion    = errors.New("dm_get_library_version failed")
	ErrCreateRemoveTask     = errors.New("Can't create task of type DeviceRemove")
	ErrRunRemoveDevice      = errors.New("running removeDevice failed")
)

Functions

func AttachLoopDevice

func AttachLoopDevice(filename string) (*os.File, error)

func DevmapperLogCallback

func DevmapperLogCallback(level C.int, file *C.char, line C.int, dm_errno_or_class C.int, message *C.char)

func GetBlockDeviceSize

func GetBlockDeviceSize(file *os.File) (uint64, error)

func GetLibraryVersion

func GetLibraryVersion() (string, error)

func LogInitVerbose

func LogInitVerbose(level int)

func RemoveDevice

func RemoveDevice(name string) error

Useful helper for cleanup

func SetDevDir

func SetDevDir(dir string) error

func UdevWait

func UdevWait(cookie uint32) error

Types

type AddNodeType

type AddNodeType int
const (
	AddNodeOnResume AddNodeType = iota
	AddNodeOnCreate
)

type DevInfo

type DevInfo struct {
	Hash          string `json:"-"`
	DeviceId      int    `json:"device_id"`
	Size          uint64 `json:"size"`
	TransactionId uint64 `json:"transaction_id"`
	Initialized   bool   `json:"initialized"`
	// contains filtered or unexported fields
}

func (*DevInfo) DevName

func (info *DevInfo) DevName() string

func (*DevInfo) Name

func (info *DevInfo) Name() string

type DeviceSet

type DeviceSet struct {
	MetaData
	sync.Mutex

	TransactionId    uint64
	NewTransactionId uint64
	// contains filtered or unexported fields
}

func NewDeviceSet

func NewDeviceSet(root string) *DeviceSet

func (*DeviceSet) AddDevice

func (devices *DeviceSet) AddDevice(hash, baseHash string) error

func (*DeviceSet) HasActivatedDevice

func (devices *DeviceSet) HasActivatedDevice(hash string) bool

func (*DeviceSet) HasDevice

func (devices *DeviceSet) HasDevice(hash string) bool

func (*DeviceSet) HasInitializedDevice

func (devices *DeviceSet) HasInitializedDevice(hash string) bool

func (*DeviceSet) MountDevice

func (devices *DeviceSet) MountDevice(hash, path string, readOnly bool) error

func (*DeviceSet) RemoveDevice

func (devices *DeviceSet) RemoveDevice(hash string) error

func (*DeviceSet) SetInitialized

func (devices *DeviceSet) SetInitialized(hash string) error

func (*DeviceSet) Shutdown

func (devices *DeviceSet) Shutdown() error

func (*DeviceSet) Status

func (devices *DeviceSet) Status() *Status

func (*DeviceSet) UnmountDevice

func (devices *DeviceSet) UnmountDevice(hash, path string, deactivate bool) error

type DevmapperLogger

type DevmapperLogger interface {
	// contains filtered or unexported methods
}

type DiskUsage

type DiskUsage struct {
	Used  uint64
	Total uint64
}

type Info

type Info struct {
	Exists        int
	Suspended     int
	LiveTable     int
	InactiveTable int
	OpenCount     int32
	EventNr       uint32
	Major         uint32
	Minor         uint32
	ReadOnly      int
	TargetCount   int32
}

type MetaData

type MetaData struct {
	Devices map[string]*DevInfo `json:devices`
}

type Status

type Status struct {
	PoolName         string
	DataLoopback     string
	MetadataLoopback string
	Data             DiskUsage
	Metadata         DiskUsage
}

type Task

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

func TaskCreate

func TaskCreate(tasktype TaskType) *Task

func (*Task) AddTarget

func (t *Task) AddTarget(start uint64, size uint64, ttype string, params string) error

func (*Task) GetDriverVersion

func (t *Task) GetDriverVersion() (string, error)

func (*Task) GetInfo

func (t *Task) GetInfo() (*Info, error)

func (*Task) GetNextTarget

func (t *Task) GetNextTarget(next uintptr) (uintptr, uint64, uint64, string, string)

func (*Task) Run

func (t *Task) Run() error

func (*Task) SetAddNode

func (t *Task) SetAddNode(add_node AddNodeType) error

func (*Task) SetCookie

func (t *Task) SetCookie(cookie *uint32, flags uint16) error

func (*Task) SetMessage

func (t *Task) SetMessage(message string) error

func (*Task) SetName

func (t *Task) SetName(name string) error

func (*Task) SetRo

func (t *Task) SetRo() error

func (*Task) SetSector

func (t *Task) SetSector(sector uint64) error

type TaskType

type TaskType int
const (
	DeviceCreate TaskType = iota
	DeviceReload
	DeviceRemove
	DeviceRemoveAll
	DeviceSuspend
	DeviceResume
	DeviceInfo
	DeviceDeps
	DeviceRename
	DeviceVersion
	DeviceStatus
	DeviceTable
	DeviceWaitevent
	DeviceList
	DeviceClear
	DeviceMknodes
	DeviceListVersions
	DeviceTargetMsg
	DeviceSetGeometry
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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