It will be used by multiple data collectors, not only the DRBD collector.
Signed-off-by: Michele Tartara <[email protected]>
---
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 944808c..0d74508 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 0626363..80df40c 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
--
1.8.2.1