def get_basic_info(self, courseid, container_name): course, _ = get_course_and_check_rights(courseid, allow_all_staff=False) try: metadata = get_batch_container_metadata(container_name) if metadata == (None, None, None): raise Exception("Container not found") except: raise web.notfound() container_title = metadata[0] container_description = metadata[1] container_args = dict(metadata[2]) # copy it return course, container_title, container_description, container_args
def GET(self, courseid, bid): """ GET request """ course, _ = get_course_and_check_rights(courseid) batch_job = get_batch_job_status(bid) if batch_job is None: raise web.notfound() done = False submitted_on = batch_job["submitted_on"] container_name = batch_job["container_name"] container_title = container_name container_description = "" file_list = None retval = 0 stdout = "" stderr = "" try: container_metadata = get_batch_container_metadata(container_name) if container_metadata == (None, None, None): container_title = container_metadata[0] container_description = container_metadata[1] except: pass if "result" in batch_job: done = True retval = batch_job["result"]["retval"] stdout = batch_job["result"].get("stdout","") stderr = batch_job["result"].get("stderr", "") if "file" in batch_job["result"]: f = get_gridfs().get(batch_job["result"]["file"]) try: tar = tarfile.open(fileobj=f,mode='r:gz') file_list = set(tar.getnames()) - set(['']) tar.close() except: pass finally: f.close() return renderer.course_admin.batch_summary(course, bid, done, container_name, container_title, container_description, submitted_on, retval, stdout, stderr, file_list)