!90 [sync] PR-87: Upgrade oech version to 1.1.2
From: @openeuler-sync-bot Reviewed-by: @meitingli Signed-off-by: @meitingli
This commit is contained in:
commit
ae87f7ece6
@ -1,68 +0,0 @@
|
|||||||
diff -Naur rpm/tests/fc/fc.py oech/tests/fc/fc.py
|
|
||||||
--- rpm/tests/fc/fc.py 2022-08-01 17:27:14.639340460 +0800
|
|
||||||
+++ oech/tests/fc/fc.py 2022-08-01 17:25:50.615340460 +0800
|
|
||||||
@@ -20,6 +20,7 @@
|
|
||||||
|
|
||||||
from hwcompatible.test import Test
|
|
||||||
from hwcompatible.command import Command
|
|
||||||
+from hwcompatible.device import CertDevice
|
|
||||||
|
|
||||||
|
|
||||||
class FCTest(Test):
|
|
||||||
@@ -102,10 +103,14 @@
|
|
||||||
"""
|
|
||||||
self.disks = list()
|
|
||||||
disks = list()
|
|
||||||
- disk_info = Command("cd /sys/block; ls -l").read().split('\n')
|
|
||||||
- for disk in disk_info:
|
|
||||||
- if self.pci_num in disk:
|
|
||||||
- disks.append(disk.split('/')[-1])
|
|
||||||
+ devices = CertDevice(self.logger).get_devices()
|
|
||||||
+ for device in devices:
|
|
||||||
+ if (device.get_property("DEVTYPE") == "disk" and not
|
|
||||||
+ device.get_property("ID_TYPE")) or device.\
|
|
||||||
+ get_property("ID_TYPE") == "disk":
|
|
||||||
+ if "/host" in device.get_property("DEVPATH") and \
|
|
||||||
+ self.pci_num in device.get_property("DEVPATH"):
|
|
||||||
+ disks.append(device.get_name())
|
|
||||||
|
|
||||||
partition_file = open("/proc/partitions", "r")
|
|
||||||
partition = partition_file.read()
|
|
||||||
diff -Naur rpm/tests/raid/raid.py oech/tests/raid/raid.py
|
|
||||||
--- rpm/tests/raid/raid.py 2022-08-01 17:27:14.643340460 +0800
|
|
||||||
+++ oech/tests/raid/raid.py 2022-08-01 17:25:50.615340460 +0800
|
|
||||||
@@ -20,6 +20,7 @@
|
|
||||||
|
|
||||||
from hwcompatible.test import Test
|
|
||||||
from hwcompatible.command import Command
|
|
||||||
+from hwcompatible.device import CertDevice
|
|
||||||
|
|
||||||
|
|
||||||
class RaidTest(Test):
|
|
||||||
@@ -102,10 +103,14 @@
|
|
||||||
"""
|
|
||||||
self.disks = list()
|
|
||||||
disks = list()
|
|
||||||
- disk_info = Command("cd /sys/block; ls -l").read().split('\n')
|
|
||||||
- for disk in disk_info:
|
|
||||||
- if self.pci_num in disk:
|
|
||||||
- disks.append(disk.split('/')[-1])
|
|
||||||
+ devices = CertDevice(self.logger).get_devices()
|
|
||||||
+ for device in devices:
|
|
||||||
+ if (device.get_property("DEVTYPE") == "disk" and not
|
|
||||||
+ device.get_property("ID_TYPE")) or device.\
|
|
||||||
+ get_property("ID_TYPE") == "disk":
|
|
||||||
+ if "/host" in device.get_property("DEVPATH") and \
|
|
||||||
+ self.pci_num in device.get_property("DEVPATH"):
|
|
||||||
+ disks.append(device.get_name())
|
|
||||||
|
|
||||||
partition_file = open("/proc/partitions", "r")
|
|
||||||
partition = partition_file.read()
|
|
||||||
@@ -136,7 +141,6 @@
|
|
||||||
if disk in mdstat or os.system("pvs 2>/dev/null | grep -q '/dev/%s'" % disk) == 0:
|
|
||||||
continue
|
|
||||||
self.disks.append(disk)
|
|
||||||
-
|
|
||||||
un_suitable = list(set(disks).difference(set(self.disks)))
|
|
||||||
if len(un_suitable) > 0:
|
|
||||||
self.logger.info("These disks %s are in use now, skip them." %
|
|
||||||
@ -1,323 +0,0 @@
|
|||||||
diff -Naur rpm/tests/infiniband/infiniband.py oech/tests/infiniband/infiniband.py
|
|
||||||
--- rpm/tests/infiniband/infiniband.py 2022-08-03 18:05:22.031340460 +0800
|
|
||||||
+++ oech/tests/infiniband/infiniband.py 2022-08-03 18:02:43.727340460 +0800
|
|
||||||
@@ -29,6 +29,7 @@
|
|
||||||
self.target_bandwidth_percent = 0.5
|
|
||||||
self.config_data = dict()
|
|
||||||
self.server_ip = ""
|
|
||||||
+ self.server_port = "80"
|
|
||||||
self.args = None
|
|
||||||
|
|
||||||
def test_ib_link(self):
|
|
||||||
@@ -68,6 +69,8 @@
|
|
||||||
self.config_data = getattr(self.args, "config_data", None)
|
|
||||||
if self.config_data:
|
|
||||||
self.server_ip = self.config_data.get("server_ip", "")
|
|
||||||
+ if ":" in self.server_ip:
|
|
||||||
+ self.server_ip, self.server_port = self.server_ip.split(":")
|
|
||||||
else:
|
|
||||||
self.logger.error("Failed to test item value from configuration file.")
|
|
||||||
|
|
||||||
diff -Naur rpm/tests/infiniband/network.py oech/tests/infiniband/network.py
|
|
||||||
--- rpm/tests/infiniband/network.py 2022-08-03 18:05:22.031340460 +0800
|
|
||||||
+++ oech/tests/infiniband/network.py 2022-08-03 18:02:43.727340460 +0800
|
|
||||||
@@ -34,6 +34,7 @@
|
|
||||||
self.interface = None
|
|
||||||
self.other_interfaces = []
|
|
||||||
self.server_ip = None
|
|
||||||
+ self.server_port = "80"
|
|
||||||
self.retries = 3
|
|
||||||
self.speed = 1000 # Mb/s
|
|
||||||
self.target_bandwidth_percent = 0.8
|
|
||||||
@@ -94,7 +95,7 @@
|
|
||||||
form = dict()
|
|
||||||
form['cmd'] = cmd
|
|
||||||
form['ib_server_ip'] = ib_server_ip
|
|
||||||
- url = 'http://%s/api/%s' % (self.server_ip, act)
|
|
||||||
+ url = 'http://%s:%s/api/%s' % (self.server_ip, self.server_port, act)
|
|
||||||
data = urlencode(form).encode('utf8')
|
|
||||||
headers = {
|
|
||||||
'Content-type': 'application/x-www-form-urlencoded',
|
|
||||||
diff -Naur rpm/tests/network/ethernet.py oech/tests/network/ethernet.py
|
|
||||||
--- rpm/tests/network/ethernet.py 2022-08-03 18:05:22.031340460 +0800
|
|
||||||
+++ oech/tests/network/ethernet.py 2022-08-03 18:02:43.727340460 +0800
|
|
||||||
@@ -33,6 +33,7 @@
|
|
||||||
self.device = None
|
|
||||||
self.config_data = dict()
|
|
||||||
self.server_ip = ""
|
|
||||||
+ self.server_port = "80"
|
|
||||||
self.subtests = [self.test_ip_info, self.test_eth_link, self.test_icmp,
|
|
||||||
self.test_udp_tcp, self.test_http]
|
|
||||||
self.target_bandwidth_percent = 0.75
|
|
||||||
@@ -61,7 +62,9 @@
|
|
||||||
self.show_driver_info()
|
|
||||||
self.config_data = getattr(args, "config_data", None)
|
|
||||||
if self.config_data:
|
|
||||||
- self.server_ip = self.config_data.get("server_ip")
|
|
||||||
+ self.server_ip = self.config_data.get("server_ip", "")
|
|
||||||
+ if ":" in self.server_ip:
|
|
||||||
+ self.server_ip, self.server_port = self.server_ip.split(":")
|
|
||||||
choice = self.config_data.get("if_rdma")
|
|
||||||
else:
|
|
||||||
self.logger.error("Get test item value from configuration file failed.")
|
|
||||||
diff -Naur rpm/tests/network/network.py oech/tests/network/network.py
|
|
||||||
--- rpm/tests/network/network.py 2022-08-03 18:05:22.031340460 +0800
|
|
||||||
+++ oech/tests/network/network.py 2022-08-03 18:02:43.727340460 +0800
|
|
||||||
@@ -22,6 +22,7 @@
|
|
||||||
|
|
||||||
from hwcompatible.test import Test
|
|
||||||
from hwcompatible.command import Command
|
|
||||||
+from hwcompatible.constants import FILE_FLAGS, FILE_MODES
|
|
||||||
|
|
||||||
|
|
||||||
class NetworkTest(Test):
|
|
||||||
@@ -33,6 +34,7 @@
|
|
||||||
self.requirements = ['ethtool', 'iproute', 'psmisc', 'qperf']
|
|
||||||
self.retries = 3
|
|
||||||
self.testfile = 'testfile'
|
|
||||||
+ self.speed = 0
|
|
||||||
|
|
||||||
def ifdown(self, interface):
|
|
||||||
"""
|
|
||||||
@@ -72,7 +74,7 @@
|
|
||||||
return int(speed)
|
|
||||||
except Exception:
|
|
||||||
self.logger.error("[X] No speed found on the interface.")
|
|
||||||
- return None
|
|
||||||
+ return 0
|
|
||||||
|
|
||||||
def get_interface_ip(self):
|
|
||||||
"""
|
|
||||||
@@ -86,7 +88,7 @@
|
|
||||||
return ip_addr
|
|
||||||
except Exception:
|
|
||||||
self.logger.error("[X] No available ip on the interface.")
|
|
||||||
- return None
|
|
||||||
+ return ""
|
|
||||||
|
|
||||||
def test_icmp(self):
|
|
||||||
"""
|
|
||||||
@@ -98,14 +100,14 @@
|
|
||||||
pattern = r".*, (?P<loss>\d+\.{0,1}\d*)% packet loss.*"
|
|
||||||
|
|
||||||
for _ in range(self.retries):
|
|
||||||
+ self.logger.info(com.command)
|
|
||||||
try:
|
|
||||||
- self.logger.info(com.command)
|
|
||||||
loss = com.get_str(pattern, 'loss', False)
|
|
||||||
- com.print_output()
|
|
||||||
- if float(loss) == 0:
|
|
||||||
- return True
|
|
||||||
except Exception as concrete_error:
|
|
||||||
self.logger.error(concrete_error)
|
|
||||||
+ if float(loss) == 0:
|
|
||||||
+ return True
|
|
||||||
+ com.print_output()
|
|
||||||
return False
|
|
||||||
|
|
||||||
def call_remote_server(self, cmd, act='start', ib_server_ip=''):
|
|
||||||
@@ -119,14 +121,15 @@
|
|
||||||
form = dict()
|
|
||||||
form['cmd'] = cmd
|
|
||||||
form['ib_server_ip'] = ib_server_ip
|
|
||||||
- url = 'http://%s/api/%s' % (self.server_ip, act)
|
|
||||||
+ url = 'http://%s:%s/api/%s' % (self.server_ip, self.server_port, act)
|
|
||||||
data = urlencode(form).encode('utf8')
|
|
||||||
headers = {
|
|
||||||
'Content-type': 'application/x-www-form-urlencoded',
|
|
||||||
'Accept': 'text/plain'
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ request = Request(url, data=data, headers=headers)
|
|
||||||
try:
|
|
||||||
- request = Request(url, data=data, headers=headers)
|
|
||||||
response = urlopen(request)
|
|
||||||
except Exception as concrete_error:
|
|
||||||
self.logger.error(str(concrete_error))
|
|
||||||
@@ -169,19 +172,20 @@
|
|
||||||
for _ in range(self.retries):
|
|
||||||
try:
|
|
||||||
bandwidth = com.get_str(pattern, 'bandwidth', False)
|
|
||||||
- band_width = bandwidth.split()
|
|
||||||
- if 'GB' in band_width[1]:
|
|
||||||
- bandwidth = float(band_width[0]) * 8 * 1024
|
|
||||||
- else:
|
|
||||||
- bandwidth = float(band_width[0]) * 8
|
|
||||||
-
|
|
||||||
- target_bandwidth = self.target_bandwidth_percent * self.speed
|
|
||||||
- self.logger.info("Current bandwidth is %.2fMb/s, target is %.2fMb/s" %
|
|
||||||
- (bandwidth, target_bandwidth))
|
|
||||||
- if bandwidth > target_bandwidth:
|
|
||||||
- return True
|
|
||||||
except Exception as concrete_error:
|
|
||||||
self.logger.error(concrete_error)
|
|
||||||
+ band_width = bandwidth.split()
|
|
||||||
+ if 'GB' in band_width[1]:
|
|
||||||
+ bandwidth = float(band_width[0]) * 8 * 1024
|
|
||||||
+ else:
|
|
||||||
+ bandwidth = float(band_width[0]) * 8
|
|
||||||
+
|
|
||||||
+ target_bandwidth = self.target_bandwidth_percent * self.speed
|
|
||||||
+ self.logger.info(
|
|
||||||
+ "Current bandwidth is %.2fMb/s, target is %.2fMb/s" %
|
|
||||||
+ (bandwidth, target_bandwidth))
|
|
||||||
+ if bandwidth > target_bandwidth:
|
|
||||||
+ return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def create_testfile(self):
|
|
||||||
@@ -212,7 +216,7 @@
|
|
||||||
|
|
||||||
form['filename'] = filename
|
|
||||||
form['filetext'] = filetext
|
|
||||||
- url = 'http://%s/api/file/upload' % self.server_ip
|
|
||||||
+ url = 'http://%s:%s/api/file/upload' % (self.server_ip, self.server_port)
|
|
||||||
data = urlencode(form).encode('utf8')
|
|
||||||
headers = {
|
|
||||||
'Content-type': 'application/x-www-form-urlencoded',
|
|
||||||
@@ -220,8 +224,8 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
time_start = time.time()
|
|
||||||
+ request = Request(url, data=data, headers=headers)
|
|
||||||
try:
|
|
||||||
- request = Request(url, data=data, headers=headers)
|
|
||||||
response = urlopen(request)
|
|
||||||
except Exception as concrete_error:
|
|
||||||
self.logger.error(concrete_error)
|
|
||||||
@@ -242,7 +246,7 @@
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
filename = os.path.basename(self.testfile)
|
|
||||||
- url = "http://%s/files/%s" % (self.server_ip, filename)
|
|
||||||
+ url = "http://%s:%s/files/%s" % (self.server_ip, self.server_port, filename)
|
|
||||||
|
|
||||||
time_start = time.time()
|
|
||||||
try:
|
|
||||||
@@ -257,7 +261,8 @@
|
|
||||||
self.logger.info(str(response.headers), terminal_print=False)
|
|
||||||
filetext = response.read()
|
|
||||||
try:
|
|
||||||
- with open(self.testfile, 'wb') as file_info:
|
|
||||||
+ with os.fdopen(os.open(self.testfile, FILE_FLAGS, FILE_MODES),
|
|
||||||
+ "wb") as file_info:
|
|
||||||
file_info.write(filetext)
|
|
||||||
except Exception as concrete_error:
|
|
||||||
self.logger.error(concrete_error)
|
|
||||||
diff -Naur rpm/tests/system/system.py oech/tests/system/system.py
|
|
||||||
--- rpm/tests/system/system.py 2022-08-03 18:13:04.395340460 +0800
|
|
||||||
+++ oech/tests/system/system.py 2022-08-03 18:06:55.651340460 +0800
|
|
||||||
@@ -69,17 +69,16 @@
|
|
||||||
self.logger.info("Checking installed cert package...")
|
|
||||||
for cert_package in ["oec-hardware"]:
|
|
||||||
rpm_verify = Command(
|
|
||||||
- "rpm -V --nomtime --nomode --nocontexts %s &>> %s" %
|
|
||||||
- (cert_package, self.logger.logfile))
|
|
||||||
- rpm_verify.echo(ignore_errors=True)
|
|
||||||
- output = rpm_verify.read().split('\n')
|
|
||||||
- for file in output:
|
|
||||||
- if "test_config.yaml" in file:
|
|
||||||
- continue
|
|
||||||
- else:
|
|
||||||
- self.logger.error(
|
|
||||||
- "Files in %s have been tampered." % cert_package)
|
|
||||||
- return False
|
|
||||||
+ "rpm -V --nomtime --nomode --nocontexts %s" % cert_package)
|
|
||||||
+ output = rpm_verify.read()
|
|
||||||
+ if output:
|
|
||||||
+ for file in output.split('\n'):
|
|
||||||
+ if "test_config.yaml" in file:
|
|
||||||
+ continue
|
|
||||||
+ else:
|
|
||||||
+ self.logger.error("Files in %s have beem tampered. \nThe tampered files are as follows:\n %s" %
|
|
||||||
+ (cert_package, output))
|
|
||||||
+ return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
def check_kernel(self):
|
|
||||||
@@ -173,85 +172,6 @@
|
|
||||||
proc_modules.close()
|
|
||||||
return modules
|
|
||||||
|
|
||||||
- def abi_check(self, module):
|
|
||||||
- """
|
|
||||||
- Check abi whitelist
|
|
||||||
- :param module:
|
|
||||||
- :return:
|
|
||||||
- """
|
|
||||||
- whitelist_path = [("/lib/modules/kabi-current/kabi_whitelist_" + self.sysinfo.arch),
|
|
||||||
- ("/lib/modules/kabi/kabi_whitelist_" + self.sysinfo.arch),
|
|
||||||
- ("/usr/src/kernels/%s/kabi_whitelist" %
|
|
||||||
- self.sysinfo.kernel)
|
|
||||||
- ]
|
|
||||||
- whitelist = ""
|
|
||||||
- for whitelist in whitelist_path:
|
|
||||||
- if os.path.exists(whitelist):
|
|
||||||
- break
|
|
||||||
-
|
|
||||||
- if not os.path.exists(whitelist):
|
|
||||||
- self.logger.error(
|
|
||||||
- "Unable not find whitelist file in any of the following locations:")
|
|
||||||
- self.logger.error("\n".join(whitelist_path))
|
|
||||||
- return False
|
|
||||||
-
|
|
||||||
- whitelist_symbols = self.read_abi_whitelist(whitelist)
|
|
||||||
- if not whitelist_symbols:
|
|
||||||
- return False
|
|
||||||
- module_symbols = self.read_module(module)
|
|
||||||
- if not module_symbols:
|
|
||||||
- return False
|
|
||||||
- extra_symbols = list()
|
|
||||||
- for symbol in module_symbols:
|
|
||||||
- if symbol not in whitelist_symbols:
|
|
||||||
- extra_symbols.append(symbol)
|
|
||||||
-
|
|
||||||
- black_symbols = list()
|
|
||||||
- if extra_symbols:
|
|
||||||
- greylist = "/usr/share/doc/kmod-%s/greylist.txt" % module
|
|
||||||
- if os.path.exists(greylist):
|
|
||||||
- self.logger.info("checking greylist for %s" % module)
|
|
||||||
- greylist_symbols = self.read_abi_whitelist(greylist)
|
|
||||||
- for symbol in extra_symbols:
|
|
||||||
- if symbol not in greylist_symbols:
|
|
||||||
- black_symbols.append(symbol)
|
|
||||||
- else:
|
|
||||||
- black_symbols = extra_symbols
|
|
||||||
-
|
|
||||||
- if black_symbols:
|
|
||||||
- self.logger.error("The following symbols are used by %s are not on the ABI \
|
|
||||||
- whitelist." % module)
|
|
||||||
- for symbol in black_symbols:
|
|
||||||
- self.logger.error(symbol)
|
|
||||||
- return False
|
|
||||||
- return True
|
|
||||||
-
|
|
||||||
- def read_abi_whitelist(self, whitelist):
|
|
||||||
- """
|
|
||||||
- Read abi whitelist
|
|
||||||
- :param whitelist:
|
|
||||||
- :return:
|
|
||||||
- """
|
|
||||||
- symbols = list()
|
|
||||||
- if not os.path.isfile(whitelist):
|
|
||||||
- self.logger.error("Failed to read the whitelist file")
|
|
||||||
- return None
|
|
||||||
-
|
|
||||||
- whitelistfile = open(whitelist, "r")
|
|
||||||
- while True:
|
|
||||||
- line = whitelistfile.readline()
|
|
||||||
- if line == "":
|
|
||||||
- break
|
|
||||||
- if line == "\n":
|
|
||||||
- continue
|
|
||||||
- line.split()
|
|
||||||
- if line[0] == '[':
|
|
||||||
- continue
|
|
||||||
- symbol = line.strip()
|
|
||||||
- symbols.append(symbol)
|
|
||||||
-
|
|
||||||
- return symbols
|
|
||||||
-
|
|
||||||
def read_module(self, module):
|
|
||||||
"""
|
|
||||||
Read module
|
|
||||||
@ -1,172 +0,0 @@
|
|||||||
diff -Naur rpm/hwcompatible/common.py oech/hwcompatible/common.py
|
|
||||||
--- rpm/hwcompatible/common.py 2022-07-27 14:07:40.000000000 +0800
|
|
||||||
+++ oech/hwcompatible/common.py 2022-08-10 15:43:57.639706540 +0800
|
|
||||||
@@ -49,12 +49,9 @@
|
|
||||||
test_name.append(test[NAME])
|
|
||||||
|
|
||||||
total_count = len(test_suite)
|
|
||||||
- if test_suite:
|
|
||||||
+ if total_count:
|
|
||||||
logger.info("There are %s selected test suites: %s." %
|
|
||||||
(total_count, ", ".join(test_name)))
|
|
||||||
- else:
|
|
||||||
- logger.warning("No test found.")
|
|
||||||
-
|
|
||||||
return test_suite
|
|
||||||
|
|
||||||
|
|
||||||
diff -Naur rpm/hwcompatible/compatibility.py oech/hwcompatible/compatibility.py
|
|
||||||
--- rpm/hwcompatible/compatibility.py 2022-07-27 14:07:40.000000000 +0800
|
|
||||||
+++ oech/hwcompatible/compatibility.py 2022-08-10 15:43:54.927706540 +0800
|
|
||||||
@@ -79,19 +79,23 @@
|
|
||||||
job = Job(args)
|
|
||||||
job.run()
|
|
||||||
self.save(job)
|
|
||||||
-
|
|
||||||
+
|
|
||||||
def run_rebootup(self):
|
|
||||||
"""
|
|
||||||
- rebootup
|
|
||||||
+ rebootup
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
+ if not os.path.exists(CertEnv.rebootfile):
|
|
||||||
+ return True
|
|
||||||
self.load()
|
|
||||||
test_suite = create_test_suite(self.test_factory, self.logger)
|
|
||||||
- args = argparse.Namespace(test_factory=self.test_factory, test_suite=test_suite)
|
|
||||||
+ args = argparse.Namespace(
|
|
||||||
+ test_factory=self.test_factory, test_suite=test_suite)
|
|
||||||
job = Job(args)
|
|
||||||
reboot = Reboot(None, job, None)
|
|
||||||
- if reboot.check():
|
|
||||||
+ if reboot.check(logger=self.logger):
|
|
||||||
+ job = reboot.job
|
|
||||||
job.run()
|
|
||||||
reboot.clean()
|
|
||||||
self.save(job)
|
|
||||||
@@ -123,7 +127,8 @@
|
|
||||||
"""
|
|
||||||
os.makedirs(os.path.dirname(CertEnv.datadirectory), exist_ok=True)
|
|
||||||
if not self.certification:
|
|
||||||
- self.certification = CertDocument(CertEnv.certificationfile, self.logger)
|
|
||||||
+ self.certification = CertDocument(
|
|
||||||
+ CertEnv.certificationfile, self.logger)
|
|
||||||
if not self.certification.document:
|
|
||||||
self.certification.new()
|
|
||||||
self.certification.save()
|
|
||||||
@@ -311,7 +316,12 @@
|
|
||||||
sort_devices[GPU].extend([device])
|
|
||||||
else:
|
|
||||||
sort_devices[GPU] = [device]
|
|
||||||
- continue
|
|
||||||
+ if driver == "nvidia":
|
|
||||||
+ if VGPU in sort_devices.keys():
|
|
||||||
+ sort_devices[VGPU].extend([device])
|
|
||||||
+ else:
|
|
||||||
+ sort_devices[VGPU] = [device]
|
|
||||||
+ continue
|
|
||||||
if device.get_property("SUBSYSTEM") == "net" and \
|
|
||||||
device.get_property("INTERFACE"):
|
|
||||||
interface = device.get_property("INTERFACE")
|
|
||||||
@@ -513,4 +523,4 @@
|
|
||||||
self.logger.info("%-6d" % device.num + device.run.ljust(8)
|
|
||||||
+ "\033[0;3%sm%s \033[0m" % (device.color, device.status.ljust(8))
|
|
||||||
+ device.name.ljust(14) + device.device.ljust(15) + device.driver.ljust(15)
|
|
||||||
- + device.version.ljust(18) + device.chip.ljust(20) + device.board, log_print=False)
|
|
||||||
\ No newline at end of file
|
|
||||||
+ + device.version.ljust(18) + device.chip.ljust(20) + device.board, log_print=False)
|
|
||||||
diff -Naur rpm/hwcompatible/reboot.py oech/hwcompatible/reboot.py
|
|
||||||
--- rpm/hwcompatible/reboot.py 2022-07-27 14:07:40.000000000 +0800
|
|
||||||
+++ oech/hwcompatible/reboot.py 2022-08-10 15:43:56.623706540 +0800
|
|
||||||
@@ -15,10 +15,10 @@
|
|
||||||
import os
|
|
||||||
import datetime
|
|
||||||
import argparse
|
|
||||||
-from hwcompatible.document import Document, FactoryDocument
|
|
||||||
-from hwcompatible.env import CertEnv
|
|
||||||
-from hwcompatible.command import Command
|
|
||||||
-from hwcompatible.constants import *
|
|
||||||
+from .document import Document, FactoryDocument
|
|
||||||
+from .env import CertEnv
|
|
||||||
+from .command import Command, CertCommandError
|
|
||||||
+from .constants import *
|
|
||||||
|
|
||||||
|
|
||||||
class Reboot:
|
|
||||||
@@ -46,8 +46,8 @@
|
|
||||||
if test[RUN] and self.testname == test[NAME]:
|
|
||||||
test[REBOOT] = False
|
|
||||||
|
|
||||||
- Command("rm -rf %s" % CertEnv.rebootfile).run(ignore_errors=True)
|
|
||||||
- Command("systemctl disable oech").run(ignore_errors=True)
|
|
||||||
+ os.remove(CertEnv.rebootfile)
|
|
||||||
+ Command("systemctl disable oech").run()
|
|
||||||
|
|
||||||
def setup(self, args=None):
|
|
||||||
"""
|
|
||||||
@@ -78,26 +78,27 @@
|
|
||||||
self.logger.error("Save reboot doc failed.")
|
|
||||||
return False
|
|
||||||
|
|
||||||
+ Command("systemctl daemon-reload").run()
|
|
||||||
try:
|
|
||||||
- Command("systemctl daemon-reload").run_quiet()
|
|
||||||
- Command("systemctl enable oech").run_quiet()
|
|
||||||
- except Exception:
|
|
||||||
- self.logger.error("Enable oech.service failed.")
|
|
||||||
+ Command("systemctl enable oech").run()
|
|
||||||
+ except CertCommandError as certerror:
|
|
||||||
+ self.logger.error("Enable oech.service failed.\n %s" %
|
|
||||||
+ certerror.print_errors())
|
|
||||||
return False
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
- def check(self):
|
|
||||||
+ def check(self, logger=None):
|
|
||||||
"""
|
|
||||||
Reboot file check
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
- doc = Document(CertEnv.rebootfile, self.logger)
|
|
||||||
+ if not logger:
|
|
||||||
+ logger = self.logger
|
|
||||||
|
|
||||||
- if not os.path.exists(CertEnv.rebootfile):
|
|
||||||
- return False
|
|
||||||
+ doc = Document(CertEnv.rebootfile, logger)
|
|
||||||
if not doc.load():
|
|
||||||
- self.logger.error("Reboot file load failed.")
|
|
||||||
+ logger.error("Reboot file load failed.")
|
|
||||||
return False
|
|
||||||
|
|
||||||
try:
|
|
||||||
@@ -108,8 +109,15 @@
|
|
||||||
self.job.subtests_filter = self.reboot["rebootup"]
|
|
||||||
time_reboot = datetime.datetime.strptime(
|
|
||||||
self.reboot["time"], "%Y%m%d%H%M%S")
|
|
||||||
+ test_suite = self.job.test_suite
|
|
||||||
+ reboot_suite = []
|
|
||||||
+ for testcase in test_suite:
|
|
||||||
+ if testcase[NAME] == self.reboot["test"]:
|
|
||||||
+ reboot_suite.append(testcase)
|
|
||||||
+ break
|
|
||||||
+ self.job.test_suite = reboot_suite
|
|
||||||
except Exception:
|
|
||||||
- self.logger.error("Reboot file format not as expect.")
|
|
||||||
+ logger.error("Reboot file format not as expect.")
|
|
||||||
return False
|
|
||||||
|
|
||||||
time_now = datetime.datetime.now()
|
|
||||||
@@ -118,7 +126,8 @@
|
|
||||||
reboot_list = cmd.get_str(
|
|
||||||
"^reboot .*$", single_line=False, return_list=True)
|
|
||||||
if len(reboot_list) != 1:
|
|
||||||
- self.logger.error("Reboot times check failed.")
|
|
||||||
+ logger.error("Reboot times check failed.")
|
|
||||||
return False
|
|
||||||
|
|
||||||
+ logger.info("Reboot time check : %s" % reboot_list)
|
|
||||||
return True
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
diff -Naur rpm/server/server.py oech/server/server.py
|
|
||||||
--- rpm/server/server.py 2022-07-27 14:07:40.000000000 +0800
|
|
||||||
+++ oech/server/server.py 2022-08-17 10:12:57.721707038 +0800
|
|
||||||
@@ -275,8 +275,8 @@
|
|
||||||
|
|
||||||
with open(tar_job, 'wb') as file_content:
|
|
||||||
file_content.write(base64.b64decode(filetext))
|
|
||||||
- exec = subprocess.getstatusoutput("tar xf '%s' -C '%s'" % (tar_job, os.path.dirname(dir_job)))
|
|
||||||
- if exec[0] != 0:
|
|
||||||
+ res = subprocess.getstatusoutput("tar xf '%s' -C '%s'" % (tar_job, os.path.dirname(dir_job)))
|
|
||||||
+ if res[0] != 0:
|
|
||||||
sys.stderr.write("Decompress log file failed.")
|
|
||||||
|
|
||||||
return render_template('upload.html', host=host, id=oec_id, job=job,
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
diff -Naur rpm/config/version.config oech/config/version.config
|
|
||||||
--- rpm/config/version.config 2022-07-27 14:07:40.000000000 +0800
|
|
||||||
+++ oech/config/version.config 2022-07-30 10:31:25.827906955 +0800
|
|
||||||
@@ -3,4 +3,4 @@
|
|
||||||
server_name=oec-hardware-server
|
|
||||||
|
|
||||||
[VERSION]
|
|
||||||
-version=1.1.0
|
|
||||||
+version=1.1.1
|
|
||||||
@ -3,26 +3,21 @@
|
|||||||
|
|
||||||
Name: oec-hardware
|
Name: oec-hardware
|
||||||
Summary: openEuler Hardware Compatibility Test Suite
|
Summary: openEuler Hardware Compatibility Test Suite
|
||||||
Version: 1.1.1
|
Version: 1.1.2
|
||||||
Release: 6
|
Release: 0
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
License: Mulan PSL v2
|
License: Mulan PSL v2
|
||||||
URL: https://gitee.com/openeuler/oec-hardware
|
URL: https://gitee.com/openeuler/oec-hardware
|
||||||
Source0: https://gitee.com/openeuler/oec-hardware/repository/archive/v%{version}.tar.gz
|
Source0: https://gitee.com/openeuler/oec-hardware/repository/archive/v%{version}.tar.gz
|
||||||
|
|
||||||
# patch fix issue
|
# patch fix issue
|
||||||
Patch0001: oec-hardware-1.1.1-fix-vesion.patch
|
|
||||||
Patch0002: oec-hardware-1.1.1-fix-fc-raid.patch
|
|
||||||
Patch0003: oec-hardware-1.1.1-fix-network-infiniband-system.patch
|
|
||||||
patch0004: oec-hardware-1.1.1-fix-rebootup_oech.service_issues.patch
|
|
||||||
patch0005: oec-hardware-1.1.1-fix-server.py_variable_conflict.patch
|
|
||||||
|
|
||||||
Buildroot: %{_tmppath}/%{name}-%{version}-root
|
Buildroot: %{_tmppath}/%{name}-%{version}-root
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
Requires: kernel-devel, kernel-headers, dmidecode, tar, python3-pyyaml
|
Requires: kernel-devel, kernel-headers, dmidecode, tar
|
||||||
Requires: qperf, fio, memtester
|
|
||||||
Requires: kernel >= 4
|
Requires: kernel >= 4
|
||||||
Requires: python3
|
Requires: python3, python3-pyyaml, python3-concurrent-log-handler
|
||||||
|
Provides: libswsds.so()(64bit)
|
||||||
|
|
||||||
# server subpackage
|
# server subpackage
|
||||||
%package server
|
%package server
|
||||||
@ -38,11 +33,6 @@ openEuler Hardware Compatibility Test Server
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -c
|
%setup -q -c
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
%patch5 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -69,6 +59,7 @@ DESTDIR=$RPM_BUILD_ROOT make install
|
|||||||
/usr/share/oech/lib/tests
|
/usr/share/oech/lib/tests
|
||||||
/usr/share/oech/lib/config
|
/usr/share/oech/lib/config
|
||||||
/usr/lib/systemd/system/oech.service
|
/usr/lib/systemd/system/oech.service
|
||||||
|
/usr/share/oech/lib/oech_logrotate.sh
|
||||||
%dir /var/oech
|
%dir /var/oech
|
||||||
%dir /usr/share/oech/lib
|
%dir /usr/share/oech/lib
|
||||||
%dir /usr/share/oech
|
%dir /usr/share/oech
|
||||||
@ -84,6 +75,11 @@ DESTDIR=$RPM_BUILD_ROOT make install
|
|||||||
rm -rf /var/lock/oech.lock
|
rm -rf /var/lock/oech.lock
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Aug 30 2022 ylzhangah <zhangyale3@h-partners.com> - 1.1.2-0
|
||||||
|
- Upgrade command module
|
||||||
|
- Add VGPU testsuite
|
||||||
|
- Bugfix;
|
||||||
|
|
||||||
* Wed Aug 24 2022 wangkai <wangkai385@h-partners.com> - 1.1.1-6
|
* Wed Aug 24 2022 wangkai <wangkai385@h-partners.com> - 1.1.1-6
|
||||||
- Enable debuginfo for fix strip
|
- Enable debuginfo for fix strip
|
||||||
|
|
||||||
|
|||||||
BIN
v1.1.1.tar.gz
BIN
v1.1.1.tar.gz
Binary file not shown.
BIN
v1.1.2.tar.gz
Normal file
BIN
v1.1.2.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user