nixos/tests/anubis: add testing for anubis botPolicy option
This commit is contained in:
+36
-4
@@ -11,9 +11,13 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.anubis = {
|
||||
defaultOptions.settings = {
|
||||
DIFFICULTY = 3;
|
||||
USER_DEFINED_DEFAULT = true;
|
||||
defaultOptions = {
|
||||
# Get default botPolicy
|
||||
botPolicy = lib.importJSON "${config.services.anubis.package.src}/data/botPolicies.json";
|
||||
settings = {
|
||||
DIFFICULTY = 3;
|
||||
USER_DEFINED_DEFAULT = true;
|
||||
};
|
||||
};
|
||||
instances = {
|
||||
"".settings = {
|
||||
@@ -38,11 +42,34 @@
|
||||
group = "nginx";
|
||||
settings.TARGET = "unix:///run/nginx/nginx.sock";
|
||||
};
|
||||
|
||||
"botPolicy-default" = {
|
||||
botPolicy = null;
|
||||
settings.TARGET = "http://localhost:8080";
|
||||
};
|
||||
|
||||
"botPolicy-file" = {
|
||||
settings = {
|
||||
TARGET = "http://localhost:8080";
|
||||
POLICY_FNAME = "/etc/anubis-botPolicy.json";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Empty json for testing
|
||||
environment.etc."anubis-botPolicy.json".text = lib.generators.toJSON { } {
|
||||
bots = [
|
||||
{
|
||||
name = "allow-all";
|
||||
user_agent_regex = ".*";
|
||||
action = "ALLOW";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# support
|
||||
users.users.nginx.extraGroups = [ config.users.groups.anubis.name ];
|
||||
users.users.nginx.extraGroups = [ config.services.anubis.defaultOptions.group ];
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
recommendedProxySettings = true;
|
||||
@@ -115,5 +142,10 @@
|
||||
# Make sure defaults don't overwrite themselves
|
||||
machine.succeed('cat /run/current-system/etc/systemd/system/anubis.service | grep "DIFFICULTY=5"')
|
||||
machine.succeed('cat /run/current-system/etc/systemd/system/anubis-tcp.service | grep "DIFFICULTY=3"')
|
||||
|
||||
# Check correct BotPolicy settings are applied
|
||||
machine.succeed('cat /run/current-system/etc/systemd/system/anubis.service | grep "POLICY_FNAME=/nix/store"')
|
||||
machine.fail('cat /run/current-system/etc/systemd/system/anubis-botPolicy-default.service | grep "POLICY_FNAME="')
|
||||
machine.succeed('cat /run/current-system/etc/systemd/system/anubis-botPolicy-file.service | grep "POLICY_FNAME=/etc/anubis-botPolicy.json"')
|
||||
'';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user