Skip to content
Snippets Groups Projects
Commit 2795466b authored by Iustin Pop's avatar Iustin Pop
Browse files

Show errors on stderr instead of stdout

Currently many of the exit and warning conditions mistakenly display error
messages on stdout, which makes parsing the output of programs harder. This
patch attempts to fix such occurrences.
parent 16103319
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......@@ -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
......
......@@ -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
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment