Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)

nixos/rabbitmq: fix module

+20 -12
+20 -12
nixos/modules/services/amqp/rabbitmq.nix
··· 31 31 <literal>guest</literal> by default, so you should delete 32 32 this user if you intend to allow external access. 33 33 ''; 34 + type = types.str; 35 + }; 36 + 37 + port = mkOption { 38 + default = 5672; 39 + description = '' 40 + Port on which RabbitMQ will listen for AMQP connections. 41 + ''; 42 + type = types.int; 34 43 }; 35 44 36 45 dataDir = mkOption { ··· 77 86 users.extraUsers.rabbitmq = { 78 87 description = "RabbitMQ server user"; 79 88 home = "${cfg.dataDir}"; 89 + createHome = true; 80 90 group = "rabbitmq"; 81 91 uid = config.ids.uids.rabbitmq; 82 92 }; ··· 87 97 description = "RabbitMQ Server"; 88 98 89 99 wantedBy = [ "multi-user.target" ]; 90 - after = [ "network-interfaces.target" ]; 100 + after = [ "network.target" ]; 91 101 92 - path = [ pkgs.rabbitmq_server ]; 102 + path = [ pkgs.rabbitmq_server pkgs.procps ]; 93 103 94 104 environment = { 95 105 RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia"; 96 106 RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress; 107 + RABBITMQ_NODE_PORT = toString cfg.port; 97 108 RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false"; 109 + RABBITMQ_PID_FILE = "${cfg.dataDir}/pid"; 98 110 SYS_PREFIX = ""; 99 111 RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" '' 100 112 [ ${concatStringsSep "," cfg.plugins} ]. ··· 103 115 104 116 serviceConfig = { 105 117 ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server"; 118 + ExecStop = "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop"; 106 119 User = "rabbitmq"; 107 120 Group = "rabbitmq"; 108 - PermissionsStartOnly = true; 121 + WorkingDirectory = cfg.dataDir; 109 122 }; 110 123 124 + postStart = '' 125 + rabbitmqctl wait ${cfg.dataDir}/pid 126 + ''; 127 + 111 128 preStart = '' 112 - mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir} 113 - if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi 114 - 115 129 ${optionalString (cfg.cookie != "") '' 116 130 echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie 117 131 chmod 400 ${cfg.dataDir}/.erlang.cookie 118 - chown rabbitmq:rabbitmq ${cfg.dataDir}/.erlang.cookie 119 132 ''} 120 - 121 - mkdir -p /var/log/rabbitmq && chmod 0700 /var/log/rabbitmq 122 - chown rabbitmq:rabbitmq /var/log/rabbitmq 123 133 ''; 124 - 125 - postStart = mkBefore "until rabbitmqctl status; do sleep 1; done"; 126 134 }; 127 135 128 136 };