From 5a1837fff08cae9ef096258ab687c6ca0751eacb Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 10 Mar 2022 10:40:16 +0800 Subject: [PATCH 01/15] add src rpm package compare --- script/tools/daily_build_check.py | 251 +++++++++++++++++++++++++++++- 1 file changed, 246 insertions(+), 5 deletions(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index a5557b0..a90bd8b 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -15,7 +15,9 @@ # ****************************************************************************** import os import sys +import re import yaml +import xlwt import requests import argparse import logging @@ -92,8 +94,8 @@ class CheckDailyBuild(object): """ dir_map = {} html_content = self.html_downloader(main_branch_url) - if html_content: - current_dir = self.html_parser(main_branch_url, html_content) + current_dir = self.html_parser(main_branch_url, html_content) + if current_dir: dir_map[main_branch_url] = [] for first_dir in current_dir: dir_split = first_dir.split('/')[5] @@ -148,6 +150,7 @@ class CheckDailyBuild(object): """ branch dir compare with standard dir """ + logging.info("********************************************CHECK RESULT*********************************************************") standard_dir = self.standard_dir for key, c_standard in standard_dir.items(): for current_dir in c_standard: @@ -155,8 +158,19 @@ class CheckDailyBuild(object): current_dir = current_dir.replace('*', current_branch) if current_dir not in dir_list: logging.error( - 'this dir not found,link url:{}{}'.format( + 'this dir or file not found,link url:{}{}'.format( c_dir, current_dir)) + logging.info("********************************************CHECK RESULT*********************************************************") + + def check_input_args(self,complete_url): + html_content = self.html_downloader(complete_url) + current_dir = self.html_parser(complete_url, html_content) + if not current_dir: + logging.error("error url can not open,please check your input:{}".format(complete_url)) + raise SystemExit("*******PLEASE CHECK YOUR INPUT ARGS*******") + else: + return True + def _get_main_branch(self): if self.datebranch: @@ -164,14 +178,240 @@ class CheckDailyBuild(object): complete_key = "{}/{}/".format(self.rooturl, self.main_branch) complete_value = "{}/{}/{}/".format( self.rooturl, self.main_branch, self.datebranch) - dir_map[complete_key] = [complete_value] + check_args_result = self.check_input_args(complete_value) + if check_args_result: + dir_map[complete_key] = [complete_value] + self.check_every_dir(dir_map) else: main_branch_url = "{}/{}/".format(self.rooturl, self.main_branch) dir_map = self.start_check(main_branch_url) - self.check_every_dir(dir_map) + self.check_every_dir(dir_map) + + def rpms_parser(self,html_content): + rpms_list = [] + soup = BeautifulSoup(html_content, "html.parser") + tr_content = soup.find_all('tr') + for line in tr_content: + td_content = line.find_all('td') + if td_content: + dir_url = td_content[0].find('a', href=True) + size = td_content[1].text + if dir_url.get('href',''): + if dir_url['href'] != '../' and self.check_is_rpm(dir_url['href']): + rpms_list.append(dir_url['href']) + return rpms_list + + def obs_rpms_parser(self,html_content): + rpms_list = [] + soup = BeautifulSoup(html_content, "html.parser") + for k in soup.find_all('a',href=True): + if k.get('href',''): + if '.rpm' in k['href']: + rpms_list.append(k['href']) + return rpms_list + + def get_repo_rpms(self): + ''' + get rpms from offical repo + ''' + repo_data = {} + epol_rpms_dir = "https://repo.openeuler.org/{}/EPOL/main/source/Packages/".format(self.main_branch) + epol_content = self.html_downloader(epol_rpms_dir) + epol_rpms = self.rpms_parser(epol_content) + source_rpms_dir = "https://repo.openeuler.org/{}/source/Packages/".format(self.main_branch) + source_content = self.html_downloader(source_rpms_dir) + source_rpms = self.rpms_parser(source_content) + repo_data = { + 'epol_rpms': epol_rpms, + 'source_rpms': source_rpms + } + return repo_data + + def get_dailybuild_repo_rpms(self): + ''' + get rpms from daily build repo + ''' + daily_build_repo_data = {} + epol_rpms_dir = "http://121.36.84.172/dailybuild/{}/{}/EPOL/main/source/Packages/".format(self.main_branch,self.datebranch) + epol_content = self.html_downloader(epol_rpms_dir) + epol_rpms = self.rpms_parser(epol_content) + source_rpms_dir = "http://121.36.84.172/dailybuild/{}/{}/source/Packages/".format(self.main_branch,self.datebranch) + source_content = self.html_downloader(source_rpms_dir) + source_rpms = self.rpms_parser(source_content) + daily_build_repo_data = { + 'epol_rpms': epol_rpms, + 'source_rpms': source_rpms + } + return daily_build_repo_data + + def get_obs_repo_rpms(self): + ''' + get rpms from obs repo + ''' + obs_repo_data = {} + trans_url = self.main_branch.replace('-',':/') + epol_obs_url = "http://119.3.219.20:82/{}:/Epol/standard_x86_64/src/".format(trans_url) + epol_content = self.html_downloader(epol_obs_url) + epol_obs_rpms = self.obs_rpms_parser(epol_content) + src_obs_url = "http://119.3.219.20:82/{}/standard_x86_64/src/".format(trans_url) + src_content = self.html_downloader(src_obs_url) + src_obs_rpms = self.obs_rpms_parser(src_content) + obs_repo_data = { + 'epol_rpms': epol_obs_rpms, + 'source_rpms': src_obs_rpms + } + return obs_repo_data + + def compare_rpms(self,repo_data,daily_repo_data,obs_repo_data): + ''' + get epol and source rpms data and start compare + :param repo_data:dict of offical repo src repo rpms include epol + :param daily_repo_data:dict of daily build repo src repo rpms include epol + :param obs_repo_data:dict of obs repo src repo rpms include epol + ''' + offical_epol_rpms = repo_data.get("epol_rpms",[]) + daily_epol_rpms = daily_repo_data.get("epol_rpms",[]) + obs_epol_rpms = obs_repo_data.get("epol_rpms",[]) + offical_src_rpms = repo_data.get("source_rpms",[]) + daily_src_rpms = daily_repo_data.get("source_rpms",[]) + obs_src_rpms = obs_repo_data.get("source_rpms",[]) + epol_result = self.compare_detail_rpms(daily_epol_rpms,offical_epol_rpms,obs_epol_rpms) + self.write_file(epol_result) + source_result = self.compare_detail_rpms(daily_src_rpms,offical_src_rpms,obs_src_rpms,compare_type='source') + self.write_file(source_result,compare_type='source') + + def compare_detail_rpms(self,daily,offical,obs,compare_type='epol'): + ''' + src rpms detail compare + :param daily:List of daily build repo rpms + :param offical:List of offical repo rpms + :param obs:List of obs repo rpms + :return:dict of compare result + ''' + datas = {} + if daily and offical: + # daily rpms compare with offical epol rpms + in_daily_offical = list(set(daily).difference(set(offical))) + in_offical_daily = list(set(offical).difference(set(daily))) + logging.info("***************************************SIDEA:daily_build_repo,SIDEB:offical_repo*********************************") + in_daily_offical,in_offical_daily = self.rpm_version_compare(in_daily_offical,in_offical_daily) + logging.info("***************************************SIDEA:daily_build_repo,SIDEB:offical_repo*********************************") + logging.info("{} rpms compare below rpms in daily repo not in offical repo:{}".format(compare_type,in_daily_offical)) + logging.info("{} rpms compare below rpms in offical repo not in daily repo:{}".format(compare_type,in_offical_daily)) + daily_offical = {"rpmname":[self.datebranch,"offical repo"]} + for rpm in in_daily_offical: + daily_offical[rpm] = [1,0] + for rpm in in_offical_daily: + daily_offical[rpm] = [0,1] + datas["daily_offical"] = daily_offical + if daily and obs: + # daily rpms compare with obs epol rpms + in_daily_obs = list(set(daily).difference(set(obs))) + in_obs_daily = list(set(obs).difference(set(daily))) + logging.info("***************************************SIDEA:daily_build_repo,SIDEB:obs_repo*********************************") + in_daily_obs,in_obs_daily = self.rpm_version_compare(in_daily_obs,in_obs_daily) + logging.info("***************************************SIDEA:daily_build_repo,SIDEB:obs_repo*********************************") + logging.info("{} rpms compare below rpms in daily repo not in obs repo:{}".format(compare_type,in_daily_obs)) + logging.info("{} rpms compare below rpms in obs repo not in daily repo:{}".format(compare_type,in_obs_daily)) + daily_obs = {"rpmname":[self.datebranch,"obs repo"]} + for rpm in in_daily_obs: + daily_obs[rpm] = [1,0] + for rpm in in_obs_daily: + daily_obs[rpm] = [0,1] + datas["daily_obs"] = daily_obs + if obs and offical: + # daily rpms compare with offical epol rpms + in_obs_offical = list(set(obs).difference(set(offical))) + in_offical_obs = list(set(offical).difference(set(obs))) + logging.info("***************************************SIDEA:obs_repo,SIDEB:offical_repo*********************************") + in_obs_offical,in_offical_obs = self.rpm_version_compare(in_obs_offical,in_offical_obs) + logging.info("***************************************SIDEA:obs_repo,SIDEB:offical_repo*********************************") + logging.info("{} rpms compare below rpms in obs repo not in offical repo:{}".format(compare_type,in_obs_offical)) + logging.info("{} rpms compare below rpms in offical repo not in obs repo:{}".format(compare_type,in_offical_obs)) + obs_offical = {"rpmname":["obs repo","offical repo"]} + for rpm in in_obs_offical: + obs_offical[rpm] = [1,0] + for rpm in in_offical_obs: + obs_offical[rpm] = [0,1] + datas["obs_offical"] = obs_offical + return datas + + def write_file(self,data,compare_type='epol'): + ''' + out put compare result to excel + :param data:pre compare result data + ''' + if data: + book = xlwt.Workbook(encoding='utf-8') + for key,value in data.items(): + sheet = book.add_sheet(key,cell_overwrite_ok=True) + r = 0 + for i, j in value.items(): + le = len(j) + sheet.write(r, 0, i,) + for c in range(1, le + 1): + sheet.write(r, c, j[c - 1]) + r += 1 # 行数 + book.save("./{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type)) + + + def rpm_version_compare(self,paira,pairb): + ''' + check rpm version and compare + :param paira:List of sidea rpms that needs to be compared + :param pairb:List of sideb rpms that needs to be compared + ''' + for rpma in paira[:]: + rpm_namea = self.rpm_name(rpma) + for rpmb in pairb[:]: + rpm_nameb = self.rpm_name(rpmb) + if rpm_nameb == rpm_namea: + logging.info("SIDEA rpm version:{} SIDEB rpm version:{}".format(rpma,rpmb)) + pairb.remove(rpmb) + paira.remove(rpma) + break + return paira,pairb + + def rpm_n_v_r_d_a(self,rpm): + """ + parse rpm package name,version,release,publisher + :param rpm:complete rpm name + :return:split rpm + """ + # eg: grpc-1.31.0-6.oe1.x86_64.rpm + name = self.rpm_name(rpm) + + rpm_split = re.match(r"(.+)-(.+)\.(.+)?\.(.+)\.rpm", rpm.replace(name, "", 1)) + if rpm_split: + return name, rpm_split.group(1), rpm_split.group(2), rpm_split.group(3), rpm_split.group(4) + return name, rpm_split.group(1), rpm_split.group(2), None, rpm_split.group(3) + + def rpm_name(self,rpm): + """ + :param rpm:complete rpm name + :return:only rpm name + """ + m = re.match(r"^(.+)-.+-.+", rpm) + + if m: + return m.group(1) + else: + return rpm + + + def _check_src_rpm(self): + """ + Check the src rpm entry function + """ + repo_data = self.get_repo_rpms() + daily_repo_data = self.get_dailybuild_repo_rpms() + obs_repo_data = self.get_obs_repo_rpms() + self.compare_rpms(repo_data,daily_repo_data,obs_repo_data) + def run(self): self._get_main_branch() + self._check_src_rpm() if __name__ == "__main__": @@ -189,6 +429,7 @@ if __name__ == "__main__": parser.add_argument( "--datebranch", help="which date branch you want to check,eg:openeuler-2022-03-04-09-22-07") + args = parser.parse_args() kw = { "daily_build_url": args.rooturl, "main_branch": args.branch, -- Gitee From 0f8671cfeebbd3f094f0880cc31b06e177115fd8 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 15:03:05 +0800 Subject: [PATCH 02/15] 1 --- script/tools/daily_build_check.py | 36 +++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index a90bd8b..6f19d78 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -354,6 +354,41 @@ class CheckDailyBuild(object): r += 1 # 行数 book.save("./{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type)) + def _add_to_obs(self): + """ + add project package + """ + path=os.getcwd() + cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,'openEuler-20.03-LTS-SP3') + ret = os.popen(cmd).read() + print (ret) + # pkg_path = os.path.join(self.obs_meta_path, self.multi_version_dir, branch_name, proj, pkg) + # _tmpdir = os.popen("mktemp -d").read().strip('\n') + # cmd = "cd %s && osc co %s `osc ls %s 2>/dev/null | sed -n '1p'` &>/dev/null && cd -" % (_tmpdir, proj, proj) + # ret = os.popen(cmd).read() + # proj_tmpdir = os.path.join(_tmpdir, proj) + # if not os.path.exists(proj_tmpdir): + # log.error("failed to exec cmd: %s" % (cmd)) + # shutil.rmtree(_tmpdir) + # return -1 + # pkg_tmpdir = os.path.join(proj_tmpdir, pkg) + # if os.path.exists(pkg_tmpdir): + # ret = os.system("cp -rf %s %s" % (pkg_path, proj_tmpdir)) + # cmd = "cd %s && osc status | grep ^? | awk '{print 2}' && cd -" % proj_tmpdir + # new_file = os.popen(cmd).read() + # if len(new_file): + # ret = os.system("cd %s && osc add %s && cd -" % (proj_tmpdir, new_file)) + # else: + # rm_dir = os.path.join(pkg_tmpdir, ".osc") + # cmd = "cp -rf %s %s && rm -rf %s && cd %s && osc add %s && cd -" % (pkg_path, + # proj_tmpdir, rm_dir, proj_tmpdir, pkg) + # ret = os.popen(cmd).read() + # new_file = os.popen("cd %s && osc status && cd -" % (proj_tmpdir)).read() + # if len(new_file): + # ret = os.system("cd %s && osc ci -m 'add %s by %s' && cd -" % (proj_tmpdir, pkg, self.giteeUserName)) + # log.info("add %s %s by %s succeessful" % (proj, pkg, self.giteeUserName)) + # shutil.rmtree(_tmpdir) + def rpm_version_compare(self,paira,pairb): ''' @@ -412,6 +447,7 @@ class CheckDailyBuild(object): def run(self): self._get_main_branch() self._check_src_rpm() + self._add_to_obs() if __name__ == "__main__": -- Gitee From 4d7d77c78566e414ae9512a108d29fb7106e2e7d Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 15:47:39 +0800 Subject: [PATCH 03/15] 2 --- script/tools/daily_build_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index 6f19d78..b5b9c16 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -447,7 +447,7 @@ class CheckDailyBuild(object): def run(self): self._get_main_branch() self._check_src_rpm() - self._add_to_obs() + # self._add_to_obs() if __name__ == "__main__": -- Gitee From 4300c0284455b16d3a42a4476eceb61be6322cce Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 17:05:53 +0800 Subject: [PATCH 04/15] add mountflag --- script/tools/daily_build_check.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index b5b9c16..afcfe37 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -26,6 +26,7 @@ from bs4 import BeautifulSoup LOG_FORMAT = "%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s" DATE_FORMAT = "%Y-%m-%d %H:%M:%S" logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT) +UNMOUNT_DIRS = ['debuginfo','os','source'] class CheckDailyBuild(object): @@ -153,13 +154,24 @@ class CheckDailyBuild(object): logging.info("********************************************CHECK RESULT*********************************************************") standard_dir = self.standard_dir for key, c_standard in standard_dir.items(): - for current_dir in c_standard: - if '*' in current_dir: - current_dir = current_dir.replace('*', current_branch) - if current_dir not in dir_list: - logging.error( - 'this dir or file not found,link url:{}{}'.format( - c_dir, current_dir)) + if self.mountflag: + for current_dir in c_standard: + if '*' in current_dir: + current_dir = current_dir.replace('*', current_branch) + if current_dir not in dir_list: + logging.error( + 'this dir or file not found,link url:{}{}'.format( + c_dir, current_dir)) + else: + if key in UNMOUNT_DIRS: + continue + for current_dir in c_standard: + if '*' in current_dir: + current_dir = current_dir.replace('*', current_branch) + if current_dir not in dir_list: + logging.error( + 'this dir or file not found,link url:{}{}'.format( + c_dir, current_dir)) logging.info("********************************************CHECK RESULT*********************************************************") def check_input_args(self,complete_url): @@ -465,12 +477,14 @@ if __name__ == "__main__": parser.add_argument( "--datebranch", help="which date branch you want to check,eg:openeuler-2022-03-04-09-22-07") + parser.add_argument("--mountflag",type=bool,default=True) args = parser.parse_args() kw = { "daily_build_url": args.rooturl, "main_branch": args.branch, "date_branch": args.datebranch, - "dir_flag": args.dirflag + "dir_flag": args.dirflag, + "mountflag": args.mountflag } check = CheckDailyBuild(**kw) check.run() -- Gitee From e848a1e7b3d476d37c97aab054deb774cd871d39 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 19:04:47 +0800 Subject: [PATCH 05/15] 2 --- script/tools/daily_build_check.py | 47 ++++++++++++++++--------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index afcfe37..3a4a11b 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -26,7 +26,7 @@ from bs4 import BeautifulSoup LOG_FORMAT = "%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s" DATE_FORMAT = "%Y-%m-%d %H:%M:%S" logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT) -UNMOUNT_DIRS = ['debuginfo','os','source'] +UNMOUNT_DIRS = ['debuginfo','OS','source'] class CheckDailyBuild(object): @@ -45,6 +45,7 @@ class CheckDailyBuild(object): self.main_branch = self.kwargs['main_branch'] self.dirflag = self.kwargs['dir_flag'] self.datebranch = self.kwargs['date_branch'] + self.mountflag = self.kwargs['mountflag'] self.standard_dir = self.load_standard() def html_downloader(self, url): @@ -143,8 +144,12 @@ class CheckDailyBuild(object): try: with open('./standard.yaml', 'r', encoding='utf-8') as f: result = yaml.load(f, Loader=yaml.FullLoader) + if self.mountflag == '0': + for delitem in UNMOUNT_DIRS: + del result[delitem] return result except Exception as e: + print (e) logging.info("error read standard.yaml,please check") def compare_standard(self, dir_list, current_branch, c_dir): @@ -154,24 +159,13 @@ class CheckDailyBuild(object): logging.info("********************************************CHECK RESULT*********************************************************") standard_dir = self.standard_dir for key, c_standard in standard_dir.items(): - if self.mountflag: - for current_dir in c_standard: - if '*' in current_dir: - current_dir = current_dir.replace('*', current_branch) - if current_dir not in dir_list: - logging.error( - 'this dir or file not found,link url:{}{}'.format( - c_dir, current_dir)) - else: - if key in UNMOUNT_DIRS: - continue - for current_dir in c_standard: - if '*' in current_dir: - current_dir = current_dir.replace('*', current_branch) - if current_dir not in dir_list: - logging.error( - 'this dir or file not found,link url:{}{}'.format( - c_dir, current_dir)) + for current_dir in c_standard: + if '*' in current_dir: + current_dir = current_dir.replace('*', current_branch) + if current_dir not in dir_list: + logging.error( + 'this dir or file not found,link url:{}{}'.format( + c_dir, current_dir)) logging.info("********************************************CHECK RESULT*********************************************************") def check_input_args(self,complete_url): @@ -365,15 +359,24 @@ class CheckDailyBuild(object): sheet.write(r, c, j[c - 1]) r += 1 # 行数 book.save("./{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type)) + self._add_to_obs(compare_type) - def _add_to_obs(self): + def _add_to_obs(self,compare_type): """ add project package """ + filename = "{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type) path=os.getcwd() - cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,'openEuler-20.03-LTS-SP3') + cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) ret = os.popen(cmd).read() print (ret) + cmd = "cp %s home:Admin:ISO/%s &&" %(filename,self.main_branch) + ret = os.popen(cmd).read() + print (ret) + cmd = "cd home:Admin:ISO/%s && osc add %s && osc commit" %(self.main_branch,filename) + ret = os.popen(cmd).read() + print (ret) + # pkg_path = os.path.join(self.obs_meta_path, self.multi_version_dir, branch_name, proj, pkg) # _tmpdir = os.popen("mktemp -d").read().strip('\n') # cmd = "cd %s && osc co %s `osc ls %s 2>/dev/null | sed -n '1p'` &>/dev/null && cd -" % (_tmpdir, proj, proj) @@ -477,7 +480,7 @@ if __name__ == "__main__": parser.add_argument( "--datebranch", help="which date branch you want to check,eg:openeuler-2022-03-04-09-22-07") - parser.add_argument("--mountflag",type=bool,default=True) + parser.add_argument("--mountflag",default="1") args = parser.parse_args() kw = { "daily_build_url": args.rooturl, -- Gitee From 87460852e5ca51748cf7a8464178bf8681ac615d Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 19:10:08 +0800 Subject: [PATCH 06/15] fix code --- script/tools/daily_build_check.py | 1 + 1 file changed, 1 insertion(+) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index 3a4a11b..15b67f0 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -367,6 +367,7 @@ class CheckDailyBuild(object): """ filename = "{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type) path=os.getcwd() + print (path) cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) ret = os.popen(cmd).read() print (ret) -- Gitee From 7328f30d7c87c9051b9cfe06c1af092e6e1a3937 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 19:20:40 +0800 Subject: [PATCH 07/15] fix code4 --- script/tools/daily_build_check.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index 15b67f0..0a4d237 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -368,9 +368,15 @@ class CheckDailyBuild(object): filename = "{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type) path=os.getcwd() print (path) - cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) - ret = os.popen(cmd).read() - print (ret) + pkg_tmpdir = os.path.join(path, "home:Admin:ISO/%s".format(self.main_branch)) + if not os.path.exists(proj_tmpdir) + cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) + ret = os.popen(cmd).read() + print (ret) + else: + cmd = "cd %s" % pkg_tmpdir + ret = os.popen(cmd).read() + print (ret) cmd = "cp %s home:Admin:ISO/%s &&" %(filename,self.main_branch) ret = os.popen(cmd).read() print (ret) -- Gitee From 65cbbbc36285986d9adf7dfd3b74404f7d63d0c5 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 19:22:54 +0800 Subject: [PATCH 08/15] fix code5 --- script/tools/daily_build_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index 0a4d237..1bbd25b 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -369,7 +369,7 @@ class CheckDailyBuild(object): path=os.getcwd() print (path) pkg_tmpdir = os.path.join(path, "home:Admin:ISO/%s".format(self.main_branch)) - if not os.path.exists(proj_tmpdir) + if not os.path.exists(proj_tmpdir): cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) ret = os.popen(cmd).read() print (ret) -- Gitee From 7576428bca56e6c05405637c332e64940d55d304 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 19:25:12 +0800 Subject: [PATCH 09/15] fix code6 --- script/tools/daily_build_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index 1bbd25b..d54d584 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -369,7 +369,7 @@ class CheckDailyBuild(object): path=os.getcwd() print (path) pkg_tmpdir = os.path.join(path, "home:Admin:ISO/%s".format(self.main_branch)) - if not os.path.exists(proj_tmpdir): + if not os.path.exists(pkg_tmpdir): cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) ret = os.popen(cmd).read() print (ret) -- Gitee From 5c7f3d8621c12f6a443753e5a5c3f6ca758deb63 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 24 Mar 2022 19:28:41 +0800 Subject: [PATCH 10/15] fix code7 --- script/tools/daily_build_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index d54d584..44181bb 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -359,7 +359,7 @@ class CheckDailyBuild(object): sheet.write(r, c, j[c - 1]) r += 1 # 行数 book.save("./{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type)) - self._add_to_obs(compare_type) + # self._add_to_obs(compare_type) def _add_to_obs(self,compare_type): """ -- Gitee From db25702f80c7e384f4e840d59bf6afd4c051db88 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Fri, 25 Mar 2022 10:06:48 +0800 Subject: [PATCH 11/15] 03251 --- script/tools/daily_build_check.py | 34 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index 44181bb..49bd159 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -18,6 +18,7 @@ import sys import re import yaml import xlwt +import shutil import requests import argparse import logging @@ -361,28 +362,25 @@ class CheckDailyBuild(object): book.save("./{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type)) # self._add_to_obs(compare_type) - def _add_to_obs(self,compare_type): + def _add_to_obs(self): """ add project package """ - filename = "{}-{}-src-rpm-compare-result.xls".format(self.main_branch,compare_type) + filenames = [] path=os.getcwd() - print (path) - pkg_tmpdir = os.path.join(path, "home:Admin:ISO/%s".format(self.main_branch)) - if not os.path.exists(pkg_tmpdir): - cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) - ret = os.popen(cmd).read() - print (ret) - else: - cmd = "cd %s" % pkg_tmpdir - ret = os.popen(cmd).read() - print (ret) - cmd = "cp %s home:Admin:ISO/%s &&" %(filename,self.main_branch) + f_list = os.listdir(path) + for xlsfile in f_list: + if os.path.splitext(i)[1] == '.xls': + filenames.append(xlsfile) + cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) ret = os.popen(cmd).read() - print (ret) - cmd = "cd home:Admin:ISO/%s && osc add %s && osc commit" %(self.main_branch,filename) - ret = os.popen(cmd).read() - print (ret) + targer_dir = os.path.join(path, "home:Admin:ISO/%s".format(self.main_branch)) + for file in filenames: + src_file = os.path.join(path,file) + shutil.copyfile(src_file, targer_dir) + # ret = os.system("cd %s && osc add * && osc ci -m1" % (targer_dir, new_file)) + cmd = "cd %s && osc add %s && osc ci -m1" % (targer_dir,file) + ret = os.popen(cmd).read() # pkg_path = os.path.join(self.obs_meta_path, self.multi_version_dir, branch_name, proj, pkg) # _tmpdir = os.popen("mktemp -d").read().strip('\n') @@ -469,7 +467,7 @@ class CheckDailyBuild(object): def run(self): self._get_main_branch() self._check_src_rpm() - # self._add_to_obs() + self._add_to_obs() if __name__ == "__main__": -- Gitee From cd10788ec1cd917ea6547084edd6de8702e9eacb Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Fri, 25 Mar 2022 10:09:09 +0800 Subject: [PATCH 12/15] 03252 --- script/tools/daily_build_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index 49bd159..1177823 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -370,7 +370,7 @@ class CheckDailyBuild(object): path=os.getcwd() f_list = os.listdir(path) for xlsfile in f_list: - if os.path.splitext(i)[1] == '.xls': + if os.path.splitext(xlsfile)[1] == '.xls': filenames.append(xlsfile) cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) ret = os.popen(cmd).read() -- Gitee From b1cd74a3df6e7fc115f959429f2f9cf24763379b Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Fri, 25 Mar 2022 10:12:14 +0800 Subject: [PATCH 13/15] 03253 --- script/tools/daily_build_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index 1177823..b4a47ca 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -374,7 +374,7 @@ class CheckDailyBuild(object): filenames.append(xlsfile) cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) ret = os.popen(cmd).read() - targer_dir = os.path.join(path, "home:Admin:ISO/%s".format(self.main_branch)) + targer_dir = os.path.join(path, "home:Admin:ISO/{}".format(self.main_branch)) for file in filenames: src_file = os.path.join(path,file) shutil.copyfile(src_file, targer_dir) -- Gitee From c41cbad3968d540dbe1ada1b2d304b3aa64f9c73 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Fri, 25 Mar 2022 10:17:15 +0800 Subject: [PATCH 14/15] 03254 --- script/tools/daily_build_check.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index b4a47ca..f22c439 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -377,7 +377,8 @@ class CheckDailyBuild(object): targer_dir = os.path.join(path, "home:Admin:ISO/{}".format(self.main_branch)) for file in filenames: src_file = os.path.join(path,file) - shutil.copyfile(src_file, targer_dir) + dist_file = os.path.join(path,targer_dir,file) + shutil.copyfile(src_file, dist_file) # ret = os.system("cd %s && osc add * && osc ci -m1" % (targer_dir, new_file)) cmd = "cd %s && osc add %s && osc ci -m1" % (targer_dir,file) ret = os.popen(cmd).read() -- Gitee From d8aa4d99bd876df0e163ee553a4144220ab5c5b4 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Fri, 25 Mar 2022 10:30:29 +0800 Subject: [PATCH 15/15] 03258 --- script/tools/daily_build_check.py | 45 +++++++------------------------ 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/script/tools/daily_build_check.py b/script/tools/daily_build_check.py index f22c439..3440fb1 100644 --- a/script/tools/daily_build_check.py +++ b/script/tools/daily_build_check.py @@ -364,7 +364,7 @@ class CheckDailyBuild(object): def _add_to_obs(self): """ - add project package + add result file to obs project """ filenames = [] path=os.getcwd() @@ -375,40 +375,15 @@ class CheckDailyBuild(object): cmd = "cd %s && osc co home:Admin:ISO/%s" % (path,self.main_branch) ret = os.popen(cmd).read() targer_dir = os.path.join(path, "home:Admin:ISO/{}".format(self.main_branch)) - for file in filenames: - src_file = os.path.join(path,file) - dist_file = os.path.join(path,targer_dir,file) - shutil.copyfile(src_file, dist_file) - # ret = os.system("cd %s && osc add * && osc ci -m1" % (targer_dir, new_file)) - cmd = "cd %s && osc add %s && osc ci -m1" % (targer_dir,file) - ret = os.popen(cmd).read() - - # pkg_path = os.path.join(self.obs_meta_path, self.multi_version_dir, branch_name, proj, pkg) - # _tmpdir = os.popen("mktemp -d").read().strip('\n') - # cmd = "cd %s && osc co %s `osc ls %s 2>/dev/null | sed -n '1p'` &>/dev/null && cd -" % (_tmpdir, proj, proj) - # ret = os.popen(cmd).read() - # proj_tmpdir = os.path.join(_tmpdir, proj) - # if not os.path.exists(proj_tmpdir): - # log.error("failed to exec cmd: %s" % (cmd)) - # shutil.rmtree(_tmpdir) - # return -1 - # pkg_tmpdir = os.path.join(proj_tmpdir, pkg) - # if os.path.exists(pkg_tmpdir): - # ret = os.system("cp -rf %s %s" % (pkg_path, proj_tmpdir)) - # cmd = "cd %s && osc status | grep ^? | awk '{print 2}' && cd -" % proj_tmpdir - # new_file = os.popen(cmd).read() - # if len(new_file): - # ret = os.system("cd %s && osc add %s && cd -" % (proj_tmpdir, new_file)) - # else: - # rm_dir = os.path.join(pkg_tmpdir, ".osc") - # cmd = "cp -rf %s %s && rm -rf %s && cd %s && osc add %s && cd -" % (pkg_path, - # proj_tmpdir, rm_dir, proj_tmpdir, pkg) - # ret = os.popen(cmd).read() - # new_file = os.popen("cd %s && osc status && cd -" % (proj_tmpdir)).read() - # if len(new_file): - # ret = os.system("cd %s && osc ci -m 'add %s by %s' && cd -" % (proj_tmpdir, pkg, self.giteeUserName)) - # log.info("add %s %s by %s succeessful" % (proj, pkg, self.giteeUserName)) - # shutil.rmtree(_tmpdir) + if os.path.exists(targer_dir): + for file in filenames: + src_file = os.path.join(path,file) + dist_file = os.path.join(path,targer_dir,file) + shutil.copyfile(src_file, dist_file) + cmd = "cd %s && osc add %s && osc ci -m1" % (targer_dir,file) + ret = os.popen(cmd).read() + else: + logging.info("this {} not in obs project".format(self.main_branch)) def rpm_version_compare(self,paira,pairb): -- Gitee