From cd6157bea4d9f571c12cb922940a0608ceca106b Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 30 Sep 2024 22:11:43 +0200 Subject: [PATCH 1/2] nixos/nextcloud: re-add declarative-redis-and-secrets to matrix Just noticed that I apparently disabled this test while restructuring the Nextcloud tests[1] effectively disabling the test. This patch re-adds it and adjusts the code accordingly. I also noticed that the old check whether the cache is actually used (`test "[]" = "$(redis-cli --json KEYS "*")"`) was broken because the `nextcloud.fail()` hid the fact that the `redis-cli` invocation was failing due to a missing password. Fixed the subtest accordingly. [1] 0b31ada92bde7f573d2a616d5111e396d501a76f --- nixos/tests/nextcloud/default.nix | 5 +- .../with-declarative-redis-and-secrets.nix | 71 ++++--------------- 2 files changed, 18 insertions(+), 58 deletions(-) diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix index 9f8b06561b07..ea38206d8438 100644 --- a/nixos/tests/nextcloud/default.nix +++ b/nixos/tests/nextcloud/default.nix @@ -44,13 +44,13 @@ let nodes = { client = { ... }: {}; - nextcloud = { + nextcloud = { lib, ... }: { networking.firewall.allowedTCPPorts = [ 80 ]; services.nextcloud = { enable = true; hostName = "nextcloud"; https = false; - database.createLocally = true; + database.createLocally = lib.mkDefault true; config = { adminpassFile = "${pkgs.writeText "adminpass" config.adminpass}"; # Don't try this at home! }; @@ -104,6 +104,7 @@ let }); in map callNextcloudTest [ ./basic.nix + ./with-declarative-redis-and-secrets.nix ./with-mysql-and-memcached.nix ./with-postgresql-and-redis.nix ./with-objectstore.nix diff --git a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix index b09ee1276a13..b769401dc9fc 100644 --- a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix +++ b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix @@ -1,29 +1,18 @@ -args@{ nextcloudVersion ? 27, ... }: -(import ../make-test-python.nix ({ pkgs, ...}: let - adminuser = "custom_admin_username"; - # This will be used both for redis and postgresql - pass = "hunter2"; - # Don't do this at home, use a file outside of the nix store instead - passFile = toString (pkgs.writeText "pass-file" '' - ${pass} - ''); -in { +{ pkgs, testBase, system, ... }: + +with import ../../lib/testing-python.nix { inherit system pkgs; }; +runTest ({ config, ... }: let inherit (config) adminuser; in { name = "nextcloud-with-declarative-redis"; meta = with pkgs.lib.maintainers; { maintainers = [ eqyiel ma27 ]; }; + imports = [ testBase ]; + nodes = { - # The only thing the client needs to do is download a file. - client = { ... }: {}; - nextcloud = { config, pkgs, ... }: { - networking.firewall.allowedTCPPorts = [ 80 ]; - + environment.systemPackages = [ pkgs.jq ]; services.nextcloud = { - enable = true; - hostName = "nextcloud"; - package = pkgs.${"nextcloud" + (toString nextcloudVersion)}; caching = { apcu = false; redis = true; @@ -35,10 +24,9 @@ in { dbtype = "pgsql"; dbname = "nextcloud"; dbuser = adminuser; - dbpassFile = passFile; - adminuser = adminuser; - adminpassFile = passFile; + dbpassFile = config.services.nextcloud.config.adminpassFile; }; + secretFile = "/etc/nextcloud-secrets.json"; settings = { @@ -68,7 +56,7 @@ in { package = pkgs.postgresql_14; }; systemd.services.postgresql.postStart = pkgs.lib.mkAfter '' - password=$(cat ${passFile}) + password=$(cat ${config.services.nextcloud.config.dbpassFile}) ${config.services.postgresql.package}/bin/psql < Date: Mon, 30 Sep 2024 22:21:29 +0200 Subject: [PATCH 2/2] nixos/nextcloud: add nc version to drv name of mysql & declarative redis test --- nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix | 4 ++-- nixos/tests/nextcloud/with-mysql-and-memcached.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix index b769401dc9fc..80041ed481b4 100644 --- a/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix +++ b/nixos/tests/nextcloud/with-declarative-redis-and-secrets.nix @@ -1,8 +1,8 @@ -{ pkgs, testBase, system, ... }: +{ name, pkgs, testBase, system, ... }: with import ../../lib/testing-python.nix { inherit system pkgs; }; runTest ({ config, ... }: let inherit (config) adminuser; in { - name = "nextcloud-with-declarative-redis"; + inherit name; meta = with pkgs.lib.maintainers; { maintainers = [ eqyiel ma27 ]; }; diff --git a/nixos/tests/nextcloud/with-mysql-and-memcached.nix b/nixos/tests/nextcloud/with-mysql-and-memcached.nix index 07a3e56fae4a..b903f8d0fe95 100644 --- a/nixos/tests/nextcloud/with-mysql-and-memcached.nix +++ b/nixos/tests/nextcloud/with-mysql-and-memcached.nix @@ -1,8 +1,8 @@ -{ pkgs, testBase, system, ... }: +{ name, pkgs, testBase, system, ... }: with import ../../lib/testing-python.nix { inherit system pkgs; }; runTest ({ config, ... }: { - name = "nextcloud-with-mysql-and-memcached"; + inherit name; meta = with pkgs.lib.maintainers; { maintainers = [ eqyiel ]; };