From 6ec5585501c6029ef10a474597503511d5074e10 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 19 Sep 2013 20:38:06 +0200 Subject: [PATCH] Add DeviceSet.HasActivatedDevice() This lets you see if a device has been activated --- deviceset.go | 5 +++++ devmapper/deviceset_devmapper.go | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/deviceset.go b/deviceset.go index 5dd608361..cf422acb3 100644 --- a/deviceset.go +++ b/deviceset.go @@ -9,6 +9,7 @@ type DeviceSet interface { UnmountDevice(hash, path string) error HasDevice(hash string) bool HasInitializedDevice(hash string) bool + HasActivatedDevice(hash string) bool Shutdown() error } @@ -61,6 +62,10 @@ func (wrapper *DeviceSetWrapper) HasInitializedDevice(hash string) bool { return wrapper.wrapped.HasInitializedDevice(wrapper.wrap(hash)) } +func (wrapper *DeviceSetWrapper) HasActivatedDevice(hash string) bool { + return wrapper.wrapped.HasActivatedDevice(wrapper.wrap(hash)) +} + func NewDeviceSetWrapper(wrapped DeviceSet, prefix string) DeviceSet { wrapper := &DeviceSetWrapper{ wrapped: wrapped, diff --git a/devmapper/deviceset_devmapper.go b/devmapper/deviceset_devmapper.go index 670d7621c..bbf1fa6ad 100644 --- a/devmapper/deviceset_devmapper.go +++ b/devmapper/deviceset_devmapper.go @@ -851,6 +851,23 @@ func (devices *DeviceSetDM) HasInitializedDevice(hash string) bool { return info != nil && info.Initialized } +func (devices *DeviceSetDM) HasActivatedDevice(hash string) bool { + if err := devices.ensureInit(); err != nil { + return false + } + + info := devices.Devices[hash] + if info == nil { + return false + } + name := info.Name() + devinfo, _ := devices.getInfo(name) + if devinfo != nil && devinfo.Exists != 0 { + return true + } + return false +} + func (devices *DeviceSetDM) SetInitialized(hash string) error { if err := devices.ensureInit(); err != nil { return err