Merge "Simplify cloner required parameters"

This commit is contained in:
Jenkins 2015-05-15 07:37:33 +00:00 committed by Gerrit Code Review
commit 5a412bfc49
2 changed files with 14 additions and 15 deletions

View File

@ -25,10 +25,6 @@ import zuul.lib.cloner
ZUUL_ENV_SUFFIXES = ( ZUUL_ENV_SUFFIXES = (
'branch', 'branch',
'change',
'patchset',
'pipeline',
'project',
'ref', 'ref',
'url', 'url',
) )
@ -93,10 +89,11 @@ class Cloner(zuul.cmd.ZuulApp):
args = parser.parse_args() args = parser.parse_args()
# Validate ZUUL_* arguments # Validate ZUUL_* arguments. If any ZUUL_* argument is set they
# must all be set, otherwise fallback to defaults.
zuul_missing = [zuul_opt for zuul_opt, val in vars(args).items() zuul_missing = [zuul_opt for zuul_opt, val in vars(args).items()
if zuul_opt.startswith('zuul') and val is None] if zuul_opt.startswith('zuul') and val is None]
if zuul_missing: if len(zuul_missing) < len(ZUUL_ENV_SUFFIXES):
parser.error(("Some Zuul parameters are not set:\n\t%s\n" parser.error(("Some Zuul parameters are not set:\n\t%s\n"
"Define them either via environment variables or " "Define them either via environment variables or "
"using options above." % "using options above." %

View File

@ -141,22 +141,24 @@ class Cloner(object):
override_zuul_ref = re.sub(self.zuul_branch, indicated_branch, override_zuul_ref = re.sub(self.zuul_branch, indicated_branch,
self.zuul_ref) self.zuul_ref)
if repo.hasBranch(indicated_branch): if indicated_branch and repo.hasBranch(indicated_branch):
self.log.debug("upstream repo has branch %s", indicated_branch) self.log.info("upstream repo has branch %s", indicated_branch)
fallback_branch = indicated_branch fallback_branch = indicated_branch
else: else:
self.log.debug("upstream repo is missing branch %s", self.log.info("upstream repo is missing branch %s",
self.branch) self.branch)
# FIXME should be origin HEAD branch which might not be 'master' # FIXME should be origin HEAD branch which might not be 'master'
fallback_branch = 'master' fallback_branch = 'master'
fallback_zuul_ref = re.sub(self.zuul_branch, fallback_branch, fallback_zuul_ref = re.sub(self.zuul_branch, fallback_branch,
self.zuul_ref) self.zuul_ref)
if (self.fetchFromZuul(repo, project, override_zuul_ref) # If we have a non empty zuul_ref to use, use it. Otherwise we fall
or (fallback_zuul_ref != override_zuul_ref and # back to checking out the branch.
self.fetchFromZuul(repo, project, fallback_zuul_ref)) if ((override_zuul_ref and
): self.fetchFromZuul(repo, project, override_zuul_ref)) or
(fallback_zuul_ref != override_zuul_ref and
self.fetchFromZuul(repo, project, fallback_zuul_ref))):
# Work around a bug in GitPython which can not parse FETCH_HEAD # Work around a bug in GitPython which can not parse FETCH_HEAD
gitcmd = git.Git(dest) gitcmd = git.Git(dest)
fetch_head = gitcmd.rev_parse('FETCH_HEAD') fetch_head = gitcmd.rev_parse('FETCH_HEAD')
@ -165,7 +167,7 @@ class Cloner(object):
project, fetch_head) project, fetch_head)
else: else:
# Checkout branch # Checkout branch
self.log.debug("Falling back to branch %s", fallback_branch) self.log.info("Falling back to branch %s", fallback_branch)
try: try:
repo.checkout('remotes/origin/%s' % fallback_branch) repo.checkout('remotes/origin/%s' % fallback_branch)
except (ValueError, GitCommandError): except (ValueError, GitCommandError):