Source code for insights.combiners.nmcli_dev_show

nmcli_dev_show command
As there are three different file paths in different sos packages,
create this combiner to fix this issue.
from insights.core.exceptions import SkipComponent
from insights.core.plugins import combiner
from insights.parsers.nmcli import NmcliDevShow, NmcliDevShowSos

[docs]@combiner([NmcliDevShow, NmcliDevShowSos]) class AllNmcliDevShow(dict): """ Combiner to combine return values from parser NmcliDevShow into one dict Examples: >>> allnmclidevshow['eth0']['TYPE'] 'ethernet' >>> allnmclidevshow.connected_devices ['eth0'] """ def __init__(self, nmclidevshow, nmclidevshowsos): data = {} self._con_dev = [] if nmclidevshow: data.update(nmclidevshow) self._con_dev = nmclidevshow.connected_devices elif nmclidevshowsos: for item in nmclidevshowsos: data.update(item) self._con_dev.extend(item.connected_devices) if not data: raise SkipComponent() super(AllNmcliDevShow, self).__init__() self.update(data) @property def connected_devices(self): """(list): The list of devices who's state is connected and managed by NetworkManager""" return self._con_dev @property def data(self): """(dict): Dict with the device name as the key and NmcliDevShow details as the value.""" return self