Skip to content

Commit 2372e29

Browse files
authored
[show priority-group drop counters] Remove backup with cached PG drop counters after 'config reload' (#2386)
#### What I did After config reload for some period of time when COUNTERS_PG_PORT_MAP is not created yet, CLI command 'show prioriy-group counter' exits with the traceback because it expects COUNTERS_PG_PORT_MAP to be present and doesn't do proper handling for the situation when it is not yet populated. Handling was fixed #### How I did it use "not" instead of "is None" #### How to verify it UT added #### Previous command output (if the output of a command-line utility has changed) ``` root@r-lionfish-13:/home/admin# show priority-group drop counters Traceback (most recent call last): File "/usr/local/bin/pg-drop", line 262, in <module> main() File "/usr/local/bin/pg-drop", line 255, in main pgdropstat.print_all_stat(COUNTER_TABLE_PREFIX, "pg_drop" ) File "/usr/local/bin/pg-drop", line 160, in print_all_stat self.build_header(type) File "/usr/local/bin/pg-drop", line 119, in build_header single_key = list(header_map.keys())[0] IndexError: list index out of range ``` #### New command output (if the output of a command-line utility has changed) `COUNTERS_PORT_NAME_MAP is empty!`
1 parent 4237794 commit 2372e29

File tree

6 files changed

+362
-15
lines changed

6 files changed

+362
-15
lines changed

scripts/pg-drop

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,15 @@ class PgDropStat(object):
5858
Get port ID using object ID
5959
"""
6060
port_id = self.counters_db.get(self.counters_db.COUNTERS_DB, COUNTERS_PG_PORT_MAP, oid)
61-
if port_id is None:
62-
print("Port is not available for oid '{}'".format(oid), file=sys.stderr)
61+
if not port_id:
62+
print("Port is not available for oid '{}'".format(oid))
6363
sys.exit(1)
6464
return port_id
6565

6666
# Get all ports
6767
self.counter_port_name_map = self.counters_db.get_all(self.counters_db.COUNTERS_DB, COUNTERS_PORT_NAME_MAP)
68-
if self.counter_port_name_map is None:
69-
print("COUNTERS_PORT_NAME_MAP is empty!", file=sys.stderr)
68+
if not self.counter_port_name_map:
69+
print("COUNTERS_PORT_NAME_MAP is empty!")
7070
sys.exit(1)
7171

7272
self.port_pg_map = {}
@@ -78,8 +78,8 @@ class PgDropStat(object):
7878

7979
# Get PGs for each port
8080
counter_pg_name_map = self.counters_db.get_all(self.counters_db.COUNTERS_DB, COUNTERS_PG_NAME_MAP)
81-
if counter_pg_name_map is None:
82-
print("COUNTERS_PG_NAME_MAP is empty!", file=sys.stderr)
81+
if not counter_pg_name_map:
82+
print("COUNTERS_PG_NAME_MAP is empty!")
8383
sys.exit(1)
8484

8585
for pg in counter_pg_name_map:
@@ -101,8 +101,8 @@ class PgDropStat(object):
101101
oid - object ID for entry in redis
102102
"""
103103
pg_index = self.counters_db.get(self.counters_db.COUNTERS_DB, COUNTERS_PG_INDEX_MAP, oid)
104-
if pg_index is None:
105-
print("Priority group index is not available for oid '{}'".format(table_id), file=sys.stderr)
104+
if not pg_index:
105+
print("Priority group index is not available for oid '{}'".format(oid))
106106
sys.exit(1)
107107
return pg_index
108108

@@ -111,7 +111,7 @@ class PgDropStat(object):
111111
Construct header for table with PG counters
112112
"""
113113
if pg_drop_type is None:
114-
print("Header info is not available!", file=sys.stderr)
114+
print("Header info is not available!")
115115
sys.exit(1)
116116

117117
self.header_list = ['Port']

tests/pgdrop_input/counters_db.json

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
{
2+
"COUNTERS_PORT_NAME_MAP": {
3+
},
4+
"COUNTERS_PG_NAME_MAP": {
5+
"Ethernet0:0": "oid:0x1a00000000034f",
6+
"Ethernet0:1": "oid:0x1a000000000350",
7+
"Ethernet0:2": "oid:0x1a000000000351",
8+
"Ethernet0:3": "oid:0x1a000000000352",
9+
"Ethernet0:4": "oid:0x1a000000000353",
10+
"Ethernet0:5": "oid:0x1a000000000354",
11+
"Ethernet0:6": "oid:0x1a000000000355",
12+
"Ethernet0:7": "oid:0x1a000000000356",
13+
"Ethernet4:0": "oid:0x1a000000000377",
14+
"Ethernet4:1": "oid:0x1a000000000378",
15+
"Ethernet4:2": "oid:0x1a000000000379",
16+
"Ethernet4:3": "oid:0x1a00000000037a",
17+
"Ethernet4:4": "oid:0x1a00000000037b",
18+
"Ethernet4:5": "oid:0x1a00000000037c",
19+
"Ethernet4:6": "oid:0x1a00000000037d",
20+
"Ethernet4:7": "oid:0x1a00000000037e",
21+
"Ethernet8:0": "oid:0x1a00000000039f",
22+
"Ethernet8:1": "oid:0x1a0000000003a0",
23+
"Ethernet8:2": "oid:0x1a0000000003a1",
24+
"Ethernet8:3": "oid:0x1a0000000003a2",
25+
"Ethernet8:4": "oid:0x1a0000000003a3",
26+
"Ethernet8:5": "oid:0x1a0000000003a4",
27+
"Ethernet8:6": "oid:0x1a0000000003a5",
28+
"Ethernet8:7": "oid:0x1a0000000003a6"
29+
},
30+
"COUNTERS_PG_PORT_MAP": {
31+
"oid:0x1a00000000034f": "oid:0x1000000000012",
32+
"oid:0x1a000000000350": "oid:0x1000000000012",
33+
"oid:0x1a000000000351": "oid:0x1000000000012",
34+
"oid:0x1a000000000352": "oid:0x1000000000012",
35+
"oid:0x1a000000000353": "oid:0x1000000000012",
36+
"oid:0x1a000000000354": "oid:0x1000000000012",
37+
"oid:0x1a000000000355": "oid:0x1000000000012",
38+
"oid:0x1a000000000356": "oid:0x1000000000012",
39+
"oid:0x1a000000000377": "oid:0x1000000000013",
40+
"oid:0x1a000000000378": "oid:0x1000000000013",
41+
"oid:0x1a000000000379": "oid:0x1000000000013",
42+
"oid:0x1a00000000037a": "oid:0x1000000000013",
43+
"oid:0x1a00000000037b": "oid:0x1000000000013",
44+
"oid:0x1a00000000037c": "oid:0x1000000000013",
45+
"oid:0x1a00000000037d": "oid:0x1000000000013",
46+
"oid:0x1a00000000037e": "oid:0x1000000000013",
47+
"oid:0x1a00000000039f": "oid:0x1000000000014",
48+
"oid:0x1a0000000003a0": "oid:0x1000000000014",
49+
"oid:0x1a0000000003a1": "oid:0x1000000000014",
50+
"oid:0x1a0000000003a2": "oid:0x1000000000014",
51+
"oid:0x1a0000000003a3": "oid:0x1000000000014",
52+
"oid:0x1a0000000003a4": "oid:0x1000000000014",
53+
"oid:0x1a0000000003a5": "oid:0x1000000000014",
54+
"oid:0x1a0000000003a6": "oid:0x1000000000014"
55+
},
56+
57+
"COUNTERS_PG_INDEX_MAP": {
58+
"oid:0x1a00000000034f": "0",
59+
"oid:0x1a000000000350": "1",
60+
"oid:0x1a000000000351": "2",
61+
"oid:0x1a000000000352": "3",
62+
"oid:0x1a000000000353": "4",
63+
"oid:0x1a000000000354": "5",
64+
"oid:0x1a000000000355": "6",
65+
"oid:0x1a000000000356": "7",
66+
"oid:0x1a000000000377": "0",
67+
"oid:0x1a000000000378": "1",
68+
"oid:0x1a000000000379": "2",
69+
"oid:0x1a00000000037a": "3",
70+
"oid:0x1a00000000037b": "4",
71+
"oid:0x1a00000000037c": "5",
72+
"oid:0x1a00000000037d": "6",
73+
"oid:0x1a00000000037e": "7",
74+
"oid:0x1a00000000039f": "0",
75+
"oid:0x1a0000000003a0": "1",
76+
"oid:0x1a0000000003a1": "2",
77+
"oid:0x1a0000000003a2": "3",
78+
"oid:0x1a0000000003a3": "4",
79+
"oid:0x1a0000000003a4": "5",
80+
"oid:0x1a0000000003a5": "6",
81+
"oid:0x1a0000000003a6": "7"
82+
}
83+
}

tests/pgdrop_input/counters_db2.json

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"COUNTERS_PORT_NAME_MAP": {
3+
"Ethernet0": "oid:0x1000000000012",
4+
"Ethernet4": "oid:0x1000000000013",
5+
"Ethernet8": "oid:0x1000000000014"
6+
7+
},
8+
"COUNTERS_PG_NAME_MAP": {
9+
},
10+
"COUNTERS_PG_PORT_MAP": {
11+
"oid:0x1a00000000034f": "oid:0x1000000000012",
12+
"oid:0x1a000000000350": "oid:0x1000000000012",
13+
"oid:0x1a000000000351": "oid:0x1000000000012",
14+
"oid:0x1a000000000352": "oid:0x1000000000012",
15+
"oid:0x1a000000000353": "oid:0x1000000000012",
16+
"oid:0x1a000000000354": "oid:0x1000000000012",
17+
"oid:0x1a000000000355": "oid:0x1000000000012",
18+
"oid:0x1a000000000356": "oid:0x1000000000012",
19+
"oid:0x1a000000000377": "oid:0x1000000000013",
20+
"oid:0x1a000000000378": "oid:0x1000000000013",
21+
"oid:0x1a000000000379": "oid:0x1000000000013",
22+
"oid:0x1a00000000037a": "oid:0x1000000000013",
23+
"oid:0x1a00000000037b": "oid:0x1000000000013",
24+
"oid:0x1a00000000037c": "oid:0x1000000000013",
25+
"oid:0x1a00000000037d": "oid:0x1000000000013",
26+
"oid:0x1a00000000037e": "oid:0x1000000000013",
27+
"oid:0x1a00000000039f": "oid:0x1000000000014",
28+
"oid:0x1a0000000003a0": "oid:0x1000000000014",
29+
"oid:0x1a0000000003a1": "oid:0x1000000000014",
30+
"oid:0x1a0000000003a2": "oid:0x1000000000014",
31+
"oid:0x1a0000000003a3": "oid:0x1000000000014",
32+
"oid:0x1a0000000003a4": "oid:0x1000000000014",
33+
"oid:0x1a0000000003a5": "oid:0x1000000000014",
34+
"oid:0x1a0000000003a6": "oid:0x1000000000014"
35+
},
36+
37+
"COUNTERS_PG_INDEX_MAP": {
38+
"oid:0x1a00000000034f": "0",
39+
"oid:0x1a000000000350": "1",
40+
"oid:0x1a000000000351": "2",
41+
"oid:0x1a000000000352": "3",
42+
"oid:0x1a000000000353": "4",
43+
"oid:0x1a000000000354": "5",
44+
"oid:0x1a000000000355": "6",
45+
"oid:0x1a000000000356": "7",
46+
"oid:0x1a000000000377": "0",
47+
"oid:0x1a000000000378": "1",
48+
"oid:0x1a000000000379": "2",
49+
"oid:0x1a00000000037a": "3",
50+
"oid:0x1a00000000037b": "4",
51+
"oid:0x1a00000000037c": "5",
52+
"oid:0x1a00000000037d": "6",
53+
"oid:0x1a00000000037e": "7",
54+
"oid:0x1a00000000039f": "0",
55+
"oid:0x1a0000000003a0": "1",
56+
"oid:0x1a0000000003a1": "2",
57+
"oid:0x1a0000000003a2": "3",
58+
"oid:0x1a0000000003a3": "4",
59+
"oid:0x1a0000000003a4": "5",
60+
"oid:0x1a0000000003a5": "6",
61+
"oid:0x1a0000000003a6": "7"
62+
}
63+
}

tests/pgdrop_input/counters_db3.json

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"COUNTERS_PORT_NAME_MAP": {
3+
"Ethernet0": "oid:0x1000000000012",
4+
"Ethernet4": "oid:0x1000000000013",
5+
"Ethernet8": "oid:0x1000000000014"
6+
},
7+
"COUNTERS_PG_NAME_MAP": {
8+
"Ethernet0:0": "oid:0x1a00000000034f",
9+
"Ethernet0:1": "oid:0x1a000000000350",
10+
"Ethernet0:2": "oid:0x1a000000000351",
11+
"Ethernet0:3": "oid:0x1a000000000352",
12+
"Ethernet0:4": "oid:0x1a000000000353",
13+
"Ethernet0:5": "oid:0x1a000000000354",
14+
"Ethernet0:6": "oid:0x1a000000000355",
15+
"Ethernet0:7": "oid:0x1a000000000356",
16+
"Ethernet4:0": "oid:0x1a000000000377",
17+
"Ethernet4:1": "oid:0x1a000000000378",
18+
"Ethernet4:2": "oid:0x1a000000000379",
19+
"Ethernet4:3": "oid:0x1a00000000037a",
20+
"Ethernet4:4": "oid:0x1a00000000037b",
21+
"Ethernet4:5": "oid:0x1a00000000037c",
22+
"Ethernet4:6": "oid:0x1a00000000037d",
23+
"Ethernet4:7": "oid:0x1a00000000037e",
24+
"Ethernet8:0": "oid:0x1a00000000039f",
25+
"Ethernet8:1": "oid:0x1a0000000003a0",
26+
"Ethernet8:2": "oid:0x1a0000000003a1",
27+
"Ethernet8:3": "oid:0x1a0000000003a2",
28+
"Ethernet8:4": "oid:0x1a0000000003a3",
29+
"Ethernet8:5": "oid:0x1a0000000003a4",
30+
"Ethernet8:6": "oid:0x1a0000000003a5",
31+
"Ethernet8:7": "oid:0x1a0000000003a6"
32+
},
33+
"COUNTERS_PG_PORT_MAP": {
34+
},
35+
36+
"COUNTERS_PG_INDEX_MAP": {
37+
"oid:0x1a00000000034f": "0",
38+
"oid:0x1a000000000350": "1",
39+
"oid:0x1a000000000351": "2",
40+
"oid:0x1a000000000352": "3",
41+
"oid:0x1a000000000353": "4",
42+
"oid:0x1a000000000354": "5",
43+
"oid:0x1a000000000355": "6",
44+
"oid:0x1a000000000356": "7",
45+
"oid:0x1a000000000377": "0",
46+
"oid:0x1a000000000378": "1",
47+
"oid:0x1a000000000379": "2",
48+
"oid:0x1a00000000037a": "3",
49+
"oid:0x1a00000000037b": "4",
50+
"oid:0x1a00000000037c": "5",
51+
"oid:0x1a00000000037d": "6",
52+
"oid:0x1a00000000037e": "7",
53+
"oid:0x1a00000000039f": "0",
54+
"oid:0x1a0000000003a0": "1",
55+
"oid:0x1a0000000003a1": "2",
56+
"oid:0x1a0000000003a2": "3",
57+
"oid:0x1a0000000003a3": "4",
58+
"oid:0x1a0000000003a4": "5",
59+
"oid:0x1a0000000003a5": "6",
60+
"oid:0x1a0000000003a6": "7"
61+
}
62+
}

tests/pgdrop_input/counters_db4.json

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"COUNTERS_PORT_NAME_MAP": {
3+
"Ethernet0": "oid:0x1000000000012",
4+
"Ethernet4": "oid:0x1000000000013",
5+
"Ethernet8": "oid:0x1000000000014"
6+
},
7+
"COUNTERS_PG_NAME_MAP": {
8+
"Ethernet0:0": "oid:0x1a00000000034f",
9+
"Ethernet0:1": "oid:0x1a000000000350",
10+
"Ethernet0:2": "oid:0x1a000000000351",
11+
"Ethernet0:3": "oid:0x1a000000000352",
12+
"Ethernet0:4": "oid:0x1a000000000353",
13+
"Ethernet0:5": "oid:0x1a000000000354",
14+
"Ethernet0:6": "oid:0x1a000000000355",
15+
"Ethernet0:7": "oid:0x1a000000000356",
16+
"Ethernet4:0": "oid:0x1a000000000377",
17+
"Ethernet4:1": "oid:0x1a000000000378",
18+
"Ethernet4:2": "oid:0x1a000000000379",
19+
"Ethernet4:3": "oid:0x1a00000000037a",
20+
"Ethernet4:4": "oid:0x1a00000000037b",
21+
"Ethernet4:5": "oid:0x1a00000000037c",
22+
"Ethernet4:6": "oid:0x1a00000000037d",
23+
"Ethernet4:7": "oid:0x1a00000000037e",
24+
"Ethernet8:0": "oid:0x1a00000000039f",
25+
"Ethernet8:1": "oid:0x1a0000000003a0",
26+
"Ethernet8:2": "oid:0x1a0000000003a1",
27+
"Ethernet8:3": "oid:0x1a0000000003a2",
28+
"Ethernet8:4": "oid:0x1a0000000003a3",
29+
"Ethernet8:5": "oid:0x1a0000000003a4",
30+
"Ethernet8:6": "oid:0x1a0000000003a5",
31+
"Ethernet8:7": "oid:0x1a0000000003a6"
32+
},
33+
"COUNTERS_PG_PORT_MAP": {
34+
"oid:0x1a00000000034f": "oid:0x1000000000012",
35+
"oid:0x1a000000000350": "oid:0x1000000000012",
36+
"oid:0x1a000000000351": "oid:0x1000000000012",
37+
"oid:0x1a000000000352": "oid:0x1000000000012",
38+
"oid:0x1a000000000353": "oid:0x1000000000012",
39+
"oid:0x1a000000000354": "oid:0x1000000000012",
40+
"oid:0x1a000000000355": "oid:0x1000000000012",
41+
"oid:0x1a000000000356": "oid:0x1000000000012",
42+
"oid:0x1a000000000377": "oid:0x1000000000013",
43+
"oid:0x1a000000000378": "oid:0x1000000000013",
44+
"oid:0x1a000000000379": "oid:0x1000000000013",
45+
"oid:0x1a00000000037a": "oid:0x1000000000013",
46+
"oid:0x1a00000000037b": "oid:0x1000000000013",
47+
"oid:0x1a00000000037c": "oid:0x1000000000013",
48+
"oid:0x1a00000000037d": "oid:0x1000000000013",
49+
"oid:0x1a00000000037e": "oid:0x1000000000013",
50+
"oid:0x1a00000000039f": "oid:0x1000000000014",
51+
"oid:0x1a0000000003a0": "oid:0x1000000000014",
52+
"oid:0x1a0000000003a1": "oid:0x1000000000014",
53+
"oid:0x1a0000000003a2": "oid:0x1000000000014",
54+
"oid:0x1a0000000003a3": "oid:0x1000000000014",
55+
"oid:0x1a0000000003a4": "oid:0x1000000000014",
56+
"oid:0x1a0000000003a5": "oid:0x1000000000014",
57+
"oid:0x1a0000000003a6": "oid:0x1000000000014"
58+
},
59+
60+
"COUNTERS_PG_INDEX_MAP": {
61+
}
62+
}

0 commit comments

Comments
 (0)