- Add missing name parameter to the test function

- Fix PHP deployment
- xinetd only accepts HUP when it runs as a daemon, for foreground process use a restart
This commit is contained in:
Sander van der Burg 2023-09-20 18:36:47 +02:00
parent 80e510ab58
commit 479afcda26
27 changed files with 58 additions and 10 deletions

View File

@ -15,6 +15,11 @@
}:
let
phpPackage = php.override {
apxs2Support = true;
inherit apacheHttpd;
};
user = instanceName;
group = instanceName;
@ -51,8 +56,8 @@ let
preferLocalBuild = true;
}
''
cat ${php}/etc/php.ini > $out
cat ${php.phpIni} > $out
cat ${phpPackage}/etc/php.ini > $out
cat ${phpPackage.phpIni} > $out
'';
in
import ./default.nix {
@ -106,7 +111,7 @@ import ./default.nix {
'' else throw "Unknown type for module!"
) modules}
${lib.optionalString enablePHP ''
LoadModule php_module ${php}/modules/libphp.so
LoadModule php_module ${phpPackage}/modules/libphp.so
''}
ServerAdmin ${serverAdmin}

View File

@ -39,7 +39,7 @@ let
inherit processManager;
};
processManagerContainer = lib.recursiveUpdate (stdenv.lib.optionalAttrs (processManager == "supervisord") {
processManagerContainer = lib.recursiveUpdate (lib.optionalAttrs (processManager == "supervisord") {
supervisord-program = {
supervisordTargetDir = "/etc/supervisor/conf.d";
};

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "apache-tomcat-ajp-reverse-proxy";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "apache-tomcat";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "apache";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;
@ -13,7 +14,7 @@ testService {
tests = {instanceName, instance, ...}:
''
machine.succeed("curl --fail http://localhost:${toString instance.port} | grep 'Hello world!'")
machine.succeed("curl --fail http://localhost:${toString instance.port} | grep 'Hello world'")
'';
inherit processManagers profiles;

View File

@ -50,7 +50,7 @@ let
</head>
<body>
<h1><?php print("Hello world!"); ?></h1>
<h1><?php print("Hello world from PHP!"); ?></h1>
</body>
</html>
EOF

View File

@ -4,6 +4,7 @@ let
env = "NIX_PATH='nixpkgs=${<nixpkgs>}' SSH_OPTS='-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' DISNIX_REMOTE_CLIENT=disnix-client";
in
testService {
name = "disnix-with-apache-mysql";
exprFile = ../../../example-deployments/disnix/processes-with-apache-mysql.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -4,6 +4,7 @@ let
env = "NIX_PATH='nixpkgs=${<nixpkgs>}' SSH_OPTS='-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' DISNIX_REMOTE_CLIENT=disnix-client";
in
testService {
name = "disnix";
exprFile = ../../../example-deployments/disnix/processes-bare.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -4,6 +4,7 @@ let
env = "NIX_PATH='nixpkgs=${<nixpkgs>}' SSH_OPTS='-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' DISNIX_REMOTE_CLIENT=disnix-client";
in
testService {
name = "disnix-with-tomcat-mysql-multi-instance";
exprFile = ../../../example-deployments/disnix/processes-with-tomcat-mysql-multi-instance.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -4,6 +4,7 @@ let
env = "NIX_PATH='nixpkgs=${<nixpkgs>}' DISNIX_CLIENT_INTERFACE=disnix-soap-client DISNIX_TARGET_PROPERTY=targetEPR DISNIX_SOAP_CLIENT_USERNAME=admin DISNIX_SOAP_CLIENT_PASSWORD=secret";
in
testService {
name = "disnix-with-tomcat-mysql";
exprFile = ../../../example-deployments/disnix/processes-with-tomcat-mysql.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "docker";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "fcron";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -62,6 +62,7 @@ let
};
in
testService {
name = "hydra";
exprFile = ../../example-deployments/hydra/processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "influxdb";
exprFile = ./processes.nix;
systemPackages = [ pkgs.influxdb ];
extraParams = {

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "mongodb";
exprFile = ./processes.nix;
systemPackages = [ pkgs.mongodb ];
nixosConfig = {

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "mysql";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "nginx-reverse-proxy-hostbased";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "nginx-reverse-proxy-pathbased";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "nginx";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "postgresql";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -41,6 +41,7 @@ let
};
in
testService {
name = "s6-svscan";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "sshd";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;
@ -32,11 +33,11 @@ testService {
# Make a special exception for the first instance running in privileged mode. It should be connectible with the default settings
if instanceName == "sshd" && !forceDisableUserChange then ''
machine.succeed(
"ssh -i key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no localhost $(type -p ls) /"
"ssh -i key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no localhost $(type -p ls) / >&2"
)
'' else ''
machine.succeed(
"${pkgs.lib.optionalString forceDisableUserChange "su unprivileged -c '"}ssh -p ${toString instance.port} -i key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no localhost $(type -p ls) /${pkgs.lib.optionalString forceDisableUserChange "'"}"
"${pkgs.lib.optionalString forceDisableUserChange "su unprivileged -c '"}ssh -p ${toString instance.port} -i key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no localhost $(type -p ls) /${pkgs.lib.optionalString forceDisableUserChange "'"} >&2"
)
'';

View File

@ -26,6 +26,7 @@ let
};
in
testService {
name = "supervisord";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "svnserve";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "vsftpd";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,6 +1,7 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "xinetd";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;

View File

@ -1,13 +1,14 @@
{ pkgs, testService, processManagers, profiles, nix-processmgmt }:
testService {
name = "xinetd-extendable";
exprFile = ./processes.nix;
extraParams = {
inherit nix-processmgmt;
};
systemPackages = [ pkgs.inetutils ];
tests = {instanceName, instance, stateDir, runtimeDir, forceDisableUserChange, ...}:
tests = {instanceName, instance, processManager, stateDir, runtimeDir, forceDisableUserChange, ...}:
if instanceName == "xinetd-primary" then
let
tftpService = pkgs.writeTextFile {
@ -33,8 +34,27 @@ testService {
machine.succeed(
"cp ${tftpService} ${stateDir}/lib/${instanceName}/xinetd.d"
)
machine.succeed("kill -HUP $(cat ${runtimeDir}/${instanceName}.pid)")
''
+ (if processManager == "sysvinit" then
''
machine.succeed("kill -HUP $(cat ${runtimeDir}/${instanceName}.pid)")
''
else if processManager == "systemd" then
''
machine.succeed("systemctl restart nix-process-${instanceName}")
''
else if processManager == "supervisord" then
''
machine.succeed("supervisorctl restart ${instanceName}")
''
else if processManager == "s6-rc" then
''
machine.succeed("s6-rc -d change ${instanceName}")
machine.succeed("s6-rc -u change ${instanceName}")
''
else throw "Process manager not supported: ${processManager}")
+ ''
machine.succeed("echo hello > ${stateDir}/hello.txt")
# fmt: off
machine.succeed(