From df65c0107bfbb01b7c1b806c0e45fc04303931b9 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Thu, 4 Nov 2010 22:14:23 +0000
Subject: [PATCH] fix for not checking correctly the adding of user
 associations

---
 src/sacctmgr/user_functions.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/sacctmgr/user_functions.c b/src/sacctmgr/user_functions.c
index 2d82589457d..5140a5d1b8a 100644
--- a/src/sacctmgr/user_functions.c
+++ b/src/sacctmgr/user_functions.c
@@ -855,7 +855,7 @@ extern int sacctmgr_add_user(int argc, char *argv[])
 		local_assoc_list = acct_storage_g_get_associations(
 			db_conn, my_uid, &query_assoc_cond);
 
-		if(!local_assoc_list) {
+		if (!local_assoc_list) {
 			exit_code=1;
 			fprintf(stderr, " Problem getting associations "
 				"from database.  Contact your admin.\n");
@@ -954,9 +954,9 @@ extern int sacctmgr_add_user(int argc, char *argv[])
 		}
 
 		itr_a = list_iterator_create(assoc_cond->acct_list);
-		while((account = list_next(itr_a))) {
-			if(acct_first) {
-				if(!sacctmgr_find_account_from_list(
+		while ((account = list_next(itr_a))) {
+			if (acct_first) {
+				if (!sacctmgr_find_account_from_list(
 					   local_acct_list, default_acct)) {
 					exit_code=1;
 					fprintf(stderr, " This account '%s' "
@@ -968,11 +968,11 @@ extern int sacctmgr_add_user(int argc, char *argv[])
 				}
 			}
 			itr_c = list_iterator_create(assoc_cond->cluster_list);
-			while((cluster = list_next(itr_c))) {
-				if(!sacctmgr_find_account_base_assoc_from_list(
+			while ((cluster = list_next(itr_c))) {
+				if (!sacctmgr_find_account_base_assoc_from_list(
 					   local_assoc_list, account,
 					   cluster)) {
-					if(acct_first) {
+					if (acct_first) {
 						exit_code=1;
 						fprintf(stderr, " This "
 							"account '%s' "
@@ -1002,6 +1002,9 @@ extern int sacctmgr_add_user(int argc, char *argv[])
 					assoc->acct = xstrdup(account);
 					assoc->cluster = xstrdup(cluster);
 					assoc->partition = xstrdup(partition);
+					if(default_acct
+					   && !strcmp(default_acct, account))
+						assoc->is_def = 1;
 
 					assoc->def_qos_id =
 						start_assoc.def_qos_id;
@@ -1034,7 +1037,7 @@ extern int sacctmgr_add_user(int argc, char *argv[])
 					assoc->qos_list = copy_char_list(
 						start_assoc.qos_list);
 
-					if(user)
+					if (user)
 						list_append(user->assoc_list,
 							    assoc);
 					else
@@ -1062,7 +1065,8 @@ extern int sacctmgr_add_user(int argc, char *argv[])
 					sizeof(slurmdb_association_rec_t));
 				slurmdb_init_association_rec(assoc, 0);
 				assoc->user = xstrdup(name);
-				if(user && !strcmp(user->default_acct, account))
+				if(default_acct
+				   && !strcmp(default_acct, account))
 					assoc->is_def = 1;
 				assoc->acct = xstrdup(account);
 				assoc->cluster = xstrdup(cluster);
@@ -1125,8 +1129,8 @@ extern int sacctmgr_add_user(int argc, char *argv[])
 				wckey->user = xstrdup(name);
 				wckey->name = xstrdup(account);
 				wckey->cluster = xstrdup(cluster);
-				if(user
-				   && !strcmp(user->default_wckey, account))
+				if(default_wckey
+				   && !strcmp(default_wckey, account))
 					assoc->is_def = 1;
 				if(user)
 					list_append(user->wckey_list, wckey);
-- 
GitLab