Revision dd69cd3c

b/src/Ganeti/DataCollectors/Drbd.hs
137 137
      (code, strList) = foldr mergeStatuses (DCSCOk, [""]) statuses
138 138
  in DCStatus code $ intercalate "\n" strList
139 139

  
140
-- | Helper function for merging statuses.
141
mergeStatuses :: (DCStatusCode, String) -> (DCStatusCode, [String])
142
              -> (DCStatusCode, [String])
143
mergeStatuses (newStat, newStr) (storedStat, storedStrs) =
144
  let resStat = max newStat storedStat
145
      resStrs =
146
        if newStr == ""
147
          then storedStrs
148
          else storedStrs ++ [newStr]
149
  in (resStat, resStrs)
150

  
151 140
-- | Compute the status of a DRBD device and its error message.
152 141
computeDevStatus :: DeviceInfo -> (DCStatusCode, String)
153 142
computeDevStatus (UnconfiguredDevice _) = (DCSCOk, "")
b/src/Ganeti/DataCollectors/Types.hs
34 34
  , DCStatusCode(..)
35 35
  , DCVersion(..)
36 36
  , buildReport
37
  , mergeStatuses
37 38
  ) where
38 39

  
39 40
import Data.Char
......
116 117
  , ("data", value)
117 118
  ]
118 119

  
120
-- | Helper function for merging statuses.
121
mergeStatuses :: (DCStatusCode, String) -> (DCStatusCode, [String])
122
              -> (DCStatusCode, [String])
123
mergeStatuses (newStat, newStr) (storedStat, storedStrs) =
124
  let resStat = max newStat storedStat
125
      resStrs =
126
        if newStr == ""
127
          then storedStrs
128
          else storedStrs ++ [newStr]
129
  in (resStat, resStrs)
130

  
119 131
-- | Utility function for building a report automatically adding the current
120 132
-- timestamp (rounded up to seconds).
121 133
-- If the version is not specified, it will be set to the value indicating

Also available in: Unified diff