def get_file(self, filename): dirs = csys.list_dir(self.path) for run in dirs: if run.startswith("run.") or run.startswith("raw."): if filename == "stdout": return os.path.join(self.path, run, filename) else: return os.path.join(self.path, run, "output", filename)
def storage(self): dirs = csys.list_dir(self.path) for run in dirs: if run.startswith("run.") or run.startswith("raw."): config_file = metadata.ConfigFile( os.path.join(self.path, run, "status.json")) status = config_file.read_variable("status", "submitted") if status == "done": return run return ""
def image_id(self): dirs = csys.list_dir(self.path) for run in dirs: if run.startswith("run."): config_file = metadata.ConfigFile( os.path.join(self.path, run, "status.json")) status = config_file.read_variable("status", "submitted") if status == "built": return config_file.read_variable("image_id") return ""
def jobs(self, condition): # storage_path = csys.storage_path() storage_path = os.path.join(os.environ["HOME"], ".ChernMachine/Storage") job_id_list = csys.list_dir(storage_path) print("job id list {0}".format(job_id_list), file=sys.stderr) job_list = [] for job_id in job_id_list: print("check job {0}".format(job_id), file=sys.stderr) job = VJob(os.path.join(storage_path, job_id)) if job.job_type() == "container": job = VContainer(job.path) elif job.job_type() == "image": job = VImage(job.path) else: continue print("{0} {1}".format(job, job.status()), file=sys.stderr) if job.status() == condition: job_list.append(job) return job_list
def status(self): dirs = csys.list_dir(self.path) if self.is_locked(): return "locked" running = False for run in dirs: if run.startswith("run.") or run.startswith("raw."): config_file = metadata.ConfigFile( os.path.join(self.path, run, "status.json")) status = config_file.read_variable("status") if status == "done": return status if status == "failed": return status if status == "running": running = True if self.is_raw(): return "raw" if running: return "running" return "submitted"
def status(self): dirs = csys.list_dir(self.path) for run in dirs: if run.startswith("run."): config_file = metadata.ConfigFile( os.path.join(self.path, run, "status.json")) status = config_file.read_variable("status", "submitted") print("status is ", status, file=sys.stderr) if status != "submitted": return status if self.is_locked(): return "locked" return "submitted" status = self.config_file.read_variable("status") if status is None: return "submitted" else: return status
def outputs(self): dirs = csys.list_dir(self.path) for run in dirs: if run.startswith("run.") or run.startswith("raw."): return csys.list_dir(os.path.join(self.path, run, "output")) return []