Make WConfdMonad expose a read-only version of the lock waiting
structure. In this way, questions about pending owners can be
answered easily by the daemon.

Signed-off-by: Klaus Aehlig <[email protected]>
---
 src/Ganeti/WConfd/Monad.hs | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/Ganeti/WConfd/Monad.hs b/src/Ganeti/WConfd/Monad.hs
index 3e459a9..a8ecfc5 100644
--- a/src/Ganeti/WConfd/Monad.hs
+++ b/src/Ganeti/WConfd/Monad.hs
@@ -47,6 +47,7 @@ module Ganeti.WConfd.Monad
   , readConfigState
   , modifyLockWaiting
   , modifyLockWaiting_
+  , readLockWaiting
   , readLockAllocation
   , modifyTempResState
   , modifyTempResStateErr
@@ -281,8 +282,13 @@ modifyLockWaiting_ :: (GanetiLockWaiting -> 
(GanetiLockWaiting, S.Set ClientId))
                       -> WConfdMonad ()
 modifyLockWaiting_ = modifyLockWaiting . ((second $ (,) ()) .)
 
+-- | Read the lock waiting state in WConfdMonad.
+readLockWaiting :: WConfdMonad GanetiLockWaiting
+readLockWaiting = liftM dsLockWaiting
+                  . readIORef . dhDaemonState
+                  =<< daemonHandle
+
+
 -- | Read the underlying lock allocation.
 readLockAllocation :: WConfdMonad (LockAllocation GanetiLocks ClientId)
-readLockAllocation = liftM (getAllocation . dsLockWaiting)
-                     . readIORef . dhDaemonState
-                     =<< daemonHandle
+readLockAllocation = liftM getAllocation readLockWaiting
-- 
1.9.1.423.g4596e3a

Reply via email to