Source code for insights.parsers.sys_bus
"""
``/sys/bus`` Device Usage Information
=====================================
A parser to parse the usage information of devices connected
on sys/bus.
Parsers included in this module are:
CdcWDM - file ``/sys/bus/usb/drivers/cdc_wdm/module/refcnt``
------------------------------------------------------------
"""
from insights.core import Parser
from insights.core.exceptions import ParseException
from insights.core.plugins import parser
from insights.specs import Specs
[docs]@parser(Specs.cdc_wdm)
class CdcWDM(Parser):
"""
This file `/sys/bus/usb/drivers/cdc_wdm/module/refcnt` contains
device usage count, i.e if a device is in use then the non-zero
value will be present in the file.
Sample Content::
0 - Not in use.
1 - Device is opened and it is in use.
Examples::
>>> type(device_usage)
<class 'insights.parsers.sys_bus.CdcWDM'>
>>> device_usage.device_usage_cnt
1
>>> device_usage.device_in_use
True
Raises:
SkipComponent: When contents are empty
ParseException: When contents are invalid
"""
[docs] def parse_content(self, content):
try:
self._ref_count = int(content[0].strip())
except Exception:
raise ParseException("Invalid Content!")
@property
def device_usage_cnt(self):
"""
Returns (int): device usage count.
"""
return self._ref_count
@property
def device_in_use(self):
"""
Returns (bool): ``True`` when device in use else ``False``.
"""
return True if self._ref_count else False