Symptom
CSRs running 17.x will not revert back in cloud HA to primary because the 5 minute cron to trigger "revert_nodes.sh" doesn't execute because its path is pointing to the old version of python:
[guestshell@guestshell ~]$ crontab -l
*/5 * * * * bash /home/guestshell/.local/lib/python2.7/site-packages/csr_ha/client_api/revert_nodes.sh
[guestshell@guestshell ~]$ ls /home/guestshell/.local/lib/
python3.6
Starting IOS-XE 17.1.1 python was upgraded from 2.7 to 3.6:
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/prog/configuration/167/b_167_programmability_cg/cli_python_module.html
Conditions
Issue happens with a fresh deployment of HAv2 or even migrating from HAv2 to HAv3.
Does not happen in 16.x versions.
Workaround
Manually edit the cron to point to the correct new folder:
Step 0 - Enter guestshell:
Router-Hostname#guestshell
Step 1 - Enter edit mode for crontab:
[guestshell@guestshell ~]$ crontab -e
*/5 * * * * bash /home/guestshell/.local/lib/python2.7/site-packages/csr_ha/client_api/revert_nodes.sh
Step 2 - Press letter 'i' to insert/modify. Navigate using arrow keys (like "vi" command for unix).
Step 3 - Modify path to:
\/
*/5 * * * * bash /home/guestshell/.local/lib/python3.6/site-packages/csr_ha/client_api/revert_nodes.sh
Step 4 - Press the escape key and type:
":wq" (without quotes, just these 3 characters)
Then enter. If you made a mistake you can do ":q!" (without quotes) to exit without saving changes.
Step 5 - Verify:
[guestshell@guestshell ~]$ crontab -l
*/5 * * * * bash /home/guestshell/.local/lib/python3.6/site-packages/csr_ha/client_api/revert_nodes.sh
Step 5 - Restart HA service:
[guestshell@guestshell ~]$ sudo systemctl stop csr_ha
[guestshell@guestshell ~]$ sudo systemctl start csr_ha
Further Problem Description