#!/usr/bin/env expect
############################################################################
# Purpose: Test of Slurm functionality
#          sacctmgr add a coordinator
############################################################################
# Copyright (C) 2008-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-19"
set clu		cluster
set tc1		[format "%s%s" $test_nu "clus1"]
set tc2		[format "%s%s" $test_nu "clus2"]
set tc3		[format "%s%s" $test_nu "clus3"]
set fs1		2500
set fs2		1700
set fs3		1
set mc1		1000000
set mc2		700000
set mc3		1
set mj1		50
set mj2		70
set mj3		1
set mn1		300
set mn2		700
set mn3		1
set mw1		01:00:00
set mw2		00:07:00
set mw3		00:01:00
set acc		account
set nams	names
set nm1		[format "%s%s" $test_nu "acct1"]
set nm2		[format "%s%s" $test_nu "acct2"]
set nm3		[format "%s%s" $test_nu "acct3"]
set des		Description
set ds1		testaccounta1
set ds2		testacct
set org		Organization
set or1		accountorga1
set or2		acttrg
set qs		QosLevel
set qs1		normal
set par		parent
set usr		user
set us1         [format "%s%s" $test_nu "user1"]
set us2         [format "%s%s" $test_nu "user2"]
set us3         [format "%s%s" $test_nu "user3"]
set al		AdminLevel
set aln		None
set ala		Administrator
set alo		Operator
set dac		DefaultAccount
set pts		Partitions
set fs		fairshare
set mc		maxcpu
set mj		maxjob
set mn		maxnode
set mw		maxwall
set dbu		debug
set access_err  0

# Cluster
array set clus_req {}

# Accounts
array set acct_req {}
set acct_req(cluster) [format "%s%s" $test_nu "clus1"],[format "%s%s" $test_nu "clus2"],[format "%s%s" $test_nu "clus3"]

# User
array set user_req {}
set user_req(cluster) [format "%s%s" $test_nu "clus1"],[format "%s%s" $test_nu "clus2"],[format "%s%s" $test_nu "clus3"]
set user_req(account) [format "%s%s" $test_nu "acct1"],[format "%s%s" $test_nu "acct2"],[format "%s%s" $test_nu "acct3"]

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"
}

if { [get_config_param -dbd "AllowNoDefAcct"] eq "yes" } {
	set def_acct ""
} else {
	set def_acct $nm1
}

proc cleanup {} {
	global nm1 nm2 nm3 tc1 tc2 tc3 us1 us2 us3

	remove_user "" "" "$us1,$us2,$us3"
	remove_acct "" "$nm1,$nm2,$nm3"
	remove_cluster "$tc1,$tc2,$tc3"
}

# 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 cluster
if [add_cluster "$tc1,$tc2,$tc3" [array get clus_req]] {
	fail "Unable to add clusters ($tc1,$tc2,$tc3)"
}

# Add accounts
if [add_acct "$nm1,$nm2,$nm3" [array get acct_req]] {
	fail "Unable to add accounts ($nm1,$nm2,$nm3)"
}

# Add users
if [add_user "$us1,$us2,$us3" [array get user_req]] {
	fail "Unable to add users ($us1,$us2,$us3)"
}

# Add a coordinator
# accounts names
if [add_coor $nm1 $us1] {
	fail "Unable to add coordinator ($nm1 $us1)"
}

#
# Use sacctmgr to list the test user modification
#
set matches 0
spawn $sacctmgr -n -p list user names=$us1,$us2,$us3 withcoor format=user,DefaultAccount,Admin,Coord cluster=$tc1
expect {
	-re "There was a problem" {
		fail "There was a problem with the sacctmgr command"
	}
	-re "($us1.$def_acct.$aln.$nm1.|($us2|$us3).$def_acct.$aln..)" {
		incr matches
		exp_continue
	}
	timeout {
		fail "sacctmgr list associations not responding"
	}
	eof {
		wait
	}
}

if {$matches != 3} {
	fail "Coordinator add 3 incorrect ($matches != 3)"
}

