From 0bdfcb2175776a6705fbd899aef401869c8fd490 Mon Sep 17 00:00:00 2001 From: miao_kaibo Date: Fri, 30 Oct 2020 11:34:51 +0800 Subject: [PATCH] integrate all module --- core/gitee_to_obs.py | 29 ++++++++-------- ...obs_package_admc.py => package_manager.py} | 30 ++++++++--------- core/project_manager.py | 3 ++ core/runner.py | 18 +++++----- openeuler_obs.py | 33 ++++++++++++++++--- 5 files changed, 69 insertions(+), 44 deletions(-) rename core/{obs_package_admc.py => package_manager.py} (94%) diff --git a/core/gitee_to_obs.py b/core/gitee_to_obs.py index 89e1402..9701a8f 100644 --- a/core/gitee_to_obs.py +++ b/core/gitee_to_obs.py @@ -6,7 +6,6 @@ date: 2020-10-26 """ import sys import os -import git import shutil from common.log_obs import log from common.common import Pexpect @@ -16,7 +15,7 @@ class SYNCCode(object): if the rpm package has changed in gitee what you should donext (Synchronize the latest code to OBS) """ - def __init__(self, kargs): + def __init__(self, **kwargs): """ kargs: dict, init dict by 'a': 'A' style The dict key_value as the following: @@ -30,16 +29,16 @@ class SYNCCode(object): obs_server_passwd: The password for your ip obs_server_port: The port for your ip """ - self.kargs = kargs - self.repository = self.kargs['repository'] - self.gitee_branch = self.kargs['gitee_branch'] - self.giteeuser = self.kargs['giteeuser'] - self.giteeuserpwd = self.kargs['giteeuserpwd'] - self.meta_path = self.kargs['meta_path'] - self.cmd = Pexpect(self.kargs['obs_server_user'], - self.kargs['obs_server_ip'], - self.kargs['obs_server_passwd'], - self.kargs['obs_server_port']) + self.kwargs = kwargs + self.repository = self.kwargs['repository'] + self.gitee_branch = self.kwargs['branch'] + self.giteeuser = self.kwargs['gitee_user'] + self.giteeuserpwd = self.kwargs['gitee_pwd'] + self.meta_path = self.kwargs['obs_meta_path'] + self.cmd = Pexpect(self.kwargs['source_server_user'], + self.kwargs['source_server_ip'], + self.kwargs['source_server_pwd'], + self.kwargs['source_server_port']) def _git_clone(self, rpm_dir, gitee_branch, path): """ @@ -120,10 +119,10 @@ class SYNCCode(object): if __name__ == "__main__": #Now start - kwargs = {'repository': sys.argv[1], 'gitee_branch': sys.argv[2], - 'giteeuser': sys.argv[3], 'giteeuserpwd': sys.argv[4], + kw = {'repository': sys.argv[1], 'gitee_branch': sys.argv[2], + 'giteeuser': sys.argv[3], 'giteeuserpwd': sys.argv[4], 'meta_path': '/home/python_bash/obs_meta', 'obs_server_user': 'root', 'obs_server_ip': '124.90.34.227', 'obs_server_passwd': '654321', 'obs_server_port': '11243'} - sync_run = SYNCCode(kwargs) + sync_run = SYNCCode(**kw) sync_run.sync_code_to_obs() diff --git a/core/obs_package_admc.py b/core/package_manager.py similarity index 94% rename from core/obs_package_admc.py rename to core/package_manager.py index c7ab561..4ccae09 100755 --- a/core/obs_package_admc.py +++ b/core/package_manager.py @@ -8,7 +8,6 @@ date: 2020-10-26 import os import re import sys -import git import shutil import configparser current_path = os.path.join(os.path.split(os.path.realpath(__file__))[0]) @@ -20,18 +19,18 @@ class OBSPkgManager(object): """ obs project package add delete modify check """ - def __init__(self, kargs): + def __init__(self, **kwargs): """ obs_meta_path: obs_meta dir path patch_file_path: diff_patch file path - kargs: dict include giteeUserName giteeUserPwd obs_meta_path + kwargs: dict include giteeUserName giteeUserPwd obs_meta_path """ - self.kargs = kargs + self.kwargs = kwargs self.work_dir = "/jenkins_home/workspace/obs_meta_update/openeuler_jenkins" - self.obs_meta_path = os.path.join(self.work_dir, self.kargs["obs_meta_path"]) + self.obs_meta_path = os.path.join(self.work_dir, self.kwargs["obs_meta_path"]) self.patch_file_path = os.path.join(self.work_dir, "diff_patch") - self.giteeUserName = self.kargs["giteeUserName"] - self.giteeUserPwd = self.kargs["giteeUserPwd"] + self.giteeUserName = self.kwargs["gitee_user"] + self.giteeUserPwd = self.kwargs["gitee_pwd"] self.import_list = [] def _pre_env(self): @@ -48,11 +47,6 @@ class OBSPkgManager(object): git clone function """ if git_house == "obs_meta": - if os.path.exists(self.obs_meta_path): - shutil.rmtree(self.obs_meta_path) - git_url = "https://%s:%s@gitee.com/src-openeuler/obs_meta.git" % ( - self.giteeUserName, self.giteeUserPwd) - git.Repo.clone_from(url = git_url, to_path = self.obs_meta_path) os.chdir(self.obs_meta_path) os.system("git diff --name-status HEAD~1 HEAD~0 > %s" % self.patch_file_path) @@ -62,7 +56,8 @@ class OBSPkgManager(object): shutil.rmtree(community_path) git_url = "https://%s:%s@gitee.com/openeuler/community.git" % ( self.giteeUserName, self.giteeUserPwd) - git.Repo.clone_from(url = git_url, to_path = community_path) + ret = os.popen("git lfs --depth 1 clone %s" % git_url).read() + log.debug(ret) os.chdir(self.work_dir) def _add_pkg(self, proj, pkg, branch_name): @@ -311,6 +306,8 @@ class OBSPkgManager(object): """ obs project package add, delete, modify, check """ + if self.kwargs["check_flag"]: + self._check_obs_pkg() self._pre_env() self._git_clone("obs_meta") self._deal_some_param() @@ -413,7 +410,7 @@ class OBSPkgManager(object): self._del_pkg(proj, pkg) log.info("check END") - def check_obs_pkg(self): + def _check_obs_pkg(self): """ check the obs project and operate according to the src-openeuler.yaml file """ @@ -428,7 +425,6 @@ class OBSPkgManager(object): if __name__ == "__main__": - params = {"giteeUserName":sys.argv[1], "giteeUserPwd":sys.argv[2], "obs_meta_path":sys.argv[3]} - pm = OBSPkgManager(params) + kw = {"giteeUserName":sys.argv[1], "giteeUserPwd":sys.argv[2], "obs_meta_path":sys.argv[3]} + pm = OBSPkgManager(**kw) pm.obs_pkg_admc() - pm.check_obs_pkg() diff --git a/core/project_manager.py b/core/project_manager.py index 61a837c..ac38541 100644 --- a/core/project_manager.py +++ b/core/project_manager.py @@ -24,6 +24,9 @@ class OBSPrjManager(object): init project base info obs_meta_path: path of obs_meta repository """ + if not obs_meta: + log.error("can not found obs_meta") + exit(0) self.obs_meta = obs_meta os.chdir(self.obs_meta) self.commit_msg = [] diff --git a/core/runner.py b/core/runner.py index 36c1ad8..cd9caff 100644 --- a/core/runner.py +++ b/core/runner.py @@ -10,6 +10,8 @@ from common.log_obs import log from common.parser_config import ParserConfigIni from core.save import SaveInfo from core.project_manager import OBSPrjManager +from core.gitee_to_obs import SYNCCode +from core.package_manager import OBSPkgManager class Runner(object): @@ -19,11 +21,10 @@ class Runner(object): def __init__(self, **kwargs): """ init action - kwargs: dict, init dict by "a"="A" style + kwargs: dict return: """ self.kwargs = kwargs - log.info(self.kwargs) parc = ParserConfigIni() self.update_enabled_flag = parc.get_update_enabled_flag() self.ignore_list = parc.get_ignored_repo() @@ -34,10 +35,10 @@ class Runner(object): return: """ log.debug("obs_meta change") - obs_pm = OBSPrjManager(self.kwargs["obs_path"]) - obs_pm.manager_action() - # TODO - # add package service + obs_prjm = OBSPrjManager(self.kwargs["obs_meta_path"]) + obs_prjm.manager_action() + obs_pkgm = OBSPkgManager(**self.kwargs) + obs_pkgm.obs_pkg_admc() def _save_package_info(self): """ @@ -54,7 +55,8 @@ class Runner(object): return: """ log.debug("update package code") - # TODO + syc = SYNCCode(**self.kwargs) + syc.sync_code_to_obs() def run(self): """ @@ -66,7 +68,7 @@ class Runner(object): if self.kwargs["repository"] == "obs_meta": self._obs_meta_action() elif self.kwargs["repository"] not in self.ignore_list: - if not self.update_enabled_flag[self.kwargs["branch"].lower()]: + if not self.update_enabled_flag[self.kwargs["branch"]]: log.debug("can not update branch:%s, package: %s" % (self.kwargs["branch"], self.kwargs["repository"])) self._save_package_info() diff --git a/openeuler_obs.py b/openeuler_obs.py index 2390bcd..fa8eecc 100644 --- a/openeuler_obs.py +++ b/openeuler_obs.py @@ -20,11 +20,36 @@ par.add_argument("-b", "--branch", default="master", help="gitee repository branch name", required=False) par.add_argument("-p", "--project", default=None, help="obs project name", required=False) +par.add_argument("-ip", "--source_server_ip", default=None, + help="ip of obs source server machine", required=False) +par.add_argument("-sport", "--source_server_port", default=None, + help="ip of obs source server machine", required=False) +par.add_argument("-suser", "--source_server_user", default=None, + help="user of obs source server machine", required=False) +par.add_argument("-spwd", "--source_server_pwd", default=None, + help="password of obs source server machine user", required=False) +par.add_argument("-guser", "--gitee_user", default=None, + help="user of gitee", required=False) +par.add_argument("-gpwd", "--gitee_pwd", default=None, + help="password of gitee", required=False) +par.add_argument("-c", "--check", default=False, + help="check obs package", required=False) args = par.parse_args() #apply -obs_meta_path = args.obs -log.info(obs_meta_path) -run = Runner(obs_path=args.obs, project=args.project, - repository=args.repository, branch=args.branch) +kw = { + "obs_meta_path": args.obs, + "repository": args.repository, + "branch": args.branch, + "project": args.project, + "source_server_ip": args.source_server_ip, + "source_server_port": args.source_server_port, + "source_server_user": args.source_server_user, + "source_server_pwd": args.source_server_pwd, + "gitee_user": args.gitee_user, + "gitee_pwd": args.gitee_pwd, + "check_flag": args.check + } +log.info(kw) +run = Runner(**kw) run.run() -- Gitee