- Jul 28, 2022
-
-
Robert Franklin authored
these didn't correctly handle the canonicalisation of interface names nor if changes were made by modifying the existing entry or adjusting some parameters of it (in particular, the 'track' object needs to be deleted and created again, if it changes type) also, the -S option now supports parsing integers and '-' for None added some additional port names for ACLs (as used in the UDN border ACL)
-
Robert Franklin authored
canonicalises interface name, if specified in route will now reconfigure a route, if just changing some aspect (e.g. metric) rather than removing and re-adding
-
Robert Franklin authored
did not correctly destroy an old track object when changing from one type to another (e.g. route to interface) - this is now done, when this happens; does not do this when reconfiguring the same type of object re-applies sub configuration when object is destroyed and recreated using triggers (i.e. if a delay is specified, this will be re-added) did not canonicalise interface name when tracking that, resulting potential differences when different casing or abbreviations used
-
Robert Franklin authored
also, help text updated
-
- Jul 26, 2022
-
-
Robert Franklin authored
now all appear on one line in a consistent format with each other
-
Robert Franklin authored
confirms the portion of the configuration dictionary or rules tree being shown
-
- Jul 25, 2022
-
-
Robert Franklin authored
removed defunct insert_before comment (as this has been replaced by the block ordering system)
-
Robert Franklin authored
if a string which is a valid integer is specified, it will be converted to an integer when dumping the debugging information
-
- Jul 24, 2022
-
-
Robert Franklin authored
-
- Mar 25, 2022
-
-
Robert Franklin authored
subinterfaces are now correctly removed with 'no interface' support for 25GE and 100GE interfaces (correctly canonicalised)
-
Robert Franklin authored
these can be removed with "no interface ..." rather than be defaulted
-
Robert Franklin authored
-
- Mar 15, 2022
-
-
Robert Franklin authored
-
Robert Franklin authored
if using v2, this must be set before any high-numbered groups are configured; conversely, if changing to a lower version (or clearing the version setting completely [=> v1]) then this must be done after high-numbered groups are removed
-
Robert Franklin authored
as opposed to just 'KeyError'
-
- Feb 25, 2022
-
-
Robert Franklin authored
-
Robert Franklin authored
-
Robert Franklin authored
-
Robert Franklin authored
-
Robert Franklin authored
-
Robert Franklin authored
was being parsed incorrectly, with missing protocol
-
- Feb 24, 2022
-
-
Robert Franklin authored
this is a backport of the changes being made in branch to include BGP converters but excluding the actual BGP changes, but gets the structure of things on a common base - these include: reorganising the commands and converters files into subdirectories with the different parts of the configuration being split into separate files (as the files were becoming quite unwieldy, as more things were added) changed code to use consistent parameters, variables and comments of 'old' and 'new' to refer to the configuration files (rather than 'from' and 'to') _context_args_count can be used in a converter to override the number of arguments considered as part of the context (the case for this is matching 'address-family ... neighbor ...' as a context but Cisco IOS uses 'address-family ...' as the context and the neighbor as part of the command) cleaned up the format of some 'with' error messages more use of inheritance to set context in converter classes removed unnecessary imports from various files ignore .DS_Store for macOS cleaned up and improved debugging option levels in converters fixed potential bug when using wildcard_match as was using a set so order may not be preserved (although always seemed to be)
-
- Feb 22, 2022
-
-
Robert Franklin authored
the last commit revealed a problem where an interface existed in the old configuration but not in the new but the only thing in it was a 'shutdown' option - this would cause the interface to be defaulted now, a special case is handled: an interface is only defaulted if it does not existing the new configuration AND there is configuration other than 'shutdown if the interface does not exist but only contains a 'shutdown' option, no changes are made the above only applies to physical interfaces - non physical interfaces will still be deleted (with 'no interface ...')
-
Robert Franklin authored
previously we skipped deleting physical interfaces, if they were removed from the target configuration as we can't remove them, but this would mean that all the commands would be left inside instead now we 'default' them, which should remove all the configuration inside
-
Robert Franklin authored
'no switchport trunk allowed vlan' used syntax unavailable in Python 3.5 (running on server) so had to regress that to be compatible
-
- Feb 11, 2022
-
-
Robert Franklin authored
service-policy change was using %s rather than policy name 'switchport trunk allowed vlan' now correctly handles changes where the previous list was not specified (=> 'all') missing or 'none'
-
Robert Franklin authored
these were ignored, previously
-
Robert Franklin authored
this is to handle changing to/from the situation where no 'switchport trunk allowed vlan' comands are present - the code previously just added and remove the VLANs from the list when adding a list and the command was not present, the interface is now reset with 'switchport trunk allowed vlan none' to clear it first when removing the entire list, the 'switchport trunk allowed vlan' command is just removed (along with the list of VLANs, resetting the interface to 'allow all')
-
Robert Franklin authored
parameter was not being replaced with value
-
- Dec 21, 2021
-
-
Robert Franklin authored
previously, converters were sorted within each block, according to their class name - now they're sorted using the full path (context + cmd + ext) as the key this ensures things like 'interface VlanX' are run before the commands are configured inside, regardless of the class naming
-
Robert Franklin authored
moved methods which will be overridden to the end to group things and make them a little easier to understand
-
Robert Franklin authored
ordering ensures that certain differences are applied before others (e.g. the VRF is set on an interface before the IP address information) triggers can cause configuration updates where there was no command-level change because of another command - e.g. if the VRF on an interface is set/removed/changed, the IP address configuration can be re-applied
-
Robert Franklin authored
when a particular converter returns some commands to change the configuration, it can optionally set up some triggers the triggers are in a set() attribute of the converter class and are the names of particular converter blocks the context of the converter which set up the trigger will also be stored against the trigger block when the list of converters is worked through, in addition to the normal remove and update matches, if the block matches one for which a trigger has been set AND the context of that trigger matches in the 'to' configuration, the trigger() method will be called on the converter, unless there was already a remove or update match against the same converter this allows a command such as 'vrf forwarding' to set up a trigger against the interface context, using the block name (the same as used to order changes) and cause the IP address information to be re-applied this has been done for this situation to resolve this longstanding issue
-
- Dec 20, 2021
-
-
Robert Franklin authored
this causes the 'vrf forwarding' command to be entered before any addresses are set (but after all other commands) this still doesn't handle a VRF change triggering address re-application (this will need a new feature)
-
Robert Franklin authored
previous system used insert_before which only worked if the converter had already been added and made it difficult to do more complex dependencies the insert_before function was largely broken with the move to automatically adding subclasses of converters as the order was no longer explicitly defined and insert_before required that the dependent class already exists the new system organises the sequence of converters into 'blocks', which have an explcit order and each converter is added to a specific block, with the default being the 'None' block this should enable the support of VRF-triggered changes more easily the 'interface / shutdown' and 'interface / no shutdown' converters have been changed to use the new method
-
- Dec 09, 2021
-
-
Robert Franklin authored
OSPFv3 class had the same name so was overriding it and preventing the IPv4 version from being created also, fixed another class with the wrong name (but wasn't breaking anything)
-
- Dec 08, 2021
-
-
Robert Franklin authored
all the BGP commands we update and now parsed BGP conversions not added yet fixed bug where comparing lists (ACLs, prefix-lists, etc.) would crash when adding a new list (one of the lists was None) -V (debug converter) option now supports three levels (only print converters that are matched; also print 'from', 'update' and 'to'; also print non-matched converters) added level 3 -P option to print arguments passed to parse()
-
Robert Franklin authored
was printing blank lines between each converter, even if debugging was not enabled
-
Robert Franklin authored
and to_str_func was not specified (conversion to an empty list was not done)
-
- Dec 07, 2021
-
-
Robert Franklin authored
no longer outputs the from/update/remove configuration blocks if remove() or add() are called (instead of truncate() and update()) as these are not passed to the conversion method anyway this just reduces the output to remove unused data
-