Source code for insights.specs.datasources.intersystems

"""
Custom datasources to get the iris working configuration/log files.
"""
import os

from insights.core.context import HostContext
from insights.core.exceptions import SkipComponent
from insights.core.plugins import datasource
from insights.parsers.iris import IrisList, IrisCpf


[docs] @datasource(IrisList, HostContext) def iris_working_configuration(broker): """ This datasource get information from ``iris.cpf`` file. Returns: list: the file path of the ``iris.cpf`` files Raises: SkipComponent: there is no `iris.cpf` file """ all_paths = [] for item in broker[IrisList]: conf_directory = item['directory'] conf_file = item['conf file'].split()[0].strip() file_path = os.path.join(conf_directory, conf_file) if os.path.isfile(file_path): all_paths.append(file_path) if all_paths: return all_paths raise SkipComponent
[docs] @datasource(IrisCpf, HostContext) def iris_working_messages_log(broker): """ This datasource get information from ``messages.log`` file. Returns: list: the file path of the ``messages.log`` files Raises: SkipComponent: there is no `messages.log` file """ iris_cpf = broker[IrisCpf] all_paths = [] for item in iris_cpf: if item.has_option('config', 'console') and item.has_option('Databases', 'IRISSYS'): primary_log_path = item.get("config", "console").split(",")[-1] if primary_log_path: log_path = primary_log_path else: secondary_log_path = item.get("Databases", "IRISSYS") log_path = os.path.join(secondary_log_path, 'messages.log') if os.path.isfile(log_path): all_paths.append(log_path) if all_paths: return all_paths raise SkipComponent