def emane_check(self) -> None: """ Check if emane is installed and load models. :return: nothing """ # check for emane path = utils.which("emane", required=False) if not path: logging.info("emane is not installed") return # get version emane_version = utils.cmd("emane --version") logging.info("using emane: %s", emane_version) # load default emane models self.load_models(EMANE_MODELS) # load custom models custom_models_path = self.session.options.get_config( "emane_models_dir") if custom_models_path: emane_models = utils.load_classes(custom_models_path, EmaneModel) self.load_models(emane_models)
def emane_check(self) -> None: """ Check if emane is installed and load models. :return: nothing """ try: # check for emane args = "emane --version" emane_version = utils.cmd(args) logging.info("using EMANE: %s", emane_version) self.session.distributed.execute(lambda x: x.remote_cmd(args)) # load default emane models self.load_models(EMANE_MODELS) # load custom models custom_models_path = self.session.options.get_config( "emane_models_dir") if custom_models_path: emane_models = utils.load_classes(custom_models_path, EmaneModel) self.load_models(emane_models) except CoreCommandError: logging.info("emane is not installed")
def add_services(cls, path: Path) -> List[str]: """ Method for retrieving all CoreServices from a given path. :param path: path to retrieve services from :return: list of core services that failed to load """ service_errors = [] services = utils.load_classes(path, CoreService) for service in services: if not service.name: continue try: cls.add(service) except (CoreError, ValueError) as e: service_errors.append(service.name) logger.debug("not loading service(%s): %s", service.name, e) return service_errors
def add_services(cls, path): """ Method for retrieving all CoreServices from a given path. :param str path: path to retrieve services from :return: list of core services that failed to load :rtype: list[str] """ service_errors = [] services = utils.load_classes(path, CoreService) for service in services: if not service.name: continue service.on_load() try: cls.add(service) except ValueError as e: service_errors.append(service.name) logging.debug("not loading service: %s", e) return service_errors
def emane_check(self): """ Check if emane is installed and load models. :return: nothing """ try: # check for emane emane_version = utils.check_cmd(["emane", "--version"]) logging.info("using EMANE: %s", emane_version) # load default emane models self.load_models(EMANE_MODELS) # load custom models custom_models_path = self.session.options.get_config("emane_models_dir") if custom_models_path: emane_models = utils.load_classes(custom_models_path, EmaneModel) self.load_models(emane_models) except CoreCommandError: logging.info("emane is not installed")
def load(self, path: str) -> List[str]: """ Search path provided for configurable services and add them for being managed. :param path: path to search configurable services :return: list errors when loading and adding services """ path = pathlib.Path(path) subdirs = [x for x in path.iterdir() if x.is_dir()] subdirs.append(path) service_errors = [] for subdir in subdirs: logging.debug("loading config services from: %s", subdir) services = utils.load_classes(str(subdir), ConfigService) for service in services: try: self.add(service) except CoreError as e: service_errors.append(service.name) logging.debug("not loading service(%s): %s", service.name, e) return service_errors
def load(cls, path: Path, emane_prefix: Path) -> List[str]: """ Search and load custom emane models and make them available. :param path: path to search for custom emane models :param emane_prefix: installed emane prefix :return: list of errors encountered loading emane models """ subdirs = [x for x in path.iterdir() if x.is_dir()] subdirs.append(path) errors = [] for subdir in subdirs: logger.debug("loading emane models from: %s", subdir) models = utils.load_classes(subdir, EmaneModel) for model in models: logger.debug("loading emane model: %s", model.name) try: model.load(emane_prefix) cls.models[model.name] = model except CoreError as e: errors.append(model.name) logger.debug("not loading emane model(%s): %s", model.name, e) return errors