Skip to content
Snippets Groups Projects
Commit e7d6946c authored by Michael Hanselmann's avatar Michael Hanselmann
Browse files

Add “gnt-job watch” command


This command can be used to follow the output of a job. It's useful
together with the --submit parameter for other commands.

Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
Reviewed-by: default avatarIustin Pop <iustin@google.com>
parent 6e237482
No related branches found
No related tags found
No related merge requests found
...@@ -231,6 +231,20 @@ ...@@ -231,6 +231,20 @@
</para> </para>
</refsect2> </refsect2>
<refsect2>
<title>WATCH</title>
<cmdsynopsis>
<command>watch</command>
<arg>id</arg>
</cmdsynopsis>
<para>
This command follows the output of the job by the given
<replaceable>id</replaceable> and prints it.
</para>
</refsect2>
</refsect1> </refsect1>
&footer; &footer;
......
...@@ -29,6 +29,7 @@ from ganeti.cli import * ...@@ -29,6 +29,7 @@ from ganeti.cli import *
from ganeti import constants from ganeti import constants
from ganeti import errors from ganeti import errors
from ganeti import utils from ganeti import utils
from ganeti import cli
#: default list of fields for L{ListJobs} #: default list of fields for L{ListJobs}
...@@ -312,6 +313,32 @@ def ShowJobs(opts, args): ...@@ -312,6 +313,32 @@ def ShowJobs(opts, args):
return 0 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(msg)
ToStdout("-" * len(msg))
retcode = 0
try:
cli.PollJob(job_id)
except errors.GenericError, err:
(retcode, job_result) = cli.FormatError(err)
ToStderr("Job %s failed: %s", job_id, job_result)
return retcode
commands = { commands = {
'list': (ListJobs, ARGS_ANY, 'list': (ListJobs, ARGS_ANY,
[DEBUG_OPT, NOHDR_OPT, SEP_OPT, FIELDS_OPT], [DEBUG_OPT, NOHDR_OPT, SEP_OPT, FIELDS_OPT],
...@@ -336,6 +363,9 @@ commands = { ...@@ -336,6 +363,9 @@ commands = {
'info': (ShowJobs, ARGS_ANY, [DEBUG_OPT], 'info': (ShowJobs, ARGS_ANY, [DEBUG_OPT],
"<job-id> [<job-id> ...]", "<job-id> [<job-id> ...]",
"Show detailed information about the specified jobs"), "Show detailed information about the specified jobs"),
'watch': (WatchJob, ARGS_ONE, [DEBUG_OPT],
"<job-id>",
"Follows a job and prints its output as it arrives"),
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment