Task T4295 proposes to replace the use of the legacy vyatta backend loadFile command within the vyos-load-config.py script. The approach is as follows: we separate the concerns of two legacy subsystems, the vyatta config diff algorithm, and the vyatta set/delete command subsystem. We replace the former diff algorithm with a revised algorithm operating on the config_tree date structure (T4235); the resulting diff is then fed into the set/delete command subsystem within the CLI.
This however exposes existing errors in migration scripts, as the validation system for set/delete commands is strict, as compared to the legacy loadFile operation which will print errors, but treat them as non-fatal, allowing a subsequent commit to succeed while suppressing any offending paths.
A simple example is seen in the smoketest configtest config 'bgp-azure-ipsec-gateway':
The ipsec migration script 5-to-6 will move 'vpn ipsec ipec-interfaces inteface', but leave the (now empty) path 'vpn ipsec ipsec-interfaces'. For the legacy loadFile, this is reported, non-fatal, and the path is ignored; as migrated set/delete commands, it is fatal.
The planned and required revisions are desirable: (1) replace the legacy algortihm in config loading, which allows for future development (2) resolve missing details in migration scripts, since strict validation will be the standard going forward.