Merge "Simplify cloner required parameters"
This commit is contained in:
commit
5a412bfc49
@ -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." %
|
||||||
|
@ -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):
|
||||||
|
Loading…
Reference in New Issue
Block a user