Source code for insights.specs.jdr_archive

"""
This module defines all datasources for JDR report
"""

from functools import partial
from insights.specs import Specs
from insights.core.plugins import datasource
from insights.core.context import JDRContext
from insights.core.spec_factory import simple_file, foreach_collect, first_file, glob_file, listdir

first_file = partial(first_file, context=JDRContext)
glob_file = partial(glob_file, context=JDRContext)
simple_file = partial(simple_file, context=JDRContext)
foreach_collect = partial(foreach_collect, context=JDRContext)


[docs] class JDRSpecs(Specs): """A class for all the JDR report datasources""" jboss_standalone_server_log = glob_file("JBOSS_HOME/standalone/log/server.log")
[docs] @datasource(jboss_standalone_server_log, context=JDRContext, multi_output=True) def jboss_standalone_conf_file(broker): """Get which jboss standalone conf file is using from server log""" log_files = broker[JDRSpecs.jboss_standalone_server_log] if log_files: log_content = log_files[-1].content results = [] for line in log_content: if "sun.java.command =" in line and ".jdr" not in line and "-Djboss.server.base.dir" in line: results.append(line) if results: # default is standalone.xml config_xml = 'standalone.xml' java_command = results[-1] if '--server-config' in java_command: config_xml = java_command.split('--server-config=')[1].split()[0] elif '-c ' in java_command: config_xml = java_command.split('-c ')[1].split()[0] return [config_xml] return []
# Get file content according the file name from server.log jboss_standalone_main_config = foreach_collect(jboss_standalone_conf_file, "JBOSS_HOME/standalone/configuration/%s") jboss_domain_servers = listdir("JBOSS_HOME/domain/servers/", context=JDRContext) jboss_domain_server_log = foreach_collect(jboss_domain_servers, "JBOSS_HOME/domain/servers/%s/log/server.log")