# Next, add coordinator to two users
if [add_coor "$nm1,$nm3" "$us2,$us3"] {
	fail "Unable to add coordinator ($nm1,$nm3 $us2,$us3)"
}

#
# Use sacctmgr to list the test coordinator additions
#
set matches 0
spawn $sacctmgr -n -p list user names=$us1,$us2,$us3 withcoor format=user,DefaultAccount,Admin,Coord cluster=$tc1
expect {
	-re "There was a problem" {
		fail "There was a problem with the sacctmgr command"
	}
	-re "($us1.$def_acct.$aln.$nm1.|($us2|$us3).$def_acct.$aln.$nm1,$nm3)" {
		incr matches
		exp_continue
	}
	timeout {
		fail "sacctmgr list associations not responding"
	}
	eof {
		wait
	}
}

if {$matches != 3} {
	fail "User modification 3 incorrect ($matches != 3)"
}

# Next, make nm3 parent of nm1
array unset acct_mod_assoc_vals
array unset acct_mod_acct_vals
set acct_mod_acct_vals(parent) $nm3
if [mod_acct $nm1 [array get acct_req] [array get acct_mod_assoc_vals] [array get acct_mod_acct_vals]] {
        fail "Unable to modify account $nm1"
}

#
# Use sacctmgr to list the test coordinator additions
#
set matches 0
spawn $sacctmgr -n -p list user names=$us1,$us2,$us3 withcoor format=user,Coord
expect {
	-re "There was a problem" {
		fail "There was a problem with the sacctmgr command"
	}
	-re "(($us2|$us3).$nm1,$nm3)" {
		incr matches
		exp_continue
	}
	timeout {
		fail "sacctmgr list associations not responding"
	}
	eof {
		wait
	}
}

if {$matches != 2} {
	fail "User modification 2 incorrect ($matches != 2)"
}

# Next, remove nm2 account from tc3
if [remove_acct $tc3 $nm2] {
	fail "Unable to remove account $nm2 from cluster $tc3"
}

# Next, remove all accounts from tc2
if [remove_acct $tc2 "$nm1,$nm2,$nm3"] {
	fail "Unable to remove accounts ($nm1,$nm2,$nm3) from cluster $tc2"
}

#
# Use sacctmgr to list the test coordinator changes
#
set matches 0
spawn $sacctmgr -n -p list user names=$us1,$us2,$us3 withcoor format=user,Coord
expect {
	-re "There was a problem" {
		fail "There was a problem with the sacctmgr command"
	}
	-re "(($us2|$us3).$nm1,$nm3)" {
		incr matches
		exp_continue
	}
	timeout {
		fail "sacctmgr list associations not responding"
	}
	eof {
		wait
	}
}

if {$matches != 2} {
	fail "User modification 2 incorrect ($matches != 2)"
}

# Next, remove all coordinators
if [remove_coor "$nm1,$nm2,$nm3" "$us1,$us2,$us3"] {
	fail "Unable to remove coordinators ($nm1,$nm2,$nm3 $us1,$us2,$us3)"
}

# Next, make all acct members coordinators of nm3 and subs on tc3
array unset acct_req
set acct_req(cluster) $tc3
array unset acct_mod_assoc_vals
array unset acct_mod_acct_vals
set acct_mod_acct_vals(flags) UsersAreCoords
if [mod_acct "$nm3" [array get acct_req] [array get acct_mod_assoc_vals] [array get acct_mod_acct_vals]] {
        fail "Unable to modify account $nm3"
}

#
# Use sacctmgr to list the test coordinator changes
#
set matches 0
spawn $sacctmgr -n -p list user names=$us1,$us2,$us3 withcoor format=user,Coord
expect {
	-re "There was a problem" {
		fail "There was a problem with the sacctmgr command"
	}
	-re "(($us1|$us2|$us3).$nm1,$nm3)" {
		incr matches
		exp_continue
	}
	timeout {
		fail "sacctmgr list associations not responding"
	}
	eof {
		wait
	}
}

if {$matches != 3} {
	fail "User modification 3 incorrect ($matches != 3)"
}
