/* * slurm_print_node_info_msg - output information about all Slurm nodes * based upon message as loaded using slurm_load_node * IN out - file to write to * IN node_info_msg_ptr - node information message pointer * IN one_liner - print as a single line if true */ void slurm_print_node_info_msg ( FILE * out, node_info_msg_t * node_info_msg_ptr, int one_liner ) { int i; node_info_t * node_ptr = node_info_msg_ptr -> node_array ; char time_str[32]; slurm_make_time_str ((time_t *)&node_info_msg_ptr->last_update, time_str, sizeof(time_str)); fprintf( out, "Node data as of %s, record count %d\n", time_str, node_info_msg_ptr->record_count); for (i = 0; i < node_info_msg_ptr-> record_count; i++) { slurm_print_node_table ( out, & node_ptr[i], one_liner ) ; } }
/* * scontrol_print_node - print the specified node's information * IN node_name - NULL to print all node information * IN node_ptr - pointer to node table of information * NOTE: call this only after executing load_node, called from * scontrol_print_node_list * NOTE: To avoid linear searches, we remember the location of the * last name match */ extern void scontrol_print_node (char *node_name, node_info_msg_t * node_buffer_ptr) { int i, j, print_cnt = 0; static int last_inx = 0; for (j = 0; j < node_buffer_ptr->record_count; j++) { if (node_name) { i = (j + last_inx) % node_buffer_ptr->record_count; if ((node_buffer_ptr->node_array[i].name == NULL) || strcmp (node_name, node_buffer_ptr->node_array[i].name)) continue; } else if (node_buffer_ptr->node_array[j].name == NULL) continue; else i = j; print_cnt++; slurm_print_node_table (stdout, & node_buffer_ptr->node_array[i], node_buffer_ptr->node_scaling, one_liner); if (node_name) { last_inx = i; break; } } if (print_cnt == 0) { if (node_name) { exit_code = 1; if (quiet_flag != 1) printf ("Node %s not found\n", node_name); } else if (quiet_flag != 1) printf ("No nodes in the system\n"); } }