def main(): # Parse start arguments parser = argparse.ArgumentParser( description="Moonraker - Klipper API Server") parser.add_argument("-c", "--configfile", default="~/moonraker.conf", metavar='<configfile>', help="Location of moonraker configuration file") parser.add_argument("-l", "--logfile", default="/tmp/moonraker.log", metavar='<logfile>', help="log file name and location") system_args = parser.parse_args() # Setup Logging version = utils.get_software_version() log_file = os.path.normpath(os.path.expanduser(system_args.logfile)) system_args.logfile = log_file system_args.software_version = version ql = utils.setup_logging(log_file, version) if sys.version_info < (3, 7): msg = f"Moonraker requires Python 3.7 or above. " \ f"Detected Version: {sys.version}" logging.info(msg) print(msg) ql.stop() exit(1) # Start IOLoop and Server io_loop = IOLoop.current() estatus = 0 while True: try: server = Server(system_args) except Exception: logging.exception("Moonraker Error") estatus = 1 break try: server.start() io_loop.start() except Exception: logging.exception("Server Running Error") estatus = 1 break # Since we are running outside of the the server # it is ok to use a blocking sleep here time.sleep(.5) logging.info("Attempting Server Restart...") io_loop.close(True) logging.info("Server Shutdown") ql.stop() exit(estatus)
def update_device_info(self, ctx): device_info_dict = ctx.load_data('device_info') if device_info_dict is not None: ctx.host.family = device_info_dict['family'] ctx.host.platform = device_info_dict['platform'] ctx.host.software_platform = get_software_platform(family=device_info_dict['family'], os_type=device_info_dict['os_type']) ctx.host.software_version = get_software_version(device_info_dict['os_version']) ctx.host.os_type = device_info_dict['os_type'] udi_dict = ctx.load_data('udi') if udi_dict is not None: udi = UDI(name=udi_dict['name'], description=udi_dict['description'], pid=udi_dict['pid'], vid=udi_dict['vid'], sn=udi_dict['sn']) ctx.host.UDIs = [udi]
def discover_platform_info(ctx): try: log_dir = os.path.join(get_log_directory(), create_log_directory(ctx.host.connection_param[0].host_or_ip)) except Exception: log_dir = None """Discover platform when added to CSM.""" conn = condoor.Connection(name=ctx.hostname, urls=ctx.host_urls, log_level=logging.CRITICAL, log_dir=log_dir) try: conn.connect(force_discovery=True) ctx.host.family = conn.family ctx.host.platform = conn.platform ctx.host.software_platform = get_software_platform(family=conn.family, os_type=conn.os_type) ctx.host.software_version = get_software_version(conn.os_version) ctx.host.os_type = conn.os_type ctx.db_session.commit() except condoor.ConnectionError as e: logger.error(str(e)) finally: conn.disconnect()
def __init__(self, args): self.args = args self.analy_list = args['analy_array'].split(',') self.qc_list = args['qc_list'] # self.samp_info = args['samp_info'] # self.samp_info_done = args['samp_info_done'] self.outdir = args['odir'] or os.path.join(args['analydir'], 'Result', args['newjob']) if args['ER'] == 'Y': self.readme_dir = os.path.join(RESULT_DIR, 'readme', 'en') else: self.readme_dir = os.path.join(RESULT_DIR, 'readme', 'chs') # A set of tuples (sampleid, patientid) self.ANALY_DICT = utils.get_analysis_dict(self.analy_list, config.ANALYSIS_CODE) self.qc_lists = utils.Project.get_qc_lists(self.qc_list) self.softwares = utils.get_softwares(self.analy_list, self.ANALY_DICT) self.__dict__.update(**args) # 记录高级分析的数目 self.final_result_counter = 0 # 传数据到模板 self.context = defaultdict(dict) self.context.update(self.ANALY_DICT) self.context['advance_counter'] = {} self.context['software'] = dict(utils.get_software_version(), **self.softwares) # print self.context['software'] # exit() # 旧版本(1.6?)和新版本有所区别:settings.configure, template.render self.django_old = False if django.VERSION < (1, 9): self.django_old = True
def main() -> None: # Parse start arguments parser = argparse.ArgumentParser( description="Moonraker - Klipper API Server") parser.add_argument( "-c", "--configfile", default="~/moonraker.conf", metavar='<configfile>', help="Location of moonraker configuration file") parser.add_argument( "-l", "--logfile", default="/tmp/moonraker.log", metavar='<logfile>', help="log file name and location") parser.add_argument( "-n", "--nologfile", action='store_true', help="disable logging to a file") cmd_line_args = parser.parse_args() app_args = {'config_file': cmd_line_args.configfile} # Setup Logging version = utils.get_software_version() if cmd_line_args.nologfile: app_args['log_file'] = "" else: app_args['log_file'] = os.path.normpath( os.path.expanduser(cmd_line_args.logfile)) app_args['software_version'] = version ql, file_logger = utils.setup_logging(app_args) if sys.version_info < (3, 7): msg = f"Moonraker requires Python 3.7 or above. " \ f"Detected Version: {sys.version}" logging.info(msg) print(msg) ql.stop() exit(1) # Start asyncio event loop and server event_loop = EventLoop() estatus = 0 while True: try: server = Server(app_args, file_logger, event_loop) except Exception: logging.exception("Moonraker Error") estatus = 1 break try: event_loop.start() except Exception: logging.exception("Server Running Error") estatus = 1 break if server.exit_reason == "terminate": break event_loop.close() # Since we are running outside of the the server # it is ok to use a blocking sleep here time.sleep(.5) logging.info("Attempting Server Restart...") for _ in range(5): # Sometimes the new loop does not properly instantiate. # Give 5 attempts before raising an exception new_loop = asyncio.new_event_loop() if not new_loop.is_closed(): break logging.info("Failed to create open eventloop, " "retyring in .5 seconds...") time.sleep(.5) else: raise RuntimeError("Unable to create new open eventloop") asyncio.set_event_loop(new_loop) event_loop = EventLoop() event_loop.close() logging.info("Server Shutdown") ql.stop() exit(estatus)
async def get_klippy_info(self, send_id=False, default=Sentinel): params = {} if send_id: ver = utils.get_software_version() params = {'client_info': {'program': "Moonraker", 'version': ver}} return await self._send_klippy_request(INFO_ENDPOINT, params, default)
def main(cmd_line_args: argparse.Namespace) -> None: cfg_file = cmd_line_args.configfile app_args = {'config_file': cfg_file} # Setup Logging version = utils.get_software_version() if cmd_line_args.nologfile: app_args['log_file'] = "" else: app_args['log_file'] = os.path.normpath( os.path.expanduser(cmd_line_args.logfile)) app_args['software_version'] = version app_args['python_version'] = sys.version.replace("\n", " ") ql, file_logger, warning = utils.setup_logging(app_args) if warning is not None: app_args['log_warning'] = warning # Start asyncio event loop and server event_loop = EventLoop() alt_config_loaded = False estatus = 0 while True: try: server = Server(app_args, file_logger, event_loop) server.load_components() except confighelper.ConfigError as e: backup_cfg = confighelper.find_config_backup(cfg_file) logging.exception("Server Config Error") if alt_config_loaded or backup_cfg is None: estatus = 1 break app_args['config_file'] = backup_cfg app_args['config_warning'] = ( f"Server configuration error: {e}\n" f"Loaded server from most recent working configuration:" f" '{app_args['config_file']}'\n" f"Please fix the issue in moonraker.conf and restart " f"the server.") alt_config_loaded = True continue except Exception: logging.exception("Moonraker Error") estatus = 1 break try: event_loop.register_callback(server.server_init) event_loop.start() except Exception: logging.exception("Server Running Error") estatus = 1 break if server.exit_reason == "terminate": break # Restore the original config and clear the warning # before the server restarts if alt_config_loaded: app_args['config_file'] = cfg_file app_args.pop('config_warning', None) alt_config_loaded = False event_loop.close() # Since we are running outside of the the server # it is ok to use a blocking sleep here time.sleep(.5) logging.info("Attempting Server Restart...") event_loop.reset() event_loop.close() logging.info("Server Shutdown") ql.stop() exit(estatus)
def main() -> None: # Parse start arguments parser = argparse.ArgumentParser( description="Moonraker - Klipper API Server") parser.add_argument("-c", "--configfile", default="~/moonraker.conf", metavar='<configfile>', help="Location of moonraker configuration file") parser.add_argument("-l", "--logfile", default="/tmp/moonraker.log", metavar='<logfile>', help="log file name and location") parser.add_argument("-n", "--nologfile", action='store_true', help="disable logging to a file") cmd_line_args = parser.parse_args() app_args = {'config_file': cmd_line_args.configfile} # Setup Logging version = utils.get_software_version() if cmd_line_args.nologfile: app_args['log_file'] = "" else: app_args['log_file'] = os.path.normpath( os.path.expanduser(cmd_line_args.logfile)) app_args['software_version'] = version ql, file_logger = utils.setup_logging(app_args) if sys.version_info < (3, 7): msg = f"Moonraker requires Python 3.7 or above. " \ f"Detected Version: {sys.version}" logging.info(msg) print(msg) ql.stop() exit(1) # Start IOLoop and Server io_loop = IOLoop.current() estatus = 0 while True: try: server = Server(app_args, file_logger) except Exception: logging.exception("Moonraker Error") estatus = 1 break try: server.start() io_loop.start() except Exception: logging.exception("Server Running Error") estatus = 1 break if server.exit_reason == "terminate": break # Since we are running outside of the the server # it is ok to use a blocking sleep here time.sleep(.5) logging.info("Attempting Server Restart...") io_loop.close(True) logging.info("Server Shutdown") ql.stop() exit(estatus)
def main() -> None: # Parse start arguments parser = argparse.ArgumentParser( description="Moonraker - Klipper API Server") parser.add_argument("-c", "--configfile", default="~/moonraker.conf", metavar='<configfile>', help="Location of moonraker configuration file") parser.add_argument("-l", "--logfile", default="/tmp/moonraker.log", metavar='<logfile>', help="log file name and location") parser.add_argument("-n", "--nologfile", action='store_true', help="disable logging to a file") cmd_line_args = parser.parse_args() cfg_file = cmd_line_args.configfile app_args = {'config_file': cfg_file} # Setup Logging version = utils.get_software_version() if cmd_line_args.nologfile: app_args['log_file'] = "" else: app_args['log_file'] = os.path.normpath( os.path.expanduser(cmd_line_args.logfile)) app_args['software_version'] = version ql, file_logger, warning = utils.setup_logging(app_args) if warning is not None: app_args['log_warning'] = warning if sys.version_info < (3, 7): msg = f"Moonraker requires Python 3.7 or above. " \ f"Detected Version: {sys.version}" logging.info(msg) print(msg) ql.stop() exit(1) # Start asyncio event loop and server event_loop = EventLoop() alt_config_loaded = False estatus = 0 while True: try: server = Server(app_args, file_logger, event_loop) server.load_components() except confighelper.ConfigError as e: backup_cfg = confighelper.find_config_backup(cfg_file) if alt_config_loaded or backup_cfg is None: logging.exception("Server Config Error") estatus = 1 break app_args['config_file'] = backup_cfg app_args['config_warning'] = ( f"Server configuration error: {e}\n" f"Loaded server from most recent working configuration:" f" '{app_args['config_file']}'\n" f"Please fix the issue in moonraker.conf and restart " f"the server.") alt_config_loaded = True continue except Exception: logging.exception("Moonraker Error") estatus = 1 break try: event_loop.register_callback(server.server_init) event_loop.start() except Exception: logging.exception("Server Running Error") estatus = 1 break if server.exit_reason == "terminate": break # Restore the original config and clear the warning # before the server restarts if alt_config_loaded: app_args['config_file'] = cfg_file app_args.pop('config_warning', None) alt_config_loaded = False event_loop.close() # Since we are running outside of the the server # it is ok to use a blocking sleep here time.sleep(.5) logging.info("Attempting Server Restart...") for _ in range(5): # Sometimes the new loop does not properly instantiate. # Give 5 attempts before raising an exception new_loop = asyncio.new_event_loop() if not new_loop.is_closed(): break logging.info("Failed to create open eventloop, " "retyring in .5 seconds...") time.sleep(.5) else: raise RuntimeError("Unable to create new open eventloop") asyncio.set_event_loop(new_loop) event_loop.reset() event_loop.close() logging.info("Server Shutdown") ql.stop() exit(estatus)