diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index 8779a1d4b22e6bff65759a829cc4733010a5b9b3..6406ad8bdf380f110e250b7d8f6fcf512781c30c 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