Use exitErr instead of explicit error message and exitWith
authorHelga Velroyen <helgav@google.com>
Thu, 18 Oct 2012 08:56:30 +0000 (10:56 +0200)
committerIustin Pop <iustin@google.com>
Thu, 18 Oct 2012 09:11:07 +0000 (11:11 +0200)
Furthermore, a few messages have their capitalisation changed (fixed).

Signed-off-by: Helga Velroyen <helgav@google.com>
Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

htest/shelltests/htools-invalid.test
htools/Ganeti/HTools/ExtLoader.hs
htools/Ganeti/HTools/IAlloc.hs
htools/Ganeti/HTools/Program/Hail.hs
htools/Ganeti/HTools/Program/Hbal.hs
htools/Ganeti/HTools/Program/Hcheck.hs
htools/Ganeti/HTools/Program/Hinfo.hs
htools/Ganeti/HTools/Program/Hspace.hs
htools/Ganeti/Utils.hs
htools/htools.hs
htools/rpc-test.hs

index a8160bd..1625b25 100644 (file)
 # extra arguments
 ./htest/hspace unexpected-argument
 >>>2
-Error: this program doesn't take any arguments.
+Error: This program doesn't take any arguments.
 >>>=1
 
 ./htest/hbal unexpected-argument
 >>>2
-Error: this program doesn't take any arguments.
+Error: This program doesn't take any arguments.
 >>>=1
 
 ./htest/hinfo unexpected-argument
 >>>2
-Error: this program doesn't take any arguments.
+Error: This program doesn't take any arguments.
 >>>=1
 
 ./htest/hcheck unexpected-argument
 >>>2
-Error: this program doesn't take any arguments.
+Error: This program doesn't take any arguments.
 >>>=1
index 534ca7e..17a6bed 100644 (file)
@@ -95,7 +95,7 @@ loadExternalData opts = do
       exInsts = optExInst opts
 
   exitWhen (length allSet > 1) "Only one of the rapi, luxi, and data\
-                               \ files options should be given"
+                               \ files options should be given."
 
   util_contents <- maybe (return "") readFile (optDynuFile opts)
   util_data <- exitIfBad "can't parse utilisation data" .
index d85c9ff..d7716ab 100644 (file)
@@ -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" #-}
 
@@ -385,9 +384,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.
index cb334f1..7231c0d 100644 (file)
@@ -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
index e72bf5e..bc83d05 100644 (file)
@@ -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
index 260a0df..f02b52a 100644 (file)
@@ -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
index b2b47b4..367bf0f 100644 (file)
@@ -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
index 6ec9ea6..9ad61b8 100644 (file)
@@ -387,7 +387,7 @@ instFromSpec spx =
 -- | Main function.
 main :: Options -> [String] -> IO ()
 main opts args = do
-  exitUnless (null args) "this program doesn't take any arguments"
+  exitUnless (null args) "This program doesn't take any arguments."
 
   let verbose = optVerbose opts
       machine_r = optMachineReadable opts
index 8c1b0ce..9636a34 100644 (file)
@@ -213,15 +213,13 @@ 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.
 exitErr :: String -> IO a
 exitErr errmsg = do
-  hPutStrLn stderr $ "Error: " ++ errmsg ++ "."
+  hPutStrLn stderr $ "Error: " ++ errmsg
   exitWith (ExitFailure 1)
 
 -- | Exits with an error message if the given boolean condition if true.
index f90b676..cec4aa3 100644 (file)
@@ -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
index b0cad68..394ab9d 100644 (file)
@@ -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