diff options
author | Stevan Radakovic <stevan.radakovic@linaro.org> | 2017-01-03 15:47:20 +0100 |
---|---|---|
committer | Neil Williams <neil.williams@linaro.org> | 2017-01-04 09:21:23 +0000 |
commit | 6b341437bc1b27fb583eb9584c8fb50fa2ef52d8 (patch) | |
tree | 71d9ec0935defdd7be3a98a4090daae8530267c4 | |
parent | 12f67fb92029885a5b2282e8f9895c8f2dbbda30 (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.py | 30 |
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 |