from ConfigState.
Signed-off-by: BSRK Aditya <[email protected]>
---
src/Ganeti/WConfd/ConfigModifications.hs | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/Ganeti/WConfd/ConfigModifications.hs
b/src/Ganeti/WConfd/ConfigModifications.hs
index 019ca35..0c07ba1 100644
--- a/src/Ganeti/WConfd/ConfigModifications.hs
+++ b/src/Ganeti/WConfd/ConfigModifications.hs
@@ -41,6 +41,7 @@ module Ganeti.WConfd.ConfigModifications where
import Control.Lens.Setter ((.~))
import Control.Lens.Traversal (mapMOf)
+import Data.List (nub)
import Data.Maybe (isJust)
import Language.Haskell.TH (Name)
import Text.Printf (printf)
@@ -100,6 +101,15 @@ getInstanceLVsByNode' iUuid cs = do
(mapLVsByNode nUuid2 (diskChildren disk))
_ -> mapLVsByNode nUuid (diskChildren disk)) disks
convert (LogicalVolume lvG lvV) = lvG ++ "/" ++ lvV
+
+getAllLVs :: ConfigState -> GenericResult GanetiException [String]
+getAllLVs cs = fmap (nub . concat . concatMap elemsFromContainer)
+ (mapM (`getInstanceLVsByNode'` cs) instUuids)
+ where elemsFromContainer :: GenericContainer a b -> [b]
+ elemsFromContainer = M.elems . fromContainer
+ instUuids :: [InstanceUUID]
+ instUuids = map instUuid . elemsFromContainer
+ . configInstances . csConfigData $ cs
-- | Add a new instance to the configuration, release DRBD minors,
-- and commit temporary IPs, all while temporarily holding the config
-- lock. Return True upon success and False if the config lock was not
--
1.7.10.4