From 37fa34c546b5d870f1762f9175e5fd9f12453b34 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Wed, 21 Oct 2020 14:02:09 +0800 Subject: [PATCH] Remove tc_statistic and Create upgrade_branches.yaml 1.remove unused tc_statistic.py to legacy 2.create upgrade_branches.yaml for branches config 3.fix para error in simple_update_robot Signed-off-by: Leo Fang --- advisors/gitee.py | 16 +++++++++++++ advisors/helper/upgrade_branches.yaml | 11 +++++++++ advisors/simple_update_robot.py | 33 +++++++++++---------------- command/tc_statistic | 25 -------------------- {advisors => legacy}/tc_statistic.py | 0 openEuler-Advisor.spec | 1 - setup.py | 3 +-- 7 files changed, 41 insertions(+), 48 deletions(-) create mode 100644 advisors/helper/upgrade_branches.yaml delete mode 100644 command/tc_statistic rename {advisors => legacy}/tc_statistic.py (100%) diff --git a/advisors/gitee.py b/advisors/gitee.py index 1acefec4..93da5fa8 100755 --- a/advisors/gitee.py +++ b/advisors/gitee.py @@ -159,6 +159,22 @@ class Gitee(): json_resp = json.loads(resp) return json_resp + def get_branch_info(self, branch): + """ + Get upgrade branch info + """ + upgrade_branches_url = self.advisor_url + "advisors/helper/upgrade_branches.yaml" + resp = self.get_gitee(upgrade_branches_url) + if not resp: + print("ERROR: upgrade_branches.yaml may not exist.") + sys.exit(1) + branches_info = yaml.load(resp, Loader=yaml.Loader) + for br_info in branches_info["branches"]: + if branch == br_info["name"]: + return br_info + print("WARNING: Don't support branch: {} in auto-upgrade.".format(branch)) + sys.exit(1) + def get_spec_exception(self): """ Get well known spec file exceptions diff --git a/advisors/helper/upgrade_branches.yaml b/advisors/helper/upgrade_branches.yaml new file mode 100644 index 00000000..59238d50 --- /dev/null +++ b/advisors/helper/upgrade_branches.yaml @@ -0,0 +1,11 @@ +branches: +- name: master + recommend_type: master + obs_prj: openEuler:Mainline +- name: openEuler-20.03-LTS + recommend_type: LTS + obs_prj: openEuler:20.03:LTS +- name: openEuler-21.03 + recommend_type: master + obs_prj: openEuler:21.03 + diff --git a/advisors/simple_update_robot.py b/advisors/simple_update_robot.py index 82b91471..facc3e87 100755 --- a/advisors/simple_update_robot.py +++ b/advisors/simple_update_robot.py @@ -229,27 +229,19 @@ def create_spec(gt_api, repo, spec_str, o_ver, n_ver): modify_patch(repo, pkg_spec, patch_match) -def build_pkg(u_pkg, u_branch): +def build_pkg(u_pkg, u_branch, obs_prj): """ Auto build upgrade pkg on obs """ - if u_branch == "master": - project = "openEuler:Mainline" - elif u_branch == "openEuler-20.03-LTS": - project = "openEuler:20.03:LTS" - else: - print("WARNING: Please check branch to be upgrade.") - sys.exit(1) - - subprocess.call(["osc", "branch", "{prj}".format(prj=project), "{pkg}".format(pkg=u_pkg)]) + subprocess.call(["osc", "branch", "{prj}".format(prj=obs_prj), "{pkg}".format(pkg=u_pkg)]) user_info = subprocess.getoutput(["osc user"]) user = user_info.split(':')[0] - subprocess.call(["osc", "co", "home:{usr}:branches:{prj}/{pkg}".format(usr=user, prj=project, + subprocess.call(["osc", "co", "home:{usr}:branches:{prj}/{pkg}".format(usr=user, prj=obs_prj, pkg=u_pkg)]) - if os.path.isdir("home:{usr}:branches:{prj}/{pkg}".format(usr=user, prj=project, pkg=u_pkg)): - os.chdir("home:{usr}:branches:{prj}/{pkg}".format(usr=user, prj=project, pkg=u_pkg)) + if os.path.isdir("home:{usr}:branches:{prj}/{pkg}".format(usr=user, prj=obs_prj, pkg=u_pkg)): + os.chdir("home:{usr}:branches:{prj}/{pkg}".format(usr=user, prj=obs_prj, pkg=u_pkg)) else: print("WARNING: {repo} of {br} may not exist on OBS.".format(repo=u_pkg, br=u_branch)) return False @@ -300,19 +292,18 @@ def auto_update_pkg(gt_api, u_pkg, u_branch, u_ver=None): pkg_spec = Spec.from_string(spec_str) pkg_ver = replace_macros(pkg_spec.version, pkg_spec) + branch_info = gt_api.get_branch_info(u_branch) + if not u_ver: pkg_tags = oa_upgradable.get_ver_tags(gt_api, u_pkg) if pkg_tags is None: return ver_rec = version_recommend.VersionRecommend(pkg_tags, pkg_ver, 0) - if u_branch == "master": + if branch_info["recommend_type"] == "master": u_ver = ver_rec.latest_version - elif re.search(r"LTS", u_branch): - u_ver = ver_rec.maintain_version else: - print("WARNING: Auto-upgrade current not support for {} branch.".format(u_branch)) - return + u_ver = ver_rec.maintain_version if update_ver_check(u_pkg, pkg_ver, u_ver): fork_clone_repo(gt_api, u_pkg, u_branch) @@ -322,7 +313,7 @@ def auto_update_pkg(gt_api, u_pkg, u_branch, u_ver=None): create_spec(gt_api, u_pkg, spec_str, pkg_ver, u_ver) - if not build_pkg(u_pkg, u_branch): + if not build_pkg(u_pkg, u_branch, branch_info["obs_prj"]): return push_create_pr_issue(gt_api, u_pkg, pkg_ver, u_ver, u_branch) @@ -362,6 +353,8 @@ def __manual_operate(gt_api, op_args): spec_file = Spec.from_string(spec_string) cur_version = replace_macros(spec_file.version, spec_file) + branch_info = gt_api.get_branch_info(op_args.branch) + if op_args.fork_then_clone: fork_clone_repo(gt_api, op_args.repo_pkg, op_args.branch) @@ -381,7 +374,7 @@ def __manual_operate(gt_api, op_args): create_spec(gt_api, op_args.repo_pkg, spec_string, cur_version, op_args.new_version) if op_args.build_pkg: - if not build_pkg(op_args.u_repo_pkg, op_args.u_branch): + if not build_pkg(op_args.repo_pkg, op_args.branch, branch_info["obs_prj"]): sys.exit(1) if op_args.push_create_pr_issue: diff --git a/command/tc_statistic b/command/tc_statistic deleted file mode 100644 index 1c515202..00000000 --- a/command/tc_statistic +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env python3 - -import sys -import signal -from signal import SIG_DFL - -try: - def sig_handler(signum, frame): - print('Exit command mode') - sys.exit(0) - - signal.signal(signal.SIGINT, sig_handler) - signal.signal(signal.SIGPIPE, SIG_DFL) -except: - pass - -from advisors.tc_statistic import main - - -if __name__ == '__main__': - try: - main() - except Exception as error: - print("WARNING: Command execution error") - print(error.message) diff --git a/advisors/tc_statistic.py b/legacy/tc_statistic.py similarity index 100% rename from advisors/tc_statistic.py rename to legacy/tc_statistic.py diff --git a/openEuler-Advisor.spec b/openEuler-Advisor.spec index a44a256a..323a2f18 100644 --- a/openEuler-Advisor.spec +++ b/openEuler-Advisor.spec @@ -44,7 +44,6 @@ py.test-%{python3_version} -vv tests || : %attr(0755,root,root) %{_bindir}/psrtool %attr(0755,root,root) %{_bindir}/review_tool %attr(0755,root,root) %{_bindir}/tc_reminder -%attr(0755,root,root) %{_bindir}/tc_statistic %attr(0755,root,root) %{_bindir}/which_archived %changelog diff --git a/setup.py b/setup.py index cdef276b..56acfa49 100644 --- a/setup.py +++ b/setup.py @@ -23,12 +23,12 @@ setup( 'advisors.psrtool', 'advisors.review_tool', 'advisors.tc_reminder', - 'advisors.tc_statistic', 'advisors.which_archived', 'advisors.yaml2url', 'advisors.gitee', 'legacy.python-packager', 'legacy.who_maintain', + 'legacy.tc_statistic', 'tests.test_yaml2url'], requires=['python_rpm_spec (>=0.10)', 'PyYAML (>=5.3.1)', @@ -50,6 +50,5 @@ setup( ('/usr/bin/', ['command/psrtool']), ('/usr/bin/', ['command/review_tool']), ('/usr/bin/', ['command/tc_reminder']), - ('/usr/bin/', ['command/tc_statistic']), ('/usr/bin/', ['command/which_archived'])] ) -- Gitee