class Platform(PlatformBase): def __init__(self): PlatformBase.__init__(self) if self._is_host(): self._chassis = Chassis() self._chassis.initialize_components() self._chassis.initizalize_system_led() else: self._chassis = Chassis() self._chassis.initialize_psu() self._chassis.initialize_fan() self._chassis.initialize_eeprom() self._chassis.initialize_thermals() def _is_host(self): """ Test whether current process is running on the host or an docker return True for host and False for docker """ is_host = False try: proc = subprocess.Popen("docker --version 2>/dev/null", stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT) stdout = proc.communicate()[0] proc.wait() result = stdout.rstrip('\n') if result != '': is_host = True except OSError, e: pass return is_host
class Platform(PlatformBase): def __init__(self): PlatformBase.__init__(self) self._chassis = Chassis() self._chassis.initialize_psu() self._chassis.initialize_eeprom() if utils.is_host(): self._chassis.initialize_components() self._chassis.initizalize_system_led() else: self._chassis.initialize_fan() self._chassis.initialize_thermals()
def test_fan(self): from sonic_platform.fan_drawer import RealDrawer, VirtualDrawer # Test creating fixed fan DeviceDataManager.is_fan_hotswapable = mock.MagicMock( return_value=False) assert DeviceDataManager.get_fan_drawer_count() == 1 DeviceDataManager.get_fan_count = mock.MagicMock(return_value=4) chassis = Chassis() chassis.initialize_fan() assert len(chassis._fan_drawer_list) == 1 assert len( list( filter(lambda x: isinstance(x, VirtualDrawer), chassis._fan_drawer_list))) == 1 assert chassis.get_fan_drawer(0).get_num_fans() == 4 # Test creating hot swapable fan DeviceDataManager.get_fan_drawer_count = mock.MagicMock(return_value=2) DeviceDataManager.get_fan_count = mock.MagicMock(return_value=4) DeviceDataManager.is_fan_hotswapable = mock.MagicMock( return_value=True) chassis._fan_drawer_list = [] chassis.initialize_fan() assert len(chassis._fan_drawer_list) == 2 assert len( list( filter(lambda x: isinstance(x, RealDrawer), chassis._fan_drawer_list))) == 2 assert chassis.get_fan_drawer(0).get_num_fans() == 2 assert chassis.get_fan_drawer(1).get_num_fans() == 2 # Test chassis.get_all_fan_drawers chassis._fan_drawer_list = [] assert len(chassis.get_all_fan_drawers()) == 2 # Test chassis.get_fan_drawer chassis._fan_drawer_list = [] fan_drawer = chassis.get_fan_drawer(0) assert fan_drawer and isinstance(fan_drawer, RealDrawer) fan_drawer = chassis.get_fan_drawer(2) assert fan_drawer is None # Test chassis.get_num_fan_drawers chassis._fan_drawer_list = [] assert chassis.get_num_fan_drawers() == 2