diff --git a/core/gitee_to_obs.py b/core/gitee_to_obs.py index e89d56a48caf488812116a36fc15ab14e229aa57..076e12e373fd94611703e07c85402636799a13f9 100644 --- a/core/gitee_to_obs.py +++ b/core/gitee_to_obs.py @@ -209,6 +209,10 @@ class SYNCCode(object): if self.repository and not self.project: self._write_date_to_file() self._pre_sync_code() + elif self.repository and self.project: + self._write_date_to_file() + self._get_latest_gitee_pull() + self._gitee_pr_to_obs(self.project) elif not self.repository and self.project: cmd = "osc ls %s" % self.project pkgs = os.popen(cmd).readlines() @@ -217,6 +221,7 @@ class SYNCCode(object): log.info(pkg.replace('\n', '')) self.repository = pkg.replace('\n', '') if self.repository: + self._write_date_to_file() self._get_latest_gitee_pull() self._gitee_pr_to_obs(self.project) else: diff --git a/core/package_manager.py b/core/package_manager.py index 837f113aa28ec4ed4b3fc3c884298fff7236b485..990f9bc1b40c98c323e2646c4670c2a15812042f 100755 --- a/core/package_manager.py +++ b/core/package_manager.py @@ -24,6 +24,7 @@ import sys import yaml import shutil import configparser +from core.gitee_to_obs import SYNCCode current_path = os.path.join(os.path.split(os.path.realpath(__file__))[0]) sys.path.append(os.path.join(current_path, "..")) from common.log_obs import log @@ -251,7 +252,18 @@ class OBSPkgManager(object): """ self._del_pkg(proj, pkg) self._add_pkg(new_proj, pkg, branch_name) - + + def _sync_pkg_code(self, proj, pkg): + """ + when adding a new package to a project, sync code + """ + os.chdir(self.kwargs["init_path"]) + log.info("Start synchronization code...") + self.kwargs['project'] = proj + self.kwargs['repository'] = pkg + sy = SYNCCode(**self.kwargs) + sy.sync_code_to_obs() + def _parse_git_log(self, line): """ deal diff_patch line mesg @@ -343,6 +355,7 @@ class OBSPkgManager(object): if msg["log_type"] == "Add-pkg": if msg["exist_flag"] == 0: self._add_pkg(msg["proj"], msg["pkg"], msg["branch_name"]) + self._sync_pkg_code(msg["proj"], msg["pkg"]) elif msg["log_type"] == "Del-pkg": self._del_pkg(msg["proj"], msg["pkg"]) elif msg["log_type"] == "Del-pkg-service": @@ -432,6 +445,7 @@ class OBSPkgManager(object): if len(need_add): for pkgname in list(need_add): self._add_pkg(proj, pkgname, meta_pb_dict[proj]) + self._sync_pkg_code(proj, pkgname) if len(need_del): for pkgname in list(need_del): self._del_pkg(proj, pkgname) diff --git a/core/runner.py b/core/runner.py index 546fdfdaeea832fd72b542358351dcfe2a10c34d..c753abb4221516580d9538354c564c5eef1b599a 100644 --- a/core/runner.py +++ b/core/runner.py @@ -25,7 +25,7 @@ from core.gitee_to_obs import SYNCCode from core.gitee_to_obs import CheckCode from core.package_manager import OBSPkgManager from core.update_obs_repos import RPMManager - +import os class Runner(object): """ @@ -38,6 +38,7 @@ class Runner(object): return: """ self.kwargs = kwargs + kwargs["init_path"] = os.getcwd() parc = ParserConfigIni() self.update_enabled_flag = parc.get_update_enabled_flag() self.ignore_list = parc.get_ignored_repo()