Commit 99036060 authored by Iustin Pop's avatar Iustin Pop
Browse files

Allow gnt-debug submit-job to take multiple args



Currently “gnt-debug submit-job” takes a single argument and has
non-trivial startup-costs; in order to exercise the job system, it is
better to be able to submit multiple jobs with a single invocation of
the script.

This patch extends it to take multiple argument, de-serialize the
opcodes and then submit all of them as fast as possible, in order to
increase pressure on the master daemon.
Signed-off-by: default avatarIustin Pop <iustin@google.com>
Reviewed-by: default avatarAlexander Schreiber <als@google.com>
parent d64769a8
......@@ -146,12 +146,12 @@
<cmdsynopsis>
<command>submit-job</command>
<arg choice="req">opcodes_file</arg>
<arg choice="req" rep="repeat">opcodes_file</arg>
</cmdsynopsis>
<para>
This command builds a list of opcodes from a JSON-format file
and submits them as a single job to the master daemon. It can
This command builds a list of opcodes from JSON-format files
and submits for each file a job to the master daemon. It can
be used to test some options that are not available via the
command line.
</para>
......
......@@ -71,12 +71,19 @@ def GenericOpCodes(opts, args):
"""
cl = cli.GetClient()
fname = args[0]
op_data = simplejson.loads(open(fname).read())
op_list = [opcodes.OpCode.LoadOpCode(val) for val in op_data]
jid = cli.SendJob(op_list, cl=cl)
ToStdout("Job id: %s", jid)
cli.PollJob(jid, cl=cl)
job_data = []
job_ids = []
for fname in args:
op_data = simplejson.loads(open(fname).read())
op_list = [opcodes.OpCode.LoadOpCode(val) for val in op_data]
job_data.append((fname, op_list))
for fname, op_list in job_data:
jid = cli.SendJob(op_list, cl=cl)
ToStdout("File '%s', job id: %s", fname, jid)
job_ids.append(jid)
for jid in job_ids:
ToStdout("Waiting for job id %s", jid)
cli.PollJob(jid, cl=cl)
return 0
......@@ -139,11 +146,11 @@ commands = {
help="Select nodes to sleep on"),
],
"[opts...] <duration>", "Executes a TestDelay OpCode"),
'submit-job': (GenericOpCodes, ARGS_ONE,
'submit-job': (GenericOpCodes, ARGS_ATLEAST(1),
[DEBUG_OPT,
],
"<op_list_file>", "Submits a job built from a json-file"
" with a list of serialized opcodes"),
"<op_list_file...>", "Submits jobs built from json files"
" containing a list of serialized opcodes"),
'allocator': (TestAllocator, ARGS_ONE,
[DEBUG_OPT,
make_option("--dir", dest="direction",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment