Source code for insights.specs.datasources.ipcs

"""
Custom datasources to get the semid of all the inter-processes.
"""
from insights.core.context import HostContext
from insights.core.exceptions import SkipComponent
from insights.core.plugins import datasource
from insights.specs import Specs


[docs] @datasource(Specs.ipcs_s, HostContext) def semid(broker): """ This datasource provides a list of the semid of all the inter-processes. Note: This datasource may be executed using the following command: ``insights cat --no-header ipcs_s_i`` Sample output:: [ '65570', '98353', '98354' ] Returns: list: A list of the semid of all the inter-processes. """ allowed_owners = ['root', 'apache', 'oracle'] content = broker[Specs.ipcs_s].content results = set() for s in content: s_splits = s.split() # key semid owner perms nsems # 0x00000000 65536 apache 600 1 if len(s_splits) == 5 and s_splits[1].isdigit() and s_splits[2] in allowed_owners: results.add(s_splits[1]) if results: return list(results) raise SkipComponent