about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorDominique Martinet <asmadeus@codewreck.org>2022-02-26 16:04:44 +0900
committerDominique Martinet <asmadeus@codewreck.org>2022-02-26 19:13:12 +0900
commit4d12b79cd7edfbe01216171dd6ef0e4c64851b0a (patch)
tree6a887d87cc6ce067c910c2bf82b81eafdd4c8ee2 /nixos
parent33984cd89ca94954353be396631bcb6a9190c0d2 (diff)
downloadnixlib-4d12b79cd7edfbe01216171dd6ef0e4c64851b0a.tar
nixlib-4d12b79cd7edfbe01216171dd6ef0e4c64851b0a.tar.gz
nixlib-4d12b79cd7edfbe01216171dd6ef0e4c64851b0a.tar.bz2
nixlib-4d12b79cd7edfbe01216171dd6ef0e4c64851b0a.tar.lz
nixlib-4d12b79cd7edfbe01216171dd6ef0e4c64851b0a.tar.xz
nixlib-4d12b79cd7edfbe01216171dd6ef0e4c64851b0a.tar.zst
nixlib-4d12b79cd7edfbe01216171dd6ef0e4c64851b0a.zip
logrotate: do not enable logrotate.service itself
logrotate.timer is enough for rotating logs. Enabling logrotate.service would
make the service start on every configuration switch, leading to tests failure when
logrotate is enabled.

Also update test to make sure the timer is active and runs the service
on date change.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/logging/logrotate.nix1
-rw-r--r--nixos/tests/logrotate.nix17
2 files changed, 9 insertions, 9 deletions
diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix
index 77e4fc395981..082cf92ff4ef 100644
--- a/nixos/modules/services/logging/logrotate.nix
+++ b/nixos/modules/services/logging/logrotate.nix
@@ -167,7 +167,6 @@ in
 
     systemd.services.logrotate = {
       description = "Logrotate Service";
-      wantedBy = [ "multi-user.target" ];
       startAt = "hourly";
 
       serviceConfig = {
diff --git a/nixos/tests/logrotate.nix b/nixos/tests/logrotate.nix
index 0f6b59f071d4..0dee5d4502d9 100644
--- a/nixos/tests/logrotate.nix
+++ b/nixos/tests/logrotate.nix
@@ -15,19 +15,20 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
       with subtest("whether logrotate works"):
           machine.succeed(
               # we must rotate once first to create logrotate stamp
-              "systemctl start --wait logrotate.service",
+              "systemctl start logrotate.service")
+          # we need to wait for console text once here to
+          # clear console buffer up to this point for next wait
+          machine.wait_for_console_text('logrotate.service: Deactivated successfully')
 
+          machine.succeed(
               # wtmp is present in default config.
               "rm -f /var/log/wtmp*",
               "echo test > /var/log/wtmp",
 
-              # move into the future and rotate
-              "date -s 'now + 1 month + 1 day'",
-              # systemd will run logrotate from logrotate.timer automatically
-              # on date change, but if we want to wait for it to terminate
-              # it's easier to run again...
-              "systemctl start --wait logrotate.service",
-
+              # move into the future and check rotation.
+              "date -s 'now + 1 month + 1 day'")
+          machine.wait_for_console_text('logrotate.service: Deactivated successfully')
+          machine.succeed(
               # check rotate worked
               "[ -e /var/log/wtmp.1 ]",
           )