| --[[ |
| |
| Example lua script demonstrating the Slurm job_submit/lua interface. |
| This is only an example, not meant for use in its current form. |
| |
| For use, this script should be copied into a file name "job_submit.lua" |
| in the same directory as the Slurm configuration file, slurm.conf. |
| |
| --]] |
| |
| function slurm_job_submit(job_desc, part_list, submit_uid) |
| if job_desc.account == nil then |
| local account = "***TEST_ACCOUNT***" |
| slurm.log_info("slurm_job_submit: job from uid %u, setting default account value: %s", |
| submit_uid, account) |
| job_desc.account = account |
| end |
| -- If no default partition, set the partition to the highest |
| -- priority partition this user has access to |
| if job_desc.partition == nil then |
| local new_partition = nil |
| local top_priority = -1 |
| local last_priority = -1 |
| local inx = 0 |
| for name, part in pairs(part_list) do |
| slurm.log_info("part name[%d]:%s", inx, part.name) |
| inx = inx + 1 |
| if part.flag_default ~= 0 then |
| top_priority = -1 |
| break |
| end |
| last_priority = part.priority |
| if last_priority > top_priority then |
| top_priority = last_priority |
| new_partition = part.name |
| end |
| end |
| if top_priority >= 0 then |
| slurm.log_info("slurm_job_submit: job from uid %u, setting default partition value: %s", |
| job_desc.user_id, new_partition) |
| job_desc.partition = new_partition |
| end |
| end |
| |
| return slurm.SUCCESS |
| end |
| |
| function slurm_job_modify(job_desc, job_rec, part_list, modify_uid) |
| if job_desc.comment == nil then |
| local comment = "***TEST_COMMENT***" |
| slurm.log_info("slurm_job_modify: for job %u from uid %u, setting default comment value: %s", |
| job_rec.job_id, modify_uid, comment) |
| job_desc.comment = comment |
| end |
| |
| return slurm.SUCCESS |
| end |
| |
| slurm.log_info("initialized") |
| return slurm.SUCCESS |