mirror of
				https://github.com/simon987/sist2.git
				synced 2025-10-30 23:46:52 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "aff69fb3eb0abf3103428118cd4795f07e1b24a5" and "2307fc6e15249f4755222d4e156333068a365d0a" have entirely different histories.
		
	
	
		
			aff69fb3eb
			...
			2307fc6e15
		
	
		
| @ -16,7 +16,7 @@ | ||||
|             <b-form-input v-model="options.auth" @change="update()"></b-form-input> | ||||
| 
 | ||||
|             <label>{{ $t("webOptions.tagAuth") }}</label> | ||||
|       <b-form-input v-model="options.tag_auth" @change="update()" :disabled="Boolean(options.auth)"></b-form-input> | ||||
|             <b-form-input v-model="options.tag_auth" @change="update()"></b-form-input> | ||||
|         </b-card> | ||||
| 
 | ||||
|         <br> | ||||
| @ -46,18 +46,11 @@ export default { | ||||
|         return { | ||||
|             showEsTestAlert: false, | ||||
|             esTestOk: false, | ||||
|       esTestMessage: "" | ||||
|             esTestMessage: "", | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         update() { | ||||
| 
 | ||||
|       console.log(this.options) | ||||
|       if (this.options.auth && this.options.tag_auth) { | ||||
|         // If both are set, remove tagAuth | ||||
|         this.options.tag_auth = ""; | ||||
|       } | ||||
| 
 | ||||
|             this.$emit("change", this.options); | ||||
|         }, | ||||
|     } | ||||
|  | ||||
| @ -65,9 +65,6 @@ export default { | ||||
|         gitRepository: "Git repository URL", | ||||
|         extraArgs: "Extra command line arguments", | ||||
| 
 | ||||
|         couldNotStartFrontend: "Could not start frontend", | ||||
|         couldNotStartFrontendBody: "Unable to start the frontend, check server logs for more details.", | ||||
| 
 | ||||
|         selectJobs: "Available jobs", | ||||
|         selectJob: "Select a job", | ||||
|         webOptions: { | ||||
|  | ||||
| @ -113,15 +113,8 @@ export default { | ||||
|     }, | ||||
|     methods: { | ||||
|         start() { | ||||
|       Sist2AdminApi.startFrontend(this.name).then(() => { | ||||
|             this.frontend.running = true; | ||||
|       }).catch(() => { | ||||
|         this.$bvToast.toast(this.$t("couldNotStartFrontendBody"), { | ||||
|           title: this.$t("couldNotStartFrontend"), | ||||
|           variant: "danger", | ||||
|           toaster: "b-toaster-bottom-right" | ||||
|         }); | ||||
|       }); | ||||
|             Sist2AdminApi.startFrontend(this.name) | ||||
|         }, | ||||
|         stop() { | ||||
|             this.frontend.running = false; | ||||
|  | ||||
| @ -2,7 +2,6 @@ import asyncio | ||||
| import os | ||||
| import signal | ||||
| from datetime import datetime | ||||
| from time import sleep | ||||
| from urllib.parse import urlparse | ||||
| 
 | ||||
| import requests | ||||
| @ -26,7 +25,6 @@ from state import migrate_v1_to_v2, RUNNING_FRONTENDS, TESSERACT_LANGS, DB_SCHEM | ||||
|     get_log_files_to_remove, delete_log_file, create_default_search_backends | ||||
| from web import Sist2Frontend | ||||
| from script import UserScript, SCRIPT_TEMPLATES | ||||
| from util import tail_sync, pid_is_running | ||||
| 
 | ||||
| sist2 = Sist2(SIST2_BINARY, DATA_FOLDER) | ||||
| db = PersistentState(dbfile=os.path.join(DATA_FOLDER, "state.db")) | ||||
| @ -326,18 +324,7 @@ def start_frontend_(frontend: Sist2Frontend): | ||||
|     logger.debug(f"Fetched search backend options for {backend_name}") | ||||
| 
 | ||||
|     pid = sist2.web(frontend.web_options, search_backend, frontend.name) | ||||
| 
 | ||||
|     sleep(0.2) | ||||
|     if not pid_is_running(pid): | ||||
|         frontend_log = frontend.get_log_path(LOG_FOLDER) | ||||
|         logger.error(f"Frontend exited too quickly, check {frontend_log} for more details:") | ||||
|         for line in tail_sync(frontend.get_log_path(LOG_FOLDER), 3): | ||||
|             logger.error(line.strip()) | ||||
| 
 | ||||
|         return False | ||||
| 
 | ||||
|     RUNNING_FRONTENDS[frontend.name] = pid | ||||
|     return True | ||||
| 
 | ||||
| 
 | ||||
| @app.post("/api/frontend/{name:str}/start") | ||||
| @ -346,12 +333,7 @@ async def start_frontend(name: str): | ||||
|     if not frontend: | ||||
|         raise HTTPException(status_code=404) | ||||
| 
 | ||||
|     ok = start_frontend_(frontend) | ||||
| 
 | ||||
|     if not ok: | ||||
|         raise HTTPException(status_code=500) | ||||
| 
 | ||||
|     return "ok" | ||||
|     start_frontend_(frontend) | ||||
| 
 | ||||
| 
 | ||||
| @app.post("/api/frontend/{name:str}/stop") | ||||
|  | ||||
| @ -257,7 +257,7 @@ class Sist2: | ||||
| 
 | ||||
|         set_pid_cb(proc.pid) | ||||
| 
 | ||||
|         t_stderr = Thread(target=self._consume_logs_stderr, args=(logs_cb, None, proc)) | ||||
|         t_stderr = Thread(target=self._consume_logs_stderr, args=(logs_cb, proc)) | ||||
|         t_stderr.start() | ||||
| 
 | ||||
|         self._consume_logs_stdout(logs_cb, proc) | ||||
| @ -284,7 +284,7 @@ class Sist2: | ||||
| 
 | ||||
|         set_pid_cb(proc.pid) | ||||
| 
 | ||||
|         t_stderr = Thread(target=self._consume_logs_stderr, args=(logs_cb, None, proc)) | ||||
|         t_stderr = Thread(target=self._consume_logs_stderr, args=(logs_cb, proc)) | ||||
|         t_stderr.start() | ||||
| 
 | ||||
|         self._consume_logs_stdout(logs_cb, proc) | ||||
| @ -294,7 +294,7 @@ class Sist2: | ||||
|         return proc.returncode | ||||
| 
 | ||||
|     @staticmethod | ||||
|     def _consume_logs_stderr(logs_cb, exit_cb, proc): | ||||
|     def _consume_logs_stderr(logs_cb, proc): | ||||
|         pipe_wrapper = TextIOWrapper(proc.stderr, encoding="utf8", errors="ignore") | ||||
|         try: | ||||
|             for line in pipe_wrapper: | ||||
| @ -302,9 +302,7 @@ class Sist2: | ||||
|                     continue | ||||
|                 logs_cb({"stderr": line}) | ||||
|         finally: | ||||
|             return_code = proc.wait() | ||||
|             if exit_cb: | ||||
|                 exit_cb(return_code) | ||||
|             proc.wait() | ||||
|             pipe_wrapper.close() | ||||
| 
 | ||||
|     @staticmethod | ||||
| @ -342,14 +340,11 @@ class Sist2: | ||||
|         def logs_cb(message): | ||||
|             web_logger.info(json.dumps(message)) | ||||
| 
 | ||||
|         def exit_cb(return_code): | ||||
|             logger.info(f"Web frontend exited with return code {return_code}") | ||||
| 
 | ||||
|         logger.info(f"Starting frontend {' '.join(args)}") | ||||
| 
 | ||||
|         proc = Popen(args, stdout=PIPE, stderr=PIPE) | ||||
| 
 | ||||
|         t_stderr = Thread(target=self._consume_logs_stderr, args=(logs_cb, exit_cb, proc)) | ||||
|         t_stderr = Thread(target=self._consume_logs_stderr, args=(logs_cb, proc)) | ||||
|         t_stderr.start() | ||||
| 
 | ||||
|         t_stdout = Thread(target=self._consume_logs_stdout, args=(logs_cb, proc)) | ||||
|  | ||||
| @ -1,41 +0,0 @@ | ||||
| from glob import glob | ||||
| import os | ||||
| from config import DATA_FOLDER | ||||
| 
 | ||||
| 
 | ||||
| def get_old_index_files(name): | ||||
|     files = glob(os.path.join(DATA_FOLDER, f"scan-{name.replace('/', '_')}-*.sist2")) | ||||
|     files = list(sorted(files, key=lambda f: os.stat(f).st_mtime)) | ||||
|     files = files[-1:] | ||||
| 
 | ||||
|     return files | ||||
| 
 | ||||
| 
 | ||||
| def tail_sync(filename, lines=1, _buffer=4098): | ||||
|     with open(filename) as f: | ||||
|         lines_found = [] | ||||
| 
 | ||||
|         block_counter = -1 | ||||
| 
 | ||||
|         while len(lines_found) < lines: | ||||
|             try: | ||||
|                 f.seek(block_counter * _buffer, os.SEEK_END) | ||||
|             except IOError: | ||||
|                 f.seek(0) | ||||
|                 lines_found = f.readlines() | ||||
|                 break | ||||
| 
 | ||||
|             lines_found = f.readlines() | ||||
| 
 | ||||
|             block_counter -= 1 | ||||
| 
 | ||||
|         return lines_found[-lines:] | ||||
| 
 | ||||
| 
 | ||||
| def pid_is_running(pid): | ||||
|     try: | ||||
|         os.kill(pid, 0) | ||||
|     except OSError: | ||||
|         return False | ||||
| 
 | ||||
|     return True | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user