c931c87173
tools/systemd/time: let libc normalize time for us
...
mktime/gmtime can normalize time and even can handle special timezone
cases like the fact that the time 2:30 on specific day/timezone combos
do not exists
we have to convert the signature of all functions that use
normalize_time since mktime/gmtime can return an EOVERFLOW
but if this happens there is no way we can find a good time anyway
since normalize_time will always set wday according to the rest of the
time, remove set_wday
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2020-09-04 15:26:40 +02:00
28a0a9343c
tools/systemd/tm_editor: remove TMChanges optimization
...
while it was correct, there was no measurable speed gain
(a benchmark yielded 2.8 ms for a spec that did not find a timestamp either way)
so remove it for simpler code
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2020-09-04 15:26:04 +02:00
cd6ddb5a69
depend on proxmox 0.3.5
2020-09-04 08:11:53 +02:00
eeb19aeb2d
systemd/time: fix weekday wrapping on month
...
the weekday does not change depending on the month, so remove that wrapping
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2020-08-03 08:18:42 +02:00
6c96ec418d
systemd/time: add tests for weekday month wrapping
...
this will fail for now, gets fixed in the next commit
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2020-08-03 08:15:26 +02:00
a74b026baa
systemd/time: document CalendarEvent struct and add TODOs
...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2020-07-23 07:55:42 +02:00
956295cefe
parse_calendar_event: support the weekly special expression
...
While we do not yet support the date specs for CalendarEvent the left
out "weekly" special expression[0] dies not requires that support.
It is specified to be equivalent with `Mon *-*-* 00:00:00` [0] and
this can be implemented with the weekday and time support we already
have.
[0]: https://www.freedesktop.org/software/systemd/man/systemd.time.html#Calendar%20Events
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com >
2020-07-21 13:24:51 +02:00
547f0c97e4
src/tools/nom.rs: new helper parse_complete_line() for single line parsers
...
Like parse_complete(), but generates simpler error messages.
2020-06-18 12:57:55 +02:00
177a2de992
src/tools/nom.rs: move nom helpers into separate file
2020-06-18 12:41:13 +02:00
d4f2397d4c
add api to format disks and create datastores
2020-06-10 11:03:36 +02:00
b9cf6ee797
src/tools/systemd/types.rs: add Mount config
2020-06-09 18:47:10 +02:00
eed8a5ad79
tools/systemd/time: fix compute_next_event for weekdays
...
two things were wrong here:
* the range (x..y) does not include y, so the range
(day_num+1..6) goes from (day_num+1) to 5 (but sunday is 6)
* WeekDays.bits() does not return the 'day_num' of that day, but
the bit value (e.g. 64 for SUNDAY) but was treated as the index of
the day of the week
to fix this, we drop the map to WeekDays and use the 'indices'
directly
this patch makes the test work again
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2020-06-04 07:02:33 +02:00
538b9c1c27
systemd/time: add tests for all weekdays
...
this fails for now
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2020-06-04 07:02:23 +02:00
750252ba2f
src/tools/systemd/time.rs: add test for "daily" schedule
2020-05-29 07:52:09 +02:00
479e4932b5
src/tools/systemd/parse_time.rs: improve error message
2020-05-20 09:43:16 +02:00
d6c28ddf84
src/tools/systemd/time.rs: export parse/verify
2020-05-20 08:38:39 +02:00
16c75c580b
adapt to changes of SectionConfigPlugin
...
it requires not an Option<String> for the optional id_property
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com >
2020-05-19 09:28:45 +02:00
7a314d18f7
src/tools/systemd/parse_time.rs: check max values
2020-05-16 13:13:50 +02:00
2d08c97ae2
CalendarEvent - compute_next_value: use change tracking to avoid repeated testing
2020-05-16 10:32:27 +02:00
50ce1f987d
CalendarEvent - compute_next_value: support seconds
2020-05-16 10:21:24 +02:00
d1a5ffdf78
src/tools/systemd/tm_editor.rs: new helper class
2020-05-16 10:09:41 +02:00
99baf7afcc
CalendarEvent: test and fix repeated values
2020-05-16 07:43:51 +02:00
fed270bf3f
CalendarEvent: speedup/simplify repetition tests
2020-05-16 07:09:53 +02:00
e05b637c73
src/tools/systemd/parse_time.rs: move parser into separate file
2020-05-16 06:53:15 +02:00
2ee6b3fdb9
src/tools/systemd/time.rs: implement compute_next_event
2020-05-16 06:33:03 +02:00
f3a96b2cdb
renamed: src/tools/systemd/parser.rs -> src/tools/systemd/config.rs
2020-05-16 06:32:28 +02:00
a260c74a12
src/tools/systemd/time.rs: add helpers to compute CalendarEvents
2020-05-15 17:55:54 +02:00
00491c0230
src/tools/systemd/parser.rs: use different setups for service and timer files, code cleanup
2020-05-14 13:55:13 +02:00
2ebdbac1c4
depend on nom, add parser for systemd calendar enents and time span
2020-05-14 12:18:30 +02:00
f486e9e50e
add systemd configuration file parser/writer, start job configuration
2020-05-12 13:07:49 +02:00