From 956fd8dfe450dab9d6cb40c572fface32bd17ed7 Mon Sep 17 00:00:00 2001 From: Andy Wong Date: Fri, 5 Mar 2021 17:41:32 -0800 Subject: [PATCH] Load interval from thermal_policy.json --- .../thermal_manager_base.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sonic_platform_base/sonic_thermal_control/thermal_manager_base.py b/sonic_platform_base/sonic_thermal_control/thermal_manager_base.py index 3b380bad3..b314981c2 100644 --- a/sonic_platform_base/sonic_thermal_control/thermal_manager_base.py +++ b/sonic_platform_base/sonic_thermal_control/thermal_manager_base.py @@ -14,6 +14,7 @@ class ThermalManagerBase(object): JSON_FIELD_THERMAL_ALGORITHM = "thermal_control_algorithm" JSON_FIELD_FAN_SPEED_WHEN_SUSPEND = "fan_speed_when_suspend" JSON_FIELD_RUN_AT_BOOT_UP = "run_at_boot_up" + JSON_FIELD_INTERVAL = "interval" # Dictionary of ThermalPolicy objects. _policy_dict = {} @@ -25,6 +26,8 @@ class ThermalManagerBase(object): _run_thermal_algorithm_at_boot_up = None + _interval = 60 + @classmethod def initialize(cls): """ @@ -108,7 +111,8 @@ def load(cls, policy_file_name): } ] } - ] + ], + "interval": "30", } :param policy_file_name: Path of JSON policy file. :return: @@ -137,6 +141,10 @@ def load(cls, policy_file_name): cls._fan_speed_when_suspend = \ int(json_thermal_algorithm_config[cls.JSON_FIELD_FAN_SPEED_WHEN_SUSPEND]) + if cls.JSON_FIELD_INTERVAL in json_obj: + cls._interval = int(json_obj[cls.JSON_FIELD_INTERVAL]) + + @classmethod def _load_policy(cls, json_policy): """ @@ -201,3 +209,10 @@ def init_thermal_algorithm(cls, chassis): for psu in chassis.get_all_psus(): for fan in psu.get_all_fans(): fan.set_speed(cls._fan_speed_when_suspend) + + @classmethod + def get_interval(cls): + """ + Get the wait interval for executing thermal policies + """ + return cls._interval