From e2025df2c014c7b0f89c1fe67bf364db6a2c020e Mon Sep 17 00:00:00 2001 From: simon987 Date: Wed, 7 Jun 2023 20:40:11 -0400 Subject: [PATCH] sist2-admin: don't set status to failed when using debug binary --- sist2-admin/frontend/src/views/Tasks.vue | 2 +- sist2-admin/sist2_admin/jobs.py | 8 +++++--- sist2-admin/sist2_admin/sist2.py | 8 ++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/sist2-admin/frontend/src/views/Tasks.vue b/sist2-admin/frontend/src/views/Tasks.vue index 766500a..15a3dd3 100644 --- a/sist2-admin/frontend/src/views/Tasks.vue +++ b/sist2-admin/frontend/src/views/Tasks.vue @@ -134,7 +134,7 @@ export default { duration: this.taskDuration(row), time: moment.utc(row.started).local().format("dd, MMM Do YYYY, HH:mm:ss"), logs: null, - status: row.return_code === 0 ? "ok" : "failed", + status: [0,1].includes(row.return_code) ? "ok" : "failed", _row: row })); }); diff --git a/sist2-admin/sist2_admin/jobs.py b/sist2-admin/sist2_admin/jobs.py index a8a1129..4f34c95 100644 --- a/sist2-admin/sist2_admin/jobs.py +++ b/sist2-admin/sist2_admin/jobs.py @@ -131,7 +131,9 @@ class Sist2ScanTask(Sist2Task): return_code = sist2.scan(self.job.scan_options, logs_cb=self.log_callback, set_pid_cb=set_pid) self.ended = datetime.utcnow() - if return_code != 0: + is_ok = return_code in (0, 1) + + if not is_ok: self._logger.error(json.dumps({"sist2-admin": f"Process returned non-zero exit code ({return_code})"})) logger.info(f"Task {self.display_name} failed ({return_code})") else: @@ -144,7 +146,7 @@ class Sist2ScanTask(Sist2Task): logger.info(f"Completed {self.display_name} ({return_code=})") # Remove old index - if return_code == 0: + if is_ok: if self.job.previous_index_path is not None and self.job.previous_index_path != self.job.index_path: self._logger.info(json.dumps({"sist2-admin": f"Remove {self.job.previous_index_path=}"})) try: @@ -247,7 +249,7 @@ class TaskQueue: def _tasks_failed(self): done = set() - for row in self._db["task_done"].sql("WHERE return_code != 0"): + for row in self._db["task_done"].sql("WHERE return_code NOT IN (0,1)"): done.add(uuid.UUID(row["id"])) return done diff --git a/sist2-admin/sist2_admin/sist2.py b/sist2-admin/sist2_admin/sist2.py index 76eac33..20382cb 100644 --- a/sist2-admin/sist2_admin/sist2.py +++ b/sist2-admin/sist2_admin/sist2.py @@ -241,7 +241,7 @@ class WebOptions(BaseModel): class Sist2: def __init__(self, bin_path: str, data_directory: str): - self._bin_path = bin_path + self.bin_path = bin_path self._data_dir = data_directory def index(self, options: IndexOptions, search_backend: Sist2SearchBackend, logs_cb): @@ -254,7 +254,7 @@ class Sist2: search_backend.script_file = None args = [ - self._bin_path, + self.bin_path, *options.args(search_backend), "--json-logs", "--very-verbose" @@ -278,7 +278,7 @@ class Sist2: options.output = f"scan-{options.name.replace('/', '_')}-{datetime.utcnow()}.sist2" args = [ - self._bin_path, + self.bin_path, *options.args(), "--json-logs", "--very-verbose" @@ -336,7 +336,7 @@ class Sist2: options.auth0_public_key_file = None args = [ - self._bin_path, + self.bin_path, *options.args(search_backend) ]