tests/prometheus-exporters: allow overriding test-node-name

allows the prometheus-exporters test abstraction to work with e.g. hyphenated exporter-names

elseym 8c49e5a7 b381aacb

Changed files
+13 -7
nixos
+13 -7
nixos/tests/prometheus-exporters.nix
···
* `metricProvider` (optional)
* this attribute contains additional machine config
*
+
* `nodeName` (optional)
+
* override an incompatible testnode name
+
*
* Example:
* exporterTests.<exporterName> = {
* exporterConfig = {
···
};
};
in
-
mapAttrs (exporter: testConfig: (makeTest {
+
mapAttrs (exporter: testConfig: (makeTest (let
+
nodeName = testConfig.nodeName or exporter;
+
+
in {
name = "prometheus-${exporter}-exporter";
-
nodes.${exporter} = mkMerge [{
+
nodes.${nodeName} = mkMerge [{
services.prometheus.exporters.${exporter} = testConfig.exporterConfig;
} testConfig.metricProvider or {}];
testScript = ''
-
${exporter}.start()
+
${nodeName}.start()
${concatStringsSep "\n" (map (line:
if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")")
then line
-
else "${exporter}.${line}"
+
else "${nodeName}.${line}"
) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))}
-
${exporter}.shutdown()
+
${nodeName}.shutdown()
'';
meta = with maintainers; {
-
maintainers = [ willibutz ];
+
maintainers = [ willibutz elseym ];
};
-
})) exporterTests
+
}))) exporterTests