From 289c7341a701e3a27f07d0827749a7243d8f8c02 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Mon, 12 Jul 2010 20:07:20 +0000 Subject: [PATCH] orginized things better so uint64_t would look similar to the uint32_t --- .../mysql/accounting_storage_mysql.c | 122 ++++++++-------- .../accounting_storage/mysql/as_mysql_qos.c | 138 ++++++++++-------- 2 files changed, 136 insertions(+), 124 deletions(-) diff --git a/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c b/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c index 467ea239e76..99e501361b8 100644 --- a/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c +++ b/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c @@ -1217,7 +1217,6 @@ extern int setup_association_limits(slurmdb_association_rec_t *assoc, assoc->shares_raw = 1; } - /* All 64 bit numbers have to be dealt with this way. */ if(assoc->grp_cpu_mins == (uint64_t)INFINITE) { xstrcat(*cols, ", grp_cpu_mins"); xstrcat(*vals, ", NULL"); @@ -1230,125 +1229,128 @@ extern int setup_association_limits(slurmdb_association_rec_t *assoc, assoc->grp_cpu_mins); } - if((int32_t)assoc->grp_cpus >= 0) { - xstrcat(*cols, ", grp_cpus"); - xstrfmtcat(*vals, ", %u", assoc->grp_cpus); - xstrfmtcat(*extra, ", grp_cpus=%u", assoc->grp_cpus); - } else if(assoc->grp_cpus == INFINITE) { + if(assoc->grp_cpus == INFINITE) { xstrcat(*cols, ", grp_cpus"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_cpus=NULL"); + } else if((assoc->grp_cpus != NO_VAL) + && ((int32_t)assoc->grp_cpus >= 0)) { + xstrcat(*cols, ", grp_cpus"); + xstrfmtcat(*vals, ", %u", assoc->grp_cpus); + xstrfmtcat(*extra, ", grp_cpus=%u", assoc->grp_cpus); } - if((int32_t)assoc->grp_jobs >= 0) { - xstrcat(*cols, ", grp_jobs"); - xstrfmtcat(*vals, ", %u", assoc->grp_jobs); - xstrfmtcat(*extra, ", grp_jobs=%u", assoc->grp_jobs); - } else if(assoc->grp_jobs == INFINITE) { + if(assoc->grp_jobs == INFINITE) { xstrcat(*cols, ", grp_jobs"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_jobs=NULL"); + } else if((assoc->grp_jobs != NO_VAL) + && ((int32_t)assoc->grp_jobs >= 0)) { + xstrcat(*cols, ", grp_jobs"); + xstrfmtcat(*vals, ", %u", assoc->grp_jobs); + xstrfmtcat(*extra, ", grp_jobs=%u", assoc->grp_jobs); } - if((int32_t)assoc->grp_nodes >= 0) { - xstrcat(*cols, ", grp_nodes"); - xstrfmtcat(*vals, ", %u", assoc->grp_nodes); - xstrfmtcat(*extra, ", grp_nodes=%u", assoc->grp_nodes); - } else if(assoc->grp_nodes == INFINITE) { + if(assoc->grp_nodes == INFINITE) { xstrcat(*cols, ", grp_nodes"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_nodes=NULL"); + } else if((assoc->grp_nodes != NO_VAL) + && ((int32_t)assoc->grp_nodes >= 0)) { + xstrcat(*cols, ", grp_nodes"); + xstrfmtcat(*vals, ", %u", assoc->grp_nodes); + xstrfmtcat(*extra, ", grp_nodes=%u", assoc->grp_nodes); } - if((int32_t)assoc->grp_submit_jobs >= 0) { - xstrcat(*cols, ", grp_submit_jobs"); - xstrfmtcat(*vals, ", %u", - assoc->grp_submit_jobs); - xstrfmtcat(*extra, ", grp_submit_jobs=%u", - assoc->grp_submit_jobs); - } else if(assoc->grp_submit_jobs == INFINITE) { + if(assoc->grp_submit_jobs == INFINITE) { xstrcat(*cols, ", grp_submit_jobs"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_submit_jobs=NULL"); + } else if((assoc->grp_submit_jobs != NO_VAL) + && ((int32_t)assoc->grp_submit_jobs >= 0)) { + xstrcat(*cols, ", grp_submit_jobs"); + xstrfmtcat(*vals, ", %u", assoc->grp_submit_jobs); + xstrfmtcat(*extra, ", grp_submit_jobs=%u", + assoc->grp_submit_jobs); } - if((int32_t)assoc->grp_wall >= 0) { - xstrcat(*cols, ", grp_wall"); - xstrfmtcat(*vals, ", %u", assoc->grp_wall); - xstrfmtcat(*extra, ", grp_wall=%u", - assoc->grp_wall); - } else if(assoc->grp_wall == INFINITE) { + if(assoc->grp_wall == INFINITE) { xstrcat(*cols, ", grp_wall"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_wall=NULL"); + } else if((assoc->grp_wall != NO_VAL) + && ((int32_t)assoc->grp_wall >= 0)) { + xstrcat(*cols, ", grp_wall"); + xstrfmtcat(*vals, ", %u", assoc->grp_wall); + xstrfmtcat(*extra, ", grp_wall=%u", assoc->grp_wall); } - /* All 64 bit numbers have to be dealt with this way. */ if(assoc->max_cpu_mins_pj == (uint64_t)INFINITE) { xstrcat(*cols, ", max_cpu_mins_pj"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", max_cpu_mins_pj=NULL"); } else if((assoc->max_cpu_mins_pj != (uint64_t)NO_VAL) - && ((int64_t)assoc->max_cpu_mins_pj >= 0)) { + && ((int64_t)assoc->max_cpu_mins_pj >= 0)) { xstrcat(*cols, ", max_cpu_mins_pj"); xstrfmtcat(*vals, ", %llu", assoc->max_cpu_mins_pj); xstrfmtcat(*extra, ", max_cpu_mins_pj=%u", assoc->max_cpu_mins_pj); } - if((int32_t)assoc->max_cpus_pj >= 0) { - xstrcat(*cols, ", max_cpus_pj"); - xstrfmtcat(*vals, ", %u", assoc->max_cpus_pj); - xstrfmtcat(*extra, ", max_cpus_pj=%u", - assoc->max_cpus_pj); - } else if(assoc->max_cpus_pj == INFINITE) { + if(assoc->max_cpus_pj == INFINITE) { xstrcat(*cols, ", max_cpus_pj"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", max_cpus_pj=NULL"); + } else if((assoc->max_cpus_pj != NO_VAL) + && ((int32_t)assoc->max_cpus_pj >= 0)) { + xstrcat(*cols, ", max_cpus_pj"); + xstrfmtcat(*vals, ", %u", assoc->max_cpus_pj); + xstrfmtcat(*extra, ", max_cpus_pj=%u", assoc->max_cpus_pj); } - if((int32_t)assoc->max_jobs >= 0) { - xstrcat(*cols, ", max_jobs"); - xstrfmtcat(*vals, ", %u", assoc->max_jobs); - xstrfmtcat(*extra, ", max_jobs=%u", - assoc->max_jobs); - } else if(assoc->max_jobs == INFINITE) { + if(assoc->max_jobs == INFINITE) { xstrcat(*cols, ", max_jobs"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", max_jobs=NULL"); + } else if((assoc->max_jobs != NO_VAL) + && ((int32_t)assoc->max_jobs >= 0)) { + xstrcat(*cols, ", max_jobs"); + xstrfmtcat(*vals, ", %u", assoc->max_jobs); + xstrfmtcat(*extra, ", max_jobs=%u", assoc->max_jobs); } - if((int32_t)assoc->max_nodes_pj >= 0) { - xstrcat(*cols, ", max_nodes_pj"); - xstrfmtcat(*vals, ", %u", assoc->max_nodes_pj); - xstrfmtcat(*extra, ", max_nodes_pj=%u", - assoc->max_nodes_pj); - } else if(assoc->max_nodes_pj == INFINITE) { + if(assoc->max_nodes_pj == INFINITE) { xstrcat(*cols, ", max_nodes_pj"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", max_nodes_pj=NULL"); + } else if((assoc->max_nodes_pj != NO_VAL) + && ((int32_t)assoc->max_nodes_pj >= 0)) { + xstrcat(*cols, ", max_nodes_pj"); + xstrfmtcat(*vals, ", %u", assoc->max_nodes_pj); + xstrfmtcat(*extra, ", max_nodes_pj=%u", assoc->max_nodes_pj); } - if((int32_t)assoc->max_submit_jobs >= 0) { + if(assoc->max_submit_jobs == INFINITE) { + xstrcat(*cols, ", max_submit_jobs"); + xstrcat(*vals, ", NULL"); + xstrcat(*extra, ", max_submit_jobs=NULL"); + } else if((assoc->max_submit_jobs != NO_VAL) + && ((int32_t)assoc->max_submit_jobs >= 0)) { xstrcat(*cols, ", max_submit_jobs"); xstrfmtcat(*vals, ", %u", assoc->max_submit_jobs); xstrfmtcat(*extra, ", max_submit_jobs=%u", assoc->max_submit_jobs); - } else if(assoc->max_submit_jobs == INFINITE) { - xstrcat(*cols, ", max_submit_jobs"); - xstrcat(*vals, ", NULL"); - xstrcat(*extra, ", max_submit_jobs=NULL"); } - if((int32_t)assoc->max_wall_pj >= 0) { - xstrcat(*cols, ", max_wall_pj"); - xstrfmtcat(*vals, ", %u", assoc->max_wall_pj); - xstrfmtcat(*extra, ", max_wall_pj=%u", - assoc->max_wall_pj); - } else if(assoc->max_wall_pj == INFINITE) { + if(assoc->max_wall_pj == INFINITE) { xstrcat(*cols, ", max_wall_pj"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", max_wall_pj=NULL"); + } else if((assoc->max_wall_pj != NO_VAL) + && ((int32_t)assoc->max_wall_pj >= 0)) { + xstrcat(*cols, ", max_wall_pj"); + xstrfmtcat(*vals, ", %u", assoc->max_wall_pj); + xstrfmtcat(*extra, ", max_wall_pj=%u", assoc->max_wall_pj); } /* when modifying the qos it happens in the actual function diff --git a/src/plugins/accounting_storage/mysql/as_mysql_qos.c b/src/plugins/accounting_storage/mysql/as_mysql_qos.c index 9626134dab5..0b05f79b09e 100644 --- a/src/plugins/accounting_storage/mysql/as_mysql_qos.c +++ b/src/plugins/accounting_storage/mysql/as_mysql_qos.c @@ -114,57 +114,60 @@ static int _setup_qos_limits(slurmdb_qos_rec_t *qos, qos->grp_cpu_run_mins); } - if((int32_t)qos->grp_cpus >= 0) { - xstrcat(*cols, ", grp_cpus"); - xstrfmtcat(*vals, ", %u", qos->grp_cpus); - xstrfmtcat(*extra, ", grp_cpus=%u", qos->grp_cpus); - } else if(qos->grp_cpus == INFINITE) { + if(qos->grp_cpus == INFINITE) { xstrcat(*cols, ", grp_cpus"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_cpus=NULL"); + } else if((qos->grp_cpus != NO_VAL) + && ((int32_t)qos->grp_cpus >= 0)) { + xstrcat(*cols, ", grp_cpus"); + xstrfmtcat(*vals, ", %u", qos->grp_cpus); + xstrfmtcat(*extra, ", grp_cpus=%u", qos->grp_cpus); } - if((int32_t)qos->grp_jobs >= 0) { - xstrcat(*cols, ", grp_jobs"); - xstrfmtcat(*vals, ", %u", qos->grp_jobs); - xstrfmtcat(*extra, ", grp_jobs=%u", qos->grp_jobs); - } else if(qos->grp_jobs == INFINITE) { + if(qos->grp_jobs == INFINITE) { xstrcat(*cols, ", grp_jobs"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_jobs=NULL"); + } else if((qos->grp_jobs != NO_VAL) + && ((int32_t)qos->grp_jobs >= 0)) { + xstrcat(*cols, ", grp_jobs"); + xstrfmtcat(*vals, ", %u", qos->grp_jobs); + xstrfmtcat(*extra, ", grp_jobs=%u", qos->grp_jobs); } - if((int32_t)qos->grp_nodes >= 0) { - xstrcat(*cols, ", grp_nodes"); - xstrfmtcat(*vals, ", %u", qos->grp_nodes); - xstrfmtcat(*extra, ", grp_nodes=%u", qos->grp_nodes); - } else if(qos->grp_nodes == INFINITE) { + if(qos->grp_nodes == INFINITE) { xstrcat(*cols, ", grp_nodes"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_nodes=NULL"); + } else if((qos->grp_nodes != NO_VAL) + && ((int32_t)qos->grp_nodes >= 0)) { + xstrcat(*cols, ", grp_nodes"); + xstrfmtcat(*vals, ", %u", qos->grp_nodes); + xstrfmtcat(*extra, ", grp_nodes=%u", qos->grp_nodes); } - if((int32_t)qos->grp_submit_jobs >= 0) { - xstrcat(*cols, ", grp_submit_jobs"); - xstrfmtcat(*vals, ", %u", - qos->grp_submit_jobs); - xstrfmtcat(*extra, ", grp_submit_jobs=%u", - qos->grp_submit_jobs); - } else if(qos->grp_submit_jobs == INFINITE) { + if(qos->grp_submit_jobs == INFINITE) { xstrcat(*cols, ", grp_submit_jobs"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_submit_jobs=NULL"); + } else if((qos->grp_submit_jobs != NO_VAL) + && ((int32_t)qos->grp_submit_jobs >= 0)) { + xstrcat(*cols, ", grp_submit_jobs"); + xstrfmtcat(*vals, ", %u", qos->grp_submit_jobs); + xstrfmtcat(*extra, ", grp_submit_jobs=%u", + qos->grp_submit_jobs); } - if((int32_t)qos->grp_wall >= 0) { - xstrcat(*cols, ", grp_wall"); - xstrfmtcat(*vals, ", %u", qos->grp_wall); - xstrfmtcat(*extra, ", grp_wall=%u", - qos->grp_wall); - } else if(qos->grp_wall == INFINITE) { + if(qos->grp_wall == INFINITE) { xstrcat(*cols, ", grp_wall"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", grp_wall=NULL"); + } else if((qos->grp_wall != NO_VAL) + && ((int32_t)qos->grp_wall >= 0)) { + xstrcat(*cols, ", grp_wall"); + xstrfmtcat(*vals, ", %u", qos->grp_wall); + xstrfmtcat(*extra, ", grp_wall=%u", qos->grp_wall); } if(qos->max_cpu_mins_pj == (uint64_t)INFINITE) { @@ -191,51 +194,54 @@ static int _setup_qos_limits(slurmdb_qos_rec_t *qos, qos->max_cpu_run_mins_pu); } - if((int32_t)qos->max_cpus_pj >= 0) { - xstrcat(*cols, ", max_cpus_per_job"); - xstrfmtcat(*vals, ", %u", qos->max_cpus_pj); - xstrfmtcat(*extra, ", max_cpus_per_job=%u", - qos->max_cpus_pj); - } else if(qos->max_cpus_pj == INFINITE) { + if(qos->max_cpus_pj == INFINITE) { xstrcat(*cols, ", max_cpus_per_job"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", max_cpus_per_job=NULL"); + } else if((qos->max_cpus_pj != NO_VAL) + && ((int32_t)qos->max_cpus_pj >= 0)) { + xstrcat(*cols, ", max_cpus_per_job"); + xstrfmtcat(*vals, ", %u", qos->max_cpus_pj); + xstrfmtcat(*extra, ", max_cpus_per_job=%u", qos->max_cpus_pj); } - if((int32_t)qos->max_jobs_pu >= 0) { - xstrcat(*cols, ", max_jobs_per_user"); - xstrfmtcat(*vals, ", %u", qos->max_jobs_pu); - xstrfmtcat(*extra, ", max_jobs_per_user=%u", - qos->max_jobs_pu); - } else if(qos->max_jobs_pu == INFINITE) { + if(qos->max_jobs_pu == INFINITE) { xstrcat(*cols, ", max_jobs_per_user"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", max_jobs_per_user=NULL"); + } else if((qos->max_jobs_pu != NO_VAL) + && ((int32_t)qos->max_jobs_pu >= 0)) { + xstrcat(*cols, ", max_jobs_per_user"); + xstrfmtcat(*vals, ", %u", qos->max_jobs_pu); + xstrfmtcat(*extra, ", max_jobs_per_user=%u", qos->max_jobs_pu); } - if((int32_t)qos->max_nodes_pj >= 0) { + if(qos->max_nodes_pj == INFINITE) { + xstrcat(*cols, ", max_nodes_per_job"); + xstrcat(*vals, ", NULL"); + xstrcat(*extra, ", max_nodes_per_job=NULL"); + } else if((qos->max_nodes_pj != NO_VAL) + && ((int32_t)qos->max_nodes_pj >= 0)) { xstrcat(*cols, ", max_nodes_per_job"); xstrfmtcat(*vals, ", %u", qos->max_nodes_pj); xstrfmtcat(*extra, ", max_nodes_per_job=%u", qos->max_nodes_pj); - } else if(qos->max_nodes_pj == INFINITE) { - xstrcat(*cols, ", max_nodes_per_job"); - xstrcat(*vals, ", NULL"); - xstrcat(*extra, ", max_nodes_per_job=NULL"); } - if((int32_t)qos->max_submit_jobs_pu >= 0) { + if(qos->max_submit_jobs_pu == INFINITE) { + xstrcat(*cols, ", max_submit_jobs_per_user"); + xstrcat(*vals, ", NULL"); + xstrcat(*extra, ", max_submit_jobs_per_user=NULL"); + } else if((qos->max_submit_jobs_pu != NO_VAL) + && ((int32_t)qos->max_submit_jobs_pu >= 0)) { xstrcat(*cols, ", max_submit_jobs_per_user"); xstrfmtcat(*vals, ", %u", qos->max_submit_jobs_pu); xstrfmtcat(*extra, ", max_submit_jobs_per_user=%u", qos->max_submit_jobs_pu); - } else if(qos->max_submit_jobs_pu == INFINITE) { - xstrcat(*cols, ", max_submit_jobs_per_user"); - xstrcat(*vals, ", NULL"); - xstrcat(*extra, ", max_submit_jobs_per_user=NULL"); } - if((int32_t)qos->max_wall_pj >= 0) { + if((qos->max_wall_pj != NO_VAL) + && ((int32_t)qos->max_wall_pj >= 0)) { xstrcat(*cols, ", max_wall_duration_per_job"); xstrfmtcat(*vals, ", %u", qos->max_wall_pj); xstrfmtcat(*extra, ", max_wall_duration_per_job=%u", @@ -289,38 +295,42 @@ static int _setup_qos_limits(slurmdb_qos_rec_t *qos, xfree(preempt_val); } - qos->preempt_mode &= (~PREEMPT_MODE_GANG); - if((int16_t)qos->preempt_mode >= 0) { + if((qos->usage_factor != (int16_t)NO_VAL) + && ((int16_t)qos->preempt_mode >= 0)) { + qos->preempt_mode &= (~PREEMPT_MODE_GANG); xstrcat(*cols, ", preempt_mode"); xstrfmtcat(*vals, ", %u", qos->preempt_mode); xstrfmtcat(*extra, ", preempt_mode=%u", qos->preempt_mode); } - if((int32_t)qos->priority >= 0) { - xstrcat(*cols, ", priority"); - xstrfmtcat(*vals, ", %u", qos->priority); - xstrfmtcat(*extra, ", priority=%u", qos->priority); - } else if (qos->priority == INFINITE) { + if (qos->priority == INFINITE) { xstrcat(*cols, ", priority"); xstrcat(*vals, ", NULL"); xstrcat(*extra, ", priority=NULL"); + } else if((qos->priority != NO_VAL) + && ((int32_t)qos->priority >= 0)) { + xstrcat(*cols, ", priority"); + xstrfmtcat(*vals, ", %u", qos->priority); + xstrfmtcat(*extra, ", priority=%u", qos->priority); } - if((int32_t)qos->usage_factor >= 0) { - xstrcat(*cols, ", usage_factor"); - xstrfmtcat(*vals, ", %f", qos->usage_factor); - xstrfmtcat(*extra, ", usage_factor=%f", qos->usage_factor); - } else if(qos->usage_factor == INFINITE) { + if(qos->usage_factor == INFINITE) { xstrcat(*cols, ", usage_factor"); xstrcat(*vals, ", 1"); xstrcat(*extra, ", usage_factor=1"); + } else if((qos->usage_factor != NO_VAL) + && ((int32_t)qos->usage_factor >= 0)) { + xstrcat(*cols, ", usage_factor"); + xstrfmtcat(*vals, ", %f", qos->usage_factor); + xstrfmtcat(*extra, ", usage_factor=%f", qos->usage_factor); } return SLURM_SUCCESS; } -extern int as_mysql_add_qos(mysql_conn_t *mysql_conn, uint32_t uid, List qos_list) +extern int as_mysql_add_qos(mysql_conn_t *mysql_conn, uint32_t uid, + List qos_list) { ListIterator itr = NULL; int rc = SLURM_SUCCESS; -- GitLab