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 <