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

Reply via email to