Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
Slurm
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
tud-zih-energy
Slurm
Commits
3af6f4dc
Commit
3af6f4dc
authored
16 years ago
by
Danny Auble
Browse files
Options
Downloads
Patches
Plain Diff
ok it looks like we got the removes to work correctly
parent
1a7de487
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/common/assoc_mgr.c
+2
-2
2 additions, 2 deletions
src/common/assoc_mgr.c
src/plugins/accounting_storage/mysql/accounting_storage_mysql.c
+205
-60
205 additions, 60 deletions
...ugins/accounting_storage/mysql/accounting_storage_mysql.c
with
207 additions
and
62 deletions
src/common/assoc_mgr.c
+
2
−
2
View file @
3af6f4dc
...
@@ -250,7 +250,6 @@ extern int assoc_mgr_fill_in_assoc(void *db_conn, acct_association_rec_t *assoc,
...
@@ -250,7 +250,6 @@ extern int assoc_mgr_fill_in_assoc(void *db_conn, acct_association_rec_t *assoc,
continue
;
continue
;
}
}
}
}
debug3
(
"found correct association"
);
ret_assoc
=
found_assoc
;
ret_assoc
=
found_assoc
;
break
;
break
;
}
}
...
@@ -263,7 +262,8 @@ extern int assoc_mgr_fill_in_assoc(void *db_conn, acct_association_rec_t *assoc,
...
@@ -263,7 +262,8 @@ extern int assoc_mgr_fill_in_assoc(void *db_conn, acct_association_rec_t *assoc,
else
else
return
SLURM_SUCCESS
;
return
SLURM_SUCCESS
;
}
}
debug3
(
"found correct association"
);
assoc
->
id
=
ret_assoc
->
id
;
assoc
->
id
=
ret_assoc
->
id
;
if
(
!
assoc
->
user
)
if
(
!
assoc
->
user
)
assoc
->
user
=
ret_assoc
->
user
;
assoc
->
user
=
ret_assoc
->
user
;
...
...
This diff is collapsed.
Click to expand it.
src/plugins/accounting_storage/mysql/accounting_storage_mysql.c
+
205
−
60
View file @
3af6f4dc
...
@@ -82,6 +82,7 @@ static mysql_db_info_t *mysql_db_info = NULL;
...
@@ -82,6 +82,7 @@ static mysql_db_info_t *mysql_db_info = NULL;
static
char
*
mysql_db_name
=
NULL
;
static
char
*
mysql_db_name
=
NULL
;
#define DEFAULT_ACCT_DB "slurm_acct_db"
#define DEFAULT_ACCT_DB "slurm_acct_db"
#define DELETE_SEC_BACK 86400
char
*
acct_coord_table
=
"acct_coord_table"
;
char
*
acct_coord_table
=
"acct_coord_table"
;
char
*
acct_table
=
"acct_table"
;
char
*
acct_table
=
"acct_table"
;
...
@@ -340,6 +341,7 @@ static int _modify_common(mysql_conn_t *mysql_conn,
...
@@ -340,6 +341,7 @@ static int _modify_common(mysql_conn_t *mysql_conn,
return
SLURM_SUCCESS
;
return
SLURM_SUCCESS
;
}
}
/* Every option in assoc_char should have a 't1.' infront of it. */
static
int
_remove_common
(
mysql_conn_t
*
mysql_conn
,
static
int
_remove_common
(
mysql_conn_t
*
mysql_conn
,
uint16_t
type
,
uint16_t
type
,
time_t
now
,
time_t
now
,
...
@@ -350,17 +352,19 @@ static int _remove_common(mysql_conn_t *mysql_conn,
...
@@ -350,17 +352,19 @@ static int _remove_common(mysql_conn_t *mysql_conn,
{
{
int
rc
=
SLURM_SUCCESS
;
int
rc
=
SLURM_SUCCESS
;
char
*
query
=
NULL
;
char
*
query
=
NULL
;
char
*
loc_assoc_char
=
NULL
;
MYSQL_RES
*
result
=
NULL
;
MYSQL_RES
*
result
=
NULL
;
MYSQL_ROW
row
;
MYSQL_ROW
row
;
time_t
day_old
=
now
-
86400
;
time_t
day_old
=
now
-
DELETE_SEC_BACK
;
/* we want to remove completely all that is less than a day old */
/* we want to remove completely all that is less than a day old */
if
(
table
!=
assoc_table
)
{
if
(
table
!=
assoc_table
)
{
query
=
xstrdup_printf
(
"delete from %s where creation_time>%d "
query
=
xstrdup_printf
(
"delete from %s where creation_time>%d "
"&& (%s);"
,
"&& (%s);"
,
table
,
day_old
,
name_char
);
table
,
day_old
,
name_char
);
}
/* else { */
}
/* query = xstrdup_printf("delete from %s where %s",) */
/* } */
xstrfmtcat
(
query
,
xstrfmtcat
(
query
,
"update %s set mod_time=%d, deleted=1 "
"update %s set mod_time=%d, deleted=1 "
...
@@ -386,36 +390,154 @@ static int _remove_common(mysql_conn_t *mysql_conn,
...
@@ -386,36 +390,154 @@ static int _remove_common(mysql_conn_t *mysql_conn,
return
SLURM_ERROR
;
return
SLURM_ERROR
;
}
}
/* mark deleted=1 or remove completely the
accounting tables
*/
if
(
table
!=
assoc_table
)
{
/* If we are doing this on an assoc_table we have
already done this, so don't */
query
=
xstrdup_printf
(
"select distinct t1.id "
"from %s as t1, %s as t2 "
"where %s && t1.lft between "
"t2.lft and t2.rgt;"
,
assoc_table
,
assoc_table
,
assoc_char
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
if
(
!
(
result
=
mysql_db_query_ret
(
mysql_conn
->
acct_mysql_db
,
query
)))
{
xfree
(
query
);
if
(
mysql_conn
->
rollback
)
{
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
}
list_destroy
(
mysql_conn
->
update_list
);
mysql_conn
->
update_list
=
list_create
(
destroy_acct_update_object
);
return
SLURM_ERROR
;
}
xfree
(
query
);
rc
=
0
;
loc_assoc_char
=
NULL
;
while
((
row
=
mysql_fetch_row
(
result
)))
{
acct_association_rec_t
*
rem_assoc
=
NULL
;
if
(
!
rc
)
{
xstrfmtcat
(
loc_assoc_char
,
"id=%s"
,
row
[
0
]);
rc
=
1
;
}
else
{
xstrfmtcat
(
loc_assoc_char
,
" || id=%s"
,
row
[
0
]);
}
rem_assoc
=
xmalloc
(
sizeof
(
acct_association_rec_t
));
rem_assoc
->
id
=
atoi
(
row
[
0
]);
if
(
_addto_update_list
(
mysql_conn
->
update_list
,
ACCT_REMOVE_ASSOC
,
rem_assoc
)
!=
SLURM_SUCCESS
)
error
(
"couldn't add to the update list"
);
}
mysql_free_result
(
result
);
}
else
loc_assoc_char
=
name_char
;
query
=
xstrdup_printf
(
"delete from %s where creation_time>%d && (%s);"
"delete from %s where creation_time>%d && (%s);"
"delete from %s where creation_time>%d && (%s);"
,
assoc_day_table
,
day_old
,
loc_assoc_char
,
assoc_hour_table
,
day_old
,
loc_assoc_char
,
assoc_month_table
,
day_old
,
loc_assoc_char
);
xstrfmtcat
(
query
,
"update %s set mod_time=%d, deleted=1 where (%s);"
"update %s set mod_time=%d, deleted=1 where (%s);"
"update %s set mod_time=%d, deleted=1 where (%s);"
,
assoc_day_table
,
now
,
loc_assoc_char
,
assoc_hour_table
,
now
,
loc_assoc_char
,
assoc_month_table
,
now
,
loc_assoc_char
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
rc
=
mysql_db_query
(
mysql_conn
->
acct_mysql_db
,
query
);
xfree
(
query
);
if
(
rc
!=
SLURM_SUCCESS
)
{
if
(
mysql_conn
->
rollback
)
{
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
}
list_destroy
(
mysql_conn
->
update_list
);
mysql_conn
->
update_list
=
list_create
(
destroy_acct_update_object
);
return
SLURM_ERROR
;
}
/* remove completely all the associations for this added in the last
/* remove completely all the associations for this added in the last
* day, since they are most likely nothing we really wanted in
* day, since they are most likely nothing we really wanted in
* the first place.
* the first place.
*/
*/
if
(
table
==
assoc_table
||
!
assoc_char
)
if
(
table
==
assoc_table
)
{
assoc_char
=
name_char
;
assoc_char
=
name_char
;
}
else
if
(
!
assoc_char
)
{
error
(
"no assoc_char"
);
if
(
mysql_conn
->
rollback
)
{
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
}
list_destroy
(
mysql_conn
->
update_list
);
mysql_conn
->
update_list
=
list_create
(
destroy_acct_update_object
);
return
SLURM_ERROR
;
}
query
=
xstrdup_printf
(
"select
lft, rgt
from %s where "
query
=
xstrdup_printf
(
"select
id
from %s
as t1
where "
"creation_time>%d && (%s);"
,
"creation_time>%d && (%s);"
,
assoc_table
,
day_old
,
assoc_char
);
assoc_table
,
day_old
,
assoc_char
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
if
(
!
(
result
=
mysql_db_query_ret
(
mysql_conn
->
acct_mysql_db
,
if
(
!
(
result
=
mysql_db_query_ret
(
mysql_conn
->
acct_mysql_db
,
query
)))
{
query
)))
{
xfree
(
query
);
xfree
(
query
);
if
(
mysql_conn
->
rollback
)
{
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
}
list_destroy
(
mysql_conn
->
update_list
);
mysql_conn
->
update_list
=
list_create
(
destroy_acct_update_object
);
return
SLURM_ERROR
;
return
SLURM_ERROR
;
}
}
xfree
(
query
);
xfree
(
query
);
/* we have to do this one at a time since the lft's and rgt's
change */
while
((
row
=
mysql_fetch_row
(
result
)))
{
while
((
row
=
mysql_fetch_row
(
result
)))
{
int
width
=
(
atoi
(
row
[
1
])
-
atoi
(
row
[
0
])
+
1
);
MYSQL_RES
*
result2
=
NULL
;
MYSQL_ROW
row2
;
xstrfmtcat
(
query
,
"SELECT lft, rgt, (rgt - lft + 1) "
"FROM %s WHERE id = %s;"
,
assoc_table
,
row
[
0
]);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
if
(
!
(
result2
=
mysql_db_query_ret
(
mysql_conn
->
acct_mysql_db
,
query
)))
{
xfree
(
query
);
rc
=
SLURM_ERROR
;
break
;
}
xfree
(
query
);
if
(
!
(
row2
=
mysql_fetch_row
(
result2
)))
{
mysql_free_result
(
result2
);
continue
;
}
xstrfmtcat
(
query
,
xstrfmtcat
(
query
,
"delete from %s where lft between %s AND %s;"
,
"delete quick from %s where lft between "
assoc_table
,
row
[
0
],
row
[
1
]);
"%s AND %s;"
,
assoc_table
,
row2
[
0
],
row2
[
1
]);
xstrfmtcat
(
query
,
xstrfmtcat
(
query
,
"UPDATE %s SET rgt = rgt - %d WHERE rgt > %s;"
"UPDATE %s SET rgt = rgt - %s WHERE "
"UPDATE %s SET lft = lft - %d WHERE lft > %s;"
,
"rgt > %s;"
assoc_table
,
width
,
"UPDATE %s SET lft = lft - %s WHERE "
row
[
1
],
"lft > %s;"
,
assoc_table
,
width
,
assoc_table
,
row2
[
2
],
row
[
1
]);
row2
[
1
],
assoc_table
,
row2
[
2
],
row2
[
1
]);
mysql_free_result
(
result2
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
rc
=
mysql_db_query
(
mysql_conn
->
acct_mysql_db
,
query
);
rc
=
mysql_db_query
(
mysql_conn
->
acct_mysql_db
,
query
);
xfree
(
query
);
xfree
(
query
);
...
@@ -425,48 +547,37 @@ static int _remove_common(mysql_conn_t *mysql_conn,
...
@@ -425,48 +547,37 @@ static int _remove_common(mysql_conn_t *mysql_conn,
}
}
}
}
mysql_free_result
(
result
);
mysql_free_result
(
result
);
if
(
rc
==
SLURM_ERROR
)
if
(
rc
==
SLURM_ERROR
)
{
return
rc
;
if
(
table
==
assoc_table
||
!
assoc_char
)
return
SLURM_SUCCESS
;
query
=
xstrdup_printf
(
"SELECT lft, rgt FROM %s WHERE %s;"
,
assoc_table
,
assoc_char
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
if
(
!
(
result
=
mysql_db_query_ret
(
mysql_conn
->
acct_mysql_db
,
query
)))
{
if
(
mysql_conn
->
rollback
)
{
if
(
mysql_conn
->
rollback
)
{
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
}
}
list_destroy
(
mysql_conn
->
update_list
);
list_destroy
(
mysql_conn
->
update_list
);
mysql_conn
->
update_list
=
mysql_conn
->
update_list
=
list_create
(
destroy_acct_update_object
);
list_create
(
destroy_acct_update_object
);
return
SLURM_ERROR
;
return
rc
;
}
}
if
(
table
==
assoc_table
)
return
SLURM_SUCCESS
;
/* now update the associations themselves that are still around */
query
=
xstrdup_printf
(
"update %s set mod_time=%d, deleted=1 "
"where deleted=0 && (%s);"
,
assoc_table
,
now
,
loc_assoc_char
);
xfree
(
loc_assoc_char
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
rc
=
mysql_db_query
(
mysql_conn
->
acct_mysql_db
,
query
);
xfree
(
query
);
xfree
(
query
);
if
(
rc
!=
SLURM_SUCCESS
)
{
while
((
row
=
mysql_fetch_row
(
result
)))
{
if
(
mysql_conn
->
rollback
)
{
query
=
xstrdup_printf
(
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
"update %s set mod_time=%d, deleted=1 "
"where deleted=0 && lft between %s and %s;"
,
assoc_table
,
now
,
row
[
0
],
row
[
1
]);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
rc
=
mysql_db_query
(
mysql_conn
->
acct_mysql_db
,
query
);
xfree
(
query
);
if
(
rc
!=
SLURM_SUCCESS
)
{
if
(
mysql_conn
->
rollback
)
{
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
}
list_destroy
(
mysql_conn
->
update_list
);
mysql_conn
->
update_list
=
list_create
(
destroy_acct_update_object
);
break
;
}
}
list_destroy
(
mysql_conn
->
update_list
);
mysql_conn
->
update_list
=
list_create
(
destroy_acct_update_object
);
}
}
mysql_free_result
(
result
);
return
rc
;
return
rc
;
}
}
...
@@ -556,7 +667,7 @@ static int _mysql_acct_check_tables(MYSQL *acct_mysql_db)
...
@@ -556,7 +667,7 @@ static int _mysql_acct_check_tables(MYSQL *acct_mysql_db)
{
"creation_time"
,
"int unsigned not null"
},
{
"creation_time"
,
"int unsigned not null"
},
{
"mod_time"
,
"int unsigned default 0 not null"
},
{
"mod_time"
,
"int unsigned default 0 not null"
},
{
"deleted"
,
"tinyint default 0"
},
{
"deleted"
,
"tinyint default 0"
},
{
"
assoc
id"
,
"int not null"
},
{
"id"
,
"int not null"
},
{
"period_start"
,
"int unsigned not null"
},
{
"period_start"
,
"int unsigned not null"
},
{
"cpu_count"
,
"int unsigned default 0"
},
{
"cpu_count"
,
"int unsigned default 0"
},
{
"alloc_cpu_secs"
,
"int unsigned default 0"
},
{
"alloc_cpu_secs"
,
"int unsigned default 0"
},
...
@@ -691,19 +802,19 @@ static int _mysql_acct_check_tables(MYSQL *acct_mysql_db)
...
@@ -691,19 +802,19 @@ static int _mysql_acct_check_tables(MYSQL *acct_mysql_db)
if
(
mysql_db_create_table
(
acct_mysql_db
,
assoc_day_table
,
if
(
mysql_db_create_table
(
acct_mysql_db
,
assoc_day_table
,
assoc_usage_table_fields
,
assoc_usage_table_fields
,
", primary key (
assoc
id, period_start))"
)
", primary key (id, period_start))"
)
==
SLURM_ERROR
)
==
SLURM_ERROR
)
return
SLURM_ERROR
;
return
SLURM_ERROR
;
if
(
mysql_db_create_table
(
acct_mysql_db
,
assoc_hour_table
,
if
(
mysql_db_create_table
(
acct_mysql_db
,
assoc_hour_table
,
assoc_usage_table_fields
,
assoc_usage_table_fields
,
", primary key (
assoc
id, period_start))"
)
", primary key (id, period_start))"
)
==
SLURM_ERROR
)
==
SLURM_ERROR
)
return
SLURM_ERROR
;
return
SLURM_ERROR
;
if
(
mysql_db_create_table
(
acct_mysql_db
,
assoc_month_table
,
if
(
mysql_db_create_table
(
acct_mysql_db
,
assoc_month_table
,
assoc_usage_table_fields
,
assoc_usage_table_fields
,
", primary key (
assoc
id, period_start))"
)
", primary key (id, period_start))"
)
==
SLURM_ERROR
)
==
SLURM_ERROR
)
return
SLURM_ERROR
;
return
SLURM_ERROR
;
...
@@ -1515,7 +1626,7 @@ extern int acct_storage_p_add_associations(mysql_conn_t *mysql_conn,
...
@@ -1515,7 +1626,7 @@ extern int acct_storage_p_add_associations(mysql_conn_t *mysql_conn,
xstrfmtcat
(
query
,
xstrfmtcat
(
query
,
"select distinct %s from %s %s
LOCK IN SHARE MOD
E;"
,
"select distinct %s from %s %s
FOR UPDAT
E;"
,
tmp_char
,
assoc_table
,
update
);
tmp_char
,
assoc_table
,
update
);
xfree
(
tmp_char
);
xfree
(
tmp_char
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
...
@@ -2510,11 +2621,11 @@ extern List acct_storage_p_remove_users(mysql_conn_t *mysql_conn, uint32_t uid,
...
@@ -2510,11 +2621,11 @@ extern List acct_storage_p_remove_users(mysql_conn_t *mysql_conn, uint32_t uid,
list_append
(
ret_list
,
object
);
list_append
(
ret_list
,
object
);
if
(
!
rc
)
{
if
(
!
rc
)
{
xstrfmtcat
(
name_char
,
"name='%s'"
,
object
);
xstrfmtcat
(
name_char
,
"name='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
"user='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
"
t1.
user='%s'"
,
object
);
rc
=
1
;
rc
=
1
;
}
else
{
}
else
{
xstrfmtcat
(
name_char
,
" || name='%s'"
,
object
);
xstrfmtcat
(
name_char
,
" || name='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
" || user='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
" ||
t1.
user='%s'"
,
object
);
}
}
}
}
mysql_free_result
(
result
);
mysql_free_result
(
result
);
...
@@ -2645,11 +2756,11 @@ extern List acct_storage_p_remove_accts(mysql_conn_t *mysql_conn, uint32_t uid,
...
@@ -2645,11 +2756,11 @@ extern List acct_storage_p_remove_accts(mysql_conn_t *mysql_conn, uint32_t uid,
list_append
(
ret_list
,
object
);
list_append
(
ret_list
,
object
);
if
(
!
rc
)
{
if
(
!
rc
)
{
xstrfmtcat
(
name_char
,
"name='%s'"
,
object
);
xstrfmtcat
(
name_char
,
"name='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
"acct='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
"
t1.
acct='%s'"
,
object
);
rc
=
1
;
rc
=
1
;
}
else
{
}
else
{
xstrfmtcat
(
name_char
,
" || name='%s'"
,
object
);
xstrfmtcat
(
name_char
,
" || name='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
" || acct='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
" ||
t1.
acct='%s'"
,
object
);
}
}
}
}
mysql_free_result
(
result
);
mysql_free_result
(
result
);
...
@@ -2693,6 +2804,7 @@ extern List acct_storage_p_remove_clusters(mysql_conn_t *mysql_conn,
...
@@ -2693,6 +2804,7 @@ extern List acct_storage_p_remove_clusters(mysql_conn_t *mysql_conn,
int
set
=
0
;
int
set
=
0
;
MYSQL_RES
*
result
=
NULL
;
MYSQL_RES
*
result
=
NULL
;
MYSQL_ROW
row
;
MYSQL_ROW
row
;
int
day_old
=
now
-
DELETE_SEC_BACK
;
if
(
!
cluster_q
)
{
if
(
!
cluster_q
)
{
error
(
"we need something to change"
);
error
(
"we need something to change"
);
...
@@ -2735,11 +2847,13 @@ extern List acct_storage_p_remove_clusters(mysql_conn_t *mysql_conn,
...
@@ -2735,11 +2847,13 @@ extern List acct_storage_p_remove_clusters(mysql_conn_t *mysql_conn,
list_append
(
ret_list
,
object
);
list_append
(
ret_list
,
object
);
if
(
!
rc
)
{
if
(
!
rc
)
{
xstrfmtcat
(
name_char
,
"name='%s'"
,
object
);
xstrfmtcat
(
name_char
,
"name='%s'"
,
object
);
xstrfmtcat
(
extra
,
"cluster='%s'"
,
object
);
xstrfmtcat
(
extra
,
"t1.cluster='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
"cluster='%s'"
,
object
);
rc
=
1
;
rc
=
1
;
}
else
{
}
else
{
xstrfmtcat
(
name_char
,
" || name='%s'"
,
object
);
xstrfmtcat
(
name_char
,
" || name='%s'"
,
object
);
xstrfmtcat
(
extra
,
" || cluster='%s'"
,
object
);
xstrfmtcat
(
extra
,
" || t1.cluster='%s'"
,
object
);
xstrfmtcat
(
assoc_char
,
" || cluster='%s'"
,
object
);
}
}
}
}
mysql_free_result
(
result
);
mysql_free_result
(
result
);
...
@@ -2751,7 +2865,38 @@ extern List acct_storage_p_remove_clusters(mysql_conn_t *mysql_conn,
...
@@ -2751,7 +2865,38 @@ extern List acct_storage_p_remove_clusters(mysql_conn_t *mysql_conn,
}
}
xfree
(
query
);
xfree
(
query
);
assoc_char
=
xstrdup_printf
(
"acct='root' && (%s)"
,
extra
);
/* if this is a cluster update the machine usage tables as well */
query
=
xstrdup_printf
(
"delete from %s where creation_time>%d && (%s);"
"delete from %s where creation_time>%d && (%s);"
"delete from %s where creation_time>%d && (%s);"
,
cluster_day_table
,
day_old
,
assoc_char
,
cluster_hour_table
,
day_old
,
assoc_char
,
cluster_month_table
,
day_old
,
assoc_char
);
xstrfmtcat
(
query
,
"update %s set mod_time=%d, deleted=1 where (%s);"
"update %s set mod_time=%d, deleted=1 where (%s);"
"update %s set mod_time=%d, deleted=1 where (%s);"
,
cluster_day_table
,
now
,
assoc_char
,
cluster_hour_table
,
now
,
assoc_char
,
cluster_month_table
,
now
,
assoc_char
);
xfree
(
assoc_char
);
debug3
(
"%d query
\n
%s"
,
mysql_conn
->
conn
,
query
);
rc
=
mysql_db_query
(
mysql_conn
->
acct_mysql_db
,
query
);
xfree
(
query
);
if
(
rc
!=
SLURM_SUCCESS
)
{
if
(
mysql_conn
->
rollback
)
{
mysql_db_rollback
(
mysql_conn
->
acct_mysql_db
);
}
list_destroy
(
mysql_conn
->
update_list
);
mysql_conn
->
update_list
=
list_create
(
destroy_acct_update_object
);
list_destroy
(
ret_list
);
xfree
(
name_char
);
xfree
(
extra
);
return
NULL
;
}
assoc_char
=
xstrdup_printf
(
"t1.acct='root' && (%s)"
,
extra
);
xfree
(
extra
);
xfree
(
extra
);
if
(
_remove_common
(
mysql_conn
,
DBD_REMOVE_CLUSTERS
,
now
,
if
(
_remove_common
(
mysql_conn
,
DBD_REMOVE_CLUSTERS
,
now
,
...
@@ -2814,7 +2959,7 @@ extern List acct_storage_p_remove_associations(mysql_conn_t *mysql_conn,
...
@@ -2814,7 +2959,7 @@ extern List acct_storage_p_remove_associations(mysql_conn_t *mysql_conn,
return
NULL
;
return
NULL
;
}
}
xstrcat
(
extra
,
"where t1.deleted=0"
);
xstrcat
(
extra
,
"where
t1.id>0 &&
t1.deleted=0"
);
if
((
pw
=
getpwuid
(
uid
)))
{
if
((
pw
=
getpwuid
(
uid
)))
{
user_name
=
pw
->
pw_name
;
user_name
=
pw
->
pw_name
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment