From 7bc4b73e430a24c14170c62df7cd3c0a3bbf8edd Mon Sep 17 00:00:00 2001 From: simon987 Date: Wed, 7 Jun 2023 19:59:50 -0400 Subject: [PATCH] Use relative paths in sist2-admin #369 --- sist2-admin/sist2_admin/app.py | 7 +++++-- sist2-admin/sist2_admin/jobs.py | 7 +++++-- sist2-admin/sist2_admin/sist2.py | 19 +++++++++++-------- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/sist2-admin/sist2_admin/app.py b/sist2-admin/sist2_admin/app.py index 1f36bdb..f4ea221 100644 --- a/sist2-admin/sist2_admin/app.py +++ b/sist2-admin/sist2_admin/app.py @@ -275,7 +275,10 @@ def check_es_version(es_url: str, insecure: bool): def start_frontend_(frontend: Sist2Frontend): - frontend.web_options.indices = list(map(lambda j: db["jobs"][j].index_path, frontend.jobs)) + frontend.web_options.indices = [ + os.path.join(DATA_FOLDER, db["jobs"][j].index_path) + for j in frontend.jobs + ] backend_name = frontend.web_options.search_backend search_backend = db["search_backends"][backend_name] @@ -354,7 +357,7 @@ def delete_search_backend(name: str): del db["search_backends"][name] try: - os.remove(backend.search_index) + os.remove(os.path.join(DATA_FOLDER, backend.search_index)) except: pass diff --git a/sist2-admin/sist2_admin/jobs.py b/sist2-admin/sist2_admin/jobs.py index dbef36d..a8a1129 100644 --- a/sist2-admin/sist2_admin/jobs.py +++ b/sist2-admin/sist2_admin/jobs.py @@ -13,7 +13,7 @@ from uuid import uuid4, UUID from hexlib.db import PersistentState from pydantic import BaseModel -from config import logger, LOG_FOLDER +from config import logger, LOG_FOLDER, DATA_FOLDER from notifications import Notifications from sist2 import ScanOptions, IndexOptions, Sist2 from state import RUNNING_FRONTENDS, get_log_files_to_remove, delete_log_file @@ -218,7 +218,10 @@ class Sist2IndexTask(Sist2Task): logger.debug(f"Fetched search backend options for {backend_name}") - frontend.web_options.indices = map(lambda j: db["jobs"][j].index_path, frontend.jobs) + frontend.web_options.indices = [ + os.path.join(DATA_FOLDER, db["jobs"][j].index_path) + for j in frontend.jobs + ] pid = sist2.web(frontend.web_options, search_backend, frontend.name) RUNNING_FRONTENDS[frontend_name] = pid diff --git a/sist2-admin/sist2_admin/sist2.py b/sist2-admin/sist2_admin/sist2.py index 94cf6bb..76eac33 100644 --- a/sist2-admin/sist2_admin/sist2.py +++ b/sist2-admin/sist2_admin/sist2.py @@ -49,7 +49,7 @@ class Sist2SearchBackend(BaseModel): def create_default(name: str, backend_type: SearchBackendType = SearchBackendType("elasticsearch")): return Sist2SearchBackend( name=name, - search_index=os.path.join(DATA_FOLDER, f"search-index-{name.replace('/', '_')}.sist2"), + search_index=f"search-index-{name.replace('/', '_')}.sist2", backend_type=backend_type ) @@ -63,10 +63,13 @@ class IndexOptions(BaseModel): super().__init__(**kwargs) def args(self, search_backend): + absolute_path = os.path.join(DATA_FOLDER, self.path) + if search_backend.backend_type == SearchBackendType("sqlite"): - args = ["sqlite-index", self.path, "--search-index", search_backend.search_index] + search_index_absolute = os.path.join(DATA_FOLDER, search_backend.search_index) + args = ["sqlite-index", absolute_path, "--search-index", search_index_absolute] else: - args = ["index", self.path, f"--threads={search_backend.threads}", + args = ["index", absolute_path, f"--threads={search_backend.threads}", f"--es-url={search_backend.es_url}", f"--es-index={search_backend.es_index}", f"--batch-size={search_backend.batch_size}"] @@ -118,9 +121,12 @@ class ScanOptions(BaseModel): super().__init__(**kwargs) def args(self): + + output_path = os.path.join(DATA_FOLDER, self.output) + args = ["scan", self.path, f"--threads={self.threads}", f"--thumbnail-quality={self.thumbnail_quality}", f"--thumbnail-count={self.thumbnail_count}", f"--thumbnail-size={self.thumbnail_size}", - f"--content-size={self.content_size}", f"--output={self.output}", f"--depth={self.depth}", + f"--content-size={self.content_size}", f"--output={output_path}", f"--depth={self.depth}", f"--archive={self.archive}", f"--mem-buffer={self.mem_buffer}"] if self.incremental: @@ -269,10 +275,7 @@ class Sist2: def scan(self, options: ScanOptions, logs_cb, set_pid_cb): if options.output is None: - options.output = os.path.join( - self._data_dir, - f"scan-{options.name.replace('/', '_')}-{datetime.utcnow()}.sist2" - ) + options.output = f"scan-{options.name.replace('/', '_')}-{datetime.utcnow()}.sist2" args = [ self._bin_path,