From 2e6c8caebd7e44cb8c398d0672b7d2d63a14f08c Mon Sep 17 00:00:00 2001
From: Markus Scheidgen <markus.scheidgen@gmail.com>
Date: Wed, 26 Sep 2018 14:18:17 +0200
Subject: [PATCH] Fixed explicit infrastructure setup.

---
 nomad/infrastructure.py  | 12 +++++++++---
 nomad/processing/base.py |  6 +++++-
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/nomad/infrastructure.py b/nomad/infrastructure.py
index af1b277cec..ef943a6a50 100644
--- a/nomad/infrastructure.py
+++ b/nomad/infrastructure.py
@@ -21,7 +21,9 @@ from mongoengine import connect
 from elasticsearch_dsl import connections
 from elasticsearch.exceptions import RequestError
 
-from nomad import config
+from nomad import config, utils
+
+logger = utils.get_logger(__name__)
 
 elastic_client = None
 """ The elastic search client. """
@@ -30,8 +32,8 @@ elastic_client = None
 def setup():
     """ Creates connections to mongodb and elastic search. """
     global elastic_client
-    connect(db=config.mongo.users_db, host=config.mongo.host, port=config.mongo.port)
-    elastic_client = connections.create_connection(hosts=[config.elastic.host])
+    setup_mongo()
+    setup_elastic()
 
     from nomad import user
     user.ensure_test_users()
@@ -40,12 +42,14 @@ def setup():
 def setup_mongo():
     """ Creates connection to mongodb. """
     connect(db=config.mongo.users_db, host=config.mongo.host, port=config.mongo.port)
+    logger.info('setup mongo connection')
 
 
 def setup_elastic():
     """ Creates connection to elastic search. """
     global elastic_client
     elastic_client = connections.create_connection(hosts=[config.elastic.host])
+    logger.info('setup elastic connection')
 
     try:
         from nomad.repo import RepoCalc
@@ -55,3 +59,5 @@ def setup_elastic():
             pass  # happens if two services try this at the same time
         else:
             raise e
+    else:
+        logger.info('init elastic index')
diff --git a/nomad/processing/base.py b/nomad/processing/base.py
index f7b1d37410..a03e15bc3a 100644
--- a/nomad/processing/base.py
+++ b/nomad/processing/base.py
@@ -36,7 +36,11 @@ if config.logstash.enabled:
     after_setup_task_logger.connect(initialize_logstash)
     after_setup_logger.connect(initialize_logstash)
 
-worker_process_init.connect(lambda **kwargs: infrastructure.setup())
+
+@worker_process_init.connect
+def setup(**kwargs):
+    infrastructure.setup()
+
 
 app = Celery('nomad.processing', broker=config.celery.broker_url)
 
-- 
GitLab