Source code for insights.parsers.sys_module

"""
``/sys/module`` System Module Information
=========================================

A parser to parse the system module information.

Parsers included in this module are:

DMModUseBlkMq - file ``/sys/module/dm_mod/parameters/use_blk_mq``
------------------------------------------------------------------
SCSIModUseBlkMq - file ``/sys/module/scsi_mod/parameters/use_blk_mq``
---------------------------------------------------------------------
VHostNetZeroCopyTx - file ``/sys/module/vhost_net/parameters/experimental_zcopytx``
-----------------------------------------------------------------------------------
"""
from insights import parser, Parser
from insights.parsers import SkipException
from insights.specs import Specs


[docs]class XModUseBlkMq(Parser): """ Parse for file `/sys/module/{dm_mod,scsi_mod}/parameters/use_blk_mq`. File content shows if use_blk_mq parameter is on. Sample Content:: Y Raises: SkipException: When nothing need to parse. Attributes: val(str): Raw data of the content. """
[docs] def parse_content(self, content): if not content or len(content) != 1: raise SkipException() self.val = content[0].strip()
@property def is_on(self): """ Returns: (bool): True for on, False for off. Raises: ValueError: When tell is_on for unknown cases. """ if self.val in ['Y', '1']: return True if self.val in ['N', '0']: return False raise ValueError("Unexpected value {0}, please get raw data from attribute 'val' and tell is_on by yourself.".format(self.val))
[docs]@parser(Specs.dm_mod_use_blk_mq) class DMModUseBlkMq(XModUseBlkMq): """ This file `/sys/module/dm_mod/parameters/use_blk_mq` shows if use_blk_mq parameter is on. Examples:: >>> dm_mod_use_blk_mq.val 'Y' >>> dm_mod_use_blk_mq.is_on True """ pass
[docs]@parser(Specs.scsi_mod_use_blk_mq) class SCSIModUseBlkMq(XModUseBlkMq): """ This file `/sys/module/scsi_mod/parameters/use_blk_mq` shows if use_blk_mq parameter is on. Examples:: >>> scsi_mod_use_blk_mq.val 'N' >>> scsi_mod_use_blk_mq.is_on False """ pass
[docs]@parser(Specs.vhost_net_zero_copy_tx) class VHostNetZeroCopyTx(XModUseBlkMq): """This file `/sys/module/vhost_net/parameters/experimental_zcopytx` shows if vhost_net's zero-copy tx parameter is enabled or not. Examples:: >>> vhost_net_zero_copy_tx.val '0' >>> vhost_net_zero_copy_tx.is_on False """ pass