Skip to content
Snippets Groups Projects
Commit 76cce801 authored by Danny Auble's avatar Danny Auble
Browse files

Handle initialization of the purge_resv option added in pre2 for

accounting.
parent fd43f5cc
No related branches found
No related tags found
No related merge requests found
......@@ -691,6 +691,20 @@ extern int archive_run_script(slurmdb_archive_cond_t *arch_cond,
(long)curr_end);
}
if (arch_cond->purge_resv != NO_VAL) {
if (!(curr_end = archive_setup_end_time(
last_submit, arch_cond->purge_job))) {
error("Parsing purge job failed");
return SLURM_ERROR;
}
env_array_append_fmt(&env, "SLURM_ARCHIVE_RESV", "%u",
SLURMDB_PURGE_ARCHIVE_SET(
arch_cond->purge_job));
env_array_append_fmt(&env, "SLURM_ARCHIVE_LAST_RESV", "%ld",
(long)curr_end);
}
if (arch_cond->purge_step != NO_VAL) {
if (!(curr_end = archive_setup_end_time(
last_submit, arch_cond->purge_step))) {
......
......@@ -128,6 +128,12 @@ static int _process_purge(mysql_conn_t *mysql_conn,
arch_cond.purge_job = slurmdbd_conf->purge_job;
else
arch_cond.purge_job = NO_VAL;
if (purge_period & slurmdbd_conf->purge_resv)
arch_cond.purge_resv = slurmdbd_conf->purge_resv;
else
arch_cond.purge_resv = NO_VAL;
if (purge_period & slurmdbd_conf->purge_step)
arch_cond.purge_step = slurmdbd_conf->purge_step;
else
......
......@@ -176,6 +176,10 @@ static int _set_cond(int *start, int argc, char *argv[],
MAX(command_len, 1))) {
arch_cond->purge_job |= SLURMDB_PURGE_ARCHIVE;
set = 1;
} else if (!end && !strncasecmp(argv[i], "reservations",
MAX(command_len, 1))) {
arch_cond->purge_resv |= SLURMDB_PURGE_ARCHIVE;
set = 1;
} else if (!end && !strncasecmp(argv[i], "steps",
MAX(command_len, 1))) {
arch_cond->purge_step |= SLURMDB_PURGE_ARCHIVE;
......@@ -283,6 +287,15 @@ static int _set_cond(int *start, int argc, char *argv[],
arch_cond->purge_job |= tmp;
set = 1;
}
} else if (!strncasecmp (argv[i], "PurgeResvAfter",
MAX(command_len, 10))) {
if ((tmp = slurmdb_parse_purge(argv[i]+end))
== NO_VAL) {
exit_code = 1;
} else {
arch_cond->purge_resv |= tmp;
set = 1;
}
} else if (!strncasecmp (argv[i], "PurgeStepAfter",
MAX(command_len, 10))) {
if ((tmp = slurmdb_parse_purge(argv[i]+end))
......@@ -321,6 +334,16 @@ static int _set_cond(int *start, int argc, char *argv[],
arch_cond->purge_job |= SLURMDB_PURGE_MONTHS;
set = 1;
}
} else if (!strncasecmp (argv[i], "PurgeResvMonths",
MAX(command_len, 6))) {
if (get_uint(argv[i]+end, &tmp, "PurgeResvMonths")
!= SLURM_SUCCESS) {
exit_code = 1;
} else {
arch_cond->purge_resv |= tmp;
arch_cond->purge_resv |= SLURMDB_PURGE_MONTHS;
set = 1;
}
} else if (!strncasecmp (argv[i], "PurgeStepMonths",
MAX(command_len, 7))) {
if (get_uint(argv[i]+end, &tmp, "PurgeStepMonths")
......@@ -390,6 +413,8 @@ extern int sacctmgr_archive_dump(int argc, char *argv[])
arch_cond->purge_event = NO_VAL;
if (!arch_cond->purge_job)
arch_cond->purge_job = NO_VAL;
if (!arch_cond->purge_resv)
arch_cond->purge_resv = NO_VAL;
if (!arch_cond->purge_step)
arch_cond->purge_step = NO_VAL;
if (!arch_cond->purge_suspend)
......
......@@ -907,6 +907,8 @@ static int _archive_dump(slurmdbd_conn_t *slurmdbd_conn,
arch_cond->purge_event = slurmdbd_conf->purge_event;
if (arch_cond->purge_job == NO_VAL)
arch_cond->purge_job = slurmdbd_conf->purge_job;
if (arch_cond->purge_resv == NO_VAL)
arch_cond->purge_resv = slurmdbd_conf->purge_resv;
if (arch_cond->purge_step == NO_VAL)
arch_cond->purge_step = slurmdbd_conf->purge_step;
if (arch_cond->purge_suspend == NO_VAL)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment