Skip to content

Commit 7d8175a

Browse files
authored
Merge pull request #956 from bleuzkernel/master
IOSXR ShowPlatform: tolerate missing config_state; relax <plim> spacing
2 parents dc5e9db + 0257268 commit 7d8175a

File tree

5 files changed

+131
-2
lines changed

5 files changed

+131
-2
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--------------------------------------------------------------------------------
2+
Fix
3+
--------------------------------------------------------------------------------
4+
5+
* IOSXR
6+
* Modified ShowPlatform for `ASR-9903` with `IOS-XR v7.8.2`:
7+
* Updated regex pattern <p1> to accommodate various outputs:
8+
* Changed whitespace before <plim> to use \s+ (was a single space) for variable spacing.
9+
* Made <config_state> optional by wrapping it in a non-capturing group.
10+
* Ensures lines without a "Config state" column are parsed (e.g., `0/0/1 A9903-20HG-PEC OK`).

src/genie/libs/parser/iosxr/show_platform.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -401,13 +401,23 @@ def cli(self, output=None):
401401
# 0/0 NCS1K4-OTN-XP POWERED_ON NSHUT
402402
# 1/3/3 MSC(SPA) OC192RPR-XFP DISABLED NPWR,SHUT,MON
403403
# 1/10/CPU0 FP-X N/A UNPOWERED NPWR,NSHUT,MON
404+
405+
# 0/RP0/CPU0 A99-RP-F(Active) IOS XR RUN NSHUT
406+
# 0/RP1/CPU0 A99-RP-F(Standby) IOS XR RUN NSHUT
407+
# 0/FT0 ASR-9903-FAN OPERATIONAL NSHUT
408+
# 0/FT1 ASR-9903-FAN OPERATIONAL NSHUT
409+
# 0/FT2 ASR-9903-FAN OPERATIONAL NSHUT
410+
# 0/FT3 ASR-9903-FAN OPERATIONAL NSHUT
411+
# 0/0/CPU0 ASR-9903-LC IOS XR RUN NSHUT
412+
# 0/0/1 A9903-20HG-PEC OK
413+
# 0/PT0 ASR-9900-DC-PEM OPERATIONAL NSHUT
404414

405415
p1 = re.compile(r'^\s*(?P<node>[a-zA-Z0-9\/]+)'
406416
r'\s+(?P<name>[a-zA-Z0-9\-\.]+)'
407417
r'(?:\((?P<redundancy_state>[a-zA-Z]+)\))?'
408-
r'(?: +(?P<plim>[a-zA-Z0-9(\/|\-| )]+))?'
418+
r'(?:\s+(?P<plim>[a-zA-Z0-9(\/|\-| )]+))?'
409419
r'\s+(?P<state>(SW_INACTIVE|IN-RESET|UNPOWERED|DISABLED|IOS XR RUN|OK|OPERATIONAL|POWERED_ON))'
410-
r'\s+(?P<config_state>[a-zA-Z\,]+)$')
420+
r'(?:\s+(?P<config_state>[a-zA-Z\,]+))?$')
411421

