Skip to content

Commit 61d4740

Browse files
authored
Brought __rpc_num2string in sync with slurm 22.05 message types (#261)
1 parent ffc419f commit 61d4740

File tree

2 files changed

+128
-54
lines changed

2 files changed

+128
-54
lines changed

pyslurm/pyslurm.pyx

Lines changed: 82 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -4663,7 +4663,10 @@ cdef class statistics:
46634663
rpc_type_stats = {}
46644664

46654665
for i in range(self._buf.rpc_type_size):
4666-
rpc_type = self.__rpc_num2string(self._buf.rpc_type_id[i])
4666+
try:
4667+
rpc_type = self.__rpc_num2string(self._buf.rpc_type_id[i])
4668+
except KeyError:
4669+
rpc_type = "UNKNOWN"
46674670
rpc_type_stats[rpc_type] = {}
46684671
rpc_type_stats[rpc_type]['id'] = self._buf.rpc_type_id[i]
46694672
rpc_type_stats[rpc_type]['count'] = self._buf.rpc_type_cnt[i]
@@ -4725,10 +4728,10 @@ cdef class statistics:
47254728
1001: "REQUEST_NODE_REGISTRATION_STATUS",
47264729
1002: "MESSAGE_NODE_REGISTRATION_STATUS",
47274730
1003: "REQUEST_RECONFIGURE",
4728-
1004: "RESPONSE_RECONFIGURE",
4731+
1004: "REQUEST_RECONFIGURE_WITH_CONFIG",
47294732
1005: "REQUEST_SHUTDOWN",
4730-
1006: "REQUEST_SHUTDOWN_IMMEDIATE",
4731-
1007: "RESPONSE_SHUTDOWN",
4733+
1006: "DEFUNCT_RPC_1006",
4734+
1007: "DEFUNCT_RPC_1007",
47324735
1008: "REQUEST_PING",
47334736
1009: "REQUEST_CONTROL",
47344737
1010: "REQUEST_SET_DEBUG_LEVEL",
@@ -4745,9 +4748,10 @@ cdef class statistics:
47454748
1021: "REQUEST_LICENSE_INFO",
47464749
1022: "RESPONSE_LICENSE_INFO",
47474750
1023: "REQUEST_SET_FS_DAMPENING_FACTOR",
4751+
1024: "RESPONSE_NODE_REGISTRATION",
47484752

4749-
1400: "DBD_MESSAGES_START",
47504753
1433: "PERSIST_RC",
4754+
47514755
2000: "DBD_MESSAGES_END",
47524756

47534757
2001: "REQUEST_BUILD_INFO",
@@ -4760,12 +4764,12 @@ cdef class statistics:
47604764
2008: "RESPONSE_NODE_INFO",
47614765
2009: "REQUEST_PARTITION_INFO",
47624766
2010: "RESPONSE_PARTITION_INFO",
4763-
2011: "REQUEST_ACCTING_INFO",
4764-
2012: "RESPONSE_ACCOUNTING_INFO",
4767+
2011: "DEFUNCT_RPC_2011",
4768+
2012: "DEFUNCT_RPC_2012",
47654769
2013: "REQUEST_JOB_ID",
47664770
2014: "RESPONSE_JOB_ID",
4767-
2015: "REQUEST_BLOCK_INFO",
4768-
2016: "RESPONSE_BLOCK_INFO",
4771+
2015: "REQUEST_CONFIG",
4772+
2016: "RESPONSE_CONFIG",
47694773
2017: "REQUEST_TRIGGER_SET",
47704774
2018: "REQUEST_TRIGGER_GET",
47714775
2019: "REQUEST_TRIGGER_CLEAR",
@@ -4782,22 +4786,22 @@ cdef class statistics:
47824786
2030: "REQUEST_TRIGGER_PULL",
47834787
2031: "REQUEST_FRONT_END_INFO",
47844788
2032: "RESPONSE_FRONT_END_INFO",
4785-
2033: "REQUEST_SPANK_ENVIRONMENT",
4786-
2034: "RESPONCE_SPANK_ENVIRONMENT",
4789+
2033: "DEFUNCT_RPC_2033",
4790+
2034: "DEFUNCT_RPC_2034",
47874791
2035: "REQUEST_STATS_INFO",
47884792
2036: "RESPONSE_STATS_INFO",
47894793
2037: "REQUEST_BURST_BUFFER_INFO",
47904794
2038: "RESPONSE_BURST_BUFFER_INFO",
47914795
2039: "REQUEST_JOB_USER_INFO",
47924796
2040: "REQUEST_NODE_INFO_SINGLE",
4793-
2041: "REQUEST_POWERCAP_INFO",
4794-
2042: "RESPONSE_POWERCAP_INFO",
4797+
2041: "DEFUNCT_RPC_2041",
4798+
2042: "DEFUNCT_RPC_2042",
47954799
2043: "REQUEST_ASSOC_MGR_INFO",
47964800
2044: "RESPONSE_ASSOC_MGR_INFO",
4797-
2045: "REQUEST_SICP_INFO_DEFUNCT",
4798-
2046: "RESPONSE_SICP_INFO_DEFUNCT",
4799-
2047: "REQUEST_LAYOUT_INFO",
4800-
2048: "RESPONSE_LAYOUT_INFO",
4801+
2045: "DEFUNCT_RPC_2045",
4802+
2046: "DEFUNCT_RPC_2046",
4803+
2047: "DEFUNCT_RPC_2047",
4804+
2048: "DEFUNCT_RPC_2048",
48014805
2049: "REQUEST_FED_INFO",
48024806
2050: "RESPONSE_FED_INFO",
48034807
2051: "REQUEST_BATCH_SCRIPT",
@@ -4807,6 +4811,11 @@ cdef class statistics:
48074811
2055: "REQUEST_BURST_BUFFER_STATUS",
48084812
2056: "RESPONSE_BURST_BUFFER_STATUS",
48094813

4814+
2200: "REQUEST_CRONTAB",
4815+
2201: "RESPONSE_CRONTAB",
4816+
2202: "REQUEST_UPDATE_CRONTAB",
4817+
2203: "RESPONSE_UPDATE_CRONTAB",
4818+
48104819
3001: "REQUEST_UPDATE_JOB",
48114820
3002: "REQUEST_UPDATE_NODE",
48124821
3003: "REQUEST_CREATE_PARTITION",
@@ -4816,61 +4825,65 @@ cdef class statistics:
48164825
3007: "RESPONSE_CREATE_RESERVATION",
48174826
3008: "REQUEST_DELETE_RESERVATION",
48184827
3009: "REQUEST_UPDATE_RESERVATION",
4819-
3010: "REQUEST_UPDATE_BLOCK",
4828+
3010: "DEFUNCT_RPC_3010",
48204829
3011: "REQUEST_UPDATE_FRONT_END",
4821-
3012: "REQUEST_UPDATE_LAYOUT",
4822-
3013: "REQUEST_UPDATE_POWERCAP",
4830+
3012: "DEFUNCT_RPC_3012",
4831+
3013: "DEFUNCT_RPC_3013",
4832+
3014: "REQUEST_DELETE_NODE",
4833+
3015: "REQUEST_CREATE_NODE",
48234834

48244835
4001: "REQUEST_RESOURCE_ALLOCATION",
48254836
4002: "RESPONSE_RESOURCE_ALLOCATION",
48264837
4003: "REQUEST_SUBMIT_BATCH_JOB",
48274838
4004: "RESPONSE_SUBMIT_BATCH_JOB",
48284839
4005: "REQUEST_BATCH_JOB_LAUNCH",
48294840
4006: "REQUEST_CANCEL_JOB",
4830-
4007: "RESPONSE_CANCEL_JOB",
4831-
4008: "REQUEST_JOB_RESOURCE",
4832-
4009: "RESPONSE_JOB_RESOURCE",
4833-
4010: "REQUEST_JOB_ATTACH",
4834-
4011: "RESPONSE_JOB_ATTACH",
4841+
4007: "DEFUNCT_RPC_4007",
4842+
4008: "DEFUNCT_RPC_4008",
4843+
4009: "DEFUNCT_RPC_4009",
4844+
4010: "DEFUNCT_RPC_4010",
4845+
4011: "DEFUNCT_RPC_4011",
48354846
4012: "REQUEST_JOB_WILL_RUN",
48364847
4013: "RESPONSE_JOB_WILL_RUN",
48374848
4014: "REQUEST_JOB_ALLOCATION_INFO",
48384849
4015: "RESPONSE_JOB_ALLOCATION_INFO",
4839-
4016: "DEFUNCT_REQUEST_JOB_ALLOCATION_INFO_LITE",
4840-
4017: "DEFUNCT_RESPONSE_JOB_ALLOCATION_INFO_LITE",
4841-
4018: "REQUEST_UPDATE_JOB_TIME",
4850+
4016: "DEFUNCT_RPC_4017",
4851+
4017: "DEFUNCT_RPC_4018",
4852+
4018: "DEFUNCT_RPC_4019",
48424853
4019: "REQUEST_JOB_READY",
48434854
4020: "RESPONSE_JOB_READY",
48444855
4021: "REQUEST_JOB_END_TIME",
48454856
4022: "REQUEST_JOB_NOTIFY",
48464857
4023: "REQUEST_JOB_SBCAST_CRED",
48474858
4024: "RESPONSE_JOB_SBCAST_CRED",
4848-
4025: "REQUEST_JOB_PACK_ALLOCATION",
4849-
4026: "RESPONSE_JOB_PACK_ALLOCATION",
4850-
4027: "REQUEST_JOB_PACK_ALLOC_INFO",
4851-
4028: "REQUEST_SUBMIT_BATCH_JOB_PACK",
4859+
4025: "REQUEST_HET_JOB_ALLOCATION",
4860+
4026: "RESPONSE_HET_JOB_ALLOCATION",
4861+
4027: "REQUEST_HET_JOB_ALLOC_INFO",
4862+
4028: "REQUEST_SUBMIT_BATCH_HET_JOB",
48524863

48534864
4500: "REQUEST_CTLD_MULT_MSG",
48544865
4501: "RESPONSE_CTLD_MULT_MSG",
48554866
4502: "REQUEST_SIB_MSG",
48564867
4503: "REQUEST_SIB_JOB_LOCK",
48574868
4504: "REQUEST_SIB_JOB_UNLOCK",
4869+
4505: "REQUEST_SEND_DEP",
4870+
4506: "REQUEST_UPDATE_ORIGIN_DEP",
48584871

48594872
5001: "REQUEST_JOB_STEP_CREATE",
48604873
5002: "RESPONSE_JOB_STEP_CREATE",
4861-
5003: "REQUEST_RUN_JOB_STEP",
4862-
5004: "RESPONSE_RUN_JOB_STEP",
4874+
5003: "DEFUNCT_RPC_5003",
4875+
5004: "DEFUNCT_RPC_5004",
48634876
5005: "REQUEST_CANCEL_JOB_STEP",
4864-
5006: "RESPONSE_CANCEL_JOB_STEP",
4877+
5006: "DEFUNCT_RPC_5006",
48654878
5007: "REQUEST_UPDATE_JOB_STEP",
4866-
5008: "DEFUNCT_RESPONSE_COMPLETE_JOB_STEP",
4867-
5009: "REQUEST_CHECKPOINT",
4868-
5010: "RESPONSE_CHECKPOINT",
4869-
5011: "REQUEST_CHECKPOINT_COMP",
4870-
5012: "REQUEST_CHECKPOINT_TASK_COMP",
4871-
5013: "RESPONSE_CHECKPOINT_COMP",
4879+
5008: "DEFUNCT_RPC_5008",
4880+
5009: "DEFUNCT_RPC_5009",
4881+
5010: "DEFUNCT_RPC_5010",
4882+
5011: "DEFUNCT_RPC_5011",
4883+
5012: "DEFUNCT_RPC_5012",
4884+
5013: "DEFUNCT_RPC_5013",
48724885
5014: "REQUEST_SUSPEND",
4873-
5015: "RESPONSE_SUSPEND",
4886+
5015: "DEFUNCT_RPC_5015",
48744887
5016: "REQUEST_STEP_COMPLETE",
48754888
5017: "REQUEST_COMPLETE_JOB_ALLOCATION",
48764889
5018: "REQUEST_COMPLETE_BATCH_SCRIPT",
@@ -4881,51 +4894,60 @@ cdef class statistics:
48814894
5023: "REQUEST_JOB_REQUEUE",
48824895
5024: "REQUEST_DAEMON_STATUS",
48834896
5025: "RESPONSE_SLURMD_STATUS",
4884-
5026: "RESPONSE_SLURMCTLD_STATUS",
4897+
5026: "DEFUNCT_RPC_5026",
48854898
5027: "REQUEST_JOB_STEP_PIDS",
48864899
5028: "RESPONSE_JOB_STEP_PIDS",
48874900
5029: "REQUEST_FORWARD_DATA",
4888-
5030: "REQUEST_COMPLETE_BATCH_JOB",
4901+
5030: "DEFUNCT_RPC_5030",
48894902
5031: "REQUEST_SUSPEND_INT",
48904903
5032: "REQUEST_KILL_JOB",
4891-
5033: "REQUEST_KILL_JOBSTEP",
4904+
5033: "DEFUNCT_RPC_5033",
48924905
5034: "RESPONSE_JOB_ARRAY_ERRORS",
48934906
5035: "REQUEST_NETWORK_CALLERID",
48944907
5036: "RESPONSE_NETWORK_CALLERID",
4895-
5037: "REQUEST_STEP_COMPLETE_AGGR",
4908+
5037: "DEFUNCT_RPC_5037",
48964909
5038: "REQUEST_TOP_JOB",
4910+
5039: "REQUEST_AUTH_TOKEN",
4911+
5040: "RESPONSE_AUTH_TOKEN",
48974912

48984913
6001: "REQUEST_LAUNCH_TASKS",
48994914
6002: "RESPONSE_LAUNCH_TASKS",
49004915
6003: "MESSAGE_TASK_EXIT",
49014916
6004: "REQUEST_SIGNAL_TASKS",
4902-
6005: "REQUEST_CHECKPOINT_TASKS",
4917+
6005: "DEFUNCT_RPC_6005",
49034918
6006: "REQUEST_TERMINATE_TASKS",
49044919
6007: "REQUEST_REATTACH_TASKS",
49054920
6008: "RESPONSE_REATTACH_TASKS",
49064921
6009: "REQUEST_KILL_TIMELIMIT",
4907-
6010: "DEFUNCT_REQUEST_SIGNAL_JOB",
4922+
6010: "DEFUNCT_RPC_6010",
49084923
6011: "REQUEST_TERMINATE_JOB",
49094924
6012: "MESSAGE_EPILOG_COMPLETE",
49104925
6013: "REQUEST_ABORT_JOB",
4926+
49114927
6014: "REQUEST_FILE_BCAST",
4912-
6015: "TASK_USER_MANAGED_IO_STREAM",
4928+
6015: "DEFUNCT_RPC_6015",
49134929
6016: "REQUEST_KILL_PREEMPTED",
4930+
49144931
6017: "REQUEST_LAUNCH_PROLOG",
49154932
6018: "REQUEST_COMPLETE_PROLOG",
49164933
6019: "RESPONSE_PROLOG_EXECUTING",
49174934

4935+
6500: "REQUEST_PERSIST_INIT",
4936+
49184937
7001: "SRUN_PING",
49194938
7002: "SRUN_TIMEOUT",
49204939
7003: "SRUN_NODE_FAIL",
49214940
7004: "SRUN_JOB_COMPLETE",
49224941
7005: "SRUN_USER_MSG",
4923-
7006: "SRUN_EXEC",
4942+
7006: "DEFUNCT_RPC_7006",
49244943
7007: "SRUN_STEP_MISSING",
49254944
7008: "SRUN_REQUEST_SUSPEND",
4945+
7009: "SRUN_STEP_SIGNAL",
4946+
4947+
7010: "SRUN_NET_FORWARD",
49264948

49274949
7201: "PMI_KVS_PUT_REQ",
4928-
7202: "PMI_KVS_PUT_RESP",
4950+
7202: "DEFUNCT_RPC_7202",
49294951
7203: "PMI_KVS_GET_REQ",
49304952
7204: "PMI_KVS_GET_RESP",
49314953

@@ -4941,9 +4963,15 @@ cdef class statistics:
49414963
10004: "ACCOUNTING_TRES_CHANGE_DB",
49424964
10005: "ACCOUNTING_NODES_CHANGE_DB",
49434965

4944-
11001: "MESSAGE_COMPOSITE",
4945-
11002: "RESPONSE_MESSAGE_COMPOSITE"}
4946-
4966+
11001: "SLURMSCRIPTD_REQUEST_FLUSH",
4967+
11002: "SLURMSCRIPTD_REQUEST_FLUSH_JOB",
4968+
11003: "SLURMSCRIPTD_REQUEST_RECONFIG",
4969+
11004: "SLURMSCRIPTD_REQUEST_RUN_SCRIPT",
4970+
11005: "SLURMSCRIPTD_REQUEST_SCRIPT_COMPLETE",
4971+
11006: "SLURMSCRIPTD_REQUEST_UPDATE_DEBUG_FLAGS",
4972+
11007: "SLURMSCRIPTD_REQUEST_UPDATE_LOG",
4973+
11008: "SLURMSCRIPTD_SHUTDOWN",
4974+
}
49474975
return num2string[opcode]
49484976

