Source code for insights.parsers.cpu_vulns

"""
CpuVulns - files ``/sys/devices/system/cpu/vulnerabilities/*``
==============================================================

Parser to parse the output of files ``/sys/devices/system/cpu/vulnerabilities/*``
"""
from insights.core import Parser
from insights.core.exceptions import SkipComponent
from insights.core.plugins import parser
from insights.specs import Specs


[docs] @parser(Specs.cpu_vulns) class CpuVulns(Parser): """ Base class to parse ``/sys/devices/system/cpu/vulnerabilities/*`` files, the file content will be stored in a string. Sample output for files: ``/sys/devices/system/cpu/vulnerabilities/spectre_v1``:: Mitigation: Load fences ``/sys/devices/system/cpu/vulnerabilities/spectre_v2``:: Vulnerable: Retpoline without IBPB ``/sys/devices/system/cpu/vulnerabilities/meltdown``:: Mitigation: PTI ``/sys/devices/system/cpu/vulnerabilities/spec_store_bypass``:: Mitigation: Speculative Store Bypass disabled Examples: >>> type(sp_v1) <class 'insights.parsers.cpu_vulns.CpuVulns'> >>> type(sp_v1) == type(sp_v2) == type(md) == type(ssb) True >>> sp_v1.value 'Mitigation: Load fences' >>> sp_v2.value 'Vulnerable: Retpoline without IBPB' >>> md.value 'Mitigation: PTI' >>> ssb.value 'Mitigation: Speculative Store Bypass disabled' Attributes: value (str): The result parsed Raises: SkipComponent: When file content is empty """
[docs] def parse_content(self, content): if not content: raise SkipComponent("Input content is empty") self.value = content[0]