From dd69cd3cf675234e29be8139dc1d62ca3c7e1d86 Mon Sep 17 00:00:00 2001 From: Michele Tartara <mtartara@google.com> Date: Tue, 30 Apr 2013 12:14:30 +0000 Subject: [PATCH] Factor out the mergeStatuses function It will be used by multiple data collectors, not only the DRBD collector. Signed-off-by: Michele Tartara <mtartara@google.com> Reviewed-by: Klaus Aehlig <aehlig@google.com> --- src/Ganeti/DataCollectors/Drbd.hs | 11 ----------- src/Ganeti/DataCollectors/Types.hs | 12 ++++++++++++ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Ganeti/DataCollectors/Drbd.hs b/src/Ganeti/DataCollectors/Drbd.hs index 944808c28..0d74508a5 100644 --- a/src/Ganeti/DataCollectors/Drbd.hs +++ b/src/Ganeti/DataCollectors/Drbd.hs @@ -137,17 +137,6 @@ computeStatus (DRBDStatus _ devInfos) = (code, strList) = foldr mergeStatuses (DCSCOk, [""]) statuses in DCStatus code $ intercalate "\n" strList --- | Helper function for merging statuses. -mergeStatuses :: (DCStatusCode, String) -> (DCStatusCode, [String]) - -> (DCStatusCode, [String]) -mergeStatuses (newStat, newStr) (storedStat, storedStrs) = - let resStat = max newStat storedStat - resStrs = - if newStr == "" - then storedStrs - else storedStrs ++ [newStr] - in (resStat, resStrs) - -- | Compute the status of a DRBD device and its error message. computeDevStatus :: DeviceInfo -> (DCStatusCode, String) computeDevStatus (UnconfiguredDevice _) = (DCSCOk, "") diff --git a/src/Ganeti/DataCollectors/Types.hs b/src/Ganeti/DataCollectors/Types.hs index 06263638f..80df40c58 100644 --- a/src/Ganeti/DataCollectors/Types.hs +++ b/src/Ganeti/DataCollectors/Types.hs @@ -34,6 +34,7 @@ module Ganeti.DataCollectors.Types , DCStatusCode(..) , DCVersion(..) , buildReport + , mergeStatuses ) where import Data.Char @@ -116,6 +117,17 @@ addStatus dcStatus value = makeObj , ("data", value) ] +-- | Helper function for merging statuses. +mergeStatuses :: (DCStatusCode, String) -> (DCStatusCode, [String]) + -> (DCStatusCode, [String]) +mergeStatuses (newStat, newStr) (storedStat, storedStrs) = + let resStat = max newStat storedStat + resStrs = + if newStr == "" + then storedStrs + else storedStrs ++ [newStr] + in (resStat, resStrs) + -- | Utility function for building a report automatically adding the current -- timestamp (rounded up to seconds). -- If the version is not specified, it will be set to the value indicating -- GitLab