def run_module_info(self, modules): clib = ChopLib() clib.text = True clib.modules = modules clib.modinfo = True clib.start() stopped = False message_queue = clib.get_message_queue() while not stopped and clib.is_alive(): try: message = message_queue.get(True, .1) except Queue.Empty, e: continue #clean up messages if message['type'] == 'ctrl': #self.send_message(message['data']['msg'] ) if message['data']['msg'] == 'finished': stopped = True elif message['type'] == 'text': self.send_message(message['data']['data'])
class _ChopLibShell(Thread): def __init__(self, queuetracker): Thread.__init__(self, name='ChopLibShell') self.request = None self.liason = None self.queuetracker = queuetracker self.choplib = None self.stopped = False def associate(self, liason, request): if self.liason is not None: try: self.request = None self.liason.deassociate() except: pass self.liason = liason self.request = request def deassociate(self, liason, request): if self.liason == liason: self.request = None self.liason = None def _force_deassociate(self): if self.liason is not None: self.request = None self.liason = None def stop(self): if self.liason is not None: try: self.liason.deassociate() except: pass self.stopped = True def send_message(self, message): self.request.ws_stream.send_message(message, binary=False) def setup_choplib(self): if self.choplib is not None: self.destroy_choplib() self.choplib = ChopLib() self.choplib.text = True if self.queuetracker is None: raise Exception #queuetracker is managed by the the webui self.queuetracker.set_queue(self.choplib.get_message_queue()) def setup_choplib_from_config(self, chopconfig): if self.choplib is not None: self.destroy_choplib() self.choplib = ChopLib() self.choplib.text = True if not os.path.exists(chopconfig.filename): raise ValueError("Unable to find file '%s'" % chopconfig.filename) self.choplib.filename = chopconfig.filename self.choplib.base_dir = chopconfig.base_dir self.choplib.mod_dir = chopconfig.mod_dir self.choplib.ext_dir = chopconfig.ext_dir self.choplib.aslist = chopconfig.aslist self.choplib.longrun = chopconfig.longrun self.choplib.modinfo = chopconfig.modinfo self.choplib.GMT = chopconfig.GMT self.choplib.bpf = chopconfig.bpf self.choplib.modules = chopconfig.modules #if chopconfig.savedir: #pass #chopui.savefiles = True #chopui.savedir = chopconfig.savedir #self.choplib.savefiles = True if self.queuetracker is None: raise Exception #queuetracker is managed by the the webui self.queuetracker.set_queue(self.choplib.get_message_queue()) def destroy_choplib(self): self.queuetracker.unset_queue() if self.choplib is not None: self.choplib.stop() self.choplib = None def reset_choplib(self): options = self.choplib.options self.destroy_choplib() self.setup_choplib() self.choplib.options = options def run_module_info(self, modules): clib = ChopLib() clib.text = True clib.modules = modules clib.modinfo = True clib.start() stopped = False message_queue = clib.get_message_queue() while not stopped and clib.is_alive(): try: message = message_queue.get(True, .1) except Queue.Empty, e: continue #clean up messages if message['type'] == 'ctrl': #self.send_message(message['data']['msg'] ) if message['data']['msg'] == 'finished': stopped = True elif message['type'] == 'text': self.send_message(message['data']['data']) clib.join() del clib
class _ChopLibShell(Thread): def __init__(self, queuetracker): Thread.__init__(self, name = 'ChopLibShell') self.request = None self.liason = None self.queuetracker = queuetracker self.choplib = None self.stopped = False def associate(self, liason, request): if self.liason is not None: try: self.request = None self.liason.deassociate() except: pass self.liason = liason self.request = request def deassociate(self, liason, request): if self.liason == liason: self.request = None self.liason = None def _force_deassociate(self): if self.liason is not None: self.request = None self.liason = None def stop(self): if self.liason is not None: try: self.liason.deassociate() except: pass self.stopped = True def send_message(self, message): self.request.ws_stream.send_message(message, binary = False) def setup_choplib(self): if self.choplib is not None: self.destroy_choplib() self.choplib = ChopLib() self.choplib.text = True if self.queuetracker is None: raise Exception #queuetracker is managed by the the webui self.queuetracker.set_queue(self.choplib.get_message_queue()) def destroy_choplib(self): self.queuetracker.unset_queue() if self.choplib is not None: self.choplib.stop() self.choplib = None def reset_choplib(self): options = self.choplib.options self.destroy_choplib() self.setup_choplib() self.choplib.options = options def run_module_info(self, modules): clib = ChopLib() clib.text = True clib.modules = modules clib.modinfo = True clib.start() stopped = False message_queue = clib.get_message_queue() while not stopped and clib.is_alive(): try: message = message_queue.get(True, .1) except Queue.Empty, e: continue #clean up messages if message['type'] == 'ctrl': #self.send_message(message['data']['msg'] ) if message['data']['msg'] == 'finished': stopped = True elif message['type'] == 'text': self.send_message(message['data']['data']) clib.join() del clib
class _ChopLibShell(Thread): def __init__(self, queuetracker): Thread.__init__(self, name='ChopLibShell') self.request = None self.liason = None self.queuetracker = queuetracker self.choplib = None self.stopped = False def associate(self, liason, request): if self.liason is not None: try: self.request = None self.liason.deassociate() except: pass self.liason = liason self.request = request def deassociate(self, liason, request): if self.liason == liason: self.request = None self.liason = None def _force_deassociate(self): if self.liason is not None: self.request = None self.liason = None def stop(self): if self.liason is not None: try: self.liason.deassociate() except: pass self.stopped = True def send_message(self, message): self.request.ws_stream.send_message(message, binary=False) def setup_choplib(self): if self.choplib is not None: self.destroy_choplib() self.choplib = ChopLib() self.choplib.text = True if self.queuetracker is None: raise Exception #queuetracker is managed by the the webui self.queuetracker.set_queue(self.choplib.get_message_queue()) def destroy_choplib(self): self.queuetracker.unset_queue() if self.choplib is not None: self.choplib.stop() self.choplib = None def reset_choplib(self): options = self.choplib.options self.destroy_choplib() self.setup_choplib() self.choplib.options = options def run_module_info(self, modules): clib = ChopLib() clib.text = True clib.modules = modules clib.modinfo = True clib.start() stopped = False message_queue = clib.get_message_queue() while not stopped and clib.is_alive(): try: message = message_queue.get(True, .1) except Queue.Empty, e: continue #clean up messages if message['type'] == 'ctrl': #self.send_message(message['data']['msg'] ) if message['data']['msg'] == 'finished': stopped = True elif message['type'] == 'text': self.send_message(message['data']['data']) clib.join() del clib
class _ChopLibShell(Thread): def __init__(self, queuetracker): Thread.__init__(self, name = 'ChopLibShell') self.request = None self.liason = None self.queuetracker = queuetracker self.choplib = None self.stopped = False def associate(self, liason, request): if self.liason is not None: try: self.request = None self.liason.deassociate() except: pass self.liason = liason self.request = request def deassociate(self, liason, request): if self.liason == liason: self.request = None self.liason = None def _force_deassociate(self): if self.liason is not None: self.request = None self.liason = None def stop(self): if self.liason is not None: try: self.liason.deassociate() except: pass self.stopped = True def send_message(self, message): self.request.ws_stream.send_message(message, binary = False) def setup_choplib(self): if self.choplib is not None: self.destroy_choplib() self.choplib = ChopLib() self.choplib.text = True if self.queuetracker is None: raise Exception #queuetracker is managed by the the webui self.queuetracker.set_queue(self.choplib.get_message_queue()) def setup_choplib_from_config(self, chopconfig): if self.choplib is not None: self.destroy_choplib() self.choplib = ChopLib() self.choplib.text = True if not os.path.exists(chopconfig.filename): raise ValueError("Unable to find file '%s'" % chopconfig.filename) self.choplib.filename = chopconfig.filename self.choplib.base_dir = chopconfig.base_dir self.choplib.mod_dir = chopconfig.mod_dir self.choplib.ext_dir = chopconfig.ext_dir self.choplib.aslist = chopconfig.aslist self.choplib.longrun = chopconfig.longrun self.choplib.modinfo = chopconfig.modinfo self.choplib.GMT = chopconfig.GMT self.choplib.bpf = chopconfig.bpf self.choplib.modules = chopconfig.modules #if chopconfig.savedir: #pass #chopui.savefiles = True #chopui.savedir = chopconfig.savedir #self.choplib.savefiles = True if self.queuetracker is None: raise Exception #queuetracker is managed by the the webui self.queuetracker.set_queue(self.choplib.get_message_queue()) def destroy_choplib(self): self.queuetracker.unset_queue() if self.choplib is not None: self.choplib.stop() self.choplib = None def reset_choplib(self): options = self.choplib.options self.destroy_choplib() self.setup_choplib() self.choplib.options = options def run_module_info(self, modules): clib = ChopLib() clib.text = True clib.modules = modules clib.modinfo = True clib.start() stopped = False message_queue = clib.get_message_queue() while not stopped and clib.is_alive(): try: message = message_queue.get(True, .1) except Queue.Empty, e: continue #clean up messages if message['type'] == 'ctrl': #self.send_message(message['data']['msg'] ) if message['data']['msg'] == 'finished': stopped = True elif message['type'] == 'text': self.send_message(message['data']['data']) clib.join() del clib