def power_ctl(): if not gloval.get_outflag(): if gloval.get_powermode() == 'dc': reboot.dccycle() if gloval.get_powermode() == 'ac': reboot.accycle() else: if gloval.get_powermode() == 'dc': os.system( 'ipmitool -H {ip} -U {username} -P {password} chassis power cycle' .format(ip=gloval.get_ip(), username=gloval.get_username(), password=gloval.get_password())) if gloval.get_powermode() == 'ac': pductl.PDU_Ctl().accycle(load_config('PDU_Inlet'))
def compare(count): local_res = 'PASS' local_comment = [] for name, cmd in bmc_cmd.items(): _logdir = os.path.join(logdir, name + '_log') ret, out = subprocess.getstatusoutput(cmd) logsave(os.path.join(_logdir, name + '.log.' + str(count)), out) logsave(os.path.join(logdir, name + '_full.log'), out) if name == 'sel': org = getSelList(logread(os.path.join(_logdir, 'sel.log.1'))) last = getSelList( logread(os.path.join(_logdir, 'sel.log.' + str(count)))) elif name == 'sdr': org = getSdrDict(logread(os.path.join(_logdir, 'sdr.log.1'))) last = getSdrDict( logread(os.path.join(_logdir, 'sdr.log.' + str(count)))) else: org = logread(os.path.join(_logdir, name + '.log.1')) last = logread(os.path.join(_logdir, name + '.log.' + str(count))) if not comparelog(org, last): msg = """An error was detected in test {name} on reboot #{count} logged {date} See {name}.log.{count} for more details.""".format( name=name, count=str(count), date=time.strftime('%Y%m%dT%H%M%S')) local_res = 'FAIL' local_comment.append(msg) if not gloval.get_outflag(): for name, cmd in commandsdict.items(): ret, out = subprocess.getstatusoutput(cmd) org = logread(os.path.join(sublogdir, name + '.log.1')) last = out if not comparelog(org, last): logsave(os.path.join(sublogdir, name + '.log.' + str(count)), out) msg = """An error was detected in test {name} on reboot #{count} logged {date} See {name}.log.{count} for more details.""".format( name=name, count=str(count), date=time.strftime('%Y%m%dT%H%M%S')) local_res = 'FAIL' local_comment.append(msg) return (local_res, local_comment)
def __init__(self, dev): self.dev = dev self.cfg = load_config(dev) self.flash_log = os.path.join(homedir, 'reports/flash.log') self.initlog() self.toolpath = os.path.join(homedir, 'tools') self.tool = 'FlashTool64Bit' self.getver_cmd = '{tool} -p {product} -t cpld -i {index} -v'.format( tool=self.tool, product=self.cfg[0]['product'], index=self.cfg[0]['index']) if gloval.get_outflag(): self.getver_rawcmd = "{tool} -H {ip} -U {username} -P {password} -p {product} -t cpld -i {index} -v" self.getver_cmd = self.getver_rawcmd.format( tool=self.tool, ip=gloval.get_ip(), username=gloval.get_username(), password=gloval.get_password(), product=self.cfg[0]['product'], index=self.cfg[0]['index'])
def make_flashcmd(self, index): self.flash_rawcmd = "{tool} -p {product} -t cpld -i {index} -f {image}" self.getver_rawcmd = '{tool} -p {product} -t cpld -i {index} -v' if gloval.get_outflag(): self.flash_rawcmd = "{tool} -H {ip} -U {username} -P {password} -p {product} -t cpld -i {index} -f {image}" self.getver_rawcmd = "{tool} -H {ip} -U {username} -P {password} -p {product} -t cpld -i {index} -v" self.flash_cmd = self.flash_rawcmd.format( tool=self.tool, ip=gloval.get_ip(), username=gloval.get_username(), password=gloval.get_password(), product=self.cfg[index]['product'], index=self.cfg[index]['index'], image=self.cfg[index]['image']) self.getver_cmd = self.getver_rawcmd.format( tool=self.tool, ip=gloval.get_ip(), username=gloval.get_username(), password=gloval.get_password(), product=self.cfg[index]['product'], index=self.cfg[index]['index'])
def init(): local_res = 'PASS' local_com = [''] for name, cmd in bmc_cmd.items(): _logdir = os.path.join(logdir, name + '_log') os.system('rm -fr ' + _logdir + " 2>&1 > /dev/null") os.makedirs(_logdir) ret, out = subprocess.getstatusoutput(cmd) if ret != 0: local_res = 'FAIL' local_com.append(name + ' command: ' + cmd) logsave(os.path.join(_logdir, name + '.log.1'), out) logsave(os.path.join(logdir, name + '_full.log'), out) os.system('rm -fr ' + sublogdir + " 2>&1 > /dev/null") if not gloval.get_outflag(): os.makedirs(sublogdir) for name, cmd in commandsdict.items(): ret, out = subprocess.getstatusoutput(cmd) if ret != 0: local_res = 'FAIL' local_com.append(name + ' command: ' + cmd) logsave(os.path.join(sublogdir, name + '.log.1'), out) return (local_res, local_com)
import time import os from lib import gloval import subprocess curdir = os.path.dirname(__file__) homedir = os.path.split(curdir)[0] logdir = os.path.join(homedir, 'cyclelogs') sublogdir = os.path.join(logdir, 'logs') error_log = os.path.join(logdir, 'error.log') ipmitool = 'ipmitool' if gloval.get_outflag(): ipmitool = "ipmitool -H {ip} -U {username} -P {password} ".format( ip=gloval.get_ip(), username=gloval.get_username(), password=gloval.get_password()) bmc_cmd = { 'sel': '{ipmitool} sel list'.format(ipmitool=ipmitool), 'sdr': '{ipmitool} sdr list'.format(ipmitool=ipmitool), 'fru': '{ipmitool} fru list'.format(ipmitool=ipmitool) } name_array = [ 'pci', 'disks', 'cpu_procs', 'cpu_cores', 'cpu_speed', 'total_memory', 'memory', 'ipmi_lan', 'ipmi_sol', 'ipmi_bmc', 'dmidecode_type_0', 'dmidecode_type_1', 'dmidecode_type_2', 'dmidecode_type_3', 'ipmi_restart_cause', 'ipmi_power_restore_police', 'lspcivvv' ] # these are the tests lspci_nn_vvv = 'lspci -nn -vvv | grep -e "[[:alnum:]][[:alnum:]]:[[:alnum:]][[:alnum:]].[[:alnum:]] " ' \