class BaseHandler(tornado.web.RequestHandler): def initialize(self): self.classname = self.__class__.__name__ self.user_header = self.get_secure_cookie self.session = DB_Session() def get_current_user(self): return self.get_secure_cookie('user') @property def db(self): db = torndb.Connection(settings.DBINFO['dbhost'], settings.DBINFO['dbname'], settings.DBINFO['dbuser'], settings.DBINFO['dbpasswd']) return db def timeout_command(self, cmd, timeout): time_start = datetime.datetime.now() process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) while process.poll() is None: time.sleep(0.2) time_now = datetime.datetime.now() if (time_now - time_start).seconds > timeout: os.kill(process.pid, signal.SIGILL) os.waitpid(process.pid) return "False error timeout" return process.stdout.read() def on_finish(self): self.session.close()
def initialize(self): self.classname = self.__class__.__name__ self.user_header = self.get_secure_cookie self.session = DB_Session()