blob: bda963e4b221f1988ebdebb202937f231760f289 [file] [log] [blame]
#!/usr/bin/env expect
############################################################################
# Purpose: Test of Slurm functionality
# sacctmgr clear (modify) QoS values
############################################################################
# Copyright (C) 2010 Lawrence Livermore National Security.
# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
# Written by Joseph Donaghy <donaghy1@llnl.gov>
# CODE-OCEC-09-009. All rights reserved.
#
# This file is part of Slurm, a resource management program.
# For details, see <https://slurm.schedmd.com/>.
# Please also read the included file: DISCLAIMER.
#
# Slurm is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# Slurm is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along
# with Slurm; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
############################################################################
source ./globals_accounting
set test_nu "test21-29"
set usagefactor_reset 1.000000
set priority_reset 0
set access_err 0
# QoS Limits
array set qos {}
set qos_name [format "%s%s" $test_nu "qosnormal"]
set qos(GrpCPUMins) 240000
set qos(GrpCPUs) 80
set qos(GrpJobs) 500
set qos(GrpSubmitJobs) 800
set qos(GrpNodes) 10
set qos(GrpWall) 01:00:00
set qos(MaxCPUs) 80
set qos(MaxCPUMins) 60000
set qos(MaxJobs) 50
set qos(MaxSubmitJobs) 100
set qos(MaxNodes) 2
set qos(MaxWall) 01:00:00
set qos(Description) "tqos1"
set qos(Preempt) "normal"
set qos(PreemptMode) "cluster"
set qos(Priority) 2500
set qos(UsageFactor) 5.000000
set timeout 60
#
# Check accounting config and bail if not found.
#
if {[get_config_param "AccountingStorageType"] ne "accounting_storage/slurmdbd"} {
skip "This test can't be run without a usable AccountStorageType"
}
if {[get_admin_level] ne "Administrator"} {
skip "This test can't be run without being an Accounting administrator.\nUse: sacctmgr mod user \$USER set admin=admin"
}
proc cleanup {} {
global qos_name
remove_qos "$qos_name"
}
# Make sure we have a clean system and permission to do this work
cleanup
if {$access_err != 0} {
skip "Not authorized to perform this test"
}
# Add qos
add_qos $qos_name [array get qos]
# Use sacctmgr list to verify the test qos fields
check_qos_limits $qos_name [array get qos]
# Setup the qos array so that we clear all the limits
foreach option [array name qos] {
if {$option ne "PreemptMode" && $option ne "Preempt"} {
set qos($option) -1
}
}
set qos(UsageFactor) $usagefactor_reset
set qos(Description) ""
set qos(Priority) $priority_reset
# Modify qos
if [mod_qos $qos_name [array get qos]] {
fail "Unable to modify QOS ($qos_name)"
}
# Check that the modified QoS limits are correct
check_qos_limits $qos_name [array get qos]