def update_dead_fans(self, dead_fans): ''' Check for dead and recovered fans ''' last_dead_fans = dead_fans.copy() speeds = self.machine.read_fans(self.fans) print("\x1b[2J\x1b[H") sys.stdout.flush() for fan, rpms in list(speeds.items()): Logger.info("%s speed: %d RPM" % (fan.label, rpms)) if rpms < self.fsc_config['min_rpm']: dead_fans.add(fan) self.fsc_fan_action(fan, action='dead') else: dead_fans.discard(fan) recovered_fans = last_dead_fans - dead_fans newly_dead_fans = dead_fans - last_dead_fans if len(newly_dead_fans) > 0: if self.fanpower: Logger.warn("%d fans failed" % (len(dead_fans), )) else: Logger.crit("%d fans failed" % (len(dead_fans), )) for dead_fan in dead_fans: if self.fanpower: Logger.warn("%s dead, %d RPM" % (dead_fan.label, speeds[dead_fan])) else: Logger.crit("%s dead, %d RPM" % (dead_fan.label, speeds[dead_fan])) Logger.usbdbg("%s fail" % (dead_fan.label)) fan_fail_record_path = FAN_FAIL_RECORD_DIR + '%s' % ( dead_fan.label) if not os.path.isfile(fan_fail_record_path): fan_fail_record = open(fan_fail_record_path, 'w') fan_fail_record.close() for fan in recovered_fans: if self.fanpower: Logger.warn("%s has recovered" % (fan.label, )) else: Logger.crit("%s has recovered" % (fan.label, )) Logger.usbdbg("%s recovered" % (fan.label)) self.fsc_fan_action(fan, action='recover') fan_fail_record_path = FAN_FAIL_RECORD_DIR + '%s' % (fan.label) if os.path.isfile(fan_fail_record_path): os.remove(fan_fail_record_path) return dead_fans
def update_dead_fans(self, dead_fans): ''' Check for dead and recovered fans ''' last_dead_fans = dead_fans.copy() speeds = self.machine.read_fans(self.fans) print("\x1b[2J\x1b[H") sys.stdout.flush() for fan, rpms in speeds.items(): Logger.info("%s speed: %d RPM" % (fan.label, rpms)) if rpms < self.fsc_config['min_rpm']: dead_fans.add(fan) self.fsc_fan_action(fan, action='dead') else: dead_fans.discard(fan) recovered_fans = last_dead_fans - dead_fans newly_dead_fans = dead_fans - last_dead_fans if len(newly_dead_fans) > 0: if self.fanpower: Logger.warn("%d fans failed" % (len(dead_fans), )) else: Logger.crit("%d fans failed" % (len(dead_fans), )) for dead_fan in dead_fans: if self.fanpower: Logger.warn("%s dead, %d RPM" % (dead_fan.label, speeds[dead_fan])) else: Logger.crit("%s dead, %d RPM" % (dead_fan.label, speeds[dead_fan])) Logger.usbdbg("%s fail" % (dead_fan.label)) for fan in recovered_fans: if self.fanpower: Logger.warn("%s has recovered" % (fan.label, )) else: Logger.crit("%s has recovered" % (fan.label, )) Logger.usbdbg("%s recovered" % (fan.label)) self.fsc_fan_action(fan, action='recover') return dead_fans