def _load_folder_rulesets(self, folder, only_varname=None): path = folder.rules_file_path() config_dict = { "ALL_HOSTS": ALL_HOSTS, "ALL_SERVICES": ALL_SERVICES, "NEGATE": NEGATE, "FOLDER_PATH": folder.path(), } # Prepare empty rulesets so that rules.mk has something to # append to. We need to initialize all variables here, even # when only loading with only_varname. for varname in rulespec_registry.keys(): if ':' in varname: dictname, _subkey = varname.split(":") config_dict[dictname] = {} else: config_dict[varname] = [] # Initialize rulesets once self._initialize_rulesets(only_varname=only_varname) if os.path.exists(path): self.from_config(folder, store.load_mk_file(path, config_dict), only_varname)
def _load_folder_rulesets( self, folder: CREFolder, only_varname: Optional[RulesetName] = None ) -> None: path = folder.rules_file_path() if not os.path.exists(path): return # Do not initialize rulesets when no rule at all exists config_dict = { "ALL_HOSTS": ALL_HOSTS, "ALL_SERVICES": ALL_SERVICES, "NEGATE": NEGATE, "FOLDER_PATH": folder.path(), } # Prepare empty rulesets so that rules.mk has something to # append to. We need to initialize all variables here, even # when only loading with only_varname. for varname in rulespec_registry.keys(): if ":" in varname: dictname, _subkey = varname.split(":") config_dict[dictname] = {} else: config_dict[varname] = [] self.from_config(folder, store.load_mk_file(path, config_dict), only_varname)
def _initialize_rulesets(self, only_varname: Optional[RulesetName] = None ) -> None: varnames = [only_varname] if only_varname else rulespec_registry.keys() self._rulesets = { varname: Ruleset(varname, self._tag_to_group_map) for varname in varnames }
def _initialize_rulesets(self, only_varname=None): if only_varname: varnames = [only_varname] else: varnames = rulespec_registry.keys() for varname in varnames: if varname in self._rulesets: continue self._rulesets[varname] = Ruleset(varname, self._tag_to_group_map)
def from_config(self, folder, rulesets_config, only_varname=None): for varname in rulespec_registry.keys(): if only_varname and varname != only_varname: continue # skip unwanted options ruleset = self._rulesets.setdefault(varname, Ruleset(varname)) if ':' in varname: dictname, subkey = varname.split(":") ruleset_config = rulesets_config.get(dictname, {}) if subkey in ruleset_config: ruleset.from_config(folder, ruleset_config[subkey]) else: ruleset.from_config(folder, rulesets_config.get(varname, []))
def from_config(self, folder, rulesets_config, only_varname=None): if only_varname: varnames = [only_varname] else: varnames = rulespec_registry.keys() for varname in varnames: if varname not in self._rulesets: self._rulesets[varname] = Ruleset(varname, self._tag_to_group_map) if ':' in varname: dictname, subkey = varname.split(":") ruleset_config = rulesets_config.get(dictname, {}) if subkey in ruleset_config: self._rulesets[varname].from_config(folder, ruleset_config[subkey]) else: self._rulesets[varname].from_config(folder, rulesets_config.get(varname, []))
def from_config(self, folder, rulesets_config, only_varname=None): varnames = [only_varname] if only_varname else rulespec_registry.keys() for varname in varnames: if ':' in varname: config_varname, subkey = varname.split(":", 1) # type: Tuple[str, Optional[str]] rulegroup_config = rulesets_config.get(config_varname, {}) if subkey not in rulegroup_config: continue # Nothing configured: nothing left to do ruleset_config = rulegroup_config[subkey] else: config_varname, subkey = varname, None ruleset_config = rulesets_config.get(config_varname, []) if not ruleset_config: continue # Nothing configured: nothing left to do self._rulesets[varname].from_config(folder, ruleset_config)
def from_config( self, folder: CREFolder, rulesets_config, only_varname: Optional[RulesetName] = None ) -> None: varnames = [only_varname] if only_varname else rulespec_registry.keys() config_varname: str subkey: Optional[str] for varname in varnames: if ":" in varname: config_varname, subkey = varname.split(":", 1) rulegroup_config = rulesets_config.get(config_varname, {}) if subkey not in rulegroup_config: continue # Nothing configured: nothing left to do ruleset_config = rulegroup_config[subkey] else: config_varname, subkey = varname, None ruleset_config = rulesets_config.get(config_varname, []) if not ruleset_config: continue # Nothing configured: nothing left to do self._rulesets[varname].from_config(folder, ruleset_config)