diff --git a/src/Ganeti/Utils.hs b/src/Ganeti/Utils.hs index 8a73023f29f50d9c7b238016bff7a181a97d7270..d9ea3b55ca68452930ef441af4bf4df3230a245a 100644 --- a/src/Ganeti/Utils.hs +++ b/src/Ganeti/Utils.hs @@ -45,6 +45,7 @@ module Ganeti.Utils , exitUnless , rStripSpace , newUUID + , clockTimeToString ) where import Data.Char (toUpper, isAlphaNum, isDigit, isSpace) @@ -57,6 +58,7 @@ import Ganeti.BasicTypes import qualified Ganeti.Constants as C import System.IO import System.Exit +import System.Time -- * Debug functions @@ -286,3 +288,7 @@ newUUID :: IO String newUUID = do contents <- readFile C.randomUuidFile return $! rStripSpace $ take 128 contents + +-- | Convert a ClockTime into a (seconds-only) timestamp. +clockTimeToString :: ClockTime -> String +clockTimeToString (TOD t _) = show t diff --git a/test/hs/Test/Ganeti/Utils.hs b/test/hs/Test/Ganeti/Utils.hs index a84b30ff540ce38945c6da1fdb955fb50206f8c0..26d0b91cf991a8512abc612d8425d4cfda14cd40 100644 --- a/test/hs/Test/Ganeti/Utils.hs +++ b/test/hs/Test/Ganeti/Utils.hs @@ -33,6 +33,7 @@ import Test.HUnit import Data.Char (isSpace) import Data.List +import System.Time import qualified Text.JSON as J #ifndef NO_REGEX_PCRE import Text.Regex.PCRE @@ -233,6 +234,10 @@ case_new_uuid = do assertBool "newUUID" $ uuid =~ C.uuidRegex #endif +prop_clockTimeToString :: Integer -> Integer -> Property +prop_clockTimeToString ts pico = + clockTimeToString (TOD ts pico) ==? show ts + -- | Test list for the Utils module. testSuite "Utils" [ 'prop_commaJoinSplit @@ -252,4 +257,5 @@ testSuite "Utils" #ifndef NO_REGEX_PCRE , 'case_new_uuid #endif + , 'prop_clockTimeToString ]