def _check_config_files(directory): """Verify config files exist and are readable. Arguments: directory {Path} -- Config directory Path object Raises: ConfigMissing: Raised if a required config file does not pass checks. Returns: {tuple} -- main config, devices config, commands config """ files = () for file in CONFIG_FILES: file_name, required = file file_path = directory / file_name checked = check_path(file_path) if checked is None and required: raise ConfigMissing(missing_item=str(file_path)) if checked is None and not required: log.warning( "'{f}' was not found, but is not required to run hyperglass. " + "Defaults will be used.", f=str(file_path), ) files += (file_path, ) return files
def _config_required(config_path: Path) -> Dict: try: with config_path.open("r") as cf: config = yaml.safe_load(cf) except (yaml.YAMLError, yaml.MarkedYAMLError) as yaml_error: raise ConfigError(str(yaml_error)) if config is None: log.critical("{} appears to be empty", str(config_path)) raise ConfigMissing(missing_item=config_path.name) return config
def _check_config_files(directory: Path): """Verify config files exist and are readable.""" files = () for file in CONFIG_FILES: file_name, required = file file_path = directory / file_name checked = check_path(file_path) if checked is None and required: raise ConfigMissing(missing_item=str(file_path)) if checked is None and not required: log.warning( "'{f}' was not found, but is not required to run hyperglass. " + "Defaults will be used.", f=str(file_path), ) files += (file_path, ) return files