Fix Can't convert with callable None
- for junos routers
#1931
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The code keeps breaking on this line: https://github.com/napalm-automation/napalm/blob/develop/napalm/junos/junos.py#L1339
when there is a key that is not included in the GROUP_FIELDS_DATATYPE_MAP
In particular, for the group names "multihop" and "cluster" this is a problem because it will inevitably show up in the router configs, but the datatype will always be None, which will provoke this error:
ValueError: Can't convert with callable None - no default is defined for this type.
originating from here
In previous versions, this
convert
function was not doing the type checks, so if it was just returning None. The value for this case is irrelevant because both are deleted from the config further (here and here), respectively. Their existence in the config is temporary and not necessary - it is only used to produce/update other values (here and here)Therefore, I added here a conditional clause that never adds them to the final bgp config, so there is no need to delete it further ahead. Instead, a separate object is created for validation.
Issue: #1932