Revision 80a0546b htools/Ganeti/Utils.hs

b/htools/Ganeti/Utils.hs
44 44
  , exitWhen
45 45
  , exitUnless
46 46
  , rStripSpace
47
  , newUUID
47 48
  ) where
48 49

  
49 50
import Data.Char (toUpper, isAlphaNum, isDigit, isSpace)
......
53 54
import Debug.Trace
54 55

  
55 56
import Ganeti.BasicTypes
57
import qualified Ganeti.Constants as C
56 58
import System.IO
57 59
import System.Exit
58 60

  
......
277 279
-- expensive, should only be run on small strings.
278 280
rStripSpace :: String -> String
279 281
rStripSpace = reverse . dropWhile isSpace . reverse
282

  
283
-- | Returns a random UUID.
284
-- This is a Linux-specific method as it uses the /proc filesystem.
285
newUUID :: IO String
286
newUUID = do
287
  contents <- readFile C.randomUuidFile
288
  let stripNewlines = reverse . dropWhile (=='\n') . reverse
289
  return $! stripNewlines $ take 128 contents

Also available in: Unified diff