devmapper: Rename DeviceSetDM to DeviceSet

This commit is contained in:
Solomon Hykes 2013-10-18 00:07:34 +00:00
parent ed03dbfe82
commit 4bd6021806
6 changed files with 42 additions and 42 deletions

View File

@ -28,14 +28,14 @@ type DevInfo struct {
Size uint64 `json:"size"` Size uint64 `json:"size"`
TransactionId uint64 `json:"transaction_id"` TransactionId uint64 `json:"transaction_id"`
Initialized bool `json:"initialized"` Initialized bool `json:"initialized"`
devices *DeviceSetDM `json:"-"` devices *DeviceSet `json:"-"`
} }
type MetaData struct { type MetaData struct {
Devices map[string]*DevInfo `json:devices` Devices map[string]*DevInfo `json:devices`
} }
type DeviceSetDM struct { type DeviceSet struct {
MetaData MetaData
sync.Mutex sync.Mutex
initialized bool initialized bool
@ -63,23 +63,23 @@ func (info *DevInfo) DevName() string {
return getDevName(info.Name()) return getDevName(info.Name())
} }
func (devices *DeviceSetDM) loopbackDir() string { func (devices *DeviceSet) loopbackDir() string {
return path.Join(devices.root, "devicemapper") return path.Join(devices.root, "devicemapper")
} }
func (devices *DeviceSetDM) jsonFile() string { func (devices *DeviceSet) jsonFile() string {
return path.Join(devices.loopbackDir(), "json") return path.Join(devices.loopbackDir(), "json")
} }
func (devices *DeviceSetDM) getPoolName() string { func (devices *DeviceSet) getPoolName() string {
return devices.devicePrefix + "-pool" return devices.devicePrefix + "-pool"
} }
func (devices *DeviceSetDM) getPoolDevName() string { func (devices *DeviceSet) getPoolDevName() string {
return getDevName(devices.getPoolName()) return getDevName(devices.getPoolName())
} }
func (devices *DeviceSetDM) hasImage(name string) bool { func (devices *DeviceSet) hasImage(name string) bool {
dirname := devices.loopbackDir() dirname := devices.loopbackDir()
filename := path.Join(dirname, name) filename := path.Join(dirname, name)
@ -91,7 +91,7 @@ func (devices *DeviceSetDM) hasImage(name string) bool {
// <root>/devicemapper/<name>. // <root>/devicemapper/<name>.
// If the file already exists, it does nothing. // If the file already exists, it does nothing.
// Either way it returns the full path. // Either way it returns the full path.
func (devices *DeviceSetDM) ensureImage(name string, size int64) (string, error) { func (devices *DeviceSet) ensureImage(name string, size int64) (string, error) {
dirname := devices.loopbackDir() dirname := devices.loopbackDir()
filename := path.Join(dirname, name) filename := path.Join(dirname, name)
@ -116,19 +116,19 @@ func (devices *DeviceSetDM) ensureImage(name string, size int64) (string, error)
return filename, nil return filename, nil
} }
func (devices *DeviceSetDM) allocateDeviceId() int { func (devices *DeviceSet) allocateDeviceId() int {
// TODO: Add smarter reuse of deleted devices // TODO: Add smarter reuse of deleted devices
id := devices.nextFreeDevice id := devices.nextFreeDevice
devices.nextFreeDevice = devices.nextFreeDevice + 1 devices.nextFreeDevice = devices.nextFreeDevice + 1
return id return id
} }
func (devices *DeviceSetDM) allocateTransactionId() uint64 { func (devices *DeviceSet) allocateTransactionId() uint64 {
devices.NewTransactionId = devices.NewTransactionId + 1 devices.NewTransactionId = devices.NewTransactionId + 1
return devices.NewTransactionId return devices.NewTransactionId
} }
func (devices *DeviceSetDM) saveMetadata() error { func (devices *DeviceSet) saveMetadata() error {
jsonData, err := json.Marshal(devices.MetaData) jsonData, err := json.Marshal(devices.MetaData)
if err != nil { if err != nil {
utils.Debugf("\n--->Err: %s\n", err) utils.Debugf("\n--->Err: %s\n", err)
@ -171,7 +171,7 @@ func (devices *DeviceSetDM) saveMetadata() error {
return nil return nil
} }
func (devices *DeviceSetDM) registerDevice(id int, hash string, size uint64) (*DevInfo, error) { func (devices *DeviceSet) registerDevice(id int, hash string, size uint64) (*DevInfo, error) {
utils.Debugf("registerDevice(%v, %v)", id, hash) utils.Debugf("registerDevice(%v, %v)", id, hash)
info := &DevInfo{ info := &DevInfo{
Hash: hash, Hash: hash,
@ -192,7 +192,7 @@ func (devices *DeviceSetDM) registerDevice(id int, hash string, size uint64) (*D
return info, nil return info, nil
} }
func (devices *DeviceSetDM) activateDeviceIfNeeded(hash string) error { func (devices *DeviceSet) activateDeviceIfNeeded(hash string) error {
utils.Debugf("activateDeviceIfNeeded(%v)", hash) utils.Debugf("activateDeviceIfNeeded(%v)", hash)
info := devices.Devices[hash] info := devices.Devices[hash]
if info == nil { if info == nil {
@ -206,7 +206,7 @@ func (devices *DeviceSetDM) activateDeviceIfNeeded(hash string) error {
return activateDevice(devices.getPoolDevName(), info.Name(), info.DeviceId, info.Size) return activateDevice(devices.getPoolDevName(), info.Name(), info.DeviceId, info.Size)
} }
func (devices *DeviceSetDM) createFilesystem(info *DevInfo) error { func (devices *DeviceSet) createFilesystem(info *DevInfo) error {
devname := info.DevName() devname := info.DevName()
err := exec.Command("mkfs.ext4", "-E", "discard,lazy_itable_init=0,lazy_journal_init=0", devname).Run() err := exec.Command("mkfs.ext4", "-E", "discard,lazy_itable_init=0,lazy_journal_init=0", devname).Run()
@ -220,7 +220,7 @@ func (devices *DeviceSetDM) createFilesystem(info *DevInfo) error {
return nil return nil
} }
func (devices *DeviceSetDM) loadMetaData() error { func (devices *DeviceSet) loadMetaData() error {
utils.Debugf("loadMetadata()") utils.Debugf("loadMetadata()")
defer utils.Debugf("loadMetadata END") defer utils.Debugf("loadMetadata END")
_, _, _, params, err := getStatus(devices.getPoolName()) _, _, _, params, err := getStatus(devices.getPoolName())
@ -266,7 +266,7 @@ func (devices *DeviceSetDM) loadMetaData() error {
return nil return nil
} }
func (devices *DeviceSetDM) setupBaseImage() error { func (devices *DeviceSet) setupBaseImage() error {
oldInfo := devices.Devices[""] oldInfo := devices.Devices[""]
if oldInfo != nil && oldInfo.Initialized { if oldInfo != nil && oldInfo.Initialized {
return nil return nil
@ -335,7 +335,7 @@ func setCloseOnExec(name string) {
} }
} }
func (devices *DeviceSetDM) log(level int, file string, line int, dmError int, message string) { func (devices *DeviceSet) log(level int, file string, line int, dmError int, message string) {
if level >= 7 { if level >= 7 {
return // Ignore _LOG_DEBUG return // Ignore _LOG_DEBUG
} }
@ -343,7 +343,7 @@ func (devices *DeviceSetDM) log(level int, file string, line int, dmError int, m
utils.Debugf("libdevmapper(%d): %s:%d (%d) %s", level, file, line, dmError, message) utils.Debugf("libdevmapper(%d): %s:%d (%d) %s", level, file, line, dmError, message)
} }
func (devices *DeviceSetDM) initDevmapper() error { func (devices *DeviceSet) initDevmapper() error {
logInit(devices) logInit(devices)
// Make sure the sparse images exist in <root>/devicemapper/data and // Make sure the sparse images exist in <root>/devicemapper/data and
@ -428,7 +428,7 @@ func (devices *DeviceSetDM) initDevmapper() error {
return nil return nil
} }
func (devices *DeviceSetDM) AddDevice(hash, baseHash string) error { func (devices *DeviceSet) AddDevice(hash, baseHash string) error {
devices.Lock() devices.Lock()
defer devices.Unlock() defer devices.Unlock()
@ -462,7 +462,7 @@ func (devices *DeviceSetDM) AddDevice(hash, baseHash string) error {
return nil return nil
} }
func (devices *DeviceSetDM) removeDevice(hash string) error { func (devices *DeviceSet) removeDevice(hash string) error {
info := devices.Devices[hash] info := devices.Devices[hash]
if info == nil { if info == nil {
return fmt.Errorf("hash %s doesn't exists", hash) return fmt.Errorf("hash %s doesn't exists", hash)
@ -501,7 +501,7 @@ func (devices *DeviceSetDM) removeDevice(hash string) error {
return nil return nil
} }
func (devices *DeviceSetDM) RemoveDevice(hash string) error { func (devices *DeviceSet) RemoveDevice(hash string) error {
devices.Lock() devices.Lock()
defer devices.Unlock() defer devices.Unlock()
@ -513,7 +513,7 @@ func (devices *DeviceSetDM) RemoveDevice(hash string) error {
return devices.removeDevice(hash) return devices.removeDevice(hash)
} }
func (devices *DeviceSetDM) deactivateDevice(hash string) error { func (devices *DeviceSet) deactivateDevice(hash string) error {
utils.Debugf("[devmapper] deactivateDevice(%s)", hash) utils.Debugf("[devmapper] deactivateDevice(%s)", hash)
defer utils.Debugf("[devmapper] deactivateDevice END") defer utils.Debugf("[devmapper] deactivateDevice END")
var devname string var devname string
@ -543,7 +543,7 @@ func (devices *DeviceSetDM) deactivateDevice(hash string) error {
// waitRemove blocks until either: // waitRemove blocks until either:
// a) the device registered at <device_set_prefix>-<hash> is removed, // a) the device registered at <device_set_prefix>-<hash> is removed,
// or b) the 1 second timeout expires. // or b) the 1 second timeout expires.
func (devices *DeviceSetDM) waitRemove(hash string) error { func (devices *DeviceSet) waitRemove(hash string) error {
utils.Debugf("[deviceset %s] waitRemove(%s)", devices.devicePrefix, hash) utils.Debugf("[deviceset %s] waitRemove(%s)", devices.devicePrefix, hash)
defer utils.Debugf("[deviceset %s] waitRemove END", devices.devicePrefix, hash) defer utils.Debugf("[deviceset %s] waitRemove END", devices.devicePrefix, hash)
devname, err := devices.byHash(hash) devname, err := devices.byHash(hash)
@ -573,7 +573,7 @@ func (devices *DeviceSetDM) waitRemove(hash string) error {
// waitClose blocks until either: // waitClose blocks until either:
// a) the device registered at <device_set_prefix>-<hash> is closed, // a) the device registered at <device_set_prefix>-<hash> is closed,
// or b) the 1 second timeout expires. // or b) the 1 second timeout expires.
func (devices *DeviceSetDM) waitClose(hash string) error { func (devices *DeviceSet) waitClose(hash string) error {
devname, err := devices.byHash(hash) devname, err := devices.byHash(hash)
if err != nil { if err != nil {
return err return err
@ -600,7 +600,7 @@ func (devices *DeviceSetDM) waitClose(hash string) error {
// FIXME: it seems probably cleaner to register the pool in devices.Devices, // FIXME: it seems probably cleaner to register the pool in devices.Devices,
// but I am afraid of arcane implications deep in the devicemapper code, // but I am afraid of arcane implications deep in the devicemapper code,
// so this will do. // so this will do.
func (devices *DeviceSetDM) byHash(hash string) (devname string, err error) { func (devices *DeviceSet) byHash(hash string) (devname string, err error) {
if hash == "pool" { if hash == "pool" {
return devices.getPoolDevName(), nil return devices.getPoolDevName(), nil
} }
@ -611,7 +611,7 @@ func (devices *DeviceSetDM) byHash(hash string) (devname string, err error) {
return info.Name(), nil return info.Name(), nil
} }
func (devices *DeviceSetDM) Shutdown() error { func (devices *DeviceSet) Shutdown() error {
utils.Debugf("[deviceset %s] shutdown()", devices.devicePrefix) utils.Debugf("[deviceset %s] shutdown()", devices.devicePrefix)
defer utils.Debugf("[deviceset %s] shutdown END", devices.devicePrefix) defer utils.Debugf("[deviceset %s] shutdown END", devices.devicePrefix)
devices.Lock() devices.Lock()
@ -650,7 +650,7 @@ func (devices *DeviceSetDM) Shutdown() error {
return nil return nil
} }
func (devices *DeviceSetDM) MountDevice(hash, path string) error { func (devices *DeviceSet) MountDevice(hash, path string) error {
devices.Lock() devices.Lock()
defer devices.Unlock() defer devices.Unlock()
@ -681,7 +681,7 @@ func (devices *DeviceSetDM) MountDevice(hash, path string) error {
return nil return nil
} }
func (devices *DeviceSetDM) UnmountDevice(hash, path string, deactivate bool) error { func (devices *DeviceSet) UnmountDevice(hash, path string, deactivate bool) error {
utils.Debugf("[devmapper] UnmountDevice(hash=%s path=%s)", hash, path) utils.Debugf("[devmapper] UnmountDevice(hash=%s path=%s)", hash, path)
defer utils.Debugf("[devmapper] UnmountDevice END") defer utils.Debugf("[devmapper] UnmountDevice END")
devices.Lock() devices.Lock()
@ -712,7 +712,7 @@ func (devices *DeviceSetDM) UnmountDevice(hash, path string, deactivate bool) er
return nil return nil
} }
func (devices *DeviceSetDM) HasDevice(hash string) bool { func (devices *DeviceSet) HasDevice(hash string) bool {
devices.Lock() devices.Lock()
defer devices.Unlock() defer devices.Unlock()
@ -722,7 +722,7 @@ func (devices *DeviceSetDM) HasDevice(hash string) bool {
return devices.Devices[hash] != nil return devices.Devices[hash] != nil
} }
func (devices *DeviceSetDM) HasInitializedDevice(hash string) bool { func (devices *DeviceSet) HasInitializedDevice(hash string) bool {
devices.Lock() devices.Lock()
defer devices.Unlock() defer devices.Unlock()
@ -734,7 +734,7 @@ func (devices *DeviceSetDM) HasInitializedDevice(hash string) bool {
return info != nil && info.Initialized return info != nil && info.Initialized
} }
func (devices *DeviceSetDM) HasActivatedDevice(hash string) bool { func (devices *DeviceSet) HasActivatedDevice(hash string) bool {
devices.Lock() devices.Lock()
defer devices.Unlock() defer devices.Unlock()
@ -750,7 +750,7 @@ func (devices *DeviceSetDM) HasActivatedDevice(hash string) bool {
return devinfo != nil && devinfo.Exists != 0 return devinfo != nil && devinfo.Exists != 0
} }
func (devices *DeviceSetDM) SetInitialized(hash string) error { func (devices *DeviceSet) SetInitialized(hash string) error {
devices.Lock() devices.Lock()
defer devices.Unlock() defer devices.Unlock()
@ -774,7 +774,7 @@ func (devices *DeviceSetDM) SetInitialized(hash string) error {
return nil return nil
} }
func (devices *DeviceSetDM) ensureInit() error { func (devices *DeviceSet) ensureInit() error {
if !devices.initialized { if !devices.initialized {
devices.initialized = true devices.initialized = true
if err := devices.initDevmapper(); err != nil { if err := devices.initDevmapper(); err != nil {
@ -785,10 +785,10 @@ func (devices *DeviceSetDM) ensureInit() error {
return nil return nil
} }
func NewDeviceSetDM(root string) *DeviceSetDM { func NewDeviceSet(root string) *DeviceSet {
SetDevDir("/dev") SetDevDir("/dev")
return &DeviceSetDM{ return &DeviceSet{
initialized: false, initialized: false,
root: root, root: root,
MetaData: MetaData{Devices: make(map[string]*DevInfo)}, MetaData: MetaData{Devices: make(map[string]*DevInfo)},

View File

@ -660,7 +660,7 @@ func activateDevice(poolName string, name string, deviceId int, size uint64) err
return nil return nil
} }
func (devices *DeviceSetDM) createSnapDevice(poolName string, deviceId int, baseName string, baseDeviceId int) error { func (devices *DeviceSet) createSnapDevice(poolName string, deviceId int, baseName string, baseDeviceId int) error {
devinfo, _ := getInfo(baseName) devinfo, _ := getInfo(baseName)
doSuspend := devinfo != nil && devinfo.Exists != 0 doSuspend := devinfo != nil && devinfo.Exists != 0

View File

@ -12,7 +12,7 @@ func usage() {
} }
func main() { func main() {
devices := devmapper.NewDeviceSetDM("/var/lib/docker") devices := devmapper.NewDeviceSet("/var/lib/docker")
if len(os.Args) < 2 { if len(os.Args) < 2 {
usage() usage()

View File

@ -335,7 +335,7 @@ func (image *Image) applyLayer(layer, target string) error {
return nil return nil
} }
func (image *Image) ensureImageDevice(devices *devmapper.DeviceSetDM) error { func (image *Image) ensureImageDevice(devices *devmapper.DeviceSet) error {
if devices.HasInitializedDevice(image.ID) { if devices.HasInitializedDevice(image.ID) {
return nil return nil
} }

View File

@ -43,7 +43,7 @@ type Runtime struct {
volumes *Graph volumes *Graph
srv *Server srv *Server
Dns []string Dns []string
deviceSet *devmapper.DeviceSetDM deviceSet *devmapper.DeviceSet
} }
var sysInitPath string var sysInitPath string
@ -86,7 +86,7 @@ func (runtime *Runtime) getContainerElement(id string) *list.Element {
return nil return nil
} }
func (runtime *Runtime) GetDeviceSet() (*devmapper.DeviceSetDM, error) { func (runtime *Runtime) GetDeviceSet() (*devmapper.DeviceSet, error) {
if runtime.deviceSet == nil { if runtime.deviceSet == nil {
return nil, fmt.Errorf("No device set available") return nil, fmt.Errorf("No device set available")
} }
@ -612,7 +612,7 @@ func NewRuntimeFromDirectory(root string, autoRestart bool) (*Runtime, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
deviceSet := devmapper.NewDeviceSetDM(root) deviceSet := devmapper.NewDeviceSet(root)
// Initialize devicemapper deviceSet // Initialize devicemapper deviceSet
runtime := &Runtime{ runtime := &Runtime{
root: root, root: root,

View File

@ -195,7 +195,7 @@ func setupBaseImage() {
// Create a device, which triggers the initiation of the base FS // Create a device, which triggers the initiation of the base FS
// This avoids other tests doing this and timing out // This avoids other tests doing this and timing out
deviceset := devmapper.NewDeviceSetDM(unitTestStoreBase) deviceset := devmapper.NewDeviceSet(unitTestStoreBase)
if err := deviceset.AddDevice("init", ""); err != nil { if err := deviceset.AddDevice("init", ""); err != nil {
log.Fatalf("Unable to setup the base image: %s", err) log.Fatalf("Unable to setup the base image: %s", err)
} }