Handle different gerrit versions with create-project
Gerrit < 2.12 used a --name argument on create-project. Newer Gerrit simply takes the project name as an arg. Check the Gerrit version before constructing the create-project command. Change-Id: I59ca051627d54a11ef6524cce9b5a4414fd2193d
This commit is contained in:
parent
d9478fcc08
commit
eb6588734c
@ -221,6 +221,15 @@ class Gerrit(object):
|
|||||||
if description:
|
if description:
|
||||||
cmd = "%s --description \"%s\"" % \
|
cmd = "%s --description \"%s\"" % \
|
||||||
(cmd, description.replace('"', r'\"'))
|
(cmd, description.replace('"', r'\"'))
|
||||||
|
version = None
|
||||||
|
try:
|
||||||
|
version = self.parseGerritVersion(self.getVersion())
|
||||||
|
except Exception:
|
||||||
|
# If no version then we know version is old and should use --name
|
||||||
|
pass
|
||||||
|
if not version or version < (2, 12):
|
||||||
|
cmd = '%s --name "%s"' % (cmd, project)
|
||||||
|
else:
|
||||||
cmd = '%s "%s"' % (cmd, project)
|
cmd = '%s "%s"' % (cmd, project)
|
||||||
out, err = self._ssh(cmd)
|
out, err = self._ssh(cmd)
|
||||||
return err
|
return err
|
||||||
@ -275,6 +284,19 @@ class Gerrit(object):
|
|||||||
out = out.split(' ')[2]
|
out = out.split(' ')[2]
|
||||||
return out.strip('\n')
|
return out.strip('\n')
|
||||||
|
|
||||||
|
def parseGerritVersion(self, version):
|
||||||
|
# Adapted from gertty setRemoteVersion()
|
||||||
|
base = version.split('-')[0]
|
||||||
|
parts = base.split('.')
|
||||||
|
major = minor = micro = 0
|
||||||
|
if len(parts) > 0:
|
||||||
|
major = int(parts[0])
|
||||||
|
if len(parts) > 1:
|
||||||
|
minor = int(parts[1])
|
||||||
|
if len(parts) > 2:
|
||||||
|
micro = int(parts[2])
|
||||||
|
return (major, minor, micro)
|
||||||
|
|
||||||
def replicate(self, project='--all'):
|
def replicate(self, project='--all'):
|
||||||
cmd = 'replication start %s' % project
|
cmd = 'replication start %s' % project
|
||||||
if self.installed_plugins is None:
|
if self.installed_plugins is None:
|
||||||
|
Loading…
Reference in New Issue
Block a user