diff --git a/Ganeti/HTools/CLI.hs b/Ganeti/HTools/CLI.hs index 972d4a2fa2adc50e4b84378d3690e51c1489b5c0..d625e2fa04142226fa668f58449ca75b325c679e 100644 --- a/Ganeti/HTools/CLI.hs +++ b/Ganeti/HTools/CLI.hs @@ -42,7 +42,7 @@ import System.IO import System.Info import System import Monad -import Text.Printf (printf) +import Text.Printf (printf, hPrintf) import qualified Data.Version import qualified Ganeti.HTools.Version as Version(version) @@ -151,13 +151,13 @@ loadExternalData opts = do (case ldresult of Ok x -> return x Bad s -> do - printf "Error: failed to load data. Details:\n%s\n" s + hPrintf stderr "Error: failed to load data. Details:\n%s\n" s exitWith $ ExitFailure 1 ) let (fix_msgs, fixed_nl) = Loader.checkData loaded_nl il unless (null fix_msgs || silent opts) $ do - putStrLn "Warning: cluster has inconsistent data:" - putStrLn . unlines . map (printf " - %s") $ fix_msgs + hPutStrLn stderr "Warning: cluster has inconsistent data:" + hPutStrLn stderr . unlines . map (printf " - %s") $ fix_msgs return (fixed_nl, il, csf) diff --git a/hail.hs b/hail.hs index 4befe386dcdb2a71a754fb35fd72669ee170943d..d216a46e3977fe868f51a22dc9d95b7d325f3411 100644 --- a/hail.hs +++ b/hail.hs @@ -124,7 +124,7 @@ main = do request <- case (parseData input_data) of Bad err -> do - putStrLn $ "Error: " ++ err + hPutStrLn stderr $ "Error: " ++ err exitWith $ ExitFailure 1 Ok rq -> return rq diff --git a/hbal.hs b/hbal.hs index 7e5ab282d5dbbd4a06798c0371ffae0204a65cfc..15333462e4cddfdc6d6be2369c98f81f3fe91498 100644 --- a/hbal.hs +++ b/hbal.hs @@ -34,7 +34,7 @@ import System.IO import System.Console.GetOpt import qualified System -import Text.Printf (printf) +import Text.Printf (printf, hPrintf) import qualified Ganeti.HTools.Container as Container import qualified Ganeti.HTools.Cluster as Cluster @@ -224,8 +224,8 @@ main = do m_dsk = optMdsk opts when (length offline_wrong > 0) $ do - printf "Wrong node name(s) set as offline: %s\n" - (commaJoin offline_wrong) + hPrintf stderr "Wrong node name(s) set as offline: %s\n" + (commaJoin offline_wrong) exitWith $ ExitFailure 1 let nm = Container.map (\n -> if elem (Node.idx n) offline_indices diff --git a/hspace.hs b/hspace.hs index 6ad59ccbc45d8c9e0e0d5d89d4dc3c99d537b834..ae83c3515ea9c9cb0686937a15cee718ca38f780 100644 --- a/hspace.hs +++ b/hspace.hs @@ -33,7 +33,7 @@ import System.IO import System.Console.GetOpt import qualified System -import Text.Printf (printf) +import Text.Printf (printf, hPrintf) import qualified Ganeti.HTools.Container as Container import qualified Ganeti.HTools.Cluster as Cluster @@ -241,14 +241,15 @@ main = do hPutStrLn stderr "Error: this program doesn't take any arguments." exitWith $ ExitFailure 1 + let verbose = optVerbose opts + + (fixed_nl, il, csf) <- CLI.loadExternalData opts + printf "Spec RAM: %d\n" (optIMem opts) printf "Spec disk: %d\n" (optIDsk opts) printf "Spec CPUs: %d\n" (optIVCPUs opts) printf "Spec nodes: %d\n" (optINodes opts) - let verbose = optVerbose opts - - (fixed_nl, il, csf) <- CLI.loadExternalData opts let num_instances = length $ Container.elems il let offline_names = optOffline opts @@ -263,12 +264,12 @@ main = do m_dsk = optMdsk opts when (length offline_wrong > 0) $ do - printf "Error: Wrong node name(s) set as offline: %s\n" - (commaJoin offline_wrong) + hPrintf stderr "Error: Wrong node name(s) set as offline: %s\n" + (commaJoin offline_wrong) exitWith $ ExitFailure 1 when (req_nodes /= 1 && req_nodes /= 2) $ do - printf "Error: Invalid required nodes (%d)\n" req_nodes + hPrintf stderr "Error: Invalid required nodes (%d)\n" req_nodes exitWith $ ExitFailure 1 let nm = Container.map (\n -> if elem (Node.idx n) offline_indices