Revision 79ac58fa

b/htools/Ganeti/Confd/Server.hs
30 30
  ) where
31 31

  
32 32
import Control.Concurrent
33
import Control.Exception
33 34
import Control.Monad (forever)
34 35
import qualified Data.ByteString as B
35 36
import Data.IORef
36 37
import Data.List
37 38
import qualified Data.Map as M
38 39
import qualified Network.Socket as S
40
import Prelude hiding (catch)
39 41
import System.Posix.Files
40 42
import System.Posix.Types
41 43
import System.Time
......
300 302
                    updateConfig path cref
301 303
                    return (nt', ConfigReloaded)
302 304
        ) (\e -> do
303
             let msg = "Failure during configuration update: " ++ show e
305
             let msg = "Failure during configuration update: " ++
306
                       show (e::IOError)
304 307
             writeIORef cref (Bad msg)
305 308
             return (nullFStat, ConfigIOError)
306 309
          )
......
416 419
addNotifier inotify path cref mstate = do
417 420
  catch (addWatch inotify [CloseWrite] path
418 421
                    (onInotify inotify path cref mstate) >> return True)
419
        (const $ return False)
422
        (\e -> const (return False) (e::IOError))
420 423

  
421 424
-- | Inotify event handler.
422 425
onInotify :: INotify -> String -> CRef -> MVar ServerState -> Event -> IO ()
b/htools/Ganeti/Daemon.hs
41 41
  , genericMain
42 42
  ) where
43 43

  
44
import Control.Exception
44 45
import Control.Monad
45 46
import qualified Data.Version
46 47
import Data.Word
47 48
import qualified Network.Socket as Socket
49
import Prelude hiding (catch)
48 50
import System.Console.GetOpt
49 51
import System.Exit
50 52
import System.Environment
......
199 201
  _ <- fdWrite fd (show my_pid ++ "\n")
200 202
  return fd
201 203

  
204
-- | Helper to format an IOError.
205
formatIOError :: String -> IOError -> String
206
formatIOError msg err = msg ++ ": " ++  show err
207

  
202 208
-- | Wrapper over '_writePidFile' that transforms IO exceptions into a
203 209
-- 'Bad' value.
204 210
writePidFile :: FilePath -> IO (Result Fd)
205 211
writePidFile path = do
206
  catch (fmap Ok $ _writePidFile path) (return . Bad . show)
212
  catch (fmap Ok $ _writePidFile path)
213
    (return . Bad . formatIOError "Failure during writing of the pid file")
207 214

  
208 215
-- | Sets up a daemon's environment.
209 216
setupDaemonEnv :: FilePath -> FileMode -> IO ()
b/htools/Ganeti/Ssconf.hs
34 34

  
35 35
import Ganeti.THH
36 36

  
37
import Control.Exception
37 38
import Control.Monad (liftM)
38 39
import Data.Char (isSpace)
39 40
import Data.Maybe (fromMaybe)
41
import Prelude hiding (catch)
40 42
import qualified Network.Socket as Socket
41 43
import System.FilePath ((</>))
42
import System.IO.Error
44
import System.IO.Error (isDoesNotExistError)
43 45

  
44 46
import qualified Ganeti.Constants as C
45 47
import Ganeti.BasicTypes

Also available in: Unified diff