blob: ca1a003ea48fc4a9cc1dab681c0098acb7656b78 [file] [log] [blame]
bmc_dump_path = "/var/lib/phosphor-debug-collector/dumps"
dreport_plugin_dir = "${datadir}/dreport.d/plugins.d"
dreport_include_dir = "${datadir}/dreport.d/include.d"
dreport_conf_dir = "${datadir}/dreport.d/conf.d"
dreport_dir = "${datadir}/dreport.d/"
# Make the links for a single user plugin script
# Create user directories based on the dump type value in the config section
# Create softlinks for the base scripts in the user directories
def install_dreport_user_script(dreport_conf, script_path, d):
import re
import configparser
#Set variables
config = ("config:")
section = "DumpType"
#Read the user types from the dreport_conf file
configure = configparser.ConfigParser()
conf_dir = d.getVar('D', True) + d.getVar('dreport_conf_dir', True)
confsource = os.path.join(conf_dir, dreport_conf)
configure.read(confsource)
#Extract the script name, and open the user script file
dreport_dir = d.getVar('D', True) + d.getVar('dreport_dir', True)
script = os.path.basename(script_path)
file = open(script_path, "r")
#softlink to the script
srclink = os.path.join(d.getVar('dreport_plugin_dir', True), script)
for line in file:
if not config in line:
continue
revalue = re.search('[0-9]+.[0-9]+', line)
if not revalue:
bb.warn("Invalid format for config value =%s" % line)
continue
#Regex search to identify which directories get softlinks to the script
parse_value = revalue.group(0)
config_values = re.split(r'\W+', parse_value, 1)
if(len(config_values) != 2):
bb.warn("Invalid config value=%s" % parse_value)
break;
priority = config_values[1]
types = [int(d) for d in str(config_values[0])]
#For every dump type identified from 'types',create softlink to script
for type in types:
if not configure.has_option(section, str(type)):
bb.warn("Invalid dump type id =%s" % (str(type)))
continue
#create directories based on the usertype
typestr = configure.get(section, str(type))
destdir = os.path.join(dreport_dir, ("pl_" + typestr + ".d"))
if not os.path.exists(destdir):
os.makedirs(destdir)
#Create softlinks to the user script in the directories
linkname = "E" + priority + script
destlink = os.path.join(destdir, linkname)
os.symlink(srclink, destlink)
file.close()