Tezlink/Kernel: proper failure handling
Linear issue
Closes L2-234
What
This MR introduces snapshots to rollback invalid or failed operations.
Why
The current behaviour works fine for the current setup we have, but as we introduce batches it becomes inadequate as a simply failing in the middle of applicaiton will not be enough.
How
- Created a Kernel error to wrap safe_host errors;
- Moved the declaration of Tezlink root directory to make it available during operation application for reverting;
- Changed hosts to safe_hosts where appropriately, creating a new layer of snapshots.
Manually testing the MR
No unit tests are broken, showing behaviour did not change on handling the current failed transactions.
!18679 (merged) adds tests that cover cases not previously covered.
Edited by Luciano Freitas