This happen when there for example a typo or a unsuported configuration option is set (during self._device.cu.load()
Instead of failing it should skip the device with an error message, similar to what we do for a CommitError.
INFO:homer:Generating configuration for asw-a-codfw.mgmt.codfw.wmnet
Traceback (most recent call last):
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/device.py", line 797, in execute
rpc_rsp_e = self._rpc_reply(rpc_cmd_e,
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/decorators.py", line 149, in wrapper
raise ex
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/decorators.py", line 116, in wrapper
rsp = function(self, *args, **kwargs)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/device.py", line 1382, in _rpc_reply
return self._conn.rpc(rpc_cmd_e, filter_xml)._NCElement__doc
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/ncclient/manager.py", line 231, in execute
return cls(self._session,
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/ncclient/operations/third_party/juniper/rpc.py", line 52, in request
return self._request(rpc)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/ncclient/operations/rpc.py", line 348, in _request
raise self._reply.error
ncclient.operations.rpc.RPCError: syntax error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/utils/config.py", line 469, in try_load
got = self.rpc.load_config(rpc_contents,
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/rpcmeta.py", line 279, in load_config
return self._junos.execute(rpc, ignore_warning=ignore_warning)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/decorators.py", line 76, in wrapper
return function(*args, **kwargs)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/decorators.py", line 31, in wrapper
return function(*args, **kwargs)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/device.py", line 818, in execute
raise EzErrors.RpcError(cmd=rpc_cmd_e,
jnpr.junos.exception.RpcError: RpcError(severity: error, bad_element: ssh-ed25519, message: syntax error)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/homer/transports/junos.py", line 172, in _prepare
self._device.cu.load(config, format='text', merge=False, ignore_warning=ignore_warning)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/utils/config.py", line 557, in load
return try_load(rpc_contents,
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/jnpr/junos/utils/config.py", line 475, in try_load
raise ConfigLoadError(cmd=err.cmd, rsp=err.rsp, errs=err.errs)
jnpr.junos.exception.ConfigLoadError: ConfigLoadError(severity: error, bad_element: ssh-ed25519, message: error: syntax error)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/bin/homer", line 11, in <module>
load_entry_point('homer', 'console_scripts', 'homer')()
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/homer/cli.py", line 68, in main
return getattr(runner, args.action)(args.query, **kwargs)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/homer/__init__.py", line 118, in diff
successes, diffs = self._execute(self._device_diff, query)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/homer/__init__.py", line 295, in _execute
device_success, device_diff = callback(device, device_config, attempt, **kwargs)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/homer/__init__.py", line 189, in _device_diff
return connection.commit_check(device_config, self._ignore_warning)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/homer/transports/junos.py", line 123, in commit_check
diff = self._prepare(config, ignore_warning)
File "/home/xionox/Documents/Projects/Wikimedia-repos/homer/.tox/py38-tests/lib/python3.8/site-packages/homer/transports/junos.py", line 176, in _prepare
raise JunosPrepareError('Failed to prepare the configuration on {fqdn}'.format(fqdn=self._fqdn)) from e
homer.transports.junos.JunosPrepareError: Failed to prepare the configuration on asw-a-codfw.mgmt.codfw.wmnet