tree c81f64073fc9ac9cb2b7530e30ba983319242a8d
parent 68366cd9d7143ed93a61848cd55a8ddc038c61ae
author Tomáš Pecka <tomas.pecka@cesnet.cz> 1654581784 +0200
committer Tomáš Pecka <tomas.pecka@cesnet.cz> 1657165722 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEETrPzDuFgsakVrt4RfbeYbCPI0uoFAmLGV5wACgkQfbeYbCPI
 0uqs3Q/8DbfbCE5nDxHoJT6ueMS9kJ0Fli+4nrioXcXOSSie7Uqm0qdVDpqWwY0j
 l/1Z0h5hMqQlxjDfXFoE1tGeCPrI+fVa7uly5vb0NTnLOW6ACidhoAWC63/MBNJo
 ADlk2BN72j77nni+Yh/ZiNoXUhlrfPTrUunKnKPlb4XHTkUAWuQO4wQXWokp1zO1
 sDsV91CMOEt+CCNAcI7opvKlwT/Y0pu2N1u04kinvJu00TOSGWA6LmnXEkDJGUlQ
 HTXrwQACLZZSF/ZzOuCPoqD+ASuhKAhUkxIoMcjVnZ22jF68FVtt7Jh6k+Nf5WBH
 j6zlaWsS80W1e/X84vBrtwkXVE7yXbiRHv+b6+nZQSlA39/rxeEmvg2Z3S/GcpGr
 23VbFDibp7O2xF5I8vCYvWhB5AxRmwhczgqQkRw+MTK21WwjMOBm6p3+g40r/Pmo
 xQZoM7oe0fnz9SjhmkOzQKQMDnDeC+sXzku9HlFsdCCzBLenj35JI/ByKqrOxBcY
 D4EK6lpkhesZNK7hod4T5Szq22hX5I9O2hS2m/CHHq+2hp34ql3Yv+3UJYBGiDpP
 4ILIvfRXlvl12/L+X0IyzxKk/yN1lg01Eg/I9nOiyNCtX5TWNEtuYHOa//ULaM/Z
 eaIs+KgXy71pr3iUUCijkH7IetkqmWmtFzRNYdgwe1pIbmIstks=
 =MmZI
 -----END PGP SIGNATURE-----

czechlight-cfg-fs: migration scripts and tests

Sometimes we need to make alterations to the startup datastore (for
instance when new feature to the YANG model is added). This commit
introduces a migration script that is to be run after the machine boots.

The persistent /cfg now stores not just the data, but also the system
SW version which produced the stored configuration. Upon boot, the
current system looks at the previous config (the startup.json file
located at /cfg/sysrepo) and its associated system version
(/cfg/sysrepo/version), and if any changes need to happen, they are
automatically applied.

This commit introduces first migration.
This initial content makes sure that there's something (like a default
channel plan, or some mandatory YANG data nodes) when booting from
factory defaults (or from a pre-versioning SW release). Since this is a
one-shot operation, the operator is free to overwrite the data (e.g.,
rewrite the channel plan), and the system will happily accept the new data
as long as they pass the YANG validation. This is different from the
previous behavior of the SW stack which would apply the defaults during
each boot, even when the configuration was restored.

We also introduce tests for these migrations scripts. They are located
under tests/czechlight-cfg-fs directory and there is a pytest runner.
Each test case is a single directory containing current startup DS
content (as JSON file), expected content after running migrations,
and three control files: One for current startup DS version (so we know
which migrations to run), one for cmdline (so both scripts
czechlight-install-yang and czechlight-migrate can distinguish between
czechlight box types in code), and xpath file used only if we want to
check for a part of the sysrepo DS content.

The tests simulate the workflow that is done when the system boots.
I.e., they install YANG models, restore startup DS backup into sysrepo
and then they run the migrations if necessary.

Change-Id: I96191630fd6b3a1ffbc5ba9f62c4a6c14ab5ed92
