diff options
author | Tristan Helmich <tristan.helmich@gmail.com> | 2017-01-03 23:08:26 +0100 |
---|---|---|
committer | Tristan Helmich <tristan.helmich@gmail.com> | 2017-01-03 23:10:59 +0100 |
commit | f808502aba1efe6e2e40ed10955ca6f974da9b17 (patch) | |
tree | 6ecbe9dd378f993e3acecdd4eff12672311c34bf /nixos | |
parent | b5703eaa802d3775d86cdaaf0057fcd7acc798f9 (diff) |
smokeping: cleanup (option ordering)
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/networking/smokeping.nix | 203 |
1 files changed, 99 insertions, 104 deletions
diff --git a/nixos/modules/services/networking/smokeping.nix b/nixos/modules/services/networking/smokeping.nix index 9c8dfa7bac4fd..04312c39062f4 100644 --- a/nixos/modules/services/networking/smokeping.nix +++ b/nixos/modules/services/networking/smokeping.nix @@ -11,17 +11,17 @@ let then '' *** General *** - owner = ${cfg.owner} + cgiurl = ${cfg.cgiUrl} contact = ${cfg.ownerEmail} - ${lib.optionalString (cfg.mailHost != "") "mailhost = ${cfg.mailHost}"} - ${lib.optionalString (cfg.sendmail != null) "sendmail = ${cfg.sendmail}"} + datadir = ${smokepingHome}/data imgcache = ${smokepingHome}/cache imgurl = ${cfg.imgUrl} - datadir = ${smokepingHome}/data + linkstyle = ${cfg.linkStyle} + ${lib.optionalString (cfg.mailHost != "") "mailhost = ${cfg.mailHost}"} + owner = ${cfg.owner} pagedir = ${smokepingHome}/cache piddir = ${smokepingPidDir} - cgiurl = ${cfg.cgiUrl} - linkstyle = ${cfg.linkStyle} + ${lib.optionalString (cfg.sendmail != null) "sendmail = ${cfg.sendmail}"} smokemail = ${cfg.smokeMailTemplate} *** Presentation *** template = ${cfg.presentationTemplate} @@ -54,52 +54,23 @@ in default = false; description = "Enable the smokeping service"; }; - webService = mkOption { - type = types.bool; - default = true; - description = "Enable a smokeping web interface"; - }; - - user = mkOption { - type = types.string; - default = "smokeping"; - description = "User that runs smokeping and (optionally) thttpd"; - }; - mailHost = mkOption { - type = types.string; - default = ""; - example = "localhost"; - description = "Use this SMTP server to send alerts"; - }; - sendmail = mkOption { - type = types.nullOr types.path; - default = null; - example = "/var/setuid-wrappers/sendmail"; - description = "Use this sendmail compatible script to deliver alerts"; - }; - smokeMailTemplate = mkOption { + alertConfig = mkOption { type = types.string; - default = "${cfg.package}/etc/smokemail.dist"; - description = "Specify the smokemail template for alerts."; - }; + default = '' + to = root@localhost + from = smokeping@localhost + ''; + example = literalExample '' + to = alertee@address.somewhere + from = smokealert@company.xy - package = mkOption { - type = types.package; - default = pkgs.smokeping; - defaultText = "pkgs.smokeping"; - description = "Specify a custom smokeping package"; - }; - owner = mkOption { - type = types.string; - default = "nobody"; - example = "Joe Admin"; - description = "Real name of the owner of the instance"; - }; - hostName = mkOption { - type = types.string; - default = config.networking.hostName; - example = "somewhere.example.com"; - description = "DNS name for the urls generated in the cgi."; + +someloss + type = loss + # in percent + pattern = >0%,*12*,>0%,*12*,>0% + comment = loss 3 times in a row; + ''; + description = "Configuration for alerts."; }; cgiUrl = mkOption { type = types.string; @@ -107,31 +78,12 @@ in example = "https://somewhere.example.com/smokeping.cgi"; description = "URL to the smokeping cgi."; }; - imgUrl = mkOption { - type = types.string; - default = "http://${cfg.hostName}:${builtins.toString cfg.port}/cache"; - example = "https://somewhere.example.com/cache"; - description = "Base url for images generated in the cgi."; - }; - linkStyle = mkOption { - type = types.enum ["original" "absolute" "relative"]; - default = "relative"; - example = "absolute"; - description = "DNS name for the urls generated in the cgi."; - }; - port = mkOption { - type = types.int; - default = 8081; - example = 8081; - description = "TCP port to use for the web server."; - }; - ownerEmail = mkOption { - type = types.string; - default = "no-reply@${cfg.hostName}"; - example = "no-reply@yourdomain.com"; - description = "Email contact for owner"; + config = mkOption { + type = types.nullOr types.string; + default = null; + description = "Full smokeping config supplied by the user. Overrides " + + "and replaces any other configuration supplied."; }; - databaseConfig = mkOption { type = types.string; default = '' @@ -164,30 +116,59 @@ in Once set, changing the interval will require deletion or migration of all the collected data.''; }; - alertConfig = mkOption { + extraConfig = mkOption { + type = types.lines; + default = ""; + description = "Any additional customization not already included."; + }; + hostName = mkOption { type = types.string; - default = '' - to = root@localhost - from = smokeping@localhost - ''; - example = literalExample '' - to = alertee@address.somewhere - from = smokealert@company.xy - - +someloss - type = loss - # in percent - pattern = >0%,*12*,>0%,*12*,>0% - comment = loss 3 times in a row; - ''; - description = "Configuration for alerts."; + default = config.networking.hostName; + example = "somewhere.example.com"; + description = "DNS name for the urls generated in the cgi."; }; - presentationTemplate = mkOption { + imgUrl = mkOption { type = types.string; - default = "${pkgs.smokeping}/etc/basepage.html.dist"; - description = "Default page layout for the web UI."; + default = "http://${cfg.hostName}:${builtins.toString cfg.port}/cache"; + example = "https://somewhere.example.com/cache"; + description = "Base url for images generated in the cgi."; + }; + linkStyle = mkOption { + type = types.enum ["original" "absolute" "relative"]; + default = "relative"; + example = "absolute"; + description = "DNS name for the urls generated in the cgi."; + }; + mailHost = mkOption { + type = types.string; + default = ""; + example = "localhost"; + description = "Use this SMTP server to send alerts"; + }; + owner = mkOption { + type = types.string; + default = "nobody"; + example = "Joe Admin"; + description = "Real name of the owner of the instance"; + }; + ownerEmail = mkOption { + type = types.string; + default = "no-reply@${cfg.hostName}"; + example = "no-reply@yourdomain.com"; + description = "Email contact for owner"; + }; + package = mkOption { + type = types.package; + default = pkgs.smokeping; + defaultText = "pkgs.smokeping"; + description = "Specify a custom smokeping package"; + }; + port = mkOption { + type = types.int; + default = 8081; + example = 8081; + description = "TCP port to use for the web server."; }; - presentationConfig = mkOption { type = types.string; default = '' @@ -229,6 +210,11 @@ in ''; description = "presentation graph style"; }; + presentationTemplate = mkOption { + type = types.string; + default = "${pkgs.smokeping}/etc/basepage.html.dist"; + description = "Default page layout for the web UI."; + }; probeConfig = mkOption { type = types.string; default = '' @@ -237,6 +223,17 @@ in ''; description = "Probe configuration"; }; + sendmail = mkOption { + type = types.nullOr types.path; + default = null; + example = "/var/setuid-wrappers/sendmail"; + description = "Use this sendmail compatible script to deliver alerts"; + }; + smokeMailTemplate = mkOption { + type = types.string; + default = "${cfg.package}/etc/smokemail.dist"; + description = "Specify the smokemail template for alerts."; + }; targetConfig = mkOption { type = types.string; default = '' @@ -255,18 +252,16 @@ in ''; description = "Target configuration"; }; - extraConfig = mkOption { - type = types.lines; - default = ""; - description = "Any additional customization not already included."; + user = mkOption { + type = types.string; + default = "smokeping"; + description = "User that runs smokeping and (optionally) thttpd"; }; - config = mkOption { - type = types.nullOr types.string; - default = null; - description = "Full smokeping config supplied by the user. Overrides " + - "and replaces any other configuration supplied."; + webService = mkOption { + type = types.bool; + default = true; + description = "Enable a smokeping web interface"; }; - }; }; |