diff --git a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/fan.py b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/fan.py index c13382fddb..371bb86371 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/fan.py +++ b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/fan.py @@ -17,15 +17,15 @@ def _fan_info_get(fan_num, cb, default=None): # Fan -> FanBase -> DeviceBase class Fan(FanBase): - def __init__(self, index, fantrayindex): + def __init__(self, index, max_index, fantrayindex): self.__index = index - self.__fantrayindex = fantrayindex + self.__glob_index = (fantrayindex - 1) * max_index + self.__index # FanBase interface methods: # returns speed in percents def get_speed(self): def cb(info): return info.percent - return _fan_info_get(self.__index, cb, 0) + return _fan_info_get(self.__glob_index, cb, 0) def set_speed(self, percent): # Fan tray speed controlled by BMC @@ -33,10 +33,10 @@ class Fan(FanBase): # DeviceBase interface methods: def get_name(self): - return "counter-rotating-fan-{}".format((self.__fantrayindex - 1) * self.__index + self.__index) + return "counter-rotating-fan-{}".format(self.__glob_index) def get_presence(self): - return _fan_info_get(self.__index, lambda _: True, False) + return _fan_info_get(self.__glob_index, lambda _: True, False) def get_position_in_parent(self): return self.__index diff --git a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/fan_drawer.py b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/fan_drawer.py index 269d3d43b0..0711d1755d 100644 --- a/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/fan_drawer.py +++ b/platform/barefoot/sonic-platform-modules-bfn-montara/sonic_platform/fan_drawer.py @@ -10,7 +10,7 @@ class FanDrawer(FanDrawerBase): def __init__(self, fantray_index, max_fan): # For now we return only present fans self.fantrayindex = fantray_index - self._fan_list = [Fan(i, self.fantrayindex) for i in range(1, max_fan + 1)] + self._fan_list = [Fan(i, max_fan, self.fantrayindex) for i in range(1, max_fan + 1)] # DeviceBase interface methods: def get_name(self):