[Mellanox] Remove eeprom cache file when first time init eeprom object (#6071)

EEPROM cache file is not refreshed after install a new ONIE version even if the eeprom data is updated. The current Eeprom class always try to read from the cache file when the file exists. The PR is aimed to fix it.
This commit is contained in:
Junchao-Mellanox 2020-12-02 02:44:44 +08:00 committed by GitHub
parent 165cae73ab
commit 63992583ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -14,11 +14,15 @@ if sys.version_info.major == 3:
else:
from cStringIO import StringIO
from sonic_py_common.logger import Logger
try:
from sonic_platform_base.sonic_eeprom import eeprom_tlvinfo
except ImportError as e:
raise ImportError (str(e) + "- required module not found")
logger = Logger()
#
# CACHE_XXX stuffs are supposted to be moved to the base classes
# since they are common for all vendors
@ -60,14 +64,22 @@ class Eeprom(eeprom_tlvinfo.TlvInfoDecoder):
self._eeprom_loaded = True
def _load_eeprom(self):
cache_file = os.path.join(CACHE_ROOT, CACHE_FILE)
if not os.path.exists(CACHE_ROOT):
try:
os.makedirs(CACHE_ROOT)
except:
pass
else:
try:
# Make sure first time always read eeprom data from hardware
if os.path.exists(cache_file):
os.remove(cache_file)
except Exception as e:
logger.log_error('Failed to remove cache file {} - {}'.format(cache_file, repr(e)))
try:
self.set_cache_name(os.path.join(CACHE_ROOT, CACHE_FILE))
self.set_cache_name(cache_file)
except:
pass