Since vyos-1x#5558, the HTTP API calls commit_confirm() before commit(). With the default action reboot, a /configure request with confirm_time whose commit fails verification returns "success": false and applies nothing, but commit-confirm.timer stays active.
On the merge-base, the API called commit_confirm() only after commit() succeeded, and the same request left the timer inactive.
Steps (rolling with #5558, system config-management commit-confirm action unset, so reboot):
- Leave protocols bgp system-as unset.
- POST to /configure: {"op": "set", "path": ["protocols", "bgp", "neighbor", "192.0.2.9", "remote-as"], "value": "65001", "confirm_time": 1}
- The response is {"success": false, "error": "[ protocols bgp ]\nBGP system-as number must be defined!Initialized commit-confirm; 1 minutes to confirm before reload\n\n[[protocols bgp]] failed\nCommit failed\n", "data": null}
- systemctl is-active commit-confirm.timer reports active.