Releases: PySlurm/pyslurm
Releases · PySlurm/pyslurm
v23.11.0
Added
- Support for Slurm 23.11.x
- Add
truncate_time
option topyslurm.db.JobFilter
, which is the same as -T /
--truncate from sacct. - Add new attributes to
pyslurm.db.Jobs
that help gathering statistics for a
collection of Jobs more convenient. - Add new attribute
gres_tasks_per_sharing
topyslurm.Job
and
pyslurm.JobSubmitDescription
Fixed
- Fix
allocated_gres
attribute in thepyslurm.Node
Class returning nothing. - Add new
idle_memory
andallocated_tres
attributes topyslurm.Node
class - Fix Node State being displayed as
ALLOCATED
when it should actually be
MIXED
. - Fix crash for the
gres_per_node
attribute of thepyslurm.Job
class when
the GRES String received from Slurm contains no count.
Removed
route_plugin
,job_credential_private_key
andjob_credential_public_certificate
keys are removed from the output ofpyslurm.config().get()
- Some deprecated and unused Slurm constants
v22.5.3
v21.8.1
v23.2.2
v22.5.2
v23.2.1
v23.2.0
Changes
- Support for Slurm 23.02.X
- Remove
Elasticsearch
fromget_debug_flags
, as it does not exist anymore. - Remove
launch_type
,launch_params
andslurmctld_plugstack
from theconfig.get()
output, as they do not exist anymore - Remove some constants (mostly
ESLURM_*
constants that do not exist anymore)
v22.5.1
Changes
- Add wait_finished method to jobs class, which blocks until a specified job is finished (#242 by @JonaOtto)
- fix some typos (#243 by @schluenz)
- fix not being able to create RPMs with
bdist_rpm
(#248) - fix formatting erros, add end_time to
slurm_update_reservation
and raise a properValueError
when updating the reservation fails (#257, #256, #255 by @pllopis) - actually retrieve and return the batch script as a string, instead of just printing it (#258)
- bring possible RPC strings in sync with slurm 22.05 when getting Slurm statistics via the
statistics
class (#261 by @wresch)
v22.5.0
Changes
- Support for Slurm 22.05.X (#238)
- Now actually link to
libslurm.so
instead oflibslurmfull.so
(#238) - Add a pyproject.toml to ease installation (#239)
- Allow specifying Slurm lib-dir and include-dir via environment variables on install (#239):
SLURM_INCLUDE_DIR
SLURM_LIB_DIR
- Removes the
stats
key from the job-allocation dictionary itself when doingslurmdb_jobs.get()
. Support for it was removed upstream here. (stats for job-steps are still accessible though)
v21.8.0
Support for Slurm 21.08 (#227) * Expect slurm version 21.08 * Search slurm version in slurm_version.h Starting from Slurm >= 21.08, slurm version is declared in this dedicated header file. * Port templates to Slurm 21.08 These templates have been generated using autopxd2, installed with: $ pip install autopxd2 Then, *.pxd files have been generated using these commands: $ cd /usr/include $ autopxd --include-dir . slurm/slurm_errno.h > \ ~/pyslurm/jinja2/slurm_errno.h.pxd $ autopxd --include-dir . slurm/slurm.h > \ ~/pyslurm/jinja2/slurm.h.pxd $ autopxd --include-dir . slurm/slurmdb.h > \ ~/pyslurm/jinja2/slurmdb.h.pxd Then, jinja2/slurm.h.pxd and jinja2/slurmdb.h.pxd have been manually modified to: - Remove libc.stdint import - Remove duplicated slurm_errno symbols - Include defines from dedicated subdir Additionally: - in jinja2/slurm.h.pxd: - symbols SLURM_ERROR, SLURM_SUCCESS and SLURM_VERSION have been restored, - slurm_addr_t control_addr and pthread_mutex_t lock are commented out, just like before, to avoid compilation error with these types (they are not used by pyslurm). - in jinja2/slurmdb.h.pxd, all symbols duplicated in jinja2/slurm.h.pxd have been removed. This finally produces this commit. * Transpose e79981c in template * Update slurmdb CLUSTER_FLAGS defs for 21.08 * Update slurm CPU_FREQ defs for 21.08 * Update NODE_STATE defs for slurm 21.08 * Update DEBUG_FLAG defs for slurm 21.08 * Update READY_* defs for slurm 21.08 * Generate pyslurm/slurm.pxd based on template To generate this files, I used j2cli: $ pip install j2cli $ j2 jinja2/slurm.j2 > pyslurm/slurm.pxd * Update python structures for slurm 21.08 There are some new parameters, some have vanished, some have been renamed. * Update *.pxi following latest defs changes * Add new sibling arg to slurm_kill_job2() Slurm 21.08 slurm_kill_job2() now expects a fourth char* sibling argument. * Bump __version__ * Typo fix in slurmdb job dict key * Update slurm version in README * Update NODE_STATE in examples * Use docker image tag 21.08.0 for tests * Update test_slurm_api_version expected value * Use NULL slurmdb_connection_get persist_conn_flags Use hard-coded NULL slurm.slurmdb_connection_get() persist_conn_flags consistently. Persistent connections are not used in PySlurm. The variable was declared to NULL and not used elsewhere, the pointer was not preallocated in class slurmdb_jobs. I propose NULL to be used consistently in both cases. Co-authored-by: Nicholas Carriero <njcarriero@gmail.com> * Initialize and dealloc slurmdb_clusters db_conn Class slurmdb_clusters db_conn attribute is declared and used in get() but it was not initialized with a proper connection. Also close and free the allocation in __dealloc__(). Co-authored-by: Nicholas Carriero <njcarriero@gmail.com> * Add missing slurm_init() and slurm_fini() Starting from Slurm 20.11, slurm_init() must be called prior to any other Slurm library API calls. For the moment, its load Slurm configuration structure. For reference: https://github.com/SchedMD/slurm/commit/e35a6e3 On the other side, slurm_fini() cleanup the configuration data structures in memory. Co-authored-by: Nicholas Carriero <njcarriero@gmail.com> * Call slurm_init() at pyslurm module load This way, PySlurm consumers do not have to do it explicitely. * Bump to docker-centos7-slurm:21.08.6 * fix: update tests to use pyenv Co-authored-by: Nicholas Carriero <njcarriero@gmail.com> Co-authored-by: Giovanni Torres <giovanni.torres@gmail.com>