Skip to content

Commit 84be8b4

Browse files
authored
Dump media_settings from appDB during fast-reboot (sonic-net#1910)
1 parent 563c416 commit 84be8b4

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

scripts/fast-reboot-dump.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,31 @@ def generate_default_route_entries(filename):
319319
with open(filename, 'w') as fp:
320320
json.dump(default_routes_output, fp, indent=2, separators=(',', ': '))
321321

322+
def generate_media_config(filename):
323+
db = SonicV2Connector(host='127.0.0.1')
324+
db.connect(db.APPL_DB, False) # Make one attempt only
325+
media_config= []
326+
port_serdes_keys = ["preemphasis", "idriver", "ipredriver", "pre1", "pre2", "pre3", "main", "post1", "post2", "post3","attn"]
327+
keys = db.keys(db.APPL_DB, 'PORT_TABLE:*')
328+
keys = [] if keys is None else keys
329+
for key in keys:
330+
entry = db.get_all(db.APPL_DB, key)
331+
media_attributes = {}
332+
for attr in entry.keys():
333+
if attr in port_serdes_keys:
334+
media_attributes[attr] = entry[attr]
335+
obj = {
336+
'%s' % (key) : media_attributes,
337+
'OP': 'SET'
338+
}
339+
media_config.append(obj)
340+
341+
db.close(db.APPL_DB)
342+
343+
with open(filename, 'w') as fp:
344+
json.dump(media_config, fp, indent=2, separators=(',', ': '))
345+
346+
return media_config
322347

323348
def main():
324349
parser = argparse.ArgumentParser()
@@ -331,6 +356,7 @@ def main():
331356
all_available_macs, map_mac_ip_per_vlan = generate_fdb_entries(root_dir + '/fdb.json')
332357
neighbor_entries = generate_neighbor_entries(root_dir + '/arp.json', all_available_macs)
333358
generate_default_route_entries(root_dir + '/default_routes.json')
359+
generate_media_config(root_dir + '/media_config.json')
334360
send_garp_nd(neighbor_entries, map_mac_ip_per_vlan)
335361
return 0
336362

0 commit comments

Comments
 (0)