summaryrefslogtreecommitdiffstats
path: root/rteval-cmd
diff options
context:
space:
mode:
authorDavid Sommerseth <davids@redhat.com>2012-12-19 15:55:04 +0100
committerDavid Sommerseth <davids@redhat.com>2012-12-19 15:55:04 +0100
commitf9e8cce6b39c0fb966562613da4292c7e952d7a7 (patch)
tree717a5383cf7636d3cba66ba0846ab13e411d6369 /rteval-cmd
parentefe7c056315f7e613f125089300ae142150aa99c (diff)
downloadrteval-f9e8cce6b39c0fb966562613da4292c7e952d7a7.tar.gz
rteval-f9e8cce6b39c0fb966562613da4292c7e952d7a7.tar.xz
rteval-f9e8cce6b39c0fb966562613da4292c7e952d7a7.zip
Update config with values from the command line
Now all the command line argument modifications will update the configuration object. Command line arguments will override any default or configuration variables. Signed-off-by: David Sommerseth <davids@redhat.com>
Diffstat (limited to 'rteval-cmd')
-rwxr-xr-xrteval-cmd66
1 files changed, 34 insertions, 32 deletions
diff --git a/rteval-cmd b/rteval-cmd
index b886781..b0053e2 100755
--- a/rteval-cmd
+++ b/rteval-cmd
@@ -99,56 +99,61 @@ def parse_options(cfg, parser, cmdargs):
'''parse the command line arguments'''
rtevcfg = cfg.GetSection('rteval')
- parser.add_option("-d", "--duration", dest="duration",
+ #
+ # All the destination variables here should go into the 'rteval' section,
+ # thus they are prefixed with 'rteval___'.
+ # See rteval/rtevalConfig::UpdateFromOptionParser() method for more info
+ #
+ parser.add_option("-d", "--duration", dest="rteval___duration",
type="string", default=rtevcfg.duration,
help="specify length of test run (default: %default)")
- parser.add_option("-v", "--verbose", dest="verbose",
+ parser.add_option("-v", "--verbose", dest="rteval___verbose",
action="store_true", default=rtevcfg.verbose,
help="turn on verbose prints (default: %default)")
- parser.add_option("-w", "--workdir", dest="workdir",
+ parser.add_option("-w", "--workdir", dest="rteval___workdir",
type="string", default=rtevcfg.workdir,
help="top directory for rteval data (default: %default)")
- parser.add_option("-l", "--loaddir", dest="srcdir",
+ parser.add_option("-l", "--loaddir", dest="rteval___srcdir",
type="string", default=rtevcfg.srcdir,
help="directory for load source tarballs (default: %default)")
- parser.add_option("-i", "--installdir", dest="installdir",
+ parser.add_option("-i", "--installdir", dest="rteval___installdir",
type="string", default=rtevcfg.installdir,
help="place to locate installed templates (default: %default)")
- parser.add_option("-s", "--sysreport", dest="sysreport",
+ parser.add_option("-s", "--sysreport", dest="rteval___sysreport",
action="store_true", default=rtevcfg.sysreport,
help='run sysreport to collect system data (default: %default)')
- parser.add_option("-D", '--debug', dest='debugging',
+ parser.add_option("-D", '--debug', dest='rteval___debugging',
action='store_true', default=rtevcfg.debugging,
help='turn on debug prints (default: %default)')
- parser.add_option("-X", '--xmlrpc-submit', dest='xmlrpc',
+ parser.add_option("-X", '--xmlrpc-submit', dest='rteval___xmlrpc',
action='store', default=rtevcfg.xmlrpc, metavar='HOST',
help='Hostname to XML-RPC server to submit reports')
- parser.add_option("-P", "--xmlrpc-no-abort", dest="xmlrpc_noabort",
+ parser.add_option("-P", "--xmlrpc-no-abort", dest="rteval___xmlrpc_noabort",
action='store_true', default=False,
help="Do not abort if XML-RPC server do not respond to ping request");
- parser.add_option("-Z", '--summarize', dest='summarize',
+ parser.add_option("-Z", '--summarize', dest='rteval___summarize',
action='store_true', default=False,
help='summarize an already existing XML report')
- parser.add_option("-H", '--raw-histogram', dest='rawhistogram',
+ parser.add_option("-H", '--raw-histogram', dest='rteval___rawhistogram',
action='store_true', default=False,
help='Generate raw histogram data for an already existing XML report')
- parser.add_option("-f", "--inifile", dest="inifile",
+ parser.add_option("-f", "--inifile", dest="rteval___inifile",
type='string', default=None,
help="initialization file for configuring loads and behavior")
- parser.add_option("-a", "--annotate", dest="annotate",
+ parser.add_option("-a", "--annotate", dest="rteval___annotate",
type="string", default=None,
help="Add a little annotation which is stored in the report")
- parser.add_option("-L", "--logging", dest="logging",
+ parser.add_option("-L", "--logging", dest="rteval___logging",
action='store_true', default=False,
help='log the output of the loads in the report directory')
- parser.add_option("-O", "--onlyload", dest="onlyload",
+ parser.add_option("-O", "--onlyload", dest="rteval___onlyload",
action='store_true', default=False,
help="only run the loads (don't run measurement threads)")
(cmd_opts, cmd_args) = parser.parse_args(args = cmdargs)
- if cmd_opts.duration:
+ if cmd_opts.rteval___duration:
mult = 1.0
- v = cmd_opts.duration.lower()
+ v = cmd_opts.rteval___duration.lower()
if v.endswith('s'):
v = v[:-1]
elif v.endswith('m'):
@@ -160,9 +165,12 @@ def parse_options(cfg, parser, cmdargs):
elif v.endswith('d'):
v = v[:-1]
mult = 3600.0 * 24.0
- cmd_opts.duration = float(v) * mult
+ cmd_opts.rteval___duration = float(v) * mult
- return (cmd_opts, cmd_args)
+ # Update the config object with the parsed arguments
+ cfg.UpdateFromOptionParser(parser)
+
+ return cmd_args
@@ -238,16 +246,10 @@ if __name__ == '__main__':
parser = optparse.OptionParser()
loadmods.SetupModuleOptions(parser)
measuremods.SetupModuleOptions(parser)
- (cmd_opts, cmd_args) = parse_options(config, parser, sys.argv[1:])
-
- # copy the command line options into the rteval config section
- # (cmd line overrides config file values)
- config.AppendConfig('rteval', vars(cmd_opts))
- rtevcfg = config.GetSection('rteval')
-
- rtevcfg.workdir = os.path.abspath(cmd_opts.workdir)
+ cmd_args = parse_options(config, parser, sys.argv[1:])
# Update log level, based on config/command line args
+ rtevcfg = config.GetSection('rteval')
loglev = (not rtevcfg.quiet and (Log.ERR | Log.WARN)) \
| (rtevcfg.verbose and Log.INFO) \
| (rtevcfg.debugging and Log.DEBUG)
@@ -256,14 +258,14 @@ if __name__ == '__main__':
logger.log(Log.DEBUG, "workdir: %s" % rtevcfg.workdir)
# if --summarize was specified then just parse the XML, print it and exit
- if cmd_opts.summarize or cmd_opts.rawhistogram:
+ if rtevcfg.summarize or rtevcfg.rawhistogram:
if len(cmd_args) < 1:
raise RuntimeError, "Must specify at least one XML file with --summarize!"
for x in cmd_args:
- if cmd_opts.summarize:
+ if rtevcfg.summarize:
summarize(x, '%s/rteval_text.xsl' % rtevcfg.installdir)
- elif cmd_opts.rawhistogram:
+ elif rtevcfg.rawhistogram:
summarize(x, '%s/rteval_histogram_raw.xsl' % rtevcfg.installdir)
sys.exit(0)
@@ -291,9 +293,9 @@ if __name__ == '__main__':
rteval = RtEval(config, loadmods, measuremods, logger)
- rteval.Prepare(cmd_opts.onlyload)
+ rteval.Prepare(rtevcfg.onlyload)
- if cmd_opts.onlyload:
+ if rtevcfg.onlyload:
# If --onlyload were given, just kick off the loads and nothing more
# No reports will be created.
loadmods.Start()