From 30395e320c1bebe6bdc03487af181bef06676280 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 Upstream-commit: 395bce4c4174014cb3264c35a7c6f97a2cb0948f Component: engine --- components/engine/deviceset.go | 5 +++++ .../engine/devmapper/deviceset_devmapper.go | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/components/engine/deviceset.go b/components/engine/deviceset.go index 5dd608361f..cf422acb3a 100644 --- a/components/engine/deviceset.go +++ b/components/engine/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/components/engine/devmapper/deviceset_devmapper.go b/components/engine/devmapper/deviceset_devmapper.go index 670d7621c4..bbf1fa6adc 100644 --- a/components/engine/devmapper/deviceset_devmapper.go +++ b/components/engine/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