lueschem / edi

Embedded development infrastructure.
https://www.get-edi.io
GNU Lesser General Public License v3.0
39 stars 12 forks source link

Config parsing shall not fail if the overlay is empty. #18

Closed lueschem closed 6 years ago

lueschem commented 6 years ago

Issue Type

Environment detail

Desired Behaviour

edi shall be able to handle empty overlay files.

Actual Behaviour (Bug report only)

edi fails if the overlay file is empty

---
# nothing to skip - full setup

with this stack trace:

Traceback (most recent call last):
  File "/usr/bin/edi", line 9, in <module>
    load_entry_point('edi==0.7.2', 'console_scripts', 'edi')()
  File "/usr/lib/python3/dist-packages/edi/__init__.py", line 76, in main
    get_command(command_name)().run_cli(cli_args)
  File "/usr/lib/python3/dist-packages/edi/commands/lxc.py", line 46, in run_cli
    self._run_sub_command_cli(cli_args)
  File "/usr/lib/python3/dist-packages/edi/lib/edicommand.py", line 91, in _run_sub_command_cli
    self._get_sub_command(cli_args.sub_command_name)().run_cli(cli_args)
  File "/usr/lib/python3/dist-packages/edi/commands/lxccommands/lxcconfigure.py", line 50, in run_cli
    cli_args, ['lxc_templates', 'lxc_profiles', 'playbooks']))
  File "/usr/lib/python3/dist-packages/edi/commands/lxccommands/lxcconfigure.py", line 53, in run
    self._setup_parser(config_file)
  File "/usr/lib/python3/dist-packages/edi/lib/edicommand.py", line 67, in _setup_parser
    self.config = ConfigurationParser(config_file)
  File "/usr/lib/python3/dist-packages/edi/lib/configurationparser.py", line 204, in __init__
    merge_1 = self._merge_configurations(base_config, global_config)
  File "/usr/lib/python3/dist-packages/edi/lib/configurationparser.py", line 253, in _merge_configurations
    element)
  File "/usr/lib/python3/dist-packages/edi/lib/configurationparser.py", line 265, in _merge_key_value_node
    overlay_node = overlay.get(node_name, {})
AttributeError: 'NoneType' object has no attribute 'get'