Source code for insights.parsers.selinux_config

"""
SelinuxConfig - file ``/etc/selinux/config``
============================================
"""
from .. import get_active_lines, Parser, parser, LegacyItemAccess
from . import split_kv_pairs
from insights.specs import Specs


[docs] @parser(Specs.selinux_config) class SelinuxConfig(Parser, LegacyItemAccess): """ Parse the SELinux configuration file. Produces a simple dictionary of keys and values from the configuration file contents , stored in the ``data`` attribute. The object also functions as a dictionary itself thanks to the :py:class:`insights.core.LegacyItemAccess` mixin class. Sample configuration file:: # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted Examples: >>> conf = shared[SelinuxConfig] >>> conf['SELINUX'] 'enforcing' >>> 'AUTORELABEL' in conf False """
[docs] def parse_content(self, content): self.data = split_kv_pairs(get_active_lines(content))