|
Lines 288-307
extern void slurmdb_pack_used_limits(void *in, uint32_t tres_cnt,
Link Here
|
| 288 |
{ |
288 |
{ |
| 289 |
slurmdb_used_limits_t *object = (slurmdb_used_limits_t *)in; |
289 |
slurmdb_used_limits_t *object = (slurmdb_used_limits_t *)in; |
| 290 |
|
290 |
|
| 291 |
if (!object) { |
291 |
if (rpc_version >= SLURM_16_05_PROTOCOL_VERSION) { |
| 292 |
pack32(0, buffer); |
292 |
if (!object) { |
| 293 |
pack32(0, buffer); |
293 |
packnull(buffer); |
| 294 |
pack64_array(NULL, 0, buffer); |
294 |
pack32(0, buffer); |
| 295 |
pack64_array(NULL, 0, buffer); |
295 |
pack32(0, buffer); |
| 296 |
pack32(0, buffer); |
296 |
pack64_array(NULL, 0, buffer); |
| 297 |
return; |
297 |
pack64_array(NULL, 0, buffer); |
| 298 |
} |
298 |
pack32(0, buffer); |
|
|
299 |
return; |
| 300 |
} |
| 301 |
|
| 302 |
packstr(object->acct, buffer); |
| 303 |
pack32(object->jobs, buffer); |
| 304 |
pack32(object->submit_jobs, buffer); |
| 305 |
pack64_array(object->tres, tres_cnt, buffer); |
| 306 |
pack64_array(object->tres_run_mins, tres_cnt, buffer); |
| 307 |
pack32(object->uid, buffer); |
| 308 |
} else if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
| 309 |
if (!object) { |
| 310 |
pack32(0, buffer); |
| 311 |
pack32(0, buffer); |
| 312 |
pack64_array(NULL, 0, buffer); |
| 313 |
pack64_array(NULL, 0, buffer); |
| 314 |
pack32(0, buffer); |
| 315 |
return; |
| 316 |
} |
| 299 |
|
317 |
|
| 300 |
pack32(object->jobs, buffer); |
318 |
pack32(object->jobs, buffer); |
| 301 |
pack32(object->submit_jobs, buffer); |
319 |
pack32(object->submit_jobs, buffer); |
| 302 |
pack64_array(object->tres, tres_cnt, buffer); |
320 |
pack64_array(object->tres, tres_cnt, buffer); |
| 303 |
pack64_array(object->tres_run_mins, tres_cnt, buffer); |
321 |
pack64_array(object->tres_run_mins, tres_cnt, buffer); |
| 304 |
pack32(object->uid, buffer); |
322 |
pack32(object->uid, buffer); |
|
|
323 |
} |
| 305 |
} |
324 |
} |
| 306 |
|
325 |
|
| 307 |
extern int slurmdb_unpack_used_limits(void **object, uint32_t tres_cnt, |
326 |
extern int slurmdb_unpack_used_limits(void **object, uint32_t tres_cnt, |
|
Lines 313-328
extern int slurmdb_unpack_used_limits(void **object, uint32_t tres_cnt,
Link Here
|
| 313 |
|
332 |
|
| 314 |
*object = (void *)object_ptr; |
333 |
*object = (void *)object_ptr; |
| 315 |
|
334 |
|
| 316 |
safe_unpack32(&object_ptr->jobs, buffer); |
335 |
if (rpc_version >= SLURM_16_05_PROTOCOL_VERSION) { |
| 317 |
safe_unpack32(&object_ptr->submit_jobs, buffer); |
336 |
safe_unpackstr_xmalloc(&object_ptr->acct, &tmp32, buffer); |
| 318 |
safe_unpack64_array(&object_ptr->tres, &tmp32, buffer); |
337 |
safe_unpack32(&object_ptr->jobs, buffer); |
| 319 |
if (tmp32 != tres_cnt) |
338 |
safe_unpack32(&object_ptr->submit_jobs, buffer); |
| 320 |
goto unpack_error; |
339 |
safe_unpack64_array(&object_ptr->tres, &tmp32, buffer); |
| 321 |
safe_unpack64_array(&object_ptr->tres_run_mins, &tmp32, buffer); |
340 |
if (tmp32 != tres_cnt) |
| 322 |
if (tmp32 != tres_cnt) |
341 |
goto unpack_error; |
| 323 |
goto unpack_error; |
342 |
safe_unpack64_array(&object_ptr->tres_run_mins, &tmp32, buffer); |
|
|
343 |
if (tmp32 != tres_cnt) |
| 344 |
goto unpack_error; |
| 345 |
|
| 346 |
safe_unpack32(&object_ptr->uid, buffer); |
| 347 |
} else if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
| 348 |
safe_unpack32(&object_ptr->jobs, buffer); |
| 349 |
safe_unpack32(&object_ptr->submit_jobs, buffer); |
| 350 |
safe_unpack64_array(&object_ptr->tres, &tmp32, buffer); |
| 351 |
if (tmp32 != tres_cnt) |
| 352 |
goto unpack_error; |
| 353 |
safe_unpack64_array(&object_ptr->tres_run_mins, &tmp32, buffer); |
| 354 |
if (tmp32 != tres_cnt) |
| 355 |
goto unpack_error; |
| 324 |
|
356 |
|
| 325 |
safe_unpack32(&object_ptr->uid, buffer); |
357 |
safe_unpack32(&object_ptr->uid, buffer); |
|
|
358 |
} else { |
| 359 |
error("%s: too old of a version %u", __func__, rpc_version); |
| 360 |
goto unpack_error; |
| 361 |
} |
| 326 |
|
362 |
|
| 327 |
return SLURM_SUCCESS; |
363 |
return SLURM_SUCCESS; |
| 328 |
|
364 |
|
|
Lines 1645-1651
extern void slurmdb_pack_qos_rec(void *in, uint16_t rpc_version, Buf buffer)
Link Here
|
| 1645 |
char *tmp_info = NULL; |
1681 |
char *tmp_info = NULL; |
| 1646 |
uint64_t uint64_tmp; |
1682 |
uint64_t uint64_tmp; |
| 1647 |
|
1683 |
|
| 1648 |
if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
1684 |
if (rpc_version >= SLURM_16_05_PROTOCOL_VERSION) { |
|
|
1685 |
if (!object) { |
| 1686 |
packnull(buffer); |
| 1687 |
pack32(0, buffer); |
| 1688 |
|
| 1689 |
pack32(QOS_FLAG_NOTSET, buffer); |
| 1690 |
|
| 1691 |
pack32(NO_VAL, buffer); |
| 1692 |
packnull(buffer); |
| 1693 |
packnull(buffer); |
| 1694 |
packnull(buffer); |
| 1695 |
pack32(NO_VAL, buffer); |
| 1696 |
pack32(NO_VAL, buffer); |
| 1697 |
pack32(NO_VAL, buffer); |
| 1698 |
|
| 1699 |
packnull(buffer); |
| 1700 |
packnull(buffer); |
| 1701 |
packnull(buffer); |
| 1702 |
packnull(buffer); |
| 1703 |
packnull(buffer); |
| 1704 |
packnull(buffer); |
| 1705 |
packnull(buffer); |
| 1706 |
pack32(NO_VAL, buffer); |
| 1707 |
pack32(NO_VAL, buffer); |
| 1708 |
pack32(NO_VAL, buffer); |
| 1709 |
pack32(NO_VAL, buffer); |
| 1710 |
pack32(NO_VAL, buffer); |
| 1711 |
packnull(buffer); |
| 1712 |
|
| 1713 |
packnull(buffer); |
| 1714 |
|
| 1715 |
pack_bit_str_hex(NULL, buffer); |
| 1716 |
pack32(NO_VAL, buffer); |
| 1717 |
|
| 1718 |
pack16(0, buffer); |
| 1719 |
pack32(0, buffer); |
| 1720 |
|
| 1721 |
packdouble(NO_VAL64, buffer); |
| 1722 |
packdouble(NO_VAL64, buffer); |
| 1723 |
return; |
| 1724 |
} |
| 1725 |
packstr(object->description, buffer); |
| 1726 |
pack32(object->id, buffer); |
| 1727 |
|
| 1728 |
pack32(object->flags, buffer); |
| 1729 |
|
| 1730 |
pack32(object->grace_time, buffer); |
| 1731 |
packstr(object->grp_tres_mins, buffer); |
| 1732 |
packstr(object->grp_tres_run_mins, buffer); |
| 1733 |
packstr(object->grp_tres, buffer); |
| 1734 |
pack32(object->grp_jobs, buffer); |
| 1735 |
pack32(object->grp_submit_jobs, buffer); |
| 1736 |
pack32(object->grp_wall, buffer); |
| 1737 |
|
| 1738 |
packstr(object->max_tres_mins_pj, buffer); |
| 1739 |
packstr(object->max_tres_run_mins_pa, buffer); |
| 1740 |
packstr(object->max_tres_run_mins_pu, buffer); |
| 1741 |
packstr(object->max_tres_pa, buffer); |
| 1742 |
packstr(object->max_tres_pj, buffer); |
| 1743 |
packstr(object->max_tres_pn, buffer); |
| 1744 |
packstr(object->max_tres_pu, buffer); |
| 1745 |
pack32(object->max_jobs_pa, buffer); |
| 1746 |
pack32(object->max_jobs_pu, buffer); |
| 1747 |
pack32(object->max_submit_jobs_pa, buffer); |
| 1748 |
pack32(object->max_submit_jobs_pu, buffer); |
| 1749 |
pack32(object->max_wall_pj, buffer); |
| 1750 |
packstr(object->min_tres_pj, buffer); |
| 1751 |
|
| 1752 |
packstr(object->name, buffer); |
| 1753 |
|
| 1754 |
pack_bit_str_hex(object->preempt_bitstr, buffer); |
| 1755 |
|
| 1756 |
if (object->preempt_list) |
| 1757 |
count = list_count(object->preempt_list); |
| 1758 |
|
| 1759 |
pack32(count, buffer); |
| 1760 |
|
| 1761 |
if (count && count != NO_VAL) { |
| 1762 |
itr = list_iterator_create(object->preempt_list); |
| 1763 |
while ((tmp_info = list_next(itr))) { |
| 1764 |
packstr(tmp_info, buffer); |
| 1765 |
} |
| 1766 |
list_iterator_destroy(itr); |
| 1767 |
} |
| 1768 |
|
| 1769 |
pack16(object->preempt_mode, buffer); |
| 1770 |
pack32(object->priority, buffer); |
| 1771 |
|
| 1772 |
packdouble(object->usage_factor, buffer); |
| 1773 |
packdouble(object->usage_thres, buffer); |
| 1774 |
} else if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
| 1649 |
if (!object) { |
1775 |
if (!object) { |
| 1650 |
packnull(buffer); |
1776 |
packnull(buffer); |
| 1651 |
pack32(0, buffer); |
1777 |
pack32(0, buffer); |
|
Lines 1980-1986
extern int slurmdb_unpack_qos_rec(void **object, uint16_t rpc_version,
Link Here
|
| 1980 |
|
2106 |
|
| 1981 |
slurmdb_init_qos_rec(object_ptr, 0, NO_VAL); |
2107 |
slurmdb_init_qos_rec(object_ptr, 0, NO_VAL); |
| 1982 |
|
2108 |
|
| 1983 |
if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
2109 |
if (rpc_version >= SLURM_16_05_PROTOCOL_VERSION) { |
|
|
2110 |
safe_unpackstr_xmalloc(&object_ptr->description, |
| 2111 |
&uint32_tmp, buffer); |
| 2112 |
safe_unpack32(&object_ptr->id, buffer); |
| 2113 |
|
| 2114 |
safe_unpack32(&object_ptr->flags, buffer); |
| 2115 |
|
| 2116 |
safe_unpack32(&object_ptr->grace_time, buffer); |
| 2117 |
safe_unpackstr_xmalloc(&object_ptr->grp_tres_mins, |
| 2118 |
&uint32_tmp, buffer); |
| 2119 |
safe_unpackstr_xmalloc(&object_ptr->grp_tres_run_mins, |
| 2120 |
&uint32_tmp, buffer); |
| 2121 |
safe_unpackstr_xmalloc(&object_ptr->grp_tres, |
| 2122 |
&uint32_tmp, buffer); |
| 2123 |
safe_unpack32(&object_ptr->grp_jobs, buffer); |
| 2124 |
safe_unpack32(&object_ptr->grp_submit_jobs, buffer); |
| 2125 |
safe_unpack32(&object_ptr->grp_wall, buffer); |
| 2126 |
|
| 2127 |
safe_unpackstr_xmalloc(&object_ptr->max_tres_mins_pj, |
| 2128 |
&uint32_tmp, buffer); |
| 2129 |
safe_unpackstr_xmalloc(&object_ptr->max_tres_run_mins_pa, |
| 2130 |
&uint32_tmp, buffer); |
| 2131 |
safe_unpackstr_xmalloc(&object_ptr->max_tres_run_mins_pu, |
| 2132 |
&uint32_tmp, buffer); |
| 2133 |
safe_unpackstr_xmalloc(&object_ptr->max_tres_pa, |
| 2134 |
&uint32_tmp, buffer); |
| 2135 |
safe_unpackstr_xmalloc(&object_ptr->max_tres_pj, |
| 2136 |
&uint32_tmp, buffer); |
| 2137 |
safe_unpackstr_xmalloc(&object_ptr->max_tres_pn, |
| 2138 |
&uint32_tmp, buffer); |
| 2139 |
safe_unpackstr_xmalloc(&object_ptr->max_tres_pu, |
| 2140 |
&uint32_tmp, buffer); |
| 2141 |
safe_unpack32(&object_ptr->max_jobs_pa, buffer); |
| 2142 |
safe_unpack32(&object_ptr->max_jobs_pu, buffer); |
| 2143 |
safe_unpack32(&object_ptr->max_submit_jobs_pa, buffer); |
| 2144 |
safe_unpack32(&object_ptr->max_submit_jobs_pu, buffer); |
| 2145 |
safe_unpack32(&object_ptr->max_wall_pj, buffer); |
| 2146 |
safe_unpackstr_xmalloc(&object_ptr->min_tres_pj, |
| 2147 |
&uint32_tmp, buffer); |
| 2148 |
|
| 2149 |
safe_unpackstr_xmalloc(&object_ptr->name, &uint32_tmp, buffer); |
| 2150 |
|
| 2151 |
unpack_bit_str_hex(&object_ptr->preempt_bitstr, buffer); |
| 2152 |
|
| 2153 |
safe_unpack32(&count, buffer); |
| 2154 |
if (count != NO_VAL) { |
| 2155 |
object_ptr->preempt_list = |
| 2156 |
list_create(slurm_destroy_char); |
| 2157 |
for (i = 0; i < count; i++) { |
| 2158 |
safe_unpackstr_xmalloc(&tmp_info, &uint32_tmp, |
| 2159 |
buffer); |
| 2160 |
list_append(object_ptr->preempt_list, |
| 2161 |
tmp_info); |
| 2162 |
} |
| 2163 |
} |
| 2164 |
|
| 2165 |
safe_unpack16(&object_ptr->preempt_mode, buffer); |
| 2166 |
safe_unpack32(&object_ptr->priority, buffer); |
| 2167 |
|
| 2168 |
safe_unpackdouble(&object_ptr->usage_factor, buffer); |
| 2169 |
safe_unpackdouble(&object_ptr->usage_thres, buffer); |
| 2170 |
} else if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
| 1984 |
safe_unpackstr_xmalloc(&object_ptr->description, |
2171 |
safe_unpackstr_xmalloc(&object_ptr->description, |
| 1985 |
&uint32_tmp, buffer); |
2172 |
&uint32_tmp, buffer); |
| 1986 |
safe_unpack32(&object_ptr->id, buffer); |
2173 |
safe_unpack32(&object_ptr->id, buffer); |
|
Lines 2332-2358
extern void slurmdb_pack_qos_usage(void *in, uint16_t rpc_version, Buf buffer)
Link Here
|
| 2332 |
ListIterator itr; |
2519 |
ListIterator itr; |
| 2333 |
void *used_limits; |
2520 |
void *used_limits; |
| 2334 |
|
2521 |
|
| 2335 |
pack32(usage->grp_used_jobs, buffer); |
2522 |
if (rpc_version >= SLURM_16_05_PROTOCOL_VERSION) { |
| 2336 |
pack32(usage->grp_used_submit_jobs, buffer); |
2523 |
pack32(usage->grp_used_jobs, buffer); |
| 2337 |
pack64_array(usage->grp_used_tres, usage->tres_cnt, buffer); |
2524 |
pack32(usage->grp_used_submit_jobs, buffer); |
| 2338 |
pack64_array(usage->grp_used_tres_run_secs, usage->tres_cnt, buffer); |
2525 |
pack64_array(usage->grp_used_tres, usage->tres_cnt, buffer); |
| 2339 |
packdouble(usage->grp_used_wall, buffer); |
2526 |
pack64_array(usage->grp_used_tres_run_secs, |
| 2340 |
packdouble(usage->norm_priority, buffer); |
2527 |
usage->tres_cnt, buffer); |
| 2341 |
packlongdouble(usage->usage_raw, buffer); |
2528 |
packdouble(usage->grp_used_wall, buffer); |
| 2342 |
packlongdouble_array(usage->usage_tres_raw, usage->tres_cnt, buffer); |
2529 |
packdouble(usage->norm_priority, buffer); |
|
|
2530 |
packlongdouble(usage->usage_raw, buffer); |
| 2531 |
packlongdouble_array(usage->usage_tres_raw, |
| 2532 |
usage->tres_cnt, buffer); |
| 2533 |
|
| 2534 |
if (!usage->user_limit_list || |
| 2535 |
!(count = list_count(usage->user_limit_list))) |
| 2536 |
count = NO_VAL; |
| 2343 |
|
2537 |
|
| 2344 |
if (!usage->user_limit_list || |
2538 |
/* We have to pack anything that is verified by |
| 2345 |
!(count = list_count(usage->user_limit_list))) |
2539 |
* tres_cnt after this. It is used in the unpack, |
| 2346 |
count = NO_VAL; |
2540 |
* that is the reason it isn't alpha. |
|
|
2541 |
*/ |
| 2542 |
pack32(count, buffer); |
| 2543 |
if (count != NO_VAL) { |
| 2544 |
itr = list_iterator_create(usage->user_limit_list); |
| 2545 |
while ((used_limits = list_next(itr))) |
| 2546 |
slurmdb_pack_used_limits( |
| 2547 |
used_limits, usage->tres_cnt, |
| 2548 |
rpc_version, buffer); |
| 2549 |
list_iterator_destroy(itr); |
| 2550 |
} |
| 2551 |
if (!usage->acct_limit_list || |
| 2552 |
!(count = list_count(usage->acct_limit_list))) |
| 2553 |
count = NO_VAL; |
| 2347 |
|
2554 |
|
| 2348 |
pack32(count, buffer); |
2555 |
pack32(count, buffer); |
| 2349 |
if (count != NO_VAL) { |
2556 |
if (count != NO_VAL) { |
| 2350 |
itr = list_iterator_create(usage->user_limit_list); |
2557 |
itr = list_iterator_create(usage->acct_limit_list); |
| 2351 |
while ((used_limits = list_next(itr))) |
2558 |
while ((used_limits = list_next(itr))) |
| 2352 |
slurmdb_pack_used_limits(used_limits, usage->tres_cnt, |
2559 |
slurmdb_pack_used_limits( |
| 2353 |
rpc_version, buffer); |
2560 |
used_limits, usage->tres_cnt, |
| 2354 |
list_iterator_destroy(itr); |
2561 |
rpc_version, buffer); |
|
|
2562 |
list_iterator_destroy(itr); |
| 2563 |
} |
| 2564 |
} else if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
| 2565 |
pack32(usage->grp_used_jobs, buffer); |
| 2566 |
pack32(usage->grp_used_submit_jobs, buffer); |
| 2567 |
pack64_array(usage->grp_used_tres, usage->tres_cnt, buffer); |
| 2568 |
pack64_array(usage->grp_used_tres_run_secs, |
| 2569 |
usage->tres_cnt, buffer); |
| 2570 |
packdouble(usage->grp_used_wall, buffer); |
| 2571 |
packdouble(usage->norm_priority, buffer); |
| 2572 |
packlongdouble(usage->usage_raw, buffer); |
| 2573 |
packlongdouble_array(usage->usage_tres_raw, |
| 2574 |
usage->tres_cnt, buffer); |
| 2575 |
|
| 2576 |
if (!usage->user_limit_list || |
| 2577 |
!(count = list_count(usage->user_limit_list))) |
| 2578 |
count = NO_VAL; |
| 2579 |
|
| 2580 |
pack32(count, buffer); |
| 2581 |
if (count != NO_VAL) { |
| 2582 |
itr = list_iterator_create(usage->user_limit_list); |
| 2583 |
while ((used_limits = list_next(itr))) |
| 2584 |
slurmdb_pack_used_limits( |
| 2585 |
used_limits, usage->tres_cnt, |
| 2586 |
rpc_version, buffer); |
| 2587 |
list_iterator_destroy(itr); |
| 2588 |
} |
| 2589 |
} else { |
| 2590 |
error("%s: version too old %u", __func__, rpc_version); |
| 2591 |
return; |
| 2355 |
} |
2592 |
} |
|
|
2593 |
|
| 2356 |
} |
2594 |
} |
| 2357 |
|
2595 |
|
| 2358 |
extern int slurmdb_unpack_qos_usage(void **object, uint16_t rpc_version, |
2596 |
extern int slurmdb_unpack_qos_usage(void **object, uint16_t rpc_version, |
|
Lines 2366-2395
extern int slurmdb_unpack_qos_usage(void **object, uint16_t rpc_version,
Link Here
|
| 2366 |
|
2604 |
|
| 2367 |
*object = object_ptr; |
2605 |
*object = object_ptr; |
| 2368 |
|
2606 |
|
| 2369 |
safe_unpack32(&object_ptr->grp_used_jobs, buffer); |
2607 |
if (rpc_version >= SLURM_16_05_PROTOCOL_VERSION) { |
| 2370 |
safe_unpack32(&object_ptr->grp_used_submit_jobs, buffer); |
2608 |
safe_unpack32(&object_ptr->grp_used_jobs, buffer); |
| 2371 |
safe_unpack64_array(&object_ptr->grp_used_tres, |
2609 |
safe_unpack32(&object_ptr->grp_used_submit_jobs, buffer); |
| 2372 |
&object_ptr->tres_cnt, buffer); |
2610 |
safe_unpack64_array(&object_ptr->grp_used_tres, |
| 2373 |
safe_unpack64_array(&object_ptr->grp_used_tres_run_secs, |
2611 |
&object_ptr->tres_cnt, buffer); |
| 2374 |
&object_ptr->tres_cnt, buffer); |
2612 |
safe_unpack64_array(&object_ptr->grp_used_tres_run_secs, |
| 2375 |
safe_unpackdouble(&object_ptr->grp_used_wall, buffer); |
2613 |
&object_ptr->tres_cnt, buffer); |
| 2376 |
safe_unpackdouble(&object_ptr->norm_priority, buffer); |
2614 |
safe_unpackdouble(&object_ptr->grp_used_wall, buffer); |
| 2377 |
safe_unpacklongdouble(&object_ptr->usage_raw, buffer); |
2615 |
safe_unpackdouble(&object_ptr->norm_priority, buffer); |
| 2378 |
safe_unpacklongdouble_array(&object_ptr->usage_tres_raw, |
2616 |
safe_unpacklongdouble(&object_ptr->usage_raw, buffer); |
| 2379 |
&count, buffer); |
2617 |
safe_unpacklongdouble_array(&object_ptr->usage_tres_raw, |
|
|
2618 |
&count, buffer); |
| 2380 |
|
2619 |
|
| 2381 |
safe_unpack32(&count, buffer); |
2620 |
safe_unpack32(&count, buffer); |
| 2382 |
if (count != NO_VAL) { |
2621 |
if (count != NO_VAL) { |
| 2383 |
object_ptr->user_limit_list = |
2622 |
object_ptr->user_limit_list = |
| 2384 |
list_create(slurmdb_destroy_used_limits); |
2623 |
list_create(slurmdb_destroy_used_limits); |
| 2385 |
for (i = 0; i < count; i++) { |
2624 |
for (i = 0; i < count; i++) { |
| 2386 |
if (slurmdb_unpack_used_limits(&used_limits, |
2625 |
if (slurmdb_unpack_used_limits( |
| 2387 |
object_ptr->tres_cnt, |
2626 |
&used_limits, |
| 2388 |
rpc_version, buffer) |
2627 |
object_ptr->tres_cnt, |
| 2389 |
!= SLURM_SUCCESS) |
2628 |
rpc_version, buffer) |
| 2390 |
goto unpack_error; |
2629 |
!= SLURM_SUCCESS) |
| 2391 |
list_append(object_ptr->user_limit_list, used_limits); |
2630 |
goto unpack_error; |
|
|
2631 |
list_append(object_ptr->user_limit_list, |
| 2632 |
used_limits); |
| 2633 |
} |
| 2634 |
} |
| 2635 |
|
| 2636 |
safe_unpack32(&count, buffer); |
| 2637 |
if (count != NO_VAL) { |
| 2638 |
object_ptr->acct_limit_list = |
| 2639 |
list_create(slurmdb_destroy_used_limits); |
| 2640 |
for (i = 0; i < count; i++) { |
| 2641 |
if (slurmdb_unpack_used_limits( |
| 2642 |
&used_limits, |
| 2643 |
object_ptr->tres_cnt, |
| 2644 |
rpc_version, buffer) |
| 2645 |
!= SLURM_SUCCESS) |
| 2646 |
goto unpack_error; |
| 2647 |
list_append(object_ptr->acct_limit_list, |
| 2648 |
used_limits); |
| 2649 |
} |
| 2650 |
} |
| 2651 |
} else if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
| 2652 |
safe_unpack32(&object_ptr->grp_used_jobs, buffer); |
| 2653 |
safe_unpack32(&object_ptr->grp_used_submit_jobs, buffer); |
| 2654 |
safe_unpack64_array(&object_ptr->grp_used_tres, |
| 2655 |
&object_ptr->tres_cnt, buffer); |
| 2656 |
safe_unpack64_array(&object_ptr->grp_used_tres_run_secs, |
| 2657 |
&object_ptr->tres_cnt, buffer); |
| 2658 |
safe_unpackdouble(&object_ptr->grp_used_wall, buffer); |
| 2659 |
safe_unpackdouble(&object_ptr->norm_priority, buffer); |
| 2660 |
safe_unpacklongdouble(&object_ptr->usage_raw, buffer); |
| 2661 |
safe_unpacklongdouble_array(&object_ptr->usage_tres_raw, |
| 2662 |
&count, buffer); |
| 2663 |
|
| 2664 |
safe_unpack32(&count, buffer); |
| 2665 |
if (count != NO_VAL) { |
| 2666 |
object_ptr->user_limit_list = |
| 2667 |
list_create(slurmdb_destroy_used_limits); |
| 2668 |
for (i = 0; i < count; i++) { |
| 2669 |
if (slurmdb_unpack_used_limits( |
| 2670 |
&used_limits, |
| 2671 |
object_ptr->tres_cnt, |
| 2672 |
rpc_version, buffer) |
| 2673 |
!= SLURM_SUCCESS) |
| 2674 |
goto unpack_error; |
| 2675 |
list_append(object_ptr->user_limit_list, |
| 2676 |
used_limits); |
| 2677 |
} |
| 2392 |
} |
2678 |
} |
|
|
2679 |
} else { |
| 2680 |
error("%s: version too old %u", __func__, rpc_version); |
| 2681 |
goto unpack_error; |
| 2393 |
} |
2682 |
} |
| 2394 |
|
2683 |
|
| 2395 |
return SLURM_SUCCESS; |
2684 |
return SLURM_SUCCESS; |
|
Lines 2408-2435
extern void slurmdb_pack_qos_rec_with_usage(void *in, uint16_t rpc_version,
Link Here
|
| 2408 |
|
2697 |
|
| 2409 |
slurmdb_pack_qos_rec(in, rpc_version, buffer); |
2698 |
slurmdb_pack_qos_rec(in, rpc_version, buffer); |
| 2410 |
|
2699 |
|
| 2411 |
pack64_array(object->grp_tres_mins_ctld, |
2700 |
if (rpc_version >= SLURM_16_05_PROTOCOL_VERSION) { |
| 2412 |
object->usage->tres_cnt, buffer); |
2701 |
pack64_array(object->grp_tres_mins_ctld, |
| 2413 |
pack64_array(object->grp_tres_run_mins_ctld, |
2702 |
object->usage->tres_cnt, buffer); |
| 2414 |
object->usage->tres_cnt, buffer); |
2703 |
pack64_array(object->grp_tres_run_mins_ctld, |
| 2415 |
pack64_array(object->grp_tres_ctld, |
2704 |
object->usage->tres_cnt, buffer); |
| 2416 |
object->usage->tres_cnt, buffer); |
2705 |
pack64_array(object->grp_tres_ctld, |
| 2417 |
|
2706 |
object->usage->tres_cnt, buffer); |
| 2418 |
pack64_array(object->max_tres_mins_pj_ctld, |
2707 |
|
| 2419 |
object->usage->tres_cnt, buffer); |
2708 |
pack64_array(object->max_tres_mins_pj_ctld, |
| 2420 |
pack64_array(object->max_tres_run_mins_pu_ctld, |
2709 |
object->usage->tres_cnt, buffer); |
| 2421 |
object->usage->tres_cnt, buffer); |
2710 |
pack64_array(object->max_tres_run_mins_pa_ctld, |
| 2422 |
pack64_array(object->max_tres_pj_ctld, |
2711 |
object->usage->tres_cnt, buffer); |
| 2423 |
object->usage->tres_cnt, buffer); |
2712 |
pack64_array(object->max_tres_run_mins_pu_ctld, |
| 2424 |
pack64_array(object->max_tres_pn_ctld, |
2713 |
object->usage->tres_cnt, buffer); |
| 2425 |
object->usage->tres_cnt, buffer); |
2714 |
pack64_array(object->max_tres_pa_ctld, |
| 2426 |
pack64_array(object->max_tres_pu_ctld, |
2715 |
object->usage->tres_cnt, buffer); |
| 2427 |
object->usage->tres_cnt, buffer); |
2716 |
pack64_array(object->max_tres_pj_ctld, |
| 2428 |
pack64_array(object->min_tres_pj_ctld, |
2717 |
object->usage->tres_cnt, buffer); |
| 2429 |
object->usage->tres_cnt, buffer); |
2718 |
pack64_array(object->max_tres_pn_ctld, |
|
|
2719 |
object->usage->tres_cnt, buffer); |
| 2720 |
pack64_array(object->max_tres_pu_ctld, |
| 2721 |
object->usage->tres_cnt, buffer); |
| 2722 |
pack64_array(object->min_tres_pj_ctld, |
| 2723 |
object->usage->tres_cnt, buffer); |
| 2724 |
} else if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
| 2725 |
pack64_array(object->grp_tres_mins_ctld, |
| 2726 |
object->usage->tres_cnt, buffer); |
| 2727 |
pack64_array(object->grp_tres_run_mins_ctld, |
| 2728 |
object->usage->tres_cnt, buffer); |
| 2729 |
pack64_array(object->grp_tres_ctld, |
| 2730 |
object->usage->tres_cnt, buffer); |
| 2731 |
|
| 2732 |
pack64_array(object->max_tres_mins_pj_ctld, |
| 2733 |
object->usage->tres_cnt, buffer); |
| 2734 |
pack64_array(object->max_tres_run_mins_pu_ctld, |
| 2735 |
object->usage->tres_cnt, buffer); |
| 2736 |
pack64_array(object->max_tres_pj_ctld, |
| 2737 |
object->usage->tres_cnt, buffer); |
| 2738 |
pack64_array(object->max_tres_pn_ctld, |
| 2739 |
object->usage->tres_cnt, buffer); |
| 2740 |
pack64_array(object->max_tres_pu_ctld, |
| 2741 |
object->usage->tres_cnt, buffer); |
| 2742 |
pack64_array(object->min_tres_pj_ctld, |
| 2743 |
object->usage->tres_cnt, buffer); |
| 2744 |
|
| 2745 |
} else { |
| 2746 |
error("%s: version too old %u", __func__, rpc_version); |
| 2747 |
return; |
| 2748 |
} |
| 2430 |
|
2749 |
|
| 2431 |
slurmdb_pack_qos_usage(object->usage, |
2750 |
slurmdb_pack_qos_usage(object->usage, |
| 2432 |
rpc_version, buffer); |
2751 |
rpc_version, buffer); |
|
|
2752 |
|
| 2433 |
} |
2753 |
} |
| 2434 |
|
2754 |
|
| 2435 |
extern int slurmdb_unpack_qos_rec_with_usage(void **object, |
2755 |
extern int slurmdb_unpack_qos_rec_with_usage(void **object, |
|
Lines 2446-2470
extern int slurmdb_unpack_qos_rec_with_usage(void **object,
Link Here
|
| 2446 |
|
2766 |
|
| 2447 |
object_ptr = *object; |
2767 |
object_ptr = *object; |
| 2448 |
|
2768 |
|
| 2449 |
safe_unpack64_array(&object_ptr->grp_tres_mins_ctld, |
2769 |
if (rpc_version >= SLURM_16_05_PROTOCOL_VERSION) { |
| 2450 |
&uint32_tmp, buffer); |
2770 |
safe_unpack64_array(&object_ptr->grp_tres_mins_ctld, |
| 2451 |
safe_unpack64_array(&object_ptr->grp_tres_run_mins_ctld, |
2771 |
&uint32_tmp, buffer); |
| 2452 |
&uint32_tmp, buffer); |
2772 |
safe_unpack64_array(&object_ptr->grp_tres_run_mins_ctld, |
| 2453 |
safe_unpack64_array(&object_ptr->grp_tres_ctld, |
2773 |
&uint32_tmp, buffer); |
| 2454 |
&uint32_tmp, buffer); |
2774 |
safe_unpack64_array(&object_ptr->grp_tres_ctld, |
| 2455 |
|
2775 |
&uint32_tmp, buffer); |
| 2456 |
safe_unpack64_array(&object_ptr->max_tres_mins_pj_ctld, |
2776 |
|
| 2457 |
&uint32_tmp, buffer); |
2777 |
safe_unpack64_array(&object_ptr->max_tres_mins_pj_ctld, |
| 2458 |
safe_unpack64_array(&object_ptr->max_tres_run_mins_pu_ctld, |
2778 |
&uint32_tmp, buffer); |
| 2459 |
&uint32_tmp, buffer); |
2779 |
safe_unpack64_array(&object_ptr->max_tres_run_mins_pa_ctld, |
| 2460 |
safe_unpack64_array(&object_ptr->max_tres_pj_ctld, |
2780 |
&uint32_tmp, buffer); |
| 2461 |
&uint32_tmp, buffer); |
2781 |
safe_unpack64_array(&object_ptr->max_tres_run_mins_pu_ctld, |
| 2462 |
safe_unpack64_array(&object_ptr->max_tres_pn_ctld, |
2782 |
&uint32_tmp, buffer); |
| 2463 |
&uint32_tmp, buffer); |
2783 |
safe_unpack64_array(&object_ptr->max_tres_pa_ctld, |
| 2464 |
safe_unpack64_array(&object_ptr->max_tres_pu_ctld, |
2784 |
&uint32_tmp, buffer); |
| 2465 |
&uint32_tmp, buffer); |
2785 |
safe_unpack64_array(&object_ptr->max_tres_pj_ctld, |
| 2466 |
safe_unpack64_array(&object_ptr->min_tres_pj_ctld, |
2786 |
&uint32_tmp, buffer); |
| 2467 |
&uint32_tmp, buffer); |
2787 |
safe_unpack64_array(&object_ptr->max_tres_pn_ctld, |
|
|
2788 |
&uint32_tmp, buffer); |
| 2789 |
safe_unpack64_array(&object_ptr->max_tres_pu_ctld, |
| 2790 |
&uint32_tmp, buffer); |
| 2791 |
safe_unpack64_array(&object_ptr->min_tres_pj_ctld, |
| 2792 |
&uint32_tmp, buffer); |
| 2793 |
} else if (rpc_version >= SLURM_15_08_PROTOCOL_VERSION) { |
| 2794 |
safe_unpack64_array(&object_ptr->grp_tres_mins_ctld, |
| 2795 |
&uint32_tmp, buffer); |
| 2796 |
safe_unpack64_array(&object_ptr->grp_tres_run_mins_ctld, |
| 2797 |
&uint32_tmp, buffer); |
| 2798 |
safe_unpack64_array(&object_ptr->grp_tres_ctld, |
| 2799 |
&uint32_tmp, buffer); |
| 2800 |
|
| 2801 |
safe_unpack64_array(&object_ptr->max_tres_mins_pj_ctld, |
| 2802 |
&uint32_tmp, buffer); |
| 2803 |
safe_unpack64_array(&object_ptr->max_tres_run_mins_pu_ctld, |
| 2804 |
&uint32_tmp, buffer); |
| 2805 |
safe_unpack64_array(&object_ptr->max_tres_pj_ctld, |
| 2806 |
&uint32_tmp, buffer); |
| 2807 |
safe_unpack64_array(&object_ptr->max_tres_pn_ctld, |
| 2808 |
&uint32_tmp, buffer); |
| 2809 |
safe_unpack64_array(&object_ptr->max_tres_pu_ctld, |
| 2810 |
&uint32_tmp, buffer); |
| 2811 |
safe_unpack64_array(&object_ptr->min_tres_pj_ctld, |
| 2812 |
&uint32_tmp, buffer); |
| 2813 |
} else { |
| 2814 |
error("%s: version too old %u", __func__, rpc_version); |
| 2815 |
goto unpack_error; |
| 2816 |
} |
| 2468 |
|
2817 |
|
| 2469 |
rc = slurmdb_unpack_qos_usage((void **)&object_ptr->usage, |
2818 |
rc = slurmdb_unpack_qos_usage((void **)&object_ptr->usage, |
| 2470 |
rpc_version, buffer); |
2819 |
rpc_version, buffer); |