def __init__(self): MultiService.__init__(self) # Init shared storage which is used to share information about server # to the ouside world self.shared_storage = get_storage() # Init pilots service from commander.service.pilots import PilotService self.pilots = PilotService() self.pilots.setServiceParent(self) # Init objects service from commander.service.objects import ObjectsService self.objects = ObjectsService() self.objects.setServiceParent(self) # Init missions service with log watcher from commander.service.missions import MissionService log_watcher = LogWatchingService(settings.IL2_EVENTS_LOG_PATH) self.missions = MissionService(log_watcher) self.log_parser = EventLogParser( (self.pilots, self.objects, self.missions, )) log_watcher.set_parser(self.log_parser) self.missions.setServiceParent(self) # Init console and DeviceLink parsers self.console_parser = ConsoleParser((self.pilots, self.missions, )) self.dl_parser = DeviceLinkParser()
def is_commander_running(storage=None): storage = storage or get_storage() if is_server_running(storage): return True try: s = api_create_client_socket() except socket.error as e: return False else: s.close() return True
def get_server_info(storage=None): storage = storage or get_storage() if not is_server_running(storage): return None return { 'name' : storage.get(KEY_SERVER_NAME), 'version': settings.IL2_VERSION, 'address': { 'external': settings.IL2_EXTERNAL_ADDRESS, 'local' : storage.get(KEY_SERVER_LOCAL_ADDRESS), 'port' : int(storage.get(KEY_SERVER_USER_PORT)), }, 'channels' : int(storage.get(KEY_SERVER_CHANNELS)), 'difficulty': int(storage.get(KEY_SERVER_DIFFICULTY)), }
def is_server_running(storage=None): storage = storage or get_storage() return storage.exists(KEY_SERVER_RUNNING)