Merge "Fix branch name and project name for ref-updated create/delete"
This commit is contained in:
commit
b0b963328d
|
@ -8365,3 +8365,71 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase):
|
|||
def test_smart_reconfiguration_command_socket(self):
|
||||
"Test that live reconfiguration works using command socket"
|
||||
self._test_smart_reconfiguration(command_socket=True)
|
||||
|
||||
|
||||
class TestReconfigureBranch(ZuulTestCase):
|
||||
|
||||
def _setupTenantReconfigureTime(self):
|
||||
self.old = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
|
||||
def _createBranch(self):
|
||||
self.create_branch('org/project1', 'stable')
|
||||
self.fake_gerrit.addEvent(
|
||||
self.fake_gerrit.getFakeBranchCreatedEvent(
|
||||
'org/project1', 'stable'))
|
||||
self.waitUntilSettled()
|
||||
|
||||
def _deleteBranch(self):
|
||||
self.delete_branch('org/project1', 'stable')
|
||||
self.fake_gerrit.addEvent(
|
||||
self.fake_gerrit.getFakeBranchDeletedEvent(
|
||||
'org/project1', 'stable'))
|
||||
self.waitUntilSettled()
|
||||
|
||||
def _expectReconfigure(self, doReconfigure):
|
||||
new = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
if doReconfigure:
|
||||
self.assertLess(self.old, new)
|
||||
else:
|
||||
self.assertEqual(self.old, new)
|
||||
self.old = new
|
||||
|
||||
|
||||
class TestReconfigureBranchCreateDeleteSshHttp(TestReconfigureBranch):
|
||||
tenant_config_file = 'config/single-tenant/main.yaml'
|
||||
config_file = 'zuul-gerrit-web.conf'
|
||||
|
||||
def test_reconfigure_cache_branch_create_delete(self):
|
||||
"Test that cache is updated clear on branch creation/deletion"
|
||||
self._setupTenantReconfigureTime()
|
||||
self._createBranch()
|
||||
self._expectReconfigure(True)
|
||||
self._deleteBranch()
|
||||
self._expectReconfigure(True)
|
||||
|
||||
|
||||
class TestReconfigureBranchCreateDeleteSsh(TestReconfigureBranch):
|
||||
tenant_config_file = 'config/single-tenant/main.yaml'
|
||||
|
||||
def test_reconfigure_cache_branch_create_delete(self):
|
||||
"Test that cache is updated clear on branch creation/deletion"
|
||||
self._setupTenantReconfigureTime()
|
||||
self._createBranch()
|
||||
self._expectReconfigure(True)
|
||||
self._deleteBranch()
|
||||
self._expectReconfigure(True)
|
||||
|
||||
|
||||
class TestReconfigureBranchCreateDeleteHttp(TestReconfigureBranch):
|
||||
tenant_config_file = 'config/single-tenant/main.yaml'
|
||||
config_file = 'zuul-gerrit-no-stream.conf'
|
||||
|
||||
def test_reconfigure_cache_branch_create_delete(self):
|
||||
"Test that cache is updated clear on branch creation/deletion"
|
||||
self._setupTenantReconfigureTime()
|
||||
self._createBranch()
|
||||
self._expectReconfigure(True)
|
||||
self._deleteBranch()
|
||||
self._expectReconfigure(True)
|
||||
|
|
|
@ -230,17 +230,22 @@ class GerritEventConnector(threading.Thread):
|
|||
# This checks whether the event created or deleted a branch so
|
||||
# that Zuul may know to perform a reconfiguration on the
|
||||
# project.
|
||||
branch_refs = 'refs/heads/'
|
||||
if (event.type == 'ref-updated' and
|
||||
((not event.ref.startswith('refs/')) or
|
||||
event.ref.startswith('refs/heads'))):
|
||||
event.ref.startswith(branch_refs))):
|
||||
|
||||
if event.ref.startswith(branch_refs):
|
||||
event.branch = event.ref[len(branch_refs):]
|
||||
else:
|
||||
event.branch = event.ref
|
||||
|
||||
if event.oldrev == '0' * 40:
|
||||
event.branch_created = True
|
||||
event.branch = event.ref
|
||||
project = self.connection.source.getProject(event.project_name)
|
||||
self.connection._clearBranchCache(project)
|
||||
if event.newrev == '0' * 40:
|
||||
event.branch_deleted = True
|
||||
event.branch = event.ref
|
||||
project = self.connection.source.getProject(event.project_name)
|
||||
self.connection._clearBranchCache(project)
|
||||
|
||||
|
|
Loading…
Reference in New Issue