diff --git a/brian_polling_manager/cli.py b/brian_polling_manager/cli.py index 6711ed41ade9b6cb233016a94b562a2cafbb1ab7..44592996f22b7081a43381fe5d4317c847bccb09 100644 --- a/brian_polling_manager/cli.py +++ b/brian_polling_manager/cli.py @@ -186,7 +186,7 @@ class State(object): f.write(json.dumps(new_interfaces)) -def _validate_config(ctx, param, value): +def _validate_config(ctx, param, file): """ loads, validates and returns configuration parameters @@ -195,12 +195,11 @@ def _validate_config(ctx, param, value): :param value: filename (string) :return: a dict containing configuration parameters """ - if value is None: + if file is None: config = _DEFAULT_CONFIG else: try: - with open(value) as f: - config = json.loads(f.read()) + config = json.loads(file.read()) except (json.JSONDecodeError, jsonschema.ValidationError) as e: raise click.BadParameter(str(e)) @@ -216,13 +215,13 @@ def _validate_config(ctx, param, value): @click.option( '--config', default=None, - type=click.STRING, + type=click.File('r'), callback=_validate_config, help='configuration filename') @click.option( '--force/--no-force', default=False, - help="update even if inventory hasn't been updated") + help="refresh inventory data even if it hasn't been updated") def main(config, force): """ Update BRIAN snmp checks based on Inventory Provider data.