49494977

scripts/slurm_msg_type_dict.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#! /usr/bin/env python3
2+
"""
3+
Parse $slurmrepo/src/common/slurm_protocol_defs.h and create
4+
a small C program that generates a mapping of the numeric
5+
slurm msg types to their symbolic names.
6+
7+
Example:
8+
./slurm_msg_type_dict.py $slurmrepo/src/common/slurm_protocol_defs.h > msgdict.c
9+
gcc -o msgdict msgdict.c
10+
./msgdict
11+
"""
12+
13+
import re
14+
import sys
15+
import argparse
16+
17+
def generate_c(header_file_name):
18+
typedef_re = re.compile(r"\s*typedef\s+enum\s*{(.*?)}\s*slurm_msg_type_t\s*;", re.DOTALL)
19+
symbol_re = re.compile(r"^\s*([A-Z0-9_]+)\s*[,=\n]")
20+
21+
with open(header_file_name, mode="r", encoding="utf-8") as header_file:
22+
header = header_file.read()
23+
typedef = typedef_re.search(header)
24+
if typedef is None:
25+
print("could not identify the slurm_msg_type_t typedef in the header file")
26+
sys.exit(1)
27+
28+
print("""#include <stdio.h>""")
29+
print(typedef.group(0))
30+
print("""\n\nint main(void) {""")
31+
for line in typedef.group(1).split("\n"):
32+
symbol = symbol_re.match(line)
33+
if symbol is not None:
34+
print(f""" printf("%d: \\\"%s\\\",\\n", {symbol.group(1)}, "{symbol.group(1)}");""")
35+
else:
36+
print(f""" printf("\\n");""")
37+
print(""" return 0;\n}""")
38+
39+
def main():
40+
parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawTextHelpFormatter)
41+
parser.add_argument("header", help="$slurmrepo/src/common/slurm_protocol_defs.h")
42+
args = parser.parse_args()
43+
generate_c(args.header)
44+
45+
if __name__ == "__main__":
46+
main()

0 commit comments

Comments
 (0)