64
64
double temp_d = (double)value;
66
66
switch(time_format) {
67
case SREPORT_TIME_SECS:
68
output = xstrdup_printf("%llu", value);
67
case SLURMDB_REPORT_TIME_SECS:
68
output = xstrdup_printf("%"PRIu64"", value);
70
case SREPORT_TIME_MINS:
70
case SLURMDB_REPORT_TIME_MINS:
72
72
output = xstrdup_printf("%.0lf", temp_d);
74
case SREPORT_TIME_HOURS:
74
case SLURMDB_REPORT_TIME_HOURS:
76
76
output = xstrdup_printf("%.0lf", temp_d);
78
case SREPORT_TIME_PERCENT:
78
case SLURMDB_REPORT_TIME_PERCENT:
79
79
percent /= total_time;
81
81
output = xstrdup_printf("%.2lf%%", percent);
83
case SREPORT_TIME_SECS_PER:
83
case SLURMDB_REPORT_TIME_SECS_PER:
84
84
percent /= total_time;
86
output = xstrdup_printf("%llu(%.2lf%%)",
86
output = xstrdup_printf("%"PRIu64"(%.2lf%%)",
89
case SREPORT_TIME_MINS_PER:
89
case SLURMDB_REPORT_TIME_MINS_PER:
90
90
percent /= total_time;
93
93
output = xstrdup_printf("%.0lf(%.2lf%%)",
96
case SREPORT_TIME_HOURS_PER:
96
case SLURMDB_REPORT_TIME_HOURS_PER:
97
97
percent /= total_time;
226
226
list_iterator_destroy(itr);
229
extern int set_start_end_time(time_t *start, time_t *end)
231
time_t my_time = time(NULL);
235
int sent_start = (*start), sent_end = (*end);
237
// info("now got %d and %d sent", (*start), (*end));
238
/* Default is going to be the last day */
240
if(!localtime_r(&my_time, &end_tm)) {
241
error("Couldn't get localtime from end %d",
246
//(*end) = mktime(&end_tm);
248
temp_time = sent_end;
249
if(!localtime_r(&temp_time, &end_tm)) {
250
error("Couldn't get localtime from user end %d",
254
if(end_tm.tm_sec >= 30)
256
if(end_tm.tm_min >= 30)
262
end_tm.tm_isdst = -1;
263
(*end) = mktime(&end_tm);
266
if(!localtime_r(&my_time, &start_tm)) {
267
error("Couldn't get localtime from start %d",
271
start_tm.tm_hour = 0;
273
//(*start) = mktime(&start_tm);
275
temp_time = sent_start;
276
if(!localtime_r(&temp_time, &start_tm)) {
277
error("Couldn't get localtime from user start %d",
281
if(start_tm.tm_sec >= 30)
283
if(start_tm.tm_min >= 30)
288
start_tm.tm_isdst = -1;
289
(*start) = mktime(&start_tm);
291
if((*end)-(*start) < 3600)
292
(*end) = (*start) + 3600;
293
/* info("now got %d and %d sent", (*start), (*end)); */
294
/* char start_char[20]; */
295
/* char end_char[20]; */
296
/* time_t my_start = (*start); */
297
/* time_t my_end = (*end); */
299
/* slurm_make_time_str(&my_start, */
300
/* start_char, sizeof(start_char)); */
301
/* slurm_make_time_str(&my_end, */
302
/* end_char, sizeof(end_char)); */
303
/* info("which is %s - %s", start_char, end_char); */
304
return SLURM_SUCCESS;
307
extern void destroy_sreport_assoc_rec(void *object)
309
sreport_assoc_rec_t *sreport_assoc = (sreport_assoc_rec_t *)object;
311
xfree(sreport_assoc->acct);
312
xfree(sreport_assoc->cluster);
313
xfree(sreport_assoc->parent_acct);
314
xfree(sreport_assoc->user);
315
xfree(sreport_assoc);
319
extern void destroy_sreport_user_rec(void *object)
321
sreport_user_rec_t *sreport_user = (sreport_user_rec_t *)object;
323
xfree(sreport_user->acct);
324
if(sreport_user->acct_list)
325
list_destroy(sreport_user->acct_list);
326
xfree(sreport_user->name);
331
extern void destroy_sreport_cluster_rec(void *object)
333
sreport_cluster_rec_t *sreport_cluster =
334
(sreport_cluster_rec_t *)object;
335
if(sreport_cluster) {
336
if(sreport_cluster->assoc_list)
337
list_destroy(sreport_cluster->assoc_list);
338
xfree(sreport_cluster->name);
339
if(sreport_cluster->user_list)
340
list_destroy(sreport_cluster->user_list);
341
xfree(sreport_cluster);
346
230
* Comparator used for sorting users largest cpu to smallest cpu
348
232
* returns: 1: user_a > user_b 0: user_a == user_b -1: user_a < user_b
351
extern int sort_user_dec(sreport_user_rec_t *user_a, sreport_user_rec_t *user_b)
235
extern int sort_user_dec(slurmdb_report_user_rec_t *user_a,
236
slurmdb_report_user_rec_t *user_b)
355
if(sort_flag == SREPORT_SORT_TIME) {
240
if(sort_flag == SLURMDB_REPORT_SORT_TIME) {
356
241
if (user_a->cpu_secs > user_b->cpu_secs)
358
243
else if (user_a->cpu_secs < user_b->cpu_secs)