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