diff --git a/src/Ganeti/DataCollectors/Drbd.hs b/src/Ganeti/DataCollectors/Drbd.hs index a0606834909fb33ef987a248597300cf63407e16..944808c28b5cff7752cb65973bd12a666d8e5d6b 100644 --- a/src/Ganeti/DataCollectors/Drbd.hs +++ b/src/Ganeti/DataCollectors/Drbd.hs @@ -32,7 +32,7 @@ module Ganeti.DataCollectors.Drbd , dcFormatVersion , dcCategory , dcKind - , dcData + , dcReport ) where @@ -90,8 +90,8 @@ dcKind :: DCKind dcKind = DCKStatus -- | The data exported by the data collector, taken from the default location. -dcData :: IO J.JSValue -dcData = buildJsonReport defaultFile Nothing +dcReport :: IO DCReport +dcReport = buildDCReport defaultFile Nothing -- * Command line options @@ -205,6 +205,12 @@ buildJsonReport statusFile pairingFile = do let status = computeStatus drbdData return . addStatus status $ J.showJSON drbdData +-- | This function computes the DCReport for the DRBD status. +buildDCReport :: FilePath -> Maybe FilePath -> IO DCReport +buildDCReport statusFile pairingFile = + buildJsonReport statusFile pairingFile >>= + buildReport dcName dcVersion dcFormatVersion dcCategory dcKind + -- | Main function. main :: Options -> [String] -> IO () main opts args = do @@ -212,6 +218,5 @@ main opts args = do pairingFile = optDrbdPairing opts unless (null args) . exitErr $ "This program takes exactly zero" ++ " arguments, got '" ++ unwords args ++ "'" - report <- buildJsonReport statusFile pairingFile >>= - buildReport dcName dcVersion dcFormatVersion dcCategory dcKind + report <- buildDCReport statusFile pairingFile putStrLn $ J.encode report