Source code for insights.combiners.sysctl_conf

"""
Sysctl configuration files
==========================
"""
import re

from insights.core.plugins import combiner
from insights.parsers.sysctl import SysctlConf, SysctlDConfEtc, SysctlDConfUsr


[docs] @combiner([SysctlConf, SysctlDConfUsr, SysctlDConfEtc]) class SysctlConfs(dict): """ Combiner for accessing all the sysctl configuration files in one structure. Sample input:: # sysctl.conf sample # kernel.domainname = example.com ; this one has a space which will be written to the sysctl! kernel.modprobe = /sbin/mod probe Attributes: search(dict): Returns a dict of any kv pairs where the contains the search word. Examples: >>> type(sysctl_conf) <class 'insights.combiners.sysctl_conf.SysctlConfs'> >>> sysctl_conf['kernel.domainname'] 'example.com' >>> sysctl_conf['kernel.modprobe'] '/sbin/mod probe' >>> sysctl_conf['kernel.sysrq'] '1' >>> "vm.dirty_ratio" in sysctl_conf True >>> sysctl_conf.search("domainname") {'kernel.domainname': 'example.com'} """ def __init__(self, sysctl_conf, sysctl_d_confs_usr, sysctl_d_confs_etc): super(SysctlConfs, self).__init__() if sysctl_d_confs_usr: # Sort based on the filename to make sure # entries are overridden in the correct order. sysctl_d_confs_usr = sorted(sysctl_d_confs_usr, key=lambda x: x.file_name) for conf in sysctl_d_confs_usr: self.update(conf) if sysctl_d_confs_etc: # Sort based on the filename to make sure # entries are overridden in the correct order. sysctl_d_confs_etc = sorted(sysctl_d_confs_etc, key=lambda x: x.file_name) for conf in sysctl_d_confs_etc: self.update(conf) if sysctl_conf: self.update(sysctl_conf)
[docs] def search(self, s_word): found = dict() for key, val in self.items(): if re.search(s_word, key): found[key] = val return found