Signed-off-by: Helga Velroyen <[email protected]>
---
htools/Ganeti/HTools/IAlloc.hs | 7 ++-----
htools/Ganeti/HTools/Program/Hail.hs | 6 ++----
htools/Ganeti/HTools/Program/Hbal.hs | 10 +++-------
htools/Ganeti/HTools/Program/Hcheck.hs | 6 ++----
htools/Ganeti/HTools/Program/Hinfo.hs | 5 +----
htools/Ganeti/Utils.hs | 4 +---
htools/htools.hs | 6 ++----
htools/rpc-test.hs | 3 +--
8 files changed, 14 insertions(+), 33 deletions(-)
diff --git a/htools/Ganeti/HTools/IAlloc.hs b/htools/Ganeti/HTools/IAlloc.hs
index a9acf66..74ff33c 100644
--- a/htools/Ganeti/HTools/IAlloc.hs
+++ b/htools/Ganeti/HTools/IAlloc.hs
@@ -36,8 +36,6 @@ import Data.List
import Control.Monad
import Text.JSON (JSObject, JSValue(JSArray),
makeObj, encodeStrict, decodeStrict, fromJSObject, showJSON)
-import System.Exit
-import System.IO
import Ganeti.BasicTypes
import qualified Ganeti.HTools.Cluster as Cluster
@@ -50,6 +48,7 @@ import Ganeti.HTools.CLI
import Ganeti.HTools.Loader
import Ganeti.HTools.Types
import Ganeti.JSON
+import Ganeti.Utils
{-# ANN module "HLint: ignore Eta reduce" #-}
@@ -384,9 +383,7 @@ readRequest fp = do
"-" -> getContents
_ -> readFile fp
case parseData input_data of
- Bad err -> do
- hPutStrLn stderr $ "Error: " ++ err
- exitWith $ ExitFailure 1
+ Bad err -> exitErr err
Ok (fix_msgs, rq) -> maybeShowWarnings fix_msgs >> return rq
-- | Main iallocator pipeline.
diff --git a/htools/Ganeti/HTools/Program/Hail.hs
b/htools/Ganeti/HTools/Program/Hail.hs
index cb334f1..7231c0d 100644
--- a/htools/Ganeti/HTools/Program/Hail.hs
+++ b/htools/Ganeti/HTools/Program/Hail.hs
@@ -32,7 +32,6 @@ module Ganeti.HTools.Program.Hail
import Control.Monad
import Data.Maybe (fromMaybe, isJust)
import System.IO
-import System.Exit
import qualified Ganeti.HTools.Cluster as Cluster
@@ -41,6 +40,7 @@ import Ganeti.HTools.CLI
import Ganeti.HTools.IAlloc
import Ganeti.HTools.Loader (Request(..), ClusterData(..))
import Ganeti.HTools.ExtLoader (maybeSaveData, loadExternalData)
+import Ganeti.Utils
-- | Options list and functions.
options :: [OptType]
@@ -58,9 +58,7 @@ arguments = [ArgCompletion OptComplFile 1 (Just 1)]
wrapReadRequest :: Options -> [String] -> IO Request
wrapReadRequest opts args = do
- when (null args) $ do
- hPutStrLn stderr "Error: this program needs an input file."
- exitWith $ ExitFailure 1
+ when (null args) $ exitErr "This program needs an input file."
r1 <- readRequest (head args)
if isJust (optDataFile opts) || (not . null . optNodeSim) opts
diff --git a/htools/Ganeti/HTools/Program/Hbal.hs
b/htools/Ganeti/HTools/Program/Hbal.hs
index e72bf5e..bc83d05 100644
--- a/htools/Ganeti/HTools/Program/Hbal.hs
+++ b/htools/Ganeti/HTools/Program/Hbal.hs
@@ -273,8 +273,7 @@ selectGroup opts gl nlf ilf = do
hPutStrLn stderr "Found multiple node groups:"
mapM_ (hPutStrLn stderr . (" " ++) . Group.name .
flip Container.find gl . fst) ngroups
- hPutStrLn stderr "Aborting."
- exitWith $ ExitFailure 1
+ exitErr "Aborting."
case optGroup opts of
Nothing -> do
@@ -286,8 +285,7 @@ selectGroup opts gl nlf ilf = do
hPutStrLn stderr $ "Node group " ++ g ++
" not found. Node group list is:"
mapM_ (hPutStrLn stderr . (" " ++) . Group.name ) (Container.elems gl)
- hPutStrLn stderr "Aborting."
- exitWith $ ExitFailure 1
+ exitErr "Aborting."
Just grp ->
case lookup (Group.idx grp) ngroups of
Nothing ->
@@ -350,9 +348,7 @@ checkNeedRebalance opts ini_cv = do
-- | Main function.
main :: Options -> [String] -> IO ()
main opts args = do
- unless (null args) $ do
- hPutStrLn stderr "Error: this program doesn't take any arguments."
- exitWith $ ExitFailure 1
+ unless (null args) $ exitErr "This program doesn't take any arguments."
let verbose = optVerbose opts
shownodes = optShowNodes opts
diff --git a/htools/Ganeti/HTools/Program/Hcheck.hs
b/htools/Ganeti/HTools/Program/Hcheck.hs
index 260a0df..12e46a4 100644
--- a/htools/Ganeti/HTools/Program/Hcheck.hs
+++ b/htools/Ganeti/HTools/Program/Hcheck.hs
@@ -32,7 +32,6 @@ module Ganeti.HTools.Program.Hcheck
import Control.Monad
import Data.List (transpose)
import System.Exit
-import System.IO
import Text.Printf (printf)
import qualified Ganeti.HTools.Container as Container
@@ -48,6 +47,7 @@ import Ganeti.HTools.CLI
import Ganeti.HTools.ExtLoader
import Ganeti.HTools.Loader
import Ganeti.HTools.Types
+import Ganeti.Utils
-- | Options list and functions.
options :: [OptType]
@@ -295,9 +295,7 @@ printFinalHTC = printFinal htcPrefix
-- | Main function.
main :: Options -> [String] -> IO ()
main opts args = do
- unless (null args) $ do
- hPutStrLn stderr "Error: this program doesn't take any arguments."
- exitWith $ ExitFailure 1
+ unless (null args) $ exitErr "this program doesn't take any arguments."
let verbose = optVerbose opts
machineread = optMachineReadable opts
diff --git a/htools/Ganeti/HTools/Program/Hinfo.hs
b/htools/Ganeti/HTools/Program/Hinfo.hs
index b2b47b4..367bf0f 100644
--- a/htools/Ganeti/HTools/Program/Hinfo.hs
+++ b/htools/Ganeti/HTools/Program/Hinfo.hs
@@ -31,7 +31,6 @@ module Ganeti.HTools.Program.Hinfo
import Control.Monad
import Data.List
-import System.Exit
import System.IO
import Text.Printf (printf)
@@ -154,9 +153,7 @@ commonInfo verbose gl nl il = do
-- | Main function.
main :: Options -> [String] -> IO ()
main opts args = do
- unless (null args) $ do
- hPutStrLn stderr "Error: this program doesn't take any arguments."
- exitWith $ ExitFailure 1
+ unless (null args) $ exitErr "This program doesn't take any arguments."
let verbose = optVerbose opts
shownodes = optShowNodes opts
diff --git a/htools/Ganeti/Utils.hs b/htools/Ganeti/Utils.hs
index 8c1b0ce..a651252 100644
--- a/htools/Ganeti/Utils.hs
+++ b/htools/Ganeti/Utils.hs
@@ -213,9 +213,7 @@ parseUnit str =
-- | Unwraps a 'Result', exiting the program if it is a 'Bad' value,
-- otherwise returning the actual contained value.
exitIfBad :: String -> Result a -> IO a
-exitIfBad msg (Bad s) = do
- hPutStrLn stderr $ "Error: " ++ msg ++ ": " ++ s
- exitWith (ExitFailure 1)
+exitIfBad msg (Bad s) = exitErr (msg ++ ": " ++ s)
exitIfBad _ (Ok v) = return v
-- | Exits immediately with an error message.
diff --git a/htools/htools.hs b/htools/htools.hs
index f90b676..cec4aa3 100644
--- a/htools/htools.hs
+++ b/htools/htools.hs
@@ -30,7 +30,6 @@ import Control.Monad (guard)
import Data.Char (toLower)
import Prelude hiding (catch)
import System.Environment
-import System.Exit
import System.IO
import System.IO.Error (isDoesNotExistError)
@@ -45,9 +44,8 @@ usage name = do
hPutStrLn stderr "This program must be installed under one of the following\
\ names:"
mapM_ (hPutStrLn stderr . (" - " ++) . fst) personalities
- hPutStrLn stderr "Please either rename/symlink the program or set\n\
- \the environment variable HTOOLS to the desired role."
- exitWith $ ExitFailure 1
+ exitErr "Please either rename/symlink the program or set\n\
+ \the environment variable HTOOLS to the desired role."
main :: IO ()
main = do
diff --git a/htools/rpc-test.hs b/htools/rpc-test.hs
index b0cad68..394ab9d 100644
--- a/htools/rpc-test.hs
+++ b/htools/rpc-test.hs
@@ -37,8 +37,7 @@ import Ganeti.Utils
usage :: IO ()
usage = do
prog <- getProgName
- hPutStrLn stderr $ "Usage: " ++ prog ++ " delay node..."
- exitWith $ ExitFailure 1
+ exitErr "Usage: " ++ prog ++ " delay node..."
main :: IO ()
main = do
--
1.7.7.3