Source code for insights.parsers.kpatch_patches

"""
KpatchPatches - report locally stored kpatch patches
====================================================

This parser creates a list of the module names of locally
stored kpatch modules returned by command ``ls /var/lib/kpatch/\`uname -r\`/``.
If no modules are installed, a ContentException will be raised.

"""

from .. import parser, CommandParser
from insights.specs import Specs


[docs]@parser(Specs.kpatch_patch_files) class KpatchPatches(CommandParser): """ A parser for getting modules names of locally stored kpatch-patch files. Sample output of `ls /var/lib/kpatch/\`uname -r\`/` looks like:: kpatch-3_10_0-1062-1-5.ko kpatch-3_10_0-1062-1-6.ko Attributes: patches (str): List of the name of kpatch patches. The dashes are converted to underscores, file suffix are removed, and duplicated names are removed as well Examples: >>> kp.patches ['kpatch_3_10_0_1062_1_5', 'kpatch_3_10_0_1062_1_6'] """
[docs] def parse_content(self, content): # convert dashes to underscores, remove file suffixes, remove duplicates self.patches = list(set([p.split('.')[0].replace("-", "_") for p in content]))