From 707cd3d7feb083a41fde3aa3f2a5e20b40b99ba2 Mon Sep 17 00:00:00 2001 From: Helga Velroyen <helgav@google.com> Date: Thu, 18 Oct 2012 10:56:30 +0200 Subject: [PATCH] Use exitErr instead of explicit error message and exitWith 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 | 8 ++++---- htools/Ganeti/HTools/ExtLoader.hs | 2 +- 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/HTools/Program/Hspace.hs | 2 +- htools/Ganeti/Utils.hs | 6 ++---- htools/htools.hs | 6 ++---- htools/rpc-test.hs | 3 +-- 11 files changed, 21 insertions(+), 40 deletions(-) diff --git a/htest/shelltests/htools-invalid.test b/htest/shelltests/htools-invalid.test index a8160bd36..1625b25ba 100644 --- a/htest/shelltests/htools-invalid.test +++ b/htest/shelltests/htools-invalid.test @@ -25,20 +25,20 @@ # 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 diff --git a/htools/Ganeti/HTools/ExtLoader.hs b/htools/Ganeti/HTools/ExtLoader.hs index 534ca7eb2..17a6bed2b 100644 --- a/htools/Ganeti/HTools/ExtLoader.hs +++ b/htools/Ganeti/HTools/ExtLoader.hs @@ -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" . diff --git a/htools/Ganeti/HTools/IAlloc.hs b/htools/Ganeti/HTools/IAlloc.hs index d85c9ff57..d7716abbc 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" #-} @@ -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. diff --git a/htools/Ganeti/HTools/Program/Hail.hs b/htools/Ganeti/HTools/Program/Hail.hs index cb334f1ec..7231c0df6 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 e72bf5e72..bc83d059e 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 260a0dfc3..f02b52adb 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 b2b47b481..367bf0f20 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/HTools/Program/Hspace.hs b/htools/Ganeti/HTools/Program/Hspace.hs index 6ec9ea683..9ad61b803 100644 --- a/htools/Ganeti/HTools/Program/Hspace.hs +++ b/htools/Ganeti/HTools/Program/Hspace.hs @@ -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 diff --git a/htools/Ganeti/Utils.hs b/htools/Ganeti/Utils.hs index 8c1b0ce72..9636a34d2 100644 --- a/htools/Ganeti/Utils.hs +++ b/htools/Ganeti/Utils.hs @@ -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. diff --git a/htools/htools.hs b/htools/htools.hs index f90b676f6..cec4aa39d 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 b0cad68c3..394ab9d59 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 -- GitLab