Source code for insights.parsers.sys_vmbus

"""
``/sys/bus/vmbus/`` VMBus info
==============================

SysVmbusDeviceID - file ``/sys/bus/vmbus/devices/*/device_id``
--------------------------------------------------------------

SysVmbusClassID - file ``/sys/bus/vmbus/devices/*/class_id``
------------------------------------------------------------
"""
from insights.core import Parser
from insights.core.exceptions import SkipComponent
from insights.core.plugins import parser
from insights.specs import Specs

# Please refer to
# https://github.com/torvalds/linux/blob/master/tools/hv/lsvmbus#L23 for
# full list of Class ID mapping.
VMBUS_DEV_DICT = {
    '44c4f61d-4444-4400-9d52-802e27ede19f': 'PCI Express pass-through',
    'da0a7802-e377-4aac-8e77-0558eb1073f8': 'Synthetic framebuffer adapter'
}


[docs] @parser(Specs.sys_vmbus_device_id) class SysVmbusDeviceID(Parser): """Parse the file ``/sys/bus/vmbus/devices/*/device_id`` Sample content:: {47505500-0001-0000-3130-444531444234} Raises: SkipComponent: When nothing need to parse. Attributes: id(str): Device ID Examples:: >>> vmbus_device.id '47505500-0001-0000-3130-444531444234' """
[docs] def parse_content(self, content): if not content or len(content) != 1: raise SkipComponent() self.id = content[0].strip('{}\n')
[docs] @parser(Specs.sys_vmbus_class_id) class SysVmbusClassID(Parser): """Parse the file ``/sys/bus/vmbus/devices/*/class_id`` Sample content:: {44c4f61d-4444-4400-9d52-802e27ede19f} Raises: SkipComponent: When nothing need to parse. Attributes: id(str): Class ID desc(str): Description Examples:: >>> vmbus_class.id '44c4f61d-4444-4400-9d52-802e27ede19f' >>> vmbus_class.desc 'PCI Express pass-through' """
[docs] def parse_content(self, content): if not content or len(content) != 1: raise SkipComponent() self.id = content[0].strip('{}\n') self.desc = VMBUS_DEV_DICT.get(self.id, 'Unknown')