@@ -276,6 +276,7 @@ def get_media_settings_value(physical_port, key):
276
276
range_separator = '-'
277
277
comma_separator = ','
278
278
media_dict = {}
279
+ default_dict = {}
279
280
280
281
# Keys under global media settings can be a list or range or list of ranges
281
282
# of physical port numbers. Below are some examples
@@ -300,31 +301,42 @@ def get_media_settings_value(physical_port, key):
300
301
if check_port_in_range (keys , physical_port ):
301
302
media_dict = g_dict ["GLOBAL_MEDIA_SETTINGS" ][keys ]
302
303
303
- # If there is a match in the global profile for a media type,
304
- # fetch those values
305
- if key [0 ] in media_dict :
306
- return media_dict [key [0 ]]
307
- elif key [1 ] in media_dict :
308
- return media_dict [key [1 ]]
304
+ # If there is a match in the global profile for a media type,
305
+ # fetch those values
306
+ if key [0 ] in media_dict :
307
+ return media_dict [key [0 ]]
308
+ elif key [1 ] in media_dict :
309
+ return media_dict [key [1 ]]
310
+ elif "Default" in media_dict :
311
+ default_dict = media_dict ['Default' ]
312
+
313
+ media_dict = {}
309
314
310
315
if "PORT_MEDIA_SETTINGS" in g_dict :
311
316
for keys in g_dict ["PORT_MEDIA_SETTINGS" ]:
312
317
if int (keys ) == physical_port :
313
318
media_dict = g_dict ["PORT_MEDIA_SETTINGS" ][keys ]
314
319
break
315
320
if len (media_dict ) == 0 :
316
- logger .log_error ("Error: No values for physica port '%d'"
317
- % physical_port )
321
+ if default_dict != 0 :
322
+ return default_dict
323
+ else :
324
+ logger .log_error ("Error: No values for physical port '%d'"
325
+ % physical_port )
318
326
return {}
319
327
if key [0 ] in media_dict :
320
328
return media_dict [key [0 ]]
321
329
elif key [1 ] in media_dict :
322
330
return media_dict [key [1 ]]
323
331
elif "Default" in media_dict :
324
332
return media_dict ['Default' ]
333
+ elif len (default_dict ) != 0 :
334
+ return default_dict
325
335
else :
326
336
return {}
327
-
337
+ else :
338
+ if default_dict != 0 :
339
+ return default_dict
328
340
329
341
def get_media_settings_key (physical_port , transceiver_dict ):
330
342
sup_compliance_str = '10/40G Ethernet Compliance Code'
0 commit comments