anchor.diff:      computeNode =
         { ...}:
         {
  +        imports = [ slurmconfig ];
           # TODO slurmd port and slurmctld port should be configurations and
           # automatically allowed by the  firewall.
  -        networking.firewall.enable = false;
           services.slurm = {
             client.enable = true;
  -        } // slurmconfig;
  +        };
         };
       in {
   
       control =
         { ...}:
         {
  -        networking.firewall.enable = false;
  +        imports = [ slurmconfig ];
           services.slurm = {
             server.enable = true;
  -        } // slurmconfig;
  +        };
         };
   
       submit =
         { ...}:
         {
  -        networking.firewall.enable = false;
  +        imports = [ slurmconfig ];
           services.slurm = {
             enableStools = true;
  -        } // slurmconfig;
  +        };
         };
   
       dbd =
         { pkgs, ... } :
         {
           networking.firewall.enable = false;
  +        systemd.tmpfiles.rules = [
  +          "f /etc/munge/munge.key 0400 munge munge - mungeverryweakkeybuteasytointegratoinatest"
  +        ];
           services.slurm.dbdserver = {
             enable = true;
             storagePass = "password123";
  
positive.code:           # find the srun job from above in the database
            control.succeed("sleep 5")
            control.succeed("sacct | grep hostname")
    '';
  })
  
negative.code:   ''
    start_all()
  
    # Make sure DBD is up after DB initialzation
    with subtest("can_start_slurmdbd"):
        dbd.succeed("systemctl restart slurmdbd")
        dbd.wait_for_unit("slurmdbd.service")
  