From 33ffc2135148c0f77ac867973dab34ba594602fe Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Sat, 29 Jun 2019 20:01:34 +0200
Subject: [PATCH] take redis config from json file through env

---
 inventory_provider/tasks/worker.py | 28 +++++++++++-----------------
 1 file changed, 11 insertions(+), 17 deletions(-)

diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index 8779a1d4..6406ad8b 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -1,5 +1,6 @@
 import json
 import logging
+import os
 import re
 
 from celery import bootsteps, Task, states
@@ -61,26 +62,19 @@ def _save_value_etree(key, xml_doc):
         etree.tostring(xml_doc, encoding='unicode'))
 
 
-class WorkerArgs(bootsteps.Step):
-    def __init__(self, worker, config_filename, **options):
-        with open(config_filename) as f:
-            logger = logging.getLogger(__name__)
-            logger.info(
-                "Initializing worker with config from: %r" % config_filename)
-            InventoryTask.config = config.load(f)
+class LoadConfig(bootsteps.Step):
+    assert os.path.isfile(os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME']), (
+            'config file %r not found' %
+            os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME'])
 
+    with open(os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME']) as f:
+        logging.info(
+                "Initializing worker with config from: %r" %
+                os.environ['INVENTORY_PROVIDER_CONFIG_FILENAME'])
+        InventoryTask.config = config.load(f)
 
-def worker_args(parser):
-    parser.add_argument(
-        "--config_filename",
-        dest="config_filename",
-        action='store',
-        type=str,
-        help="Configuration filename")
 
-
-app.user_options['worker'].add(worker_args)
-app.steps['worker'].add(WorkerArgs)
+app.steps['worker'].add(LoadConfig)
 
 
 @app.task
-- 
GitLab