The idea here is that user can set when exactly updater can update system by setting start and end periodic times. We use cron syntax for that.
There are few hacks that we had to implement to ensure that it is not fragile. The first issue is combination with execution and random delay. We want to always hit the allowed window so we can install any possible update so we need to tweak the random delay to fix that. Also we had to make sure that updater considers all hours of the day. We run updater by cron every two hours now with still the same two hours random delay. This way updater can hit every possible allowed window.
The combination of delayed approvals and approval window results in wait for delay first and only after that installation in allowed window. Thus both of them apply.
Implements #17 (closed).