diff --git a/src/common/slurm_accounting_storage.c b/src/common/slurm_accounting_storage.c index 70fa1635ccb7c9d1048c0209b196bca9309246e0..2b4c4bb675c68231fb29bed043ec18d415a159cb 100644 --- a/src/common/slurm_accounting_storage.c +++ b/src/common/slurm_accounting_storage.c @@ -161,8 +161,7 @@ typedef struct slurm_acct_storage_ops { time_t event_time); int (*cluster_cpus) (void *db_conn, char *cluster_nodes, uint32_t cpus, time_t event_time); - int (*register_ctld) (void *db_conn, uint16_t port, - uint16_t dims, uint32_t flags); + int (*register_ctld) (void *db_conn, uint16_t port); int (*job_start) (void *db_conn, struct job_record *job_ptr); int (*job_complete) (void *db_conn, struct job_record *job_ptr); @@ -841,13 +840,12 @@ extern int clusteracct_storage_g_cluster_cpus(void *db_conn, } -extern int clusteracct_storage_g_register_ctld(void *db_conn, uint16_t port, - uint16_t dims, uint32_t flags) +extern int clusteracct_storage_g_register_ctld(void *db_conn, uint16_t port) { if (slurm_acct_storage_init(NULL) < 0) return SLURM_ERROR; return (*(g_acct_storage_context->ops.register_ctld)) - (db_conn, port, dims, flags); + (db_conn, port); } /* diff --git a/src/common/slurm_accounting_storage.h b/src/common/slurm_accounting_storage.h index 0de9cce8adb24ea81b426ce9abda1c1caf642458..c171a4d550ebe7764eac2665704dfb6f6c19934d 100644 --- a/src/common/slurm_accounting_storage.h +++ b/src/common/slurm_accounting_storage.h @@ -490,8 +490,7 @@ extern int clusteracct_storage_g_cluster_cpus(void *db_conn, uint32_t cpus, time_t event_time); -extern int clusteracct_storage_g_register_ctld(void *db_conn, uint16_t port, - uint16_t dims, uint32_t flags); +extern int clusteracct_storage_g_register_ctld(void *db_conn, uint16_t port); /* * load into the storage the start of a job diff --git a/src/plugins/accounting_storage/filetxt/accounting_storage_filetxt.c b/src/plugins/accounting_storage/filetxt/accounting_storage_filetxt.c index 88694a4fb693eb5a48fcc65d63524728624eabd7..a8962790e57ba192475ee0853c471423fcff3fde 100644 --- a/src/plugins/accounting_storage/filetxt/accounting_storage_filetxt.c +++ b/src/plugins/accounting_storage/filetxt/accounting_storage_filetxt.c @@ -500,9 +500,7 @@ extern int clusteracct_storage_p_node_up(void *db_conn, return SLURM_SUCCESS; } -extern int clusteracct_storage_p_register_ctld(void *db_conn, - uint16_t port, uint16_t dims, - uint32_t flags) +extern int clusteracct_storage_p_register_ctld(void *db_conn, uint16_t port) { return SLURM_SUCCESS; } diff --git a/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c b/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c index 3835d0c2d0301896c5169dd7ce4c6feb17ee4070..fa9a0804c138953a59fb16883f7483accedadb52 100644 --- a/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c +++ b/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c @@ -2283,8 +2283,7 @@ extern int clusteracct_storage_p_node_up(mysql_conn_t *mysql_conn, * assumes some things like rpc_version. */ extern int clusteracct_storage_p_register_ctld(mysql_conn_t *mysql_conn, - uint16_t port, - uint16_t dims, uint32_t flags) + uint16_t port) { if(!mysql_conn->cluster_name) { error("%s:%d no cluster name", THIS_FILE, __LINE__); @@ -2292,7 +2291,7 @@ extern int clusteracct_storage_p_register_ctld(mysql_conn_t *mysql_conn, } return as_mysql_register_ctld( - mysql_conn, mysql_conn->cluster_name, port, dims, flags); + mysql_conn, mysql_conn->cluster_name, port); } extern int clusteracct_storage_p_cluster_cpus(mysql_conn_t *mysql_conn, diff --git a/src/plugins/accounting_storage/mysql/as_mysql_cluster.c b/src/plugins/accounting_storage/mysql/as_mysql_cluster.c index 3f48747656c90dcb6e5ae2ed5a26d222b98f2965..3a1e16955373d5f5049bfaa575ad13747ab956d1 100644 --- a/src/plugins/accounting_storage/mysql/as_mysql_cluster.c +++ b/src/plugins/accounting_storage/mysql/as_mysql_cluster.c @@ -41,6 +41,7 @@ #include "as_mysql_cluster.h" #include "as_mysql_usage.h" #include "as_mysql_wckey.h" +#include "src/common/node_select.h" extern int as_mysql_add_clusters(mysql_conn_t *mysql_conn, uint32_t uid, List cluster_list) @@ -1059,13 +1060,13 @@ extern int as_mysql_node_up(mysql_conn_t *mysql_conn, } extern int as_mysql_register_ctld(mysql_conn_t *mysql_conn, - char *cluster, uint16_t port, - uint16_t dims, uint32_t flags) + char *cluster, uint16_t port) { char *query = NULL; char *address = NULL; char hostname[255]; time_t now = time(NULL); + uint32_t flags = slurmdb_setup_cluster_flags(); if(slurmdbd_conf) fatal("clusteracct_storage_g_register_ctld " @@ -1091,17 +1092,17 @@ extern int as_mysql_register_ctld(mysql_conn_t *mysql_conn, query = xstrdup_printf( "update %s set deleted=0, mod_time=%d, " "control_host='%s', control_port=%u, rpc_version=%d, " - "dimensions=%d, flags=%d where name='%s';", - cluster_table, now, address, port, dims, flags, - SLURMDBD_VERSION, - cluster); + "dimensions=%d, flags=%d, plugin_id_select=%d where name='%s';", + cluster_table, now, address, port, SLURMDBD_VERSION, + SYSTEM_DIMENSIONS, flags, select_get_plugin_id(), cluster); xstrfmtcat(query, "insert into %s " "(timestamp, action, name, actor, info) " - "values (%d, %d, '%s', '%s', '%s %u %u %u');", + "values (%d, %d, '%s', '%s', '%s %u %u %u %u');", txn_table, now, DBD_MODIFY_CLUSTERS, cluster, - slurmctld_conf.slurm_user_name, address, port, dims, flags); + slurmctld_conf.slurm_user_name, address, port, + SYSTEM_DIMENSIONS, flags, select_get_plugin_id()); debug3("%d(%s:%d) query\n%s", mysql_conn->conn, THIS_FILE, __LINE__, query); diff --git a/src/plugins/accounting_storage/mysql/as_mysql_cluster.h b/src/plugins/accounting_storage/mysql/as_mysql_cluster.h index 278a88db0ff6793c7edc653f954685f97b58337d..8495c945f6928b2dffb492a31457269204ac8c82 100644 --- a/src/plugins/accounting_storage/mysql/as_mysql_cluster.h +++ b/src/plugins/accounting_storage/mysql/as_mysql_cluster.h @@ -67,8 +67,7 @@ extern int as_mysql_node_up(mysql_conn_t *mysql_conn, time_t event_time); extern int as_mysql_register_ctld(mysql_conn_t *mysql_conn, - char *cluster, uint16_t port, - uint16_t dims, uint32_t flags); + char *cluster, uint16_t port); extern int as_mysql_cluster_cpus(mysql_conn_t *mysql_conn, char *cluster_nodes, uint32_t cpus, diff --git a/src/plugins/accounting_storage/none/accounting_storage_none.c b/src/plugins/accounting_storage/none/accounting_storage_none.c index e809b92a34c54f1f0706f267db6e2be4f16250c6..7bdf8414f67e5c8a78d4050ab18b4dcea505d02d 100644 --- a/src/plugins/accounting_storage/none/accounting_storage_none.c +++ b/src/plugins/accounting_storage/none/accounting_storage_none.c @@ -346,9 +346,7 @@ extern int clusteracct_storage_p_node_up(void *db_conn, return SLURM_SUCCESS; } -extern int clusteracct_storage_p_register_ctld(void *db_conn, - uint16_t port, uint16_t dims, - uint32_t flags) +extern int clusteracct_storage_p_register_ctld(void *db_conn, uint16_t port) { return SLURM_SUCCESS; } diff --git a/src/plugins/accounting_storage/pgsql/accounting_storage_pgsql.c b/src/plugins/accounting_storage/pgsql/accounting_storage_pgsql.c index 68f404cf1b242ff71c30d518303759567ab6c0f1..6981e868c7c85770b8cc76e1fce71a7bd4eec891 100644 --- a/src/plugins/accounting_storage/pgsql/accounting_storage_pgsql.c +++ b/src/plugins/accounting_storage/pgsql/accounting_storage_pgsql.c @@ -564,8 +564,7 @@ extern int clusteracct_storage_p_node_up(pgsql_conn_t *pg_conn, } extern int clusteracct_storage_p_register_ctld(pgsql_conn_t *pg_conn, - uint16_t port, uint16_t dims, - uint32_t flags) + uint16_t port) { if(!pg_conn->cluster_name) { error("%s:%d no cluster name", THIS_FILE, __LINE__); diff --git a/src/plugins/accounting_storage/pgsql/accounting_storage_pgsql.h b/src/plugins/accounting_storage/pgsql/accounting_storage_pgsql.h index 5584a5983e890e0923996b61dc87572f3d42e040..589acca966386c6a1345248ef90bdf0b198f094c 100644 --- a/src/plugins/accounting_storage/pgsql/accounting_storage_pgsql.h +++ b/src/plugins/accounting_storage/pgsql/accounting_storage_pgsql.h @@ -143,8 +143,7 @@ extern int clusteracct_storage_p_node_up(pgsql_conn_t *pg_conn, struct node_record *node_ptr, time_t event_time); extern int clusteracct_storage_p_register_ctld(pgsql_conn_t *pg_conn, - uint16_t port, uint16_t dims, - uint32_t flags); + uint16_t port); extern int clusteracct_storage_p_cluster_cpus(pgsql_conn_t *pg_conn, char *cluster_nodes, uint32_t cpus, diff --git a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c index e8d7cb2912a3cb4a09696befea4fd21a872890f3..4e7560e7311576600f72cf8d06033cab6518a283 100644 --- a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c +++ b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c @@ -1821,8 +1821,7 @@ extern int clusteracct_storage_p_cluster_cpus(void *db_conn, return rc; } -extern int clusteracct_storage_p_register_ctld(void *db_conn, uint16_t port, - uint16_t dims, uint32_t flags) +extern int clusteracct_storage_p_register_ctld(void *db_conn, uint16_t port) { slurmdbd_msg_t msg; dbd_register_ctld_msg_t req; @@ -1831,8 +1830,8 @@ extern int clusteracct_storage_p_register_ctld(void *db_conn, uint16_t port, memset(&req, 0, sizeof(dbd_register_ctld_msg_t)); req.port = port; - req.dimensions = dims; - req.flags = flags; + req.dimensions = SYSTEM_DIMENSIONS; + req.flags = slurmdb_setup_cluster_flags(); req.plugin_id_select = select_get_plugin_id(); msg.msg_type = DBD_REGISTER_CTLD; diff --git a/src/sacctmgr/cluster_functions.c b/src/sacctmgr/cluster_functions.c index 53f95facdc8d9539a2a3a2b0f59227079de90e4f..002cc45d97f097e809e41ea996aebd7ddfcb21ae 100644 --- a/src/sacctmgr/cluster_functions.c +++ b/src/sacctmgr/cluster_functions.c @@ -355,9 +355,11 @@ extern int sacctmgr_add_cluster(int argc, char *argv[]) cluster = xmalloc(sizeof(slurmdb_cluster_rec_t)); list_append(cluster_list, cluster); + cluster->flags = NO_VAL; cluster->name = xstrdup(name); cluster->classification = class; - cluster->root_assoc = xmalloc(sizeof(slurmdb_association_rec_t)); + cluster->root_assoc = + xmalloc(sizeof(slurmdb_association_rec_t)); slurmdb_init_association_rec(cluster->root_assoc); printf(" Name = %s\n", cluster->name); if(cluster->classification) @@ -842,7 +844,8 @@ extern int sacctmgr_modify_cluster(int argc, char *argv[]) { int rc = SLURM_SUCCESS; int i=0; - slurmdb_association_rec_t *assoc = xmalloc(sizeof(slurmdb_association_rec_t)); + slurmdb_association_rec_t *assoc = + xmalloc(sizeof(slurmdb_association_rec_t)); slurmdb_association_cond_t *assoc_cond = xmalloc(sizeof(slurmdb_association_cond_t)); int cond_set = 0, rec_set = 0, set = 0; @@ -975,6 +978,7 @@ extern int sacctmgr_modify_cluster(int argc, char *argv[]) cluster_cond.cluster_list = assoc_cond->cluster_list; cluster_rec.classification = class_rec; + cluster_rec.flags = NO_VAL; ret_list = acct_storage_g_modify_clusters( db_conn, my_uid, &cluster_cond, &cluster_rec); diff --git a/src/sacctmgr/file_functions.c b/src/sacctmgr/file_functions.c index 15abcd1be7ae26849e68c94f124f5a11af803067..cbd3fa0fb15c2344b494b5fd4306ab629acea4c5 100644 --- a/src/sacctmgr/file_functions.c +++ b/src/sacctmgr/file_functions.c @@ -1194,6 +1194,8 @@ static int _mod_cluster(sacctmgr_file_opts_t *file_opts, memset(&mod_cluster, 0, sizeof(slurmdb_cluster_rec_t)); memset(&cluster_cond, 0, sizeof(slurmdb_cluster_cond_t)); + mod_cluster.flags = NO_VAL; + if(file_opts->classification && (file_opts->classification != cluster->classification)) { xstrfmtcat(my_info, @@ -2245,10 +2247,11 @@ extern void load_sacctmgr_cfg_file (int argc, char *argv[]) if(!(cluster = sacctmgr_find_cluster_from_list( curr_cluster_list, cluster_name))) { List temp_assoc_list = list_create(NULL); - List cluster_list = - list_create(slurmdb_destroy_cluster_rec); + List cluster_list = list_create( + slurmdb_destroy_cluster_rec); - cluster = xmalloc(sizeof(slurmdb_cluster_rec_t)); + cluster = xmalloc( + sizeof(slurmdb_cluster_rec_t)); list_append(cluster_list, cluster); cluster->name = xstrdup(cluster_name); if(file_opts->classification) { diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c index 6d76440e63fb11087cdbe7f4308e4a293ad040ad..347d0553b8609e52e6adf6c73f6909828560825b 100644 --- a/src/slurmctld/controller.c +++ b/src/slurmctld/controller.c @@ -159,7 +159,6 @@ int association_based_accounting = 0; bool ping_nodes_now = false; int cluster_cpus = 0; int with_slurmdbd = 0; -uint32_t cluster_flags = 0; /* Local variables */ static int daemonize = DEFAULT_DAEMONIZE; @@ -221,7 +220,6 @@ int main(int argc, char *argv[]) WRITE_LOCK, WRITE_LOCK, WRITE_LOCK, WRITE_LOCK }; assoc_init_args_t assoc_init_arg; pthread_t assoc_cache_thread; - cluster_flags = slurmdb_setup_cluster_flags(); /* * Establish initial configuration @@ -490,8 +488,7 @@ int main(int argc, char *argv[]) clusteracct_storage_g_register_ctld( acct_db_conn, - slurmctld_conf.slurmctld_port, - SYSTEM_DIMENSIONS, cluster_flags); + slurmctld_conf.slurmctld_port); _accounting_cluster_ready(); @@ -1653,8 +1650,7 @@ static int _shutdown_backup_controller(int wait_time) * but just temporarily became non-responsive */ clusteracct_storage_g_register_ctld( acct_db_conn, - slurmctld_conf.slurmctld_port, - SYSTEM_DIMENSIONS, cluster_flags); + slurmctld_conf.slurmctld_port); } } else { error("_shutdown_backup_controller: %s", slurm_strerror(rc));