/* Get the Burst buffer information */ extern int get_new_info_bb(burst_buffer_info_msg_t **info_ptr, int force) { static burst_buffer_info_msg_t *new_bb_ptr = NULL; int error_code = SLURM_NO_CHANGE_IN_DATA; time_t now = time(NULL); static time_t last; static bool changed = 0; if (g_bb_info_ptr && !force && ((now - last) < working_sview_config.refresh_delay)) { if (*info_ptr != g_bb_info_ptr) error_code = SLURM_SUCCESS; *info_ptr = g_bb_info_ptr; if (changed) error_code = SLURM_SUCCESS; goto end_it; } last = now; if (g_bb_info_ptr) { error_code = slurm_load_burst_buffer_info(&new_bb_ptr); if (error_code == SLURM_SUCCESS) { slurm_free_burst_buffer_info_msg(g_bb_info_ptr); changed = 1; } else if (slurm_get_errno() == SLURM_NO_CHANGE_IN_DATA) { error_code = SLURM_NO_CHANGE_IN_DATA; new_bb_ptr = g_bb_info_ptr; changed = 0; } } else { new_bb_ptr = NULL; error_code = slurm_load_burst_buffer_info(&new_bb_ptr); changed = 1; } g_bb_info_ptr = new_bb_ptr; if (g_bb_info_ptr && (*info_ptr != g_bb_info_ptr)) error_code = SLURM_SUCCESS; *info_ptr = g_bb_info_ptr; end_it: return error_code; }
/* * scontrol_print_burst_buffer - print all burst_buffer information to stdout */ extern void scontrol_print_burst_buffer(void) { int error_code, i; burst_buffer_info_msg_t *burst_buffer_info_ptr = NULL; burst_buffer_info_t *burst_buffer_ptr = NULL; error_code = slurm_load_burst_buffer_info(&burst_buffer_info_ptr); if (error_code) { exit_code = 1; if (quiet_flag != 1) slurm_perror ("slurm_load_burst_buffer error"); return; } burst_buffer_ptr = burst_buffer_info_ptr->burst_buffer_array; for (i = 0; i < burst_buffer_info_ptr->record_count; i++) { slurm_print_burst_buffer_record(stdout, &burst_buffer_ptr[i], one_liner); } slurm_free_burst_buffer_info_msg(burst_buffer_info_ptr); }