ReplacePrimary _ -> (printf "f r:%s f" c, [mig, rep c, mig])
where morf = if Instance.isRunning i then "migrate" else "failover"
mig = printf "%s -f %s" morf inam::String
- mig_any = printf "%s -f -n %s %s" morf c inam
- rep n = printf "replace-disks -n %s %s" n inam
+ mig_any = printf "%s -f -n %s %s" morf c inam::String
+ rep n = printf "replace-disks -n %s %s" n inam::String
-- | Converts a placement to string format.
printSolutionLine :: Node.List -- ^ The node list
(moves, cmds) = computeMoves inst inam mv npri nsec
-- FIXME: this should check instead/also the disk template
ostr = if old_sec == Node.noSecondary
- then printf "%s" opri
- else printf "%s:%s" opri osec
+ then printf "%s" opri::String
+ else printf "%s:%s" opri osec::String
nstr = if s == Node.noSecondary
- then printf "%s" npri
- else printf "%s:%s" npri nsec
+ then printf "%s" npri::String
+ else printf "%s:%s" npri nsec::String
in (printf " %3d. %-*s %-*s => %-*s %12.8f a=%s"
- pos imlen inam pmlen (ostr::String)
- pmlen (nstr::String) c moves,
+ pos imlen inam pmlen ostr pmlen nstr c moves,
cmds)
-- | Return the instance and involved nodes in an instance move.
{-
-Copyright (C) 2009, 2010, 2011 Google Inc.
+Copyright (C) 2009, 2010, 2011, 2012 Google Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
import Data.Char (toUpper)
import Data.List
-import Data.Ratio ((%))
import Debug.Trace
| unit == "T" || upper == "TB" = return $ mbFactor * kbDecimal * kbDecimal
| otherwise = fail $ "Unknown unit '" ++ unit ++ "'"
where upper = map toUpper unit
- kbBinary = 1024
- kbDecimal = 1000
+ kbBinary = 1024 :: Rational
+ kbDecimal = 1000 :: Rational
decToBin = kbDecimal / kbBinary -- factor for 1K conversion
mbFactor = decToBin * decToBin -- twice the factor for just 1K