mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-10-28 09:21:13 +00:00 
			
		
		
		
	Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development
This commit is contained in:
		| @@ -5,14 +5,14 @@ from flask import current_app, request | ||||
| from flask_login import login_required | ||||
| from .CQiWrapper.CQiWrapper import CQiWrapper | ||||
| import logging | ||||
| import time | ||||
|  | ||||
|  | ||||
| analysis_clients = {} | ||||
|  | ||||
|  | ||||
| @socketio.on('init_corpus_analysis') | ||||
| @login_required | ||||
| def init_corpus_analysis(corpus_id): | ||||
|     logger = logging.getLogger(__name__) | ||||
|     logger.warning('init_corpus_analysis') | ||||
|     ''' TODO: Check if current_user is allowed to subscribe to this ''' | ||||
|     socketio.start_background_task(observe_corpus_analysis_connection, | ||||
|                                    current_app._get_current_object(), | ||||
| @@ -24,28 +24,31 @@ def init_corpus_analysis(corpus_id): | ||||
| def recv_query(message): | ||||
|     logger = logging.getLogger(__name__) | ||||
|     logger.warning(message) | ||||
|     analysis_client = analysis_clients[request.sid] | ||||
|  | ||||
|  | ||||
| def observe_corpus_analysis_connection(app, corpus_id, session_id): | ||||
|     logger = logging.getLogger(__name__) | ||||
|     with app.app_context(): | ||||
|         time.sleep(5)  # wait for IP of container only for dev | ||||
|         corpus = Corpus.query.filter_by(id=corpus_id).first() | ||||
|         logger.warning('IP adress is: {}'.format(corpus.analysis_container_ip)) | ||||
|         cqi_session = CQiWrapper(username='opaque', password='opaque', | ||||
|                                  host=corpus.analysis_container_ip, port=4877) | ||||
|         cqi_session.connect() | ||||
|         logger.warning(cqi_session.corpus_list_corpora()) | ||||
|         while corpus.status != 'analysing': | ||||
|             db.session.refresh(corpus) | ||||
|             socketio.sleep(3) | ||||
|         analysis_client = CQiWrapper(username='opaque', password='opaque', | ||||
|                                      host='{}_analysis_container{}'.format(corpus.creator.username, corpus.id), port=4877) | ||||
|         analysis_clients[session_id] = analysis_client | ||||
|         analysis_client.connect() | ||||
|         logger.warning(analysis_client.corpus_list_corpora()) | ||||
|         corpus_name = 'CORPUS' | ||||
|         result_subcorpus_name = 'Query-results'  # should be set by the user somehow | ||||
|         query = '"and";' | ||||
|         cqi_session.create_attribute_strings(corpus_name) | ||||
|         analysis_client.create_attribute_strings(corpus_name) | ||||
|         logger.warning('Log after create_attribute_strings.') | ||||
|         cqi_session.query_subcorpus(corpus_name, result_subcorpus_name, query) | ||||
|         analysis_client.query_subcorpus(corpus_name, result_subcorpus_name, query) | ||||
|         logger.warning('Log after query_subcorpus.') | ||||
|         while session_id in connected_sessions: | ||||
|             logger.warning('Run container, run!') | ||||
|             logger.warning(analysis_client.ctrl_ping()) | ||||
|             socketio.sleep(3) | ||||
|         analysis_clients.pop(session_id, None) | ||||
|         corpus.status = 'stop analysis' | ||||
|         db.session.commit() | ||||
|         logger.warning('Stop container, stop!') | ||||
|   | ||||
| @@ -5,7 +5,6 @@ from .decorators import admin_required | ||||
| from .models import User | ||||
| import json | ||||
| import jsonpatch | ||||
| import logging | ||||
|  | ||||
|  | ||||
| ''' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user