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