All notable changes to slurm-emulator will be documented in this file.
The format is based on Keep a Changelog.
- Support partition restrictions on user associations
- Fix changelog insertion formatting and set 0.2.0 release date
- Parse
Partitions=p1,p2(and single-formPartition=p1) onsacctmgr add user. OneAssociationrow is created per partition, matching real Slurm's_add_assoc_cond_partitioninas_mysql_assoc.c. - Silently accept
Share=parent(and other unmodeled fairshare / limit attributes) onsacctmgr add user, matching real sacctmgr. - Support
partitionformat field insacctmgr list associationsandsacctmgr show association format=…(rendered per partition row). SlurmDatabase.list_user_associations(user, account, cluster=…)anddelete_user_associations(...)helpers for per-partition row enumeration / wholesale deletion.
Associationgains a singlepartition: Optional[str]field; association key becomesuser:account:cluster:partition. State loader migrates older state files (including the prior interim shape withpartitions: list[str]+default_partition) into one row per partition.sacctmgr remove user where name=X and account=Ynow deletes every partition-scoped row for that pair, matching real sacctmgr.
- Real-Slurm parity:
sacctmgr add user … DefaultPartition=Xnow returnsUnknown option: DefaultPartition=Xand does not persist the association —DefaultPartitionis not a realsacctmgr add userattribute (neitheruser_functions.cnorsacctmgr_set_assoc_recaccepts it). - Real-Slurm parity:
format=partitions,format=defaultpartition, andformat=def_partitionnow returnUnknown field 'X'fromlist associationsandshow association— real Slurm only recognisesPartition(common.cminimum prefixPart).
- Add QOS management support (add, modify, show) in sacctmgr
- Fix bash 3.2 heredoc parsing error in changelog generation
- Fix mypy type error in sacctmgr _show_qos method
- Add per-command flag validation and multi-TRES parsing
- Add multi-cluster support matching real SLURM behavior
- Add
ClusterClassificationenum with validation (capability, capacity, capapacity) - Add cluster fields: id (auto-increment), rpc_version, flags, nodes, tres_str
- Add root account and association auto-creation on cluster add
- Add
cluster=parameter support insacctmgr add accountandsacctmgr add user - Add running/pending job check before cluster deletion
- Add cluster soft-delete (filtered from listings but preserved internally)
- Add backward-compatible state loading for 3 account key formats
- Make accounts global entities instead of per-cluster (aligns with real SLURM)
- Restrict
-Mcluster flag tosacctonly;sacctmgrusescluster=in args - Remove Cluster column from
sacctmgr list accountsoutput - Update
sacctmgr list clustersformat to include RPC and Classification columns
- Fix project URL in metadata
- Extend node TRES support with node-hours tracking
- Clean up setup instructions and documentation
- Initial release of slurm-emulator
- Core emulator with time engine, database, and usage simulator
- CLI interface for interactive time-travel testing
- Command emulators: sacctmgr, sacct, sinfo, scancel
- Periodic limits calculator with decay and carryover logic
- QoS manager with threshold-based transitions
- REST API server for waldur-site-agent integration
- Scenario runner for complete sequence validation
- PyPI publishing via GitHub Actions CI/CD
- Test suite for core components