aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/nixos/tests/grafana.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/nixos/tests/grafana.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/nixos/tests/grafana.nix')
-rw-r--r--infra/libkookie/nixpkgs/nixos/tests/grafana.nix97
1 files changed, 97 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/nixos/tests/grafana.nix b/infra/libkookie/nixpkgs/nixos/tests/grafana.nix
new file mode 100644
index 000000000000..4b453ece7f1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/nixos/tests/grafana.nix
@@ -0,0 +1,97 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+let
+ inherit (lib) mkMerge nameValuePair maintainers;
+
+ baseGrafanaConf = {
+ services.grafana = {
+ enable = true;
+ addr = "localhost";
+ analytics.reporting.enable = false;
+ domain = "localhost";
+ security = {
+ adminUser = "testadmin";
+ adminPassword = "snakeoilpwd";
+ };
+ };
+ };
+
+ extraNodeConfs = {
+ postgresql = {
+ services.grafana.database = {
+ host = "127.0.0.1:5432";
+ user = "grafana";
+ };
+ services.postgresql = {
+ enable = true;
+ ensureDatabases = [ "grafana" ];
+ ensureUsers = [{
+ name = "grafana";
+ ensurePermissions."DATABASE grafana" = "ALL PRIVILEGES";
+ }];
+ };
+ systemd.services.grafana.after = [ "postgresql.service" ];
+ };
+
+ mysql = {
+ services.grafana.database.user = "grafana";
+ services.mysql = {
+ enable = true;
+ ensureDatabases = [ "grafana" ];
+ ensureUsers = [{
+ name = "grafana";
+ ensurePermissions."grafana.*" = "ALL PRIVILEGES";
+ }];
+ package = pkgs.mariadb;
+ };
+ systemd.services.grafana.after = [ "mysql.service" ];
+ };
+ };
+
+ nodes = builtins.listToAttrs (map (dbName:
+ nameValuePair dbName (mkMerge [
+ baseGrafanaConf
+ (extraNodeConfs.${dbName} or {})
+ ])) [ "sqlite" "postgresql" "mysql" ]);
+
+in {
+ name = "grafana";
+
+ meta = with maintainers; {
+ maintainers = [ willibutz ];
+ };
+
+ inherit nodes;
+
+ testScript = ''
+ start_all()
+
+ with subtest("Successful API query as admin user with sqlite db"):
+ sqlite.wait_for_unit("grafana.service")
+ sqlite.wait_for_open_port(3000)
+ sqlite.succeed(
+ "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+ )
+ sqlite.shutdown()
+
+ with subtest("Successful API query as admin user with postgresql db"):
+ postgresql.wait_for_unit("grafana.service")
+ postgresql.wait_for_unit("postgresql.service")
+ postgresql.wait_for_open_port(3000)
+ postgresql.wait_for_open_port(5432)
+ postgresql.succeed(
+ "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+ )
+ postgresql.shutdown()
+
+ with subtest("Successful API query as admin user with mysql db"):
+ mysql.wait_for_unit("grafana.service")
+ mysql.wait_for_unit("mysql.service")
+ mysql.wait_for_open_port(3000)
+ mysql.wait_for_open_port(3306)
+ mysql.succeed(
+ "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/org/users | grep -q testadmin\@localhost"
+ )
+ mysql.shutdown()
+ '';
+})