def doCheck(self): if (self.cluster): LocalNodeInfo = self.cluster.getDbNodeByName(self.host) backIP = LocalNodeInfo.backIps[0] elif (self.ipAddr): backIP = self.ipAddr else: backIP = SharedFuncs.getIpByHostName(self.host) networkCardNumList = SharedFuncs.CheckNetWorkBonding(backIP) if networkCardNumList == "Shell command faild": return networkCardNums = [] if (len(networkCardNumList) != 1): networkCardNums = networkCardNumList[1:] else: networkCardNums.append(networkCardNumList[0]) flag = True for networkCardNum in networkCardNums: cmd = "/sbin/ethtool -i %s" % networkCardNum output = SharedFuncs.runShellCmd(cmd) self.result.raw += "[%s]\n%s\n" % (networkCardNum, output) NICVer = "" PCIAddr = "" for eachLine in output.split("\n"): if (eachLine.startswith("version:")): NICVer = eachLine if (eachLine.startswith('bus-info:')): if (len(eachLine.split(':')) == 4): PCIAddr = eachLine.split(':')[2] + ':' + \ eachLine.split(':')[3] if (NICVer): self.result.val += "%s\n" % (NICVer) else: self.result.val += "Failed to get NIC %s 'version' info\n" \ % networkCardNum flag = False if (PCIAddr): cmd = "lspci |grep %s" % PCIAddr (status, output) = subprocess.getstatusoutput(cmd) self.result.raw += "%s\n" % (output) if status == 0 and len(output.split(':')) >= 3: modelInfo = ':'.join(output.split(':')[2:]).split('(')[0] self.result.val += "model: %s\n" % (modelInfo.strip()) else: self.result.val += "Failed to get NIC %s model" \ " 'bus-info' info\n" % networkCardNum self.result.val += "The cmd is %s " % cmd flag = False else: self.result.val += "Failed to get NIC %s model" \ " 'bus-info' info\n" % networkCardNum flag = False if (flag): self.result.rst = ResultStatus.OK else: self.result.rst = ResultStatus.NG
def doSet(self): if (self.cluster): LocalNodeInfo = self.cluster.getDbNodeByName(self.host) backIP = LocalNodeInfo.backIps[0] elif (self.ipAddr): backIP = self.ipAddr else: backIP = SharedFuncs.getIpByHostName(self.host) networkCardNumList = SharedFuncs.CheckNetWorkBonding(backIP) if (len(networkCardNumList) != 1): networkCardNums = networkCardNumList[1:] else: networkCardNums = networkCardNumList for networkCardNum in networkCardNums: cmd = "/sbin/ethtool -G %s %s %d" % (networkCardNum, "rx", EXPECTED_RXTX) cmd += ";/sbin/ethtool -G %s %s %d" % (networkCardNum, "tx", EXPECTED_RXTX) SharedFuncs.runShellCmd(cmd)