Make pushing zuul refs upstream optional.
And the default -- so that Zuul doesn't need any special gerrit privileges to run out of the box. Change-Id: I36411b299c8363d509498ece8ea21f88665ca39a Reviewed-on: https://review.openstack.org/11589 Reviewed-by: Clark Boylan <clark.boylan@gmail.com> Approved: James E. Blair <corvus@inaugust.com> Tested-by: Jenkins
This commit is contained in:
parent
c6294a5925
commit
ceabcbca1b
|
@ -11,3 +11,4 @@ sshkey=none
|
|||
[zuul]
|
||||
layout_config=layout.yaml
|
||||
git_dir=/tmp/zuul-test/git
|
||||
push_change_refs=true
|
||||
|
|
|
@ -84,12 +84,13 @@ class Repo(object):
|
|||
class Merger(object):
|
||||
log = logging.getLogger("zuul.Merger")
|
||||
|
||||
def __init__(self, trigger, working_root):
|
||||
def __init__(self, trigger, working_root, push_refs):
|
||||
self.trigger = trigger
|
||||
self.repos = {}
|
||||
self.working_root = working_root
|
||||
if not os.path.exists(working_root):
|
||||
os.makedirs(working_root)
|
||||
self.push_refs = push_refs
|
||||
|
||||
def addProject(self, project, url):
|
||||
try:
|
||||
|
@ -145,19 +146,20 @@ class Merger(object):
|
|||
self.log.info("Unable to merge %s" % change)
|
||||
return False
|
||||
|
||||
# Push the results upstream to the zuul ref
|
||||
for project, branches in projects.items():
|
||||
repo = self.getRepo(project)
|
||||
for branch in branches:
|
||||
ref = 'refs/zuul/' + branch + '/' + target_ref
|
||||
try:
|
||||
repo.push(ref, ref)
|
||||
complete = self.trigger.waitForRefSha(project, ref)
|
||||
except:
|
||||
self.log.exception("Unable to push %s" % ref)
|
||||
return False
|
||||
if not complete:
|
||||
self.log.error("Ref %s did not show up in repo" % ref)
|
||||
return False
|
||||
if self.push_refs:
|
||||
# Push the results upstream to the zuul ref
|
||||
for project, branches in projects.items():
|
||||
repo = self.getRepo(project)
|
||||
for branch in branches:
|
||||
ref = 'refs/zuul/' + branch + '/' + target_ref
|
||||
try:
|
||||
repo.push(ref, ref)
|
||||
complete = self.trigger.waitForRefSha(project, ref)
|
||||
except:
|
||||
self.log.exception("Unable to push %s" % ref)
|
||||
return False
|
||||
if not complete:
|
||||
self.log.error("Ref %s did not show up in repo" % ref)
|
||||
return False
|
||||
|
||||
return True
|
||||
|
|
|
@ -163,7 +163,11 @@ class Scheduler(threading.Thread):
|
|||
merge_root = self.config.get('zuul', 'git_dir')
|
||||
else:
|
||||
merge_root = '/var/lib/zuul/git'
|
||||
self.merger = merger.Merger(self.trigger, merge_root)
|
||||
if self.config.has_option('zuul', 'push_change_refs'):
|
||||
push_refs = self.config.getboolean('zuul', 'push_change_refs')
|
||||
else:
|
||||
push_refs = False
|
||||
self.merger = merger.Merger(self.trigger, merge_root, push_refs)
|
||||
for project in self.projects.values():
|
||||
url = self.trigger.getGitUrl(project)
|
||||
self.merger.addProject(project, url)
|
||||
|
|
Loading…
Reference in New Issue