412422
# Init vars
413423
show_platform = {}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
expected_output = {
2+
"slot": {
3+
"rp": {
4+
"0/RP0": {
5+
"name": "A99-RP-F",
6+
"full_slot": "0/RP0/CPU0",
7+
"state": "IOS XR RUN",
8+
"config_state": "NSHUT",
9+
"redundancy_state": "Active",
10+
},
11+
"0/RP1": {
12+
"name": "A99-RP-F",
13+
"full_slot": "0/RP1/CPU0",
14+
"state": "IOS XR RUN",
15+
"config_state": "NSHUT",
16+
"redundancy_state": "Standby",
17+
},
18+
},
19+
"oc": {
20+
"0/FT0": {
21+
"name": "ASR-9903-FAN",
22+
"full_slot": "0/FT0",
23+
"state": "OPERATIONAL",
24+
"config_state": "NSHUT",
25+
},
26+
"0/FT1": {
27+
"name": "ASR-9903-FAN",
28+
"full_slot": "0/FT1",
29+
"state": "OPERATIONAL",
30+
"config_state": "NSHUT",
31+
},
32+
"0/FT2": {
33+
"name": "ASR-9903-FAN",
34+
"full_slot": "0/FT2",
35+
"state": "OPERATIONAL",
36+
"config_state": "NSHUT",
37+
},
38+
"0/FT3": {
39+
"name": "ASR-9903-FAN",
40+
"full_slot": "0/FT3",
41+
"state": "OPERATIONAL",
42+
"config_state": "NSHUT",
43+
},
44+
"0/PT0": {
45+
"name": "ASR-9900-DC-PEM",
46+
"full_slot": "0/PT0",
47+
"state": "OPERATIONAL",
48+
"config_state": "NSHUT",
49+
},
50+
},
51+
"lc": {
52+
"0/0": {
53+
"name": "ASR-9903-LC",
54+
"full_slot": "0/0/CPU0",
55+
"state": "IOS XR RUN",
56+
"config_state": "NSHUT",
57+
"subslot": {
58+
"1": {
59+
"name": "A9903-20HG-PEC",
60+
"state": "OK",
61+
"config_state": "None",
62+
"redundancy_state": "None",
63+
}
64+
},
65+
}
66+
},
67+
}
68+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
RP/0/RP0/CPU0:Router#show platform
2+
Thu Sep 11 10:42:18.531 GMT+6
3+
Node Type State Config state
4+
--------------------------------------------------------------------------------
5+
0/RP0/CPU0 A99-RP-F(Active) IOS XR RUN NSHUT
6+
0/RP1/CPU0 A99-RP-F(Standby) IOS XR RUN NSHUT
7+
0/FT0 ASR-9903-FAN OPERATIONAL NSHUT
8+
0/FT1 ASR-9903-FAN OPERATIONAL NSHUT
9+
0/FT2 ASR-9903-FAN OPERATIONAL NSHUT
10+
0/FT3 ASR-9903-FAN OPERATIONAL NSHUT
11+
0/0/CPU0 ASR-9903-LC IOS XR RUN NSHUT
12+
0/0/1 A9903-20HG-PEC OK
13+
0/PT0 ASR-9900-DC-PEM OPERATIONAL NSHUT

src/genie/libs/parser/iosxr/tests/ShowPlatform/cli/equal/golden_output9_expected.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,20 @@
7878
"full_slot": "0/1/CPU0",
7979
"state": "IOS XR RUN",
8080
"config_state": "NSHUT",
81+
"subslot": {
82+
"0": {
83+
"name": "A9K-MPA-20X10GE",
84+
"state": "OK",
85+
"config_state": "None",
86+
"redundancy_state": "None",
87+
},
88+
"1": {
89+
"name": "A9K-MPA-20X10GE",
90+
"state": "OK",
91+
"config_state": "None",
92+
"redundancy_state": "None",
93+
},
94+
},
8195
},
8296
"0/3": {
8397
"name": "A99-32X100GE-CM",
@@ -90,6 +104,20 @@
90104
"full_slot": "0/5/CPU0",
91105
"state": "IOS XR RUN",
92106
"config_state": "NSHUT",
107+
"subslot": {
108+
"0": {
109+
"name": "A9K-MPA-20X10GE",
110+
"state": "OK",
111+
"config_state": "None",
112+
"redundancy_state": "None",
113+
},
114+
"1": {
115+
"name": "A9K-MPA-20X10GE",
116+
"state": "OK",
117+
"config_state": "None",
118+
"redundancy_state": "None",
119+
},
120+
},
93121
},
94122
"0/6": {
95123
"name": "A99-32X100GE-TR",

0 commit comments

Comments
 (0)