aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStevan Radakovic <stevan.radakovic@linaro.org>2017-01-03 15:47:20 +0100
committerNeil Williams <neil.williams@linaro.org>2017-01-04 09:21:23 +0000
commit6b341437bc1b27fb583eb9584c8fb50fa2ef52d8 (patch)
tree71d9ec0935defdd7be3a98a4090daae8530267c4
parent12f67fb92029885a5b2282e8f9895c8f2dbbda30 (diff)
wait_job_events output update.
Add job urls in status and zmq output. Add new lines in output. Implements https://projects.linaro.org/browse/LAVA-799 Change-Id: I7bbbcb9fb57669d548eed4812cc54afc9993bc7c Reviewed-on: https://review.linaro.org/16582 Reviewed-by: lava-bot Reviewed-by: Neil Williams <neil.williams@linaro.org>
-rw-r--r--lava_scheduler_tool/commands.py30
1 files changed, 19 insertions, 11 deletions
diff --git a/lava_scheduler_tool/commands.py b/lava_scheduler_tool/commands.py
index 4226f8a..aa7e887 100644
--- a/lava_scheduler_tool/commands.py
+++ b/lava_scheduler_tool/commands.py
@@ -656,18 +656,17 @@ class wait_job_events(Command):
self.args.SERVER, auth_backend=auth_backend)
# Need to get the host in case of shortcuts usage.
- parsed_host = urlparse.urlparse(
- get_server_url(auth_backend, self.args.SERVER))
- host = parsed_host.netloc
+ host = get_server_url(auth_backend, self.args.SERVER)
+ hostname = urlparse.urlparse(host).netloc
if self.args.job_id:
job_ids = [self.args.job_id]
try:
- job_details = server.scheduler.job_details(self.args.job_id)
+ job = server.scheduler.job_details(self.args.job_id)
- if job_details["status"] in self.FINISHED_JOB_STATUS:
+ if job["status"] in self.FINISHED_JOB_STATUS:
print "Job %s already finished with status %s." % (
- self.args.job_id, job_details["status"])
+ self.args.job_id, job["status"])
return
except xmlrpclib.Fault as e:
@@ -686,15 +685,22 @@ class wait_job_events(Command):
try:
validate_urls(command_text)
job_ids = server.scheduler.submit_job(command_text)
- print "submitted as job id(s):", job_ids
+
if not isinstance(job_ids, list):
job_ids = [job_ids]
+ print "submitted as job(s):"
+ for job_id in job_ids:
+ job = server.scheduler.job_details(job_id)
+ print urlparse.urljoin(host, job["absolute_url"])
+
except xmlrpclib.Fault, e:
raise CommandError(str(e))
+ job_url_template = urlparse.urljoin(
+ host, job["absolute_url"].rsplit("/", 1)[0])
port = self.args.port if self.args.port else self.PUBLISHER_PORT
- event_socket = "%s%s:%s" % (self.PUBLISHER_PROTOCOL, host, port)
+ event_socket = "%s%s:%s" % (self.PUBLISHER_PROTOCOL, hostname, port)
try:
with Timeout(self.args.timeout):
@@ -704,7 +710,7 @@ class wait_job_events(Command):
sock.setsockopt(zmq.SUBSCRIBE, b"")
sock.connect(event_socket)
- print >> sys.stdout, "Now waiting for job events..."
+ print >> sys.stdout, "Now waiting for job events...\n"
while True:
msg = sock.recv_multipart()
try:
@@ -718,11 +724,13 @@ class wait_job_events(Command):
# Filter out device events.
if "submitter" in data:
if data["job"] in job_ids:
+ data["job"] = urlparse.urljoin(
+ job_url_template, str(data["job"]))
if data["status"] in self.FINISHED_JOB_STATUS:
- print data
+ print data, "\n"
break
elif not self.args.quiet:
- print data
+ print data, "\n"
except zmq.error.ZMQError as e:
print >> sys.stderr, "wait_job_events() error: %s" % e