DellEMC: Z9332f - SFP API get_error_description implementation (#9071)
* DellEMC: Z9332f - SFP API get_error_description implementation * Update error message
This commit is contained in:
parent
2c801ef442
commit
2d7840ce9a
@ -1416,3 +1416,34 @@ class Sfp(SfpBase):
|
|||||||
bool: True if it is replaceable.
|
bool: True if it is replaceable.
|
||||||
"""
|
"""
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def get_error_description(self):
|
||||||
|
"""
|
||||||
|
Retrives the error descriptions of the SFP module
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
String that represents the current error descriptions of vendor specific errors
|
||||||
|
In case there are multiple errors, they should be joined by '|',
|
||||||
|
like: "Bad EEPROM|Unsupported cable"
|
||||||
|
"""
|
||||||
|
if not self.get_presence():
|
||||||
|
return self.SFP_STATUS_UNPLUGGED
|
||||||
|
else:
|
||||||
|
if not os.path.isfile(self.eeprom_path):
|
||||||
|
return "EEPROM driver is not attached"
|
||||||
|
|
||||||
|
if self.sfp_type == 'SFP':
|
||||||
|
offset = SFP_INFO_OFFSET
|
||||||
|
elif self.sfp_type == 'QSFP':
|
||||||
|
offset = QSFP_INFO_OFFSET
|
||||||
|
elif self.sfp_type == 'QSFP_DD':
|
||||||
|
offset = QSFP_DD_PAGE0
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(self.eeprom_path, mode="rb", buffering=0) as eeprom:
|
||||||
|
eeprom.seek(offset)
|
||||||
|
eeprom.read(1)
|
||||||
|
except OSError as e:
|
||||||
|
return "EEPROM read failed ({})".format(e.strerror)
|
||||||
|
|
||||||
|
return self.SFP_STATUS_OK
|
||||||
|
Reference in New Issue
Block a user