Source code for insights.parsers.avc_hash_stats

AvcHashStats - File ``/sys/fs/selinux/avc/hash_stats``

This parser reads the content of ``/sys/fs/selinux/avc/hash_stats``.

from .. import parser, CommandParser, LegacyItemAccess

from ..parsers import get_active_lines
from insights.specs import Specs

[docs]@parser(Specs.avc_hash_stats) class AvcHashStats(CommandParser, LegacyItemAccess): """ Class ``AvcHashStats`` parses the content of the ``/sys/fs/selinux/avc/hash_stats``. Attributes: entries (int): It is used to show the count of avc hash entries. buckets (int): It is used to show the total count of buckets. buckets_used (int): It is used to show the count of used buckets. longest_chain (int): It is used to show the longest chain. A typical sample of the content of this file looks like:: entries: 509 buckets used: 290/512 longest chain: 7 Examples: >>> type(avc_hash_stats) <class 'insights.parsers.avc_hash_stats.AvcHashStats'> >>> avc_hash_stats.entries 509 >>> avc_hash_stats.buckets 512 >>> avc_hash_stats.buckets_used 290 >>> avc_hash_stats.longest_chain 7 """
[docs] def parse_content(self, content): = {} for line in get_active_lines(content): key, value = map(lambda x: x.strip(), line.split(':')){key: value}) self.entries = int(['entries']) if 'entries' in else None self.buckets_used, self.buckets = map(lambda x: int(x.strip()),['buckets used'].split('/')) \ if 'buckets used' in else [None, None] self.longest_chain = int(['longest chain']) if 'longest chain' in else None