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

added logic to display the enum name of the slurmdbd_msg_type_t enum

parent 3d2ea7d3
No related branches found
No related tags found
No related merge requests found
...@@ -593,6 +593,24 @@ char *slurm_get_accounting_storage_loc(void) ...@@ -593,6 +593,24 @@ char *slurm_get_accounting_storage_loc(void)
return storage_loc; return storage_loc;
} }
/* slurm_get_accounting_storage_enforce
* returns whether or not to enforce associations
*/
int slurm_get_accounting_storage_enforce(void)
{
int enforce = 0;
slurm_ctl_conf_t *conf;
if(slurmdbd_conf) {
} else {
conf = slurm_conf_lock();
enforce = conf->accounting_storage_enforce;
slurm_conf_unlock();
}
return enforce;
}
/* slurm_set_accounting_storage_loc /* slurm_set_accounting_storage_loc
* IN: char *loc (name of file or database) * IN: char *loc (name of file or database)
* RET 0 or error code * RET 0 or error code
......
...@@ -245,6 +245,11 @@ char *slurm_get_accounting_storage_host(void); ...@@ -245,6 +245,11 @@ char *slurm_get_accounting_storage_host(void);
*/ */
char *slurm_get_accounting_storage_loc(void); char *slurm_get_accounting_storage_loc(void);
/* slurm_get_accounting_storage_enforce
* returns whether or not to enforce associations
*/
int slurm_get_accounting_storage_enforce(void);
/* slurm_set_accounting_storage_loc /* slurm_set_accounting_storage_loc
* IN: char *loc (name of file or database) * IN: char *loc (name of file or database)
* RET 0 or error code * RET 0 or error code
......
...@@ -441,9 +441,10 @@ extern Buf pack_slurmdbd_msg(slurmdbd_msg_t *req) ...@@ -441,9 +441,10 @@ extern Buf pack_slurmdbd_msg(slurmdbd_msg_t *req)
req->data, buffer); req->data, buffer);
break; break;
default: default:
error("slurmdbd: Invalid message type pack %u(%s)", error("slurmdbd: Invalid message type pack %u(%s:%u)",
req->msg_type, req->msg_type,
slurmdbd_msg_type_2_str(req->msg_type)); slurmdbd_msg_type_2_str(req->msg_type, 1),
req->msg_type);
free_buf(buffer); free_buf(buffer);
return NULL; return NULL;
} }
...@@ -571,7 +572,8 @@ extern int unpack_slurmdbd_msg(slurmdbd_msg_t *resp, Buf buffer) ...@@ -571,7 +572,8 @@ extern int unpack_slurmdbd_msg(slurmdbd_msg_t *resp, Buf buffer)
default: default:
error("slurmdbd: Invalid message type unpack %u(%s)", error("slurmdbd: Invalid message type unpack %u(%s)",
resp->msg_type, resp->msg_type,
slurmdbd_msg_type_2_str(resp->msg_type)); slurmdbd_msg_type_2_str(resp->msg_type, 1),
resp->msg_type);
return SLURM_ERROR; return SLURM_ERROR;
} }
return rc; return rc;
...@@ -693,161 +695,314 @@ extern slurmdbd_msg_type_t str_2_slurmdbd_msg_type(char *msg_type) ...@@ -693,161 +695,314 @@ extern slurmdbd_msg_type_t str_2_slurmdbd_msg_type(char *msg_type)
return NO_VAL; return NO_VAL;
} }
extern char *slurmdbd_msg_type_2_str(slurmdbd_msg_type_t msg_type) extern char *slurmdbd_msg_type_2_str(slurmdbd_msg_type_t msg_type, int get_enum)
{ {
switch(msg_type) { switch(msg_type) {
case DBD_INIT: case DBD_INIT:
return "Init"; if(get_enum) {
return "DBD_INIT";
} else
return "Init";
break; break;
case DBD_FINI: case DBD_FINI:
return "Fini"; if(get_enum) {
return "DBD_FINI";
} else
return "Fini";
break; break;
case DBD_ADD_ACCOUNTS: case DBD_ADD_ACCOUNTS:
return "Add Accounts"; if(get_enum) {
return "DBD_ADD_ACCOUNTS";
} else
return "Add Accounts";
break; break;
case DBD_ADD_ACCOUNT_COORDS: case DBD_ADD_ACCOUNT_COORDS:
return "Add Account Coord"; if(get_enum) {
return "DBD_ADD_ACCOUNT_COORDS";
} else
return "Add Account Coord";
break; break;
case DBD_ADD_ASSOCS: case DBD_ADD_ASSOCS:
return "Add Associations"; if(get_enum) {
return "DBD_ADD_ASSOCS";
} else
return "Add Associations";
break; break;
case DBD_ADD_CLUSTERS: case DBD_ADD_CLUSTERS:
return "Add Clusters"; if(get_enum) {
return "DBD_ADD_CLUSTERS";
} else
return "Add Clusters";
break; break;
case DBD_ADD_USERS: case DBD_ADD_USERS:
return "Add Users"; if(get_enum) {
return "DBD_ADD_USERS";
} else
return "Add Users";
break; break;
case DBD_CLUSTER_PROCS: case DBD_CLUSTER_PROCS:
return "Cluster Processors"; if(get_enum) {
return "DBD_CLUSTER_PROCS";
} else
return "Cluster Processors";
break; break;
case DBD_FLUSH_JOBS: case DBD_FLUSH_JOBS:
return "Flush Jobs"; if(get_enum) {
return "DBD_FLUSH_JOBS";
} else
return "Flush Jobs";
break; break;
case DBD_GET_ACCOUNTS: case DBD_GET_ACCOUNTS:
return "Get Accounts"; if(get_enum) {
return "DBD_GET_ACCOUNTS";
} else
return "Get Accounts";
break; break;
case DBD_GET_ASSOCS: case DBD_GET_ASSOCS:
return "Get Associations"; if(get_enum) {
return "DBD_GET_ASSOCS";
} else
return "Get Associations";
break; break;
case DBD_GET_ASSOC_USAGE: case DBD_GET_ASSOC_USAGE:
return "Get Association Usage"; if(get_enum) {
return "DBD_GET_ASSOC_USAGE";
} else
return "Get Association Usage";
break; break;
case DBD_GET_CLUSTERS: case DBD_GET_CLUSTERS:
return "Get Clusters"; if(get_enum) {
return "DBD_GET_CLUSTERS";
} else
return "Get Clusters";
break; break;
case DBD_GET_CLUSTER_USAGE: case DBD_GET_CLUSTER_USAGE:
return "Get Cluster Usage"; if(get_enum) {
return "DBD_GET_CLUSTER_USAGE";
} else
return "Get Cluster Usage";
break; break;
case DBD_GET_JOBS: case DBD_GET_JOBS:
return "Get Jobs"; if(get_enum) {
return "DBD_GET_JOBS";
} else
return "Get Jobs";
break; break;
case DBD_GET_USERS: case DBD_GET_USERS:
return "Get Users"; if(get_enum) {
return "DBD_GET_USERS";
} else
return "Get Users";
break; break;
case DBD_GOT_ACCOUNTS: case DBD_GOT_ACCOUNTS:
return "Got Accounts"; if(get_enum) {
return "DBD_GOT_ACCOUNTS";
} else
return "Got Accounts";
break; break;
case DBD_GOT_ASSOCS: case DBD_GOT_ASSOCS:
return "Got Associations"; if(get_enum) {
return "DBD_GOT_ASSOCS";
} else
return "Got Associations";
break; break;
case DBD_GOT_ASSOC_USAGE: case DBD_GOT_ASSOC_USAGE:
return "Got Association Usage"; if(get_enum) {
return "DBD_GOT_ASSOC_USAGE";
} else
return "Got Association Usage";
break; break;
case DBD_GOT_CLUSTERS: case DBD_GOT_CLUSTERS:
return "Got Clusters"; if(get_enum) {
return "DBD_GOT_CLUSTERS";
} else
return "Got Clusters";
break; break;
case DBD_GOT_CLUSTER_USAGE: case DBD_GOT_CLUSTER_USAGE:
return "Got Cluster Usage"; if(get_enum) {
return "DBD_GOT_CLUSTER_USAGE";
} else
return "Got Cluster Usage";
break; break;
case DBD_GOT_JOBS: case DBD_GOT_JOBS:
return "Got Jobs"; if(get_enum) {
return "DBD_GOT_JOBS";
} else
return "Got Jobs";
break; break;
case DBD_GOT_LIST: case DBD_GOT_LIST:
return "Got List"; if(get_enum) {
return "DBD_GOT_LIST";
} else
return "Got List";
break; break;
case DBD_GOT_USERS: case DBD_GOT_USERS:
return "Got Users"; if(get_enum) {
return "DBD_GOT_USERS";
} else
return "Got Users";
break; break;
case DBD_JOB_COMPLETE: case DBD_JOB_COMPLETE:
return "Job Complete"; if(get_enum) {
return "DBD_JOB_COMPLETE";
} else
return "Job Complete";
break; break;
case DBD_JOB_START: case DBD_JOB_START:
return "Job Start"; if(get_enum) {
return "DBD_JOB_START";
} else
return "Job Start";
break; break;
case DBD_JOB_START_RC: case DBD_JOB_START_RC:
return "Job Start RC"; if(get_enum) {
return "DBD_JOB_START_RC";
} else
return "Job Start RC";
break; break;
case DBD_JOB_SUSPEND: case DBD_JOB_SUSPEND:
return "Job Suspend"; if(get_enum) {
return "DBD_JOB_SUSPEND";
} else
return "Job Suspend";
break; break;
case DBD_MODIFY_ACCOUNTS: case DBD_MODIFY_ACCOUNTS:
return "Modify Accounts"; if(get_enum) {
return "DBD_MODIFY_ACCOUNTS";
} else
return "Modify Accounts";
break; break;
case DBD_MODIFY_ASSOCS: case DBD_MODIFY_ASSOCS:
return "Modify Associations"; if(get_enum) {
return "DBD_MODIFY_ASSOCS";
} else
return "Modify Associations";
break; break;
case DBD_MODIFY_CLUSTERS: case DBD_MODIFY_CLUSTERS:
return "Modify Clusters"; if(get_enum) {
return "DBD_MODIFY_CLUSTERS";
} else
return "Modify Clusters";
break; break;
case DBD_MODIFY_USERS: case DBD_MODIFY_USERS:
return "Modify Users"; if(get_enum) {
return "DBD_MODIFY_USERS";
} else
return "Modify Users";
break; break;
case DBD_NODE_STATE: case DBD_NODE_STATE:
return "Node State"; if(get_enum) {
return "DBD_NODE_STATE";
} else
return "Node State";
break; break;
case DBD_RC: case DBD_RC:
return "RC"; if(get_enum) {
return "DBD_RC";
} else
return "Return Code";
break; break;
case DBD_REGISTER_CTLD: case DBD_REGISTER_CTLD:
return "Register Cluster"; if(get_enum) {
return "DBD_REGISTER_CTLD";
} else
return "Register Cluster";
break; break;
case DBD_REMOVE_ACCOUNTS: case DBD_REMOVE_ACCOUNTS:
return "Remove Accounts"; if(get_enum) {
return "DBD_REMOVE_ACCOUNTS";
} else
return "Remove Accounts";
break; break;
case DBD_REMOVE_ACCOUNT_COORDS: case DBD_REMOVE_ACCOUNT_COORDS:
return "Remove Account Coords"; if(get_enum) {
return "DBD_REMOVE_ACCOUNT_COORDS";
} else
return "Remove Account Coords";
break; break;
case DBD_REMOVE_ASSOCS: case DBD_REMOVE_ASSOCS:
return "Remove Associations"; if(get_enum) {
return "DBD_REMOVE_ASSOCS";
} else
return "Remove Associations";
break; break;
case DBD_REMOVE_CLUSTERS: case DBD_REMOVE_CLUSTERS:
return "Remove Clusters"; if(get_enum) {
return "DBD_REMOVE_CLUSTERS";
} else
return "Remove Clusters";
break; break;
case DBD_REMOVE_USERS: case DBD_REMOVE_USERS:
return "Remove Users"; if(get_enum) {
return "DBD_REMOVE_USERS";
} else
return "Remove Users";
break; break;
case DBD_ROLL_USAGE: case DBD_ROLL_USAGE:
return "Roll Usage"; if(get_enum) {
return "DBD_ROLL_USAGE";
} else
return "Roll Usage";
break; break;
case DBD_STEP_COMPLETE: case DBD_STEP_COMPLETE:
return "Step Complete"; if(get_enum) {
return "DBD_STEP_COMPLETE";
} else
return "Step Complete";
break; break;
case DBD_STEP_START: case DBD_STEP_START:
return "Step Start"; if(get_enum) {
return "DBD_STEP_START";
} else
return "Step Start";
break; break;
case DBD_UPDATE_SHARES_USED: case DBD_UPDATE_SHARES_USED:
return "Update Shares Used"; if(get_enum) {
return "DBD_UPDATE_SHARES_USED";
} else
return "Update Shares Used";
break; break;
case DBD_GET_JOBS_COND: case DBD_GET_JOBS_COND:
return "Get Jobs Conditional"; if(get_enum) {
return "DBD_GET_JOBS_COND";
} else
return "Get Jobs Conditional";
break; break;
case DBD_GET_TXN: case DBD_GET_TXN:
return "Get Transations"; if(get_enum) {
return "DBD_GET_TXN";
} else
return "Get Transations";
break; break;
case DBD_GOT_TXN: case DBD_GOT_TXN:
return "Got Transations"; if(get_enum) {
return "DBD_GOT_TXN";
} else
return "Got Transations";
break; break;
case DBD_ADD_QOS: case DBD_ADD_QOS:
return "Add QOS"; if(get_enum) {
return "DBD_ADD_QOS";
} else
return "Add QOS";
break; break;
case DBD_GET_QOS: case DBD_GET_QOS:
return "Get QOS"; if(get_enum) {
return "DBD_GET_QOS";
} else
return "Get QOS";
break; break;
case DBD_GOT_QOS: case DBD_GOT_QOS:
return "Got QOS"; if(get_enum) {
return "DBD_GOT_QOS";
} else
return "Got QOS";
break; break;
case DBD_REMOVE_QOS: case DBD_REMOVE_QOS:
return "Remove QOS"; if(get_enum) {
return "DBD_REMOVE_QOS";
} else
return "Remove QOS";
break; break;
default: default:
return "Unknown"; return "Unknown";
...@@ -985,9 +1140,20 @@ static int _get_return_code(void) ...@@ -985,9 +1140,20 @@ static int _get_return_code(void)
case DBD_RC: case DBD_RC:
if (slurmdbd_unpack_rc_msg(&msg, buffer) == SLURM_SUCCESS) { if (slurmdbd_unpack_rc_msg(&msg, buffer) == SLURM_SUCCESS) {
rc = msg->return_code; rc = msg->return_code;
if (rc != SLURM_SUCCESS) if (rc != SLURM_SUCCESS) {
error("slurmdbd: DBD_RC is %d from %u: %s", error("slurmdbd: DBD_RC is %d from %s(%u): %s",
rc, msg->sent_type, msg->comment); rc,
slurmdbd_msg_type_2_str(msg->sent_type,
1),
msg->sent_type,
msg->comment);
if(msg->sent_type == DBD_REGISTER_CTLD &&
slurm_get_accounting_storage_enforce())
fatal("You need to add this cluster "
"to accounting if you want to "
"enforce associations, or no "
"jobs will ever run.");
}
slurmdbd_free_rc_msg(msg); slurmdbd_free_rc_msg(msg);
} else } else
error("slurmdbd: unpack message error"); error("slurmdbd: unpack message error");
......
...@@ -355,7 +355,8 @@ extern Buf pack_slurmdbd_msg(slurmdbd_msg_t *req); ...@@ -355,7 +355,8 @@ extern Buf pack_slurmdbd_msg(slurmdbd_msg_t *req);
extern int unpack_slurmdbd_msg(slurmdbd_msg_t *resp, Buf buffer); extern int unpack_slurmdbd_msg(slurmdbd_msg_t *resp, Buf buffer);
extern slurmdbd_msg_type_t str_2_slurmdbd_msg_type(char *msg_type); extern slurmdbd_msg_type_t str_2_slurmdbd_msg_type(char *msg_type);
extern char *slurmdbd_msg_type_2_str(slurmdbd_msg_type_t msg_type); extern char *slurmdbd_msg_type_2_str(slurmdbd_msg_type_t msg_type,
int get_enum);
/*****************************************************************************\ /*****************************************************************************\
* Free various SlurmDBD message structures * Free various SlurmDBD message structures
......
...@@ -204,7 +204,8 @@ extern int sacctmgr_list_txn(int argc, char *argv[]) ...@@ -204,7 +204,8 @@ extern int sacctmgr_list_txn(int argc, char *argv[])
case PRINT_ACTION: case PRINT_ACTION:
field->print_routine( field->print_routine(
field, field,
slurmdbd_msg_type_2_str(txn->action)); slurmdbd_msg_type_2_str(txn->action,
0));
break; break;
case PRINT_ACTOR: case PRINT_ACTOR:
field->print_routine(field, field->print_routine(field,
......
...@@ -419,10 +419,11 @@ int main(int argc, char *argv[]) ...@@ -419,10 +419,11 @@ int main(int argc, char *argv[])
&thread_attr, _slurmctld_rpc_mgr, NULL)) &thread_attr, _slurmctld_rpc_mgr, NULL))
fatal("pthread_create error %m"); fatal("pthread_create error %m");
slurm_attr_destroy(&thread_attr); slurm_attr_destroy(&thread_attr);
clusteracct_storage_g_register_ctld(
slurmctld_conf.cluster_name,
slurmctld_conf.slurmctld_port);
clusteracct_storage_g_register_ctld(
slurmctld_conf.cluster_name,
slurmctld_conf.slurmctld_port);
/* /*
* create attached thread for signal handling * create attached thread for signal handling
*/ */
......
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