Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions scripts/decode-syseeprom
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import optparse
import os
import re
import sys
import errno

import sonic_platform
from sonic_platform_base.sonic_eeprom.eeprom_tlvinfo import TlvInfoDecoder
Expand Down Expand Up @@ -238,6 +239,12 @@ def main():
if any(re.match(p, platform) for p in platforms_without_eeprom_db):
support_eeprom_db = False

# Currently, kvm does not support eeprom
platforms_without_eeprom = ['.*kvm.*']
if any(re.match(p, platform) for p in platforms_without_eeprom):
print('Platform {} does not support EEPROM'.format(platform))
return errno.ENODEV

use_db = opts.db and support_eeprom_db

if opts.mgmtmac:
Expand Down
10 changes: 10 additions & 0 deletions tests/decode_syseeprom_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import os
import sys
import errno
from unittest import mock

import pytest
Expand Down Expand Up @@ -202,3 +203,12 @@ def test_support_platforms_not_db_based(self, mockDbBased, mockNotDbBased):
decode_syseeprom.main()
assert mockNotDbBased.called
assert not mockDbBased.called

@mock.patch('os.geteuid', lambda: 0)
@mock.patch('sonic_py_common.device_info.get_platform', lambda: 'kvm')
@mock.patch.object(sys, 'argv', ["decode-syseeprom"])
@mock.patch('decode_syseeprom.read_and_print_eeprom')
@mock.patch('decode_syseeprom.read_eeprom_from_db')
def test_support_platforms_no_eeprom(self, mockDbBased, mockNotDbBased):
ret = decode_syseeprom.main()
assert ret == errno.ENODEV
Loading