コード例 #1
0
ファイル: init.py プロジェクト: SimonWang1995/cpldflash
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'))
コード例 #2
0
ファイル: logcompare.py プロジェクト: SimonWang1995/cpldflash
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)
コード例 #3
0
 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'])
コード例 #4
0
 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'])
コード例 #5
0
ファイル: logcompare.py プロジェクト: SimonWang1995/cpldflash
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)
コード例 #6
0
ファイル: logcompare.py プロジェクト: SimonWang1995/cpldflash
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:]] " ' \