def update_broken_commands(self): s = Session() s.begin() try: for c in s.query(Command).filter_by(exit_code=None): if not self.pid_exists(c.pid): c.progress = 1.0 c.exit_code = 666 c.finish_ts = int(time.time()) s.add(c) logger.info( 'Command {}, pid {} is considered broken, will be marked as ' 'finished'.format( c.uid, c.pid ) ) else: logger.warn( 'Command {}, pid {} is considered broken, but process is running'.format( c.uid, c.pid ) ) s.commit() except Exception: logger.exception('Failed to update broken commands') s.rollback() raise
def set_false_exit_code(): logger.warn('pid {0}: executing false exit callback'.format( self.subprocess.pid)) self._exit_cb_timeout = None if self._exit: return logger.warn('pid {0}: setting exit code to 999'.format( self.subprocess.pid)) self._exit = True self.exit_code = 999 self.progress = 1.0 self.set_command_code() self.command.on_command_completed()
def set_false_exit_code(): logger.warn('pid {0}: executing false exit callback'.format( self.subprocess.pid)) self.exit_cb_timeout = None if self.exit: return logger.warn('pid {0}: setting exit code to 999'.format( self.subprocess.pid)) self.exit = True self.exit_code = 999 self.progress = 1.0 self.finish_ts = int(time.time()) self.update_db_command()
def update_broken_commands(self): s = Session() s.begin() try: for c in s.query(Command).filter_by(exit_code=None): if not self.pid_exists(c.pid): c.progress = 1.0 c.exit_code = 666 c.finish_ts = int(time.time()) s.add(c) logger.info('Command {0}, pid {1} is considered broken, ' 'will be marked as finished'.format( c.uid, c.pid)) else: logger.warn('Command {0}, pid {1} is considered broken, ' 'but process is running'.format(c.uid, c.pid)) s.commit() except Exception as e: logger.exception('Failed to update broken commands') s.rollback() raise