Commit 17cb7017 authored by Michael Hanselmann's avatar Michael Hanselmann
Browse files

Merge branch 'next' into branch-2.1

* next:
  Add “gnt-job watch” command
  jqueue: Fix error when WaitForJobChange gets invalid ID
  jqueue: Update message for cancelling running job
parents abae1b2b e7d6946c
......@@ -1107,6 +1107,10 @@ class JobQueue(object):
logging.debug("Waiting for changes in job %s", job_id)
job_info = None
log_entries = None
end_time = time.time() + timeout
while True:
delta_time = end_time - time.time()
......@@ -1148,7 +1152,10 @@ class JobQueue(object):
logging.debug("Job %s changed", job_id)
return (job_info, log_entries)
if job_info is None and log_entries is None:
return None
return (job_info, log_entries)
......@@ -1172,8 +1179,8 @@ class JobQueue(object):
if job_status not in (constants.JOB_STATUS_QUEUED,
logging.debug("Job %s is no longer in the queue",
return (False, "Job %s is no longer in the queue" %
logging.debug("Job %s is no longer waiting in the queue",
return (False, "Job %s is no longer waiting in the queue" %
if job_status == constants.JOB_STATUS_QUEUED:
......@@ -231,6 +231,20 @@
This command follows the output of the job by the given
<replaceable>id</replaceable> and prints it.
......@@ -29,6 +29,7 @@ from ganeti.cli import *
from ganeti import constants
from ganeti import errors
from ganeti import utils
from ganeti import cli
#: default list of fields for L{ListJobs}
......@@ -312,6 +313,32 @@ def ShowJobs(opts, args):
return 0
def WatchJob(opts, args):
"""Follow a job and print its output as it arrives.
@param opts: the command line options selected by the user
@type args: list
@param args: Contains the job ID
@rtype: int
@return: the desired exit code
job_id = args[0]
msg = ("Output from job %s follows" % job_id)
ToStdout("-" * len(msg))
retcode = 0
except errors.GenericError, err:
(retcode, job_result) = cli.FormatError(err)
ToStderr("Job %s failed: %s", job_id, job_result)
return retcode
commands = {
'list': (ListJobs, ARGS_ANY,
......@@ -336,6 +363,9 @@ commands = {
'info': (ShowJobs, ARGS_ANY, [DEBUG_OPT],
"<job-id> [<job-id> ...]",
"Show detailed information about the specified jobs"),
'watch': (WatchJob, ARGS_ONE, [DEBUG_OPT],
"Follows a job and prints its output as it arrives"),
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