From 2b82af5847cd29d88f0893c518da63eda5532189 Mon Sep 17 00:00:00 2001 From: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com> Date: Thu, 9 Dec 2021 05:05:10 +0800 Subject: [PATCH] [Mellanox] Allow user to set LED to orange (#9259) Why I did it Nvidia platform API does not support set LED to orange How I did it Allow user to set LED to orange How to verify it Added unit test Manual test --- .../mellanox/mlnx-platform-api/sonic_platform/led.py | 10 ++++++++++ platform/mellanox/mlnx-platform-api/tests/test_led.py | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/led.py b/platform/mellanox/mlnx-platform-api/sonic_platform/led.py index 2f27386814c7..2f015602b904 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/led.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/led.py @@ -60,6 +60,16 @@ def set_status(self, color): else: return False + utils.write_file(led_path, Led.LED_ON) + status = True + elif color == Led.STATUS_LED_COLOR_ORANGE: + if Led.STATUS_LED_COLOR_ORANGE in led_cap_list: + led_path = self.get_orange_led_path() + elif Led.STATUS_LED_COLOR_RED in led_cap_list: + led_path = self.get_red_led_path() + else: + return False + utils.write_file(led_path, Led.LED_ON) status = True elif color == Led.STATUS_LED_COLOR_OFF: diff --git a/platform/mellanox/mlnx-platform-api/tests/test_led.py b/platform/mellanox/mlnx-platform-api/tests/test_led.py index 71be3685ceaf..60cc113fbddd 100644 --- a/platform/mellanox/mlnx-platform-api/tests/test_led.py +++ b/platform/mellanox/mlnx-platform-api/tests/test_led.py @@ -62,7 +62,9 @@ def mock_write_file(file_path, content, **kwargs): assert obj.set_status_led(Led.STATUS_LED_COLOR_GREEN) is True assert obj.get_status_led() == Led.STATUS_LED_COLOR_GREEN mock_file_content[physical_led.get_green_led_path()] = Led.LED_OFF - assert obj.set_status_led(Led.STATUS_LED_COLOR_ORANGE) is False + assert obj.set_status_led(Led.STATUS_LED_COLOR_ORANGE) is True + assert obj.get_status_led() == Led.STATUS_LED_COLOR_RED + mock_file_content[physical_led.get_orange_led_path()] = Led.LED_OFF assert obj.set_status_led(Led.STATUS_LED_COLOR_RED_BLINK) assert obj.get_status_led() == Led.STATUS_LED_COLOR_RED_BLINK @@ -85,7 +87,7 @@ def _mock_led_file_content(self, led): led.get_green_led_path(): Led.LED_ON, led.get_red_led_path(): Led.LED_OFF, led.get_orange_led_path(): Led.LED_OFF, - led.get_led_cap_path(): 'none green green_blink red red_blink', + led.get_led_cap_path(): 'none green green_blink red red_blink orange', led.get_green_led_delay_off_path(): Led.LED_OFF, led.get_green_led_delay_on_path(): Led.LED_OFF, led.get_red_led_delay_off_path(): Led.LED_OFF,