nixos/slurm: node/partitionName option -> list

Make the node and partitionname options lists.
There can be more than paratition or set of nodes.

Add changes to release notes
This commit is contained in:
Markus Kowalewski 2018-10-25 20:34:17 +02:00
parent f51f753416
commit d2799d1835
No known key found for this signature in database
GPG Key ID: D865C8A91D7025EB
3 changed files with 16 additions and 13 deletions

View File

@ -165,6 +165,12 @@
If you want to keep slurmctld running as <literal>root</literal>, set If you want to keep slurmctld running as <literal>root</literal>, set
<literal>services.slurm.user = root</literal>. <literal>services.slurm.user = root</literal>.
</para> </para>
<para>
The options <literal>services.slurm.nodeName</literal> and
<literal>services.slurm.partitionName</literal> are now sets of
strings to correctly reflect that fact that each of these
options can occour more than once in the configuration.
</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View File

@ -16,8 +16,8 @@ let
SlurmUser=${cfg.user} SlurmUser=${cfg.user}
${optionalString (cfg.controlMachine != null) ''controlMachine=${cfg.controlMachine}''} ${optionalString (cfg.controlMachine != null) ''controlMachine=${cfg.controlMachine}''}
${optionalString (cfg.controlAddr != null) ''controlAddr=${cfg.controlAddr}''} ${optionalString (cfg.controlAddr != null) ''controlAddr=${cfg.controlAddr}''}
${optionalString (cfg.nodeName != null) ''nodeName=${cfg.nodeName}''} ${toString (map (x: "NodeName=${x}\n") cfg.nodeName)}
${optionalString (cfg.partitionName != null) ''partitionName=${cfg.partitionName}''} ${toString (map (x: "PartitionName=${x}\n") cfg.partitionName)}
PlugStackConfig=${plugStackConfig} PlugStackConfig=${plugStackConfig}
ProctrackType=${cfg.procTrackType} ProctrackType=${cfg.procTrackType}
${cfg.extraConfig} ${cfg.extraConfig}
@ -149,9 +149,9 @@ in
}; };
nodeName = mkOption { nodeName = mkOption {
type = types.nullOr types.str; type = types.listOf types.str;
default = null; default = [];
example = "linux[1-32] CPUs=1 State=UNKNOWN"; example = literalExample ''[ "linux[1-32] CPUs=1 State=UNKNOWN" ];'';
description = '' description = ''
Name that SLURM uses to refer to a node (or base partition for BlueGene Name that SLURM uses to refer to a node (or base partition for BlueGene
systems). Typically this would be the string that "/bin/hostname -s" systems). Typically this would be the string that "/bin/hostname -s"
@ -160,9 +160,9 @@ in
}; };
partitionName = mkOption { partitionName = mkOption {
type = types.nullOr types.str; type = types.listOf types.str;
default = null; default = [];
example = "debug Nodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP"; example = literalExample ''[ "debug Nodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP" ];'';
description = '' description = ''
Name by which the partition may be referenced. Note that now you have Name by which the partition may be referenced. Note that now you have
to write the partition's parameters after the name. to write the partition's parameters after the name.

View File

@ -4,11 +4,8 @@ let
slurmconfig = { slurmconfig = {
controlMachine = "control"; controlMachine = "control";
nodeName = '' nodeName = [ "node[1-3] CPUs=1 State=UNKNOWN" ];
control partitionName = [ "debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP" ];
NodeName=node[1-3] CPUs=1 State=UNKNOWN
'';
partitionName = "debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP";
extraConfig = '' extraConfig = ''
AccountingStorageHost=dbd AccountingStorageHost=dbd
AccountingStorageType=accounting_storage/slurmdbd AccountingStorageType=accounting_storage/slurmdbd