Skip to content
This repository has been archived by the owner on Oct 14, 2020. It is now read-only.

Commit

Permalink
Added --sort option to 'call' cmd_module.
Browse files Browse the repository at this point in the history
  • Loading branch information
Krzysztof A. Adamski committed May 31, 2008
1 parent ea70b80 commit 9de932b
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions func/overlord/cmd_modules/call.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ def addOptions(self):
self.parser.add_option("-n", "--nopoll", dest="nopoll",
help="Don't wait for async results",
action="store_true")
self.parser.add_option("-s", "--sort", dest="sort",
help="In async mode, wait for all results and print them sorted.",
action="store_true")

def handleOptions(self, options):
self.options = options
Expand Down Expand Up @@ -135,10 +138,11 @@ def do(self, args):
time.sleep(0.1)
elif return_code == jobthing.JOB_ID_ASYNC_FINISHED:
async_done = True
partial = self.print_partial_results(partial, async_results)
partial = self.print_partial_results(partial, async_results, self.options.sort)
return 0
elif return_code == jobthing.JOB_ID_ASYNC_PARTIAL:
partial = self.print_partial_results(partial, async_results)
if not self.options.sort:
partial = self.print_partial_results(partial, async_results)
else:
sys.stderr.write("Async error")
return 0
Expand All @@ -153,10 +157,13 @@ def do(self, args):
# nothing really makes use of this atm -akl
return foo

def print_partial_results(self, old, new):
def print_partial_results(self, old, new, sort=0):
diff = dict([(k, v) for k, v in new.iteritems() if k not in old])
if len(diff) > 0:
for res in diff.iteritems():
print "2:",self.format_return(res)
iter=diff.iteritems()
if sort:
iter=sorted(iter)
for res in iter:
print self.format_return(res)
return new
return old

0 comments on commit 9de932b

Please sign in to comment.