-- * The options
, oDataFile
, oDiskMoves
+ , oSelInst
, oInstMoves
, oDynuFile
, oEvacMode
, oPrintNodes
, oQuiet
, oRapiMaster
+ , oReplay
, oSaveCluster
, oShowHelp
, oShowVer
, oVerbose
) where
+import Control.Monad
import Data.Maybe (fromMaybe)
import qualified Data.Version
-import Monad
import System.Console.GetOpt
import System.IO
import System.Info
, optExTags :: Maybe [String] -- ^ Tags to use for exclusion
, optExecJobs :: Bool -- ^ Execute the commands via Luxi
, optGroup :: Maybe GroupID -- ^ The UUID of the group to process
+ , optSelInst :: [String] -- ^ Instances to be excluded
, optINodes :: Int -- ^ Nodes required for an instance
, optISpec :: RSpec -- ^ Requested instance specs
, optLuxi :: Maybe FilePath -- ^ Collect data from Luxi
, optShowNodes :: Maybe [String] -- ^ Whether to show node status
, optShowVer :: Bool -- ^ Just show the program version
, optTieredSpec :: Maybe RSpec -- ^ Requested specs for tiered mode
+ , optReplay :: Maybe String -- ^ Unittests: RNG state
, optVerbose :: Int -- ^ Verbosity level
} deriving Show
, optExTags = Nothing
, optExecJobs = False
, optGroup = Nothing
+ , optSelInst = []
, optINodes = 2
, optISpec = RSpec 1 4096 102400
, optLuxi = Nothing
, optShowNodes = Nothing
, optShowVer = False
, optTieredSpec = Nothing
+ , optReplay = Nothing
, optVerbose = 1
}
"disallow disk moves from the list of allowed instance changes,\
\ thus allowing only the 'cheap' failover/migrate operations"
+oSelInst :: OptType
+oSelInst = Option "" ["select-instances"]
+ (ReqArg (\ f opts -> Ok opts { optSelInst = sepSplit ',' f }) "INSTS")
+ "only select given instances for any moves"
+
oInstMoves :: OptType
oInstMoves = Option "" ["no-instance-moves"]
(NoArg (\ opts -> Ok opts { optInstMoves = False}))
"TSPEC")
"enable tiered specs allocation, given as 'disk,ram,cpu'"
+oReplay :: OptType
+oReplay = Option "" ["replay"]
+ (ReqArg (\ stat opts -> Ok opts { optReplay = Just stat } ) "STATE")
+ "Pre-seed the random number generator with STATE"
+
oVerbose :: OptType
oVerbose = Option "v" ["verbose"]
(NoArg (\ opts -> Ok opts { optVerbose = optVerbose opts + 1 }))