def run_tango_server(tango_util=None, start_time=None): try: if tango_util is None: tango_util = Util(sys.argv) util = Util.instance() SardanaServer.server_state = State.Init util.server_init() SardanaServer.server_state = State.Running if start_time is not None: import datetime dt = datetime.datetime.now() - start_time taurus.info("Ready to accept request in %s", dt) else: taurus.info("Ready to accept request") util.server_run() SardanaServer.server_state = State.Off taurus.info("Exiting") except DevFailed: taurus.info("Exiting") taurus.critical("Server exited with DevFailed", exc_info=1) except KeyboardInterrupt: taurus.info("Exiting") taurus.critical("Interrupted by keyboard") except Exception: taurus.info("Exiting") taurus.critical("Server exited with unforeseen exception", exc_info=1) taurus.info("Exited")
def run_tango_server(tango_util=None, start_time=None): # Import here to avoid circular import from sardana.tango.core.SardanaDevice import SardanaDevice try: if tango_util is None: tango_util = Util(sys.argv) util = Util.instance() SardanaServer.server_state = State.Init util.server_init() for device in util.get_device_list("*"): if isinstance(device, SardanaDevice): device.sardana_init_hook() SardanaServer.server_state = State.Running if start_time is not None: import datetime dt = datetime.datetime.now() - start_time taurus.info("Ready to accept request in %s", dt) else: taurus.info("Ready to accept request") util.server_run() SardanaServer.server_state = State.Off taurus.info("Exiting") except DevFailed: taurus.info("Exiting") taurus.critical("Server exited with DevFailed", exc_info=1) except KeyboardInterrupt: taurus.info("Exiting") taurus.critical("Interrupted by keyboard") except Exception: taurus.info("Exiting") taurus.critical("Server exited with unforeseen exception", exc_info=1) taurus.info("Exited")
def run(args=None): try: if not args: args = sys.argv[1:] args = [SERVER_NAME] + list(args) print 'running server with args: %s' % repr(args) util = Util(args) util.add_class(WebTornadoDS, WebTornadoDS4Impl) U = Util.instance() U.server_init() U.server_run() except DevFailed, e: print '-------> Received a DevFailed exception:', e
def run(prepare_func, args=None, tango_util=None, start_time=None, mode=None, name=None): if mode is None: mode = ServerRunMode.SynchPure if args is None: if mode != ServerRunMode.SynchPure: raise Exception("When running in separate thread/process, " "'args' must be given") args = sys.argv if name is None: name = args[0] else: args = [name] + list(args[1:]) if mode != ServerRunMode.SynchPure: if mode in (ServerRunMode.SynchThread, ServerRunMode.AsynchThread): import threading class task_klass(threading.Thread): def terminate(self): if not self.is_alive(): return Util.instance().get_dserver_device().kill() else: import multiprocessing task_klass = multiprocessing.Process tango_util = None task_args = prepare_func, task_kwargs = dict(args=args, tango_util=tango_util, start_time=start_time, mode=ServerRunMode.SynchPure) task = task_klass(name=name, target=run, args=task_args, kwargs=task_kwargs) task.daemon = False task.start() if mode in (ServerRunMode.SynchThread, ServerRunMode.SynchProcess): task.join() return task log_messages = [] try: options, args, tango_args, ORB_args = prepare_cmdline(args=args) except KeyboardInterrupt: pass log_messages.extend(prepare_environment(args, tango_args, ORB_args)) log_messages.extend(prepare_server(args, tango_args)) if tango_util is None: tango_util = Util(tango_args) prepare_func(tango_util) prepare_taurus(options, args, tango_args) prepare_logging(options, args, tango_args, start_time=start_time, log_messages=log_messages) prepare_rconsole(options, args, tango_args) run_tango_server(tango_util, start_time=start_time)
options, args, tango_args, ORB_args = prepare_cmdline(args=args) except KeyboardInterrupt: pass log_messages.extend(prepare_environment(args, tango_args, ORB_args)) try: log_messages.extend(prepare_server(args, tango_args)) except AbortException, e: print e.message return except KeyboardInterrupt: print("\nInterrupted by keyboard") return log_messages.extend(prepare_logstash(args)) if tango_util is None: tango_util = Util(tango_args) prepare_func(tango_util) prepare_taurus(options, args, tango_args) prepare_logging(options, args, tango_args, start_time=start_time, log_messages=log_messages) prepare_rconsole(options, args, tango_args) run_tango_server(tango_util, start_time=start_time)