diff --git a/lib/ansible/module_utils/junos.py b/lib/ansible/module_utils/junos.py index 94e41e8d8a..bf4e797cbe 100644 --- a/lib/ansible/module_utils/junos.py +++ b/lib/ansible/module_utils/junos.py @@ -169,6 +169,9 @@ def get_diff(module): def load_config(module, candidate, warnings, action='merge', commit=False, format='xml', comment=None, confirm=False, confirm_timeout=None): + if not candidate: + return + with locked_config(module): if isinstance(candidate, list): candidate = '\n'.join(candidate) diff --git a/lib/ansible/modules/network/junos/junos_config.py b/lib/ansible/modules/network/junos/junos_config.py index a0783b79f0..16a62d719e 100644 --- a/lib/ansible/modules/network/junos/junos_config.py +++ b/lib/ansible/modules/network/junos/junos_config.py @@ -242,7 +242,7 @@ def filter_delete_statements(module, candidate): config = to_native(match.text, encoding='latin1') modified_candidate = candidate[:] - for index, line in enumerate(candidate): + for index, line in reversed(list(enumerate(candidate))): if line.startswith('delete'): newline = re.sub('^delete', 'set', line) if newline not in config: