Source code for insights.specs.datasources.rsyslog_confs
"""
Custom datasource to get the list of the rsyslog errorfile paths.
"""
from insights.core.context import HostContext
from insights.core.plugins import datasource
from insights.combiners.rsyslog_confs import RsyslogAllConf
from insights.core.exceptions import SkipComponent
[docs]@datasource(RsyslogAllConf, HostContext)
def rsyslog_errorfile(broker):
"""
This datasource provides the list of the rsyslog errorfile paths.
Sample data returned::
'/var/log/omelasticsearch.log /var/log/oversized.log'
Returns:
string: string of the errorfile paths that separated by a whitespace.
Raises:
SkipComponent: When 'errorfile' is not configured.
"""
rsyslog_confs = broker[RsyslogAllConf]
if rsyslog_confs:
result_list = []
for conf_path in rsyslog_confs:
for line in rsyslog_confs[conf_path]:
if 'errorfile' in line and 'action' in line:
paths = line.split('errorfile')
for i in range(1, len(paths)):
errorfile_path = paths[i].split('"')[1]
result_list.append(errorfile_path)
if result_list:
return ' '.join(result_list)
raise SkipComponent