From 85ea43d89fcd335c0aa73aab26896d0694211dab Mon Sep 17 00:00:00 2001 From: Yonghee Han Date: Fri, 20 Apr 2018 18:40:51 +0900 Subject: [PATCH] Add TRIGGER_CLEAN_PROJECTS on Configuration add a exception -1 Add TRIGGER_CLEAN_PROJECTS Change-Id: I653a24fb50fc058a39dfdf50eab8bd771afdb62e --- job_obs_project_manager.py | 3 ++- job_ref_precheck_project_obs.py | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/job_obs_project_manager.py b/job_obs_project_manager.py index 6d5dd49..d2c661f 100644 --- a/job_obs_project_manager.py +++ b/job_obs_project_manager.py @@ -252,7 +252,8 @@ def main(): except ObsError, error: failures = (str(exc)) finally: - bm_ext.update_project_mgr_log(id, failures) + if id != "-1": + bm_ext.update_project_mgr_log(id, failures) return 0 diff --git a/job_ref_precheck_project_obs.py b/job_ref_precheck_project_obs.py index 5c09bf5..4b3bc16 100644 --- a/job_ref_precheck_project_obs.py +++ b/job_ref_precheck_project_obs.py @@ -24,13 +24,14 @@ This job is triggered by Gerrit RefUpdate event. import os import sys import re +import ast import xml.etree.cElementTree as ElementTree from time import sleep from gitbuildsys.errors import ObsError from common.upload_service import UploadError from common.buildservice import BuildService -from common.buildtrigger import trigger_info +from common.buildtrigger import trigger_info, trigger_next class LocalError(Exception): """Local error exception.""" @@ -39,6 +40,7 @@ class LocalError(Exception): def main(): ref_project = trigger_info(os.getenv('TRIGGER_INFO'))['target'] + profile = trigger_info(os.getenv('TRIGGER_INFO'))['project'] target_project = 'home:devel:Build:%s' % ref_project.replace(':ref:',':check:') package_to_build = os.getenv('REF_BUILDCHECK_PKG_PROFILE') if ':Base:ref:' in ref_project: @@ -52,6 +54,7 @@ def main(): if build.exists(target_project): build.delete_project(target_project) sleep(5) + build.create_project(target_project, src=ref_project.split(':ref:')[0]) # from base for flag in ("build", "publish"): build.disable_build_flag(target_project, repo = None, flag=flag, status="disable") @@ -120,6 +123,20 @@ def main(): if build_result not in (result_map['Pass'], result_map['Fail']): continue break + + # Trigger next + if os.getenv('TRIGGER_CLEAN_PROJECTS'): + enabled_projects = ast.literal_eval(os.getenv('TRIGGER_CLEAN_PROJECTS')) + count = 0 + if enabled_projects.get(profile): + for project in enabled_projects.get(profile): + trigger_next("TRIGGER_CLEAN_PROJECT_%s" %(count), {"data":"dummy"}, \ + extra_params={"ID": "-1", \ + "DECISION": "clean", \ + "PROJECT": project.get('target'), \ + "PACKAGE": "All"}) + count += 1 + if build_result == result_map['Pass']: build.delete_project(target_project) return build_result -- 2.7.4