Skip to content

Commit 30895d1

Browse files
authored
Add set_power api support to xcvr api (sonic-net#484)
1 parent 8e673d5 commit 30895d1

File tree

4 files changed

+34
-0
lines changed

4 files changed

+34
-0
lines changed

sonic_platform_base/sfp_base.py

+12
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,18 @@ def set_lpmode(self, lpmode):
385385
"""
386386
raise NotImplementedError
387387

388+
def set_power(self, mode):
389+
"""
390+
Enables or Disables the power of QSFP
391+
392+
Args:
393+
mode: A Boolean, True to enable power, False to disable it
394+
395+
Returns:
396+
A boolean, True if power is enabled or disbaled successfully, False if not
397+
"""
398+
raise NotImplementedError
399+
388400
def set_power_override(self, power_override, power_set):
389401
"""
390402
Sets SFP power level using power_override and power_set

sonic_platform_base/sonic_xcvr/sfp_optoe_base.py

+3
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,9 @@ def set_lpmode(self, lpmode):
221221
api = self.get_xcvr_api()
222222
return api.set_lpmode(lpmode) if api is not None else None
223223

224+
def set_power(self, mode):
225+
raise NotImplementedError
226+
224227
def set_optoe_write_max(self, write_max):
225228
sys_path = self.get_eeprom_path()
226229
sys_path = sys_path.replace("eeprom", "write_max")

tests/sfputilhelper_test.py

+10
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import pytest
55

66
from sonic_platform_base.sonic_sfp import sfputilhelper
7+
from sonic_platform_base.sfp_base import SfpBase
78
from unittest import mock
89

910
PORT_LIST = [
@@ -144,3 +145,12 @@ def test_read_all_port_mappings_role(self):
144145
logical_port_list = sfputil_helper.logical
145146

146147
assert len(logical_port_list) == len(PORT_FILTERED_LIST)
148+
149+
def test_set_power(self):
150+
sfpbase = SfpBase()
151+
mode = 1
152+
try:
153+
sfpbase.set_power(mode)
154+
except NotImplementedError:
155+
exception_raised = True
156+
assert exception_raised

tests/sonic_xcvr/test_sfp_optoe_base.py

+9
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,12 @@ def test_set_optoe_write_timeout_oserror(self, mock_get_eeprom_path, mock_open):
113113
self.sfp_optoe_api.set_optoe_write_timeout(expected_timeout)
114114

115115
mock_open.assert_called()
116+
117+
def test_set_power(self):
118+
mode = 1
119+
try:
120+
self.sfp_optoe_api.set_power(mode)
121+
except NotImplementedError:
122+
exception_raised = True
123+
assert exception_raised
124+

0 commit comments

Comments
 (0)