Use scheduler manager consistently in tests
To improve consistency and remove `self.sched` and use `self.scheds.first.sched` in all tests. This change only touches tests. Change-Id: I0a8c3f8ad634d1d88f3c68a11e4d5587993f4a0d Story: 2007192
This commit is contained in:
parent
a770be9b83
commit
7df5508dbd
|
@ -3497,6 +3497,12 @@ class SchedulerTestManager:
|
|||
def __iter__(self):
|
||||
return iter(self.instances)
|
||||
|
||||
@property
|
||||
def first(self) -> SchedulerTestApp:
|
||||
if len(self.instances) == 0:
|
||||
raise Exception("No scheduler!")
|
||||
return self.instances[0]
|
||||
|
||||
def filter(self, matcher=None) -> Iterable[SchedulerTestApp]:
|
||||
fcn = None # type: Optional[Callable[[int, SchedulerTestApp], bool]]
|
||||
if type(matcher) == list:
|
||||
|
@ -3703,7 +3709,6 @@ class ZuulTestCase(BaseTestCase):
|
|||
self.scheds = SchedulerTestManager()
|
||||
sched_app = self.scheds.create(
|
||||
self.log, self.config, self.zk_config, self.connections)
|
||||
self.sched = sched_app.sched
|
||||
self.event_queues = sched_app.event_queues + self.event_queues
|
||||
|
||||
if hasattr(self, 'fake_github'):
|
||||
|
@ -4099,7 +4104,7 @@ class ZuulTestCase(BaseTestCase):
|
|||
self.assertNodepoolState()
|
||||
self.assertNoGeneratedKeys()
|
||||
ipm = zuul.manager.independent.IndependentPipelineManager
|
||||
for tenant in self.sched.abide.tenants.values():
|
||||
for tenant in self.scheds.first.sched.abide.tenants.values():
|
||||
for pipeline in tenant.layout.pipelines.values():
|
||||
if isinstance(pipeline.manager, ipm):
|
||||
self.assertEqual(len(pipeline.queues), 0)
|
||||
|
@ -4418,7 +4423,7 @@ class ZuulTestCase(BaseTestCase):
|
|||
self.log.info("Completed build: %s" % build)
|
||||
for build in self.builds:
|
||||
self.log.info("Running build: %s" % build)
|
||||
for tenant in self.sched.abide.tenants.values():
|
||||
for tenant in self.scheds.first.sched.abide.tenants.values():
|
||||
for pipeline in tenant.layout.pipelines.values():
|
||||
for pipeline_queue in pipeline.queues:
|
||||
if len(pipeline_queue.queue) != 0:
|
||||
|
@ -4462,7 +4467,7 @@ class ZuulTestCase(BaseTestCase):
|
|||
|
||||
def assertEmptyQueues(self):
|
||||
# Make sure there are no orphaned jobs
|
||||
for tenant in self.sched.abide.tenants.values():
|
||||
for tenant in self.scheds.first.sched.abide.tenants.values():
|
||||
for pipeline in tenant.layout.pipelines.values():
|
||||
for pipeline_queue in pipeline.queues:
|
||||
if len(pipeline_queue.queue) != 0:
|
||||
|
|
|
@ -38,7 +38,7 @@ class TestTenantSimple(TenantParserTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/simple.yaml'
|
||||
|
||||
def test_tenant_simple(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(['common-config'],
|
||||
[x.name for x in tenant.config_projects])
|
||||
self.assertEqual(['org/project1', 'org/project2'],
|
||||
|
@ -70,7 +70,7 @@ class TestTenantSimple(TenantParserTestCase):
|
|||
project2_config[1].pipelines['check'].job_list.jobs)
|
||||
|
||||
def test_variant_description(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
job = tenant.layout.jobs.get("project2-job")
|
||||
self.assertEqual(job[0].variant_description, "")
|
||||
self.assertEqual(job[1].variant_description, "stable")
|
||||
|
@ -80,7 +80,7 @@ class TestTenantOverride(TenantParserTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/override.yaml'
|
||||
|
||||
def test_tenant_override(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(['common-config'],
|
||||
[x.name for x in tenant.config_projects])
|
||||
self.assertEqual(['org/project1', 'org/project2', 'org/project4'],
|
||||
|
@ -116,7 +116,7 @@ class TestTenantGroups(TenantParserTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/groups.yaml'
|
||||
|
||||
def test_tenant_groups(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(['common-config'],
|
||||
[x.name for x in tenant.config_projects])
|
||||
self.assertEqual(['org/project1', 'org/project2'],
|
||||
|
@ -153,7 +153,7 @@ class TestTenantGroups2(TenantParserTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/groups2.yaml'
|
||||
|
||||
def test_tenant_groups2(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(['common-config'],
|
||||
[x.name for x in tenant.config_projects])
|
||||
self.assertEqual(['org/project1', 'org/project2', 'org/project3'],
|
||||
|
@ -190,7 +190,7 @@ class TestTenantGroups3(TenantParserTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/groups3.yaml'
|
||||
|
||||
def test_tenant_groups3(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(False, tenant.exclude_unprotected_branches)
|
||||
self.assertEqual(['common-config'],
|
||||
[x.name for x in tenant.config_projects])
|
||||
|
@ -226,7 +226,7 @@ class TestTenantGroups4(TenantParserTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/groups4.yaml'
|
||||
|
||||
def test_tenant_groups(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(['common-config'],
|
||||
[x.name for x in tenant.config_projects])
|
||||
self.assertEqual(['org/project1', 'org/project2'],
|
||||
|
@ -255,7 +255,7 @@ class TestTenantGroups4(TenantParserTestCase):
|
|||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||
self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1))
|
||||
self.waitUntilSettled()
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
new_layout = tenant.layout
|
||||
|
||||
self.assertEqual(old_layout, new_layout)
|
||||
|
@ -265,7 +265,7 @@ class TestTenantGroups5(TenantParserTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/groups5.yaml'
|
||||
|
||||
def test_tenant_single_projet_exclude(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(['common-config'],
|
||||
[x.name for x in tenant.config_projects])
|
||||
self.assertEqual(['org/project1'],
|
||||
|
@ -296,7 +296,7 @@ class TestTenantUnprotectedBranches(TenantParserTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/unprotected-branches.yaml'
|
||||
|
||||
def test_tenant_unprotected_branches(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(True, tenant.exclude_unprotected_branches)
|
||||
|
||||
self.assertEqual(['common-config'],
|
||||
|
@ -325,7 +325,7 @@ class TestTenantExcludeAll(TenantParserTestCase):
|
|||
"""
|
||||
# The config in org/project5 depends on config in org/project1 so
|
||||
# validate that there are no config errors in that tenant.
|
||||
tenant_two = self.sched.abide.tenants.get('tenant-two')
|
||||
tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two')
|
||||
self.assertEquals(
|
||||
len(tenant_two.layout.loading_errors), 0,
|
||||
"No error should have been accumulated")
|
||||
|
@ -335,7 +335,7 @@ class TestTenantConfigBranches(ZuulTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/simple.yaml'
|
||||
|
||||
def _validate_job(self, job, branch):
|
||||
tenant_one = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
jobs = tenant_one.layout.getJobs(job)
|
||||
self.assertEquals(len(jobs), 1)
|
||||
self.assertIn(jobs[0].source_context.branch, branch)
|
||||
|
@ -353,14 +353,14 @@ class TestTenantConfigBranches(ZuulTestCase):
|
|||
self.create_branch('common-config', 'stable')
|
||||
self.create_branch('common-config', 'feat_x')
|
||||
|
||||
self.sched.reconfigure(self.config)
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
|
||||
# Job must be defined in master
|
||||
self._validate_job(common_job, 'master')
|
||||
|
||||
# Reconfigure with load-branch stable for common-config
|
||||
self.newTenantConfig('config/tenant-parser/branch.yaml')
|
||||
self.sched.reconfigure(self.config)
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
|
||||
# Now job must be defined on stable branch
|
||||
self._validate_job(common_job, 'stable')
|
||||
|
@ -370,7 +370,7 @@ class TestSplitConfig(ZuulTestCase):
|
|||
tenant_config_file = 'config/split-config/main.yaml'
|
||||
|
||||
def test_split_config(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertIn('project-test1', tenant.layout.jobs)
|
||||
self.assertIn('project-test2', tenant.layout.jobs)
|
||||
test1 = tenant.layout.getJob('project-test1')
|
||||
|
@ -445,7 +445,7 @@ class TestConfigConflict(ZuulTestCase):
|
|||
tenant_config_file = 'config/conflict-config/main.yaml'
|
||||
|
||||
def test_conflict_config(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
jobs = sorted(tenant.layout.jobs.keys())
|
||||
self.assertEqual(
|
||||
['base', 'noop', 'trusted-zuul.yaml-job',
|
||||
|
@ -457,9 +457,11 @@ class TestAuthorizationRuleParser(ZuulTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/authorizations.yaml'
|
||||
|
||||
def test_rules_are_loaded(self):
|
||||
rules = self.sched.abide.admin_rules
|
||||
self.assertTrue('auth-rule-one' in rules, self.sched.abide)
|
||||
self.assertTrue('auth-rule-two' in rules, self.sched.abide)
|
||||
rules = self.scheds.first.sched.abide.admin_rules
|
||||
self.assertTrue('auth-rule-one' in rules,
|
||||
self.scheds.first.sched.abide)
|
||||
self.assertTrue('auth-rule-two' in rules,
|
||||
self.scheds.first.sched.abide)
|
||||
claims_1 = {'sub': 'venkman'}
|
||||
claims_2 = {'sub': 'gozer',
|
||||
'iss': 'another_dimension'}
|
||||
|
@ -591,39 +593,32 @@ class TestAuthorizationRuleParserWithTemplating(ZuulTestCase):
|
|||
tenant_config_file = 'config/tenant-parser/authorizations-templating.yaml'
|
||||
|
||||
def test_rules_are_loaded(self):
|
||||
rules = self.sched.abide.admin_rules
|
||||
self.assertTrue('tenant-admin' in rules, self.sched.abide)
|
||||
self.assertTrue('tenant-admin-complex' in rules, self.sched.abide)
|
||||
rules = self.scheds.first.sched.abide.admin_rules
|
||||
self.assertTrue('tenant-admin' in rules, self.scheds.first.sched.abide)
|
||||
self.assertTrue('tenant-admin-complex' in rules,
|
||||
self.scheds.first.sched.abide)
|
||||
|
||||
def test_tenant_substitution(self):
|
||||
claims_1 = {'group': 'tenant-one-admin'}
|
||||
claims_2 = {'group': 'tenant-two-admin'}
|
||||
rules = self.sched.abide.admin_rules
|
||||
tenant_one = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant_two = self.sched.abide.tenants.get('tenant-two')
|
||||
self.assertTrue(rules['tenant-admin'](claims_1,
|
||||
tenant_one))
|
||||
self.assertTrue(rules['tenant-admin'](claims_2,
|
||||
tenant_two))
|
||||
self.assertTrue(not rules['tenant-admin'](claims_1,
|
||||
tenant_two))
|
||||
self.assertTrue(not rules['tenant-admin'](claims_2,
|
||||
tenant_one))
|
||||
rules = self.scheds.first.sched.abide.admin_rules
|
||||
tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two')
|
||||
self.assertTrue(rules['tenant-admin'](claims_1, tenant_one))
|
||||
self.assertTrue(rules['tenant-admin'](claims_2, tenant_two))
|
||||
self.assertTrue(not rules['tenant-admin'](claims_1, tenant_two))
|
||||
self.assertTrue(not rules['tenant-admin'](claims_2, tenant_one))
|
||||
|
||||
def test_tenant_substitution_in_list(self):
|
||||
claims_1 = {'group': ['tenant-one-admin', 'some-other-tenant']}
|
||||
claims_2 = {'group': ['tenant-two-admin', 'some-other-tenant']}
|
||||
rules = self.sched.abide.admin_rules
|
||||
tenant_one = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant_two = self.sched.abide.tenants.get('tenant-two')
|
||||
self.assertTrue(rules['tenant-admin'](claims_1,
|
||||
tenant_one))
|
||||
self.assertTrue(rules['tenant-admin'](claims_2,
|
||||
tenant_two))
|
||||
self.assertTrue(not rules['tenant-admin'](claims_1,
|
||||
tenant_two))
|
||||
self.assertTrue(not rules['tenant-admin'](claims_2,
|
||||
tenant_one))
|
||||
rules = self.scheds.first.sched.abide.admin_rules
|
||||
tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two')
|
||||
self.assertTrue(rules['tenant-admin'](claims_1, tenant_one))
|
||||
self.assertTrue(rules['tenant-admin'](claims_2, tenant_two))
|
||||
self.assertTrue(not rules['tenant-admin'](claims_1, tenant_two))
|
||||
self.assertTrue(not rules['tenant-admin'](claims_2, tenant_one))
|
||||
|
||||
def test_tenant_substitution_in_dict(self):
|
||||
claims_2 = {
|
||||
|
@ -633,21 +628,19 @@ class TestAuthorizationRuleParserWithTemplating(ZuulTestCase):
|
|||
}
|
||||
}
|
||||
}
|
||||
rules = self.sched.abide.admin_rules
|
||||
tenant_one = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant_two = self.sched.abide.tenants.get('tenant-two')
|
||||
self.assertTrue(
|
||||
not rules['tenant-admin-complex'](claims_2,
|
||||
rules = self.scheds.first.sched.abide.admin_rules
|
||||
tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two')
|
||||
self.assertTrue(not rules['tenant-admin-complex'](claims_2,
|
||||
tenant_one))
|
||||
self.assertTrue(
|
||||
rules['tenant-admin-complex'](claims_2, tenant_two))
|
||||
self.assertTrue(rules['tenant-admin-complex'](claims_2, tenant_two))
|
||||
|
||||
|
||||
class TestTenantExtra(TenantParserTestCase):
|
||||
tenant_config_file = 'config/tenant-parser/extra.yaml'
|
||||
|
||||
def test_tenant_extra(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertTrue('project2-extra-file' in tenant.layout.jobs)
|
||||
self.assertTrue('project2-extra-dir' in tenant.layout.jobs)
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ class TestSQLConnection(ZuulDBTestCase):
|
|||
|
||||
def check_results(connection_name):
|
||||
# Grab the sa tables
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
reporter = _get_reporter_from_connection_name(
|
||||
tenant.layout.pipelines['check'].success_actions,
|
||||
connection_name
|
||||
|
@ -241,7 +241,7 @@ class TestSQLConnection(ZuulDBTestCase):
|
|||
|
||||
def check_results(connection_name_1, connection_name_2):
|
||||
# Grab the sa tables for resultsdb
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
reporter1 = _get_reporter_from_connection_name(
|
||||
tenant.layout.pipelines['check'].success_actions,
|
||||
connection_name_1
|
||||
|
|
|
@ -274,7 +274,7 @@ class TestGerritToGithubCRD(ZuulTestCase):
|
|||
self.assertEqual(changes, '1,%s 1,1' %
|
||||
(B.head_sha,))
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
def test_crd_check_duplicate(self):
|
||||
|
@ -288,7 +288,7 @@ class TestGerritToGithubCRD(ZuulTestCase):
|
|||
# A Depends-On: B
|
||||
A.data['commitMessage'] = '%s\n\nDepends-On: %s\n' % (
|
||||
A.subject, B.url)
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
# Add two dependent changes...
|
||||
|
@ -350,7 +350,7 @@ class TestGerritToGithubCRD(ZuulTestCase):
|
|||
|
||||
# Make sure the items still share a change queue, and the
|
||||
# first one is not live.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 1)
|
||||
queue = tenant.layout.pipelines['check'].queues[0]
|
||||
first_item = queue.queue[0]
|
||||
|
@ -725,7 +725,7 @@ class TestGithubToGerritCRD(ZuulTestCase):
|
|||
self.assertEqual(changes, '1,1 1,%s' %
|
||||
(A.head_sha,))
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
def test_crd_check_duplicate(self):
|
||||
|
@ -738,7 +738,7 @@ class TestGithubToGerritCRD(ZuulTestCase):
|
|||
|
||||
# A Depends-On: B
|
||||
A.editBody('Depends-On: %s\n' % (B.data['url'],))
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
# Add two dependent changes...
|
||||
|
@ -799,7 +799,7 @@ class TestGithubToGerritCRD(ZuulTestCase):
|
|||
|
||||
# Make sure the items still share a change queue, and the
|
||||
# first one is not live.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 1)
|
||||
queue = tenant.layout.pipelines['check'].queues[0]
|
||||
first_item = queue.queue[0]
|
||||
|
|
|
@ -425,7 +425,7 @@ class TestGerritCRD(ZuulTestCase):
|
|||
self.assertEqual(B.reported, 0)
|
||||
|
||||
self.assertEqual(self.history[0].changes, '2,1 1,1')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
def test_crd_check_git_depends(self):
|
||||
|
@ -453,7 +453,7 @@ class TestGerritCRD(ZuulTestCase):
|
|||
|
||||
self.assertEqual(self.history[0].changes, '1,1')
|
||||
self.assertEqual(self.history[-1].changes, '1,1 2,1')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
self.assertIn('Build succeeded', A.messages[0])
|
||||
|
@ -464,7 +464,7 @@ class TestGerritCRD(ZuulTestCase):
|
|||
self.executor_server.hold_jobs_in_build = True
|
||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||
B = self.fake_gerrit.addFakeChange('org/project1', 'master', 'B')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
# Add two git-dependent changes...
|
||||
|
@ -520,7 +520,7 @@ class TestGerritCRD(ZuulTestCase):
|
|||
|
||||
# Make sure the items still share a change queue, and the
|
||||
# first one is not live.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 1)
|
||||
queue = tenant.layout.pipelines['check'].queues[0]
|
||||
first_item = queue.queue[0]
|
||||
|
@ -573,7 +573,7 @@ class TestGerritCRD(ZuulTestCase):
|
|||
|
||||
# Make sure none of the items share a change queue, and all
|
||||
# are live.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
self.assertEqual(len(check_pipeline.queues), 3)
|
||||
self.assertEqual(len(check_pipeline.getAllItems()), 3)
|
||||
|
@ -767,7 +767,7 @@ class TestGerritCRDAltBaseUrl(ZuulTestCase):
|
|||
self.assertEqual(B.reported, 0)
|
||||
|
||||
self.assertEqual(self.history[0].changes, '2,1 1,1')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
|
||||
|
|
|
@ -354,7 +354,7 @@ class TestGerritLegacyCRD(ZuulTestCase):
|
|||
self.assertEqual(B.reported, 0)
|
||||
|
||||
self.assertEqual(self.history[0].changes, '2,1 1,1')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
def test_crd_check_git_depends(self):
|
||||
|
@ -382,7 +382,7 @@ class TestGerritLegacyCRD(ZuulTestCase):
|
|||
|
||||
self.assertEqual(self.history[0].changes, '1,1')
|
||||
self.assertEqual(self.history[-1].changes, '1,1 2,1')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
self.assertIn('Build succeeded', A.messages[0])
|
||||
|
@ -393,7 +393,7 @@ class TestGerritLegacyCRD(ZuulTestCase):
|
|||
self.executor_server.hold_jobs_in_build = True
|
||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||
B = self.fake_gerrit.addFakeChange('org/project1', 'master', 'B')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
# Add two git-dependent changes...
|
||||
|
@ -449,7 +449,7 @@ class TestGerritLegacyCRD(ZuulTestCase):
|
|||
|
||||
# Make sure the items still share a change queue, and the
|
||||
# first one is not live.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 1)
|
||||
queue = tenant.layout.pipelines['check'].queues[0]
|
||||
first_item = queue.queue[0]
|
||||
|
@ -502,7 +502,7 @@ class TestGerritLegacyCRD(ZuulTestCase):
|
|||
|
||||
# Make sure none of the items share a change queue, and all
|
||||
# are live.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
self.assertEqual(len(check_pipeline.queues), 3)
|
||||
self.assertEqual(len(check_pipeline.getAllItems()), 3)
|
||||
|
|
|
@ -26,8 +26,8 @@ class TestGitDriver(ZuulTestCase):
|
|||
|
||||
def setUp(self):
|
||||
super(TestGitDriver, self).setUp()
|
||||
self.git_connection = self.sched.connections.getSource('git').\
|
||||
connection
|
||||
self.git_connection = self.scheds.first.sched.connections\
|
||||
.getSource('git').connection
|
||||
|
||||
def setup_config(self, config_file: str):
|
||||
config = super(TestGitDriver, self).setup_config(config_file)
|
||||
|
@ -35,7 +35,7 @@ class TestGitDriver(ZuulTestCase):
|
|||
return config
|
||||
|
||||
def test_basic(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
# Check that we have the git source for common-config and the
|
||||
# gerrit source for the project.
|
||||
self.assertEqual('git', tenant.config_projects[0].source.name)
|
||||
|
@ -91,8 +91,8 @@ class TestGitDriver(ZuulTestCase):
|
|||
# Let's stop the git Watcher to let us merge some changes commits
|
||||
# We want to verify that config changes are detected for commits
|
||||
# on the range oldrev..newrev
|
||||
self.sched.connections.getSource('git').connection.\
|
||||
watcher_thread._pause = True
|
||||
self.scheds.first.sched.connections.getSource('git').connection\
|
||||
.watcher_thread._pause = True
|
||||
# Add a config change
|
||||
change = {
|
||||
'name': 'org/project',
|
||||
|
@ -114,8 +114,8 @@ class TestGitDriver(ZuulTestCase):
|
|||
'common-config', 'Adding f2',
|
||||
{'f2': "Content"})
|
||||
# Restart the git watcher
|
||||
self.sched.connections.getSource('git').connection.\
|
||||
watcher_thread._pause = False
|
||||
self.scheds.first.sched.connections.getSource('git').connection\
|
||||
.watcher_thread._pause = False
|
||||
|
||||
# Wait for the tenant reconfiguration to happen
|
||||
self.waitForEvent(count)
|
||||
|
|
|
@ -48,7 +48,7 @@ class TestGithubCrossRepoDeps(ZuulTestCase):
|
|||
B.head_sha))
|
||||
|
||||
# There should be no more changes in the queue
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
@simple_layout('layouts/crd-github.yaml', driver='github')
|
||||
|
|
|
@ -397,7 +397,7 @@ class TestGithubDriver(ZuulTestCase):
|
|||
@simple_layout('layouts/basic-github.yaml', driver='github')
|
||||
def test_git_https_url(self):
|
||||
"""Test that git_ssh option gives git url with ssh"""
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
_, project = tenant.getProject('org/project')
|
||||
|
||||
url = self.fake_github.real_getGitUrl(project)
|
||||
|
@ -406,7 +406,7 @@ class TestGithubDriver(ZuulTestCase):
|
|||
@simple_layout('layouts/basic-github.yaml', driver='github')
|
||||
def test_git_ssh_url(self):
|
||||
"""Test that git_ssh option gives git url with ssh"""
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
_, project = tenant.getProject('org/project')
|
||||
|
||||
url = self.fake_github_ssh.real_getGitUrl(project)
|
||||
|
@ -415,7 +415,7 @@ class TestGithubDriver(ZuulTestCase):
|
|||
@simple_layout('layouts/basic-github.yaml', driver='github')
|
||||
def test_git_enterprise_url(self):
|
||||
"""Test that git_url option gives git url with proper host"""
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
_, project = tenant.getProject('org/project')
|
||||
|
||||
url = self.fake_github_ent.real_getGitUrl(project)
|
||||
|
@ -898,7 +898,8 @@ class TestGithubDriver(ZuulTestCase):
|
|||
modified_files=modified_files)
|
||||
|
||||
# record previous tenant reconfiguration time, which may not be set
|
||||
old = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
old = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
self.waitUntilSettled()
|
||||
|
||||
if expected_cat_jobs is not None:
|
||||
|
@ -908,7 +909,8 @@ class TestGithubDriver(ZuulTestCase):
|
|||
|
||||
self.fake_github.emitEvent(pevent)
|
||||
self.waitUntilSettled()
|
||||
new = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
new = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
|
||||
if expect_reconfigure:
|
||||
# New timestamp should be greater than the old timestamp
|
||||
|
@ -1086,7 +1088,7 @@ class TestGithubDriver(ZuulTestCase):
|
|||
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
self.assertEqual(check_pipeline.getAllItems(), [])
|
||||
self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 2)
|
||||
|
@ -1222,7 +1224,8 @@ class TestGithubUnprotectedBranches(ZuulTestCase):
|
|||
tenant_config_file = 'config/unprotected-branches/main.yaml'
|
||||
|
||||
def test_unprotected_branches(self):
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants\
|
||||
.get('tenant-one')
|
||||
|
||||
project1 = tenant.untrusted_projects[0]
|
||||
project2 = tenant.untrusted_projects[1]
|
||||
|
@ -1243,7 +1246,7 @@ class TestGithubUnprotectedBranches(ZuulTestCase):
|
|||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
tpc1 = tenant.project_configs[project1.canonical_name]
|
||||
tpc2 = tenant.project_configs[project2.canonical_name]
|
||||
|
||||
|
@ -1338,12 +1341,14 @@ class TestGithubUnprotectedBranches(ZuulTestCase):
|
|||
modified_files=['zuul.yaml'])
|
||||
|
||||
# record previous tenant reconfiguration time, which may not be set
|
||||
old = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
old = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
self.waitUntilSettled()
|
||||
|
||||
self.fake_github.emitEvent(pevent)
|
||||
self.waitUntilSettled()
|
||||
new = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
new = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
|
||||
# We don't expect a reconfiguration because the push was to an
|
||||
# unprotected branch
|
||||
|
@ -1356,7 +1361,8 @@ class TestGithubUnprotectedBranches(ZuulTestCase):
|
|||
|
||||
self.fake_github.emitEvent(pevent)
|
||||
self.waitUntilSettled()
|
||||
new = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
new = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
|
||||
# We now expect that zuul reconfigured itself
|
||||
self.assertLess(old, new)
|
||||
|
@ -1380,7 +1386,8 @@ class TestGithubUnprotectedBranches(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
|
||||
# record previous tenant reconfiguration time, which may not be set
|
||||
old = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
old = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
self.waitUntilSettled()
|
||||
|
||||
# Delete the branch
|
||||
|
@ -1393,7 +1400,8 @@ class TestGithubUnprotectedBranches(ZuulTestCase):
|
|||
|
||||
self.fake_github.emitEvent(pevent)
|
||||
self.waitUntilSettled()
|
||||
new = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
new = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
|
||||
# We now expect that zuul reconfigured itself as we deleted a protected
|
||||
# branch
|
||||
|
|
|
@ -214,10 +214,12 @@ class TestPagureDriver(ZuulTestCase):
|
|||
newrev = repo.commit('refs/heads/stable-1.0').hexsha
|
||||
event = self.fake_pagure.getGitBranchEvent(
|
||||
'org/project', 'stable-1.0', 'creation', newrev)
|
||||
old = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
old = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
self.fake_pagure.emitEvent(event)
|
||||
self.waitUntilSettled()
|
||||
new = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
new = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
# New timestamp should be greater than the old timestamp
|
||||
self.assertLess(old, new)
|
||||
self.assertEqual(1, len(self.history))
|
||||
|
@ -245,7 +247,8 @@ class TestPagureDriver(ZuulTestCase):
|
|||
def test_ref_updated_and_tenant_reconfigure(self):
|
||||
|
||||
self.waitUntilSettled()
|
||||
old = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
old = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
|
||||
zuul_yaml = [
|
||||
{'job': {
|
||||
|
@ -271,7 +274,8 @@ class TestPagureDriver(ZuulTestCase):
|
|||
self.fake_pagure.emitEvent(event)
|
||||
self.waitUntilSettled()
|
||||
|
||||
new = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
new = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
# New timestamp should be greater than the old timestamp
|
||||
self.assertLess(old, new)
|
||||
|
||||
|
@ -325,7 +329,7 @@ class TestPagureDriver(ZuulTestCase):
|
|||
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
self.assertEqual(check_pipeline.getAllItems(), [])
|
||||
self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 2)
|
||||
|
@ -587,7 +591,7 @@ class TestPagureDriver(ZuulTestCase):
|
|||
B.commit_stop))
|
||||
|
||||
# There should be no more changes in the queue
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
|
||||
@simple_layout('layouts/crd-pagure.yaml', driver='pagure')
|
||||
|
|
|
@ -26,6 +26,7 @@ from kazoo.exceptions import NoNodeError
|
|||
|
||||
import git
|
||||
import testtools
|
||||
from zuul.scheduler import Scheduler
|
||||
|
||||
import zuul.change_matcher
|
||||
from zuul.driver.gerrit import gerritreporter
|
||||
|
@ -797,7 +798,7 @@ class TestScheduler(ZuulTestCase):
|
|||
# project-test1 and project-test2 for C
|
||||
self.assertEqual(len(self.builds), 5)
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
items = tenant.layout.pipelines['gate'].getAllItems()
|
||||
builds = items[0].current_build_set.getBuilds()
|
||||
self.assertEqual(self.countJobResults(builds, 'SUCCESS'), 1)
|
||||
|
@ -908,7 +909,8 @@ class TestScheduler(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
time.sleep(2)
|
||||
|
||||
data = json.loads(self.sched.formatStatusJSON('tenant-one'))
|
||||
data = json.loads(self.scheds.first.sched
|
||||
.formatStatusJSON('tenant-one'))
|
||||
found_job = None
|
||||
for pipeline in data['pipelines']:
|
||||
if pipeline['name'] != 'gate':
|
||||
|
@ -1224,7 +1226,7 @@ class TestScheduler(ZuulTestCase):
|
|||
"Test whether a change is ready to merge"
|
||||
# TODO: move to test_gerrit (this is a unit test!)
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
(trusted, project) = tenant.getProject('org/project')
|
||||
source = project.source
|
||||
|
||||
|
@ -2137,10 +2139,10 @@ class TestScheduler(ZuulTestCase):
|
|||
|
||||
@simple_layout('layouts/autohold.yaml')
|
||||
def test_autohold_request_expiration(self):
|
||||
orig_exp = self.sched.EXPIRED_HOLD_REQUEST_TTL
|
||||
orig_exp = Scheduler.EXPIRED_HOLD_REQUEST_TTL
|
||||
|
||||
def reset_exp():
|
||||
self.sched.EXPIRED_HOLD_REQUEST_TTL = orig_exp
|
||||
self.scheds.first.sched.EXPIRED_HOLD_REQUEST_TTL = orig_exp
|
||||
|
||||
self.addCleanup(reset_exp)
|
||||
|
||||
|
@ -2171,7 +2173,7 @@ class TestScheduler(ZuulTestCase):
|
|||
# Temporarily shorten hold time so that the hold request can be
|
||||
# auto-deleted (which is done on another test failure). And wait
|
||||
# long enough for nodes to expire and request to delete.
|
||||
self.sched.EXPIRED_HOLD_REQUEST_TTL = 1
|
||||
self.scheds.first.sched.EXPIRED_HOLD_REQUEST_TTL = 1
|
||||
time.sleep(3)
|
||||
|
||||
B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B')
|
||||
|
@ -2317,7 +2319,7 @@ class TestScheduler(ZuulTestCase):
|
|||
"Test that the merger works with large changes after a repack"
|
||||
# https://bugs.executepad.net/zuul/+bug/1078946
|
||||
# This test assumes the repo is already cloned; make sure it is
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
trusted, project = tenant.getProject('org/project')
|
||||
url = self.fake_gerrit.getGitUrl(project)
|
||||
self.executor_server.merger._addProject('review.example.com',
|
||||
|
@ -2399,7 +2401,7 @@ class TestScheduler(ZuulTestCase):
|
|||
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
# Add two git-dependent changes
|
||||
|
@ -2520,7 +2522,7 @@ class TestScheduler(ZuulTestCase):
|
|||
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B')
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
# Add two git-dependent changes
|
||||
|
@ -2746,7 +2748,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
|
||||
self.assertEqual(len(self.gearman_server.getQueue()), 0)
|
||||
self.assertTrue(self.sched._areAllBuildsComplete())
|
||||
self.assertTrue(self.scheds.first.sched._areAllBuildsComplete())
|
||||
self.assertEqual(len(self.history), 0)
|
||||
self.assertEqual(A.data['status'], 'MERGED')
|
||||
self.assertEqual(A.reported, 2)
|
||||
|
@ -2763,7 +2765,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.assertEqual(A.reported, False)
|
||||
|
||||
# Check queue is empty afterwards
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
items = check_pipeline.getAllItems()
|
||||
self.assertEqual(len(items), 0)
|
||||
|
@ -2859,7 +2861,7 @@ class TestScheduler(ZuulTestCase):
|
|||
|
||||
def test_statsd(self):
|
||||
"Test each of the statsd methods used in the scheduler"
|
||||
statsd = self.sched.statsd
|
||||
statsd = self.scheds.first.sched.statsd
|
||||
statsd.incr('test-incr')
|
||||
statsd.timing('test-timing', 3)
|
||||
statsd.gauge('test-gauge', 12)
|
||||
|
@ -2878,7 +2880,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.assertReportedStat('hostname-gauge.1_2_3_4.1_2', '12', 'g')
|
||||
|
||||
def test_statsd_conflict(self):
|
||||
statsd = self.sched.statsd
|
||||
statsd = self.scheds.first.sched.statsd
|
||||
statsd.gauge('test-gauge', 12)
|
||||
# since test-gauge is already a value, we can't make
|
||||
# subvalues. Test the assert works.
|
||||
|
@ -2907,7 +2909,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
# asserting that project-merge is removed from queue
|
||||
self.assertEqual(len(self.gearman_server.getQueue()), 0)
|
||||
self.assertTrue(self.sched._areAllBuildsComplete())
|
||||
self.assertTrue(self.scheds.first.sched._areAllBuildsComplete())
|
||||
|
||||
self.assertEqual(len(self.history), 1)
|
||||
self.assertEqual(self.history[0].name, 'gate-noop')
|
||||
|
@ -3149,7 +3151,7 @@ class TestScheduler(ZuulTestCase):
|
|||
|
||||
def test_queue_names(self):
|
||||
"Test shared change queue names"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
(trusted, project1) = tenant.getProject('org/project1')
|
||||
(trusted, project2) = tenant.getProject('org/project2')
|
||||
q1 = tenant.layout.pipelines['gate'].getQueue(project1)
|
||||
|
@ -3160,7 +3162,7 @@ class TestScheduler(ZuulTestCase):
|
|||
@simple_layout("layouts/template-queue.yaml")
|
||||
def test_template_queue(self):
|
||||
"Test a shared queue can be constructed from a project-template"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
(trusted, project1) = tenant.getProject('org/project1')
|
||||
(trusted, project2) = tenant.getProject('org/project2')
|
||||
q1 = tenant.layout.pipelines['gate'].getQueue(project1)
|
||||
|
@ -3171,7 +3173,7 @@ class TestScheduler(ZuulTestCase):
|
|||
@simple_layout("layouts/regex-template-queue.yaml")
|
||||
def test_regex_template_queue(self):
|
||||
"Test a shared queue can be constructed from a regex project-template"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
(trusted, project1) = tenant.getProject('org/project1')
|
||||
(trusted, project2) = tenant.getProject('org/project2')
|
||||
q1 = tenant.layout.pipelines['gate'].getQueue(project1)
|
||||
|
@ -3182,7 +3184,7 @@ class TestScheduler(ZuulTestCase):
|
|||
@simple_layout("layouts/regex-queue.yaml")
|
||||
def test_regex_queue(self):
|
||||
"Test a shared queue can be constructed from a regex project"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
(trusted, project1) = tenant.getProject('org/project1')
|
||||
(trusted, project2) = tenant.getProject('org/project2')
|
||||
q1 = tenant.layout.pipelines['gate'].getQueue(project1)
|
||||
|
@ -3221,24 +3223,28 @@ class TestScheduler(ZuulTestCase):
|
|||
def test_reconfigure_merge(self):
|
||||
"""Test that two reconfigure events are merged"""
|
||||
|
||||
tenant = self.sched.abide.tenants['tenant-one']
|
||||
tenant = self.scheds.first.sched.abide.tenants['tenant-one']
|
||||
(trusted, project) = tenant.getProject('org/project')
|
||||
|
||||
self.sched.run_handler_lock.acquire()
|
||||
self.assertEqual(self.sched.management_event_queue.qsize(), 0)
|
||||
self.scheds.first.sched.run_handler_lock.acquire()
|
||||
self.assertEqual(
|
||||
self.scheds.first.sched.management_event_queue.qsize(), 0)
|
||||
|
||||
self.sched.reconfigureTenant(tenant, project, None)
|
||||
self.assertEqual(self.sched.management_event_queue.qsize(), 1)
|
||||
self.scheds.first.sched.reconfigureTenant(tenant, project, None)
|
||||
self.assertEqual(
|
||||
self.scheds.first.sched.management_event_queue.qsize(), 1)
|
||||
|
||||
self.sched.reconfigureTenant(tenant, project, None)
|
||||
self.scheds.first.sched.reconfigureTenant(tenant, project, None)
|
||||
# The second event should have been combined with the first
|
||||
# so we should still only have one entry.
|
||||
self.assertEqual(self.sched.management_event_queue.qsize(), 1)
|
||||
self.assertEqual(
|
||||
self.scheds.first.sched.management_event_queue.qsize(), 1)
|
||||
|
||||
self.sched.run_handler_lock.release()
|
||||
self.scheds.first.sched.run_handler_lock.release()
|
||||
self.waitUntilSettled()
|
||||
|
||||
self.assertEqual(self.sched.management_event_queue.qsize(), 0)
|
||||
self.assertEqual(
|
||||
self.scheds.first.sched.management_event_queue.qsize(), 0)
|
||||
|
||||
def test_live_reconfiguration(self):
|
||||
"Test that live reconfiguration works"
|
||||
|
@ -3267,7 +3273,8 @@ class TestScheduler(ZuulTestCase):
|
|||
"Test that live reconfiguration via command socket works"
|
||||
|
||||
# record previous tenant reconfiguration time, which may not be set
|
||||
old = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
old = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
self.waitUntilSettled()
|
||||
|
||||
command_socket = self.config.get('scheduler', 'command_socket')
|
||||
|
@ -3282,7 +3289,8 @@ class TestScheduler(ZuulTestCase):
|
|||
while True:
|
||||
if time.time() - start > 15:
|
||||
raise Exception("Timeout waiting for full reconfiguration")
|
||||
new = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
new = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
if old < new:
|
||||
break
|
||||
else:
|
||||
|
@ -3297,7 +3305,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.fake_gerrit.addEvent(A.addApproval('Approved', 1))
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
pipeline = tenant.layout.pipelines['gate']
|
||||
change = pipeline.getAllItems()[0].change
|
||||
# Set this to an invalid value to cause an exception during
|
||||
|
@ -3665,7 +3673,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.assertEqual(B.reported, 0)
|
||||
self.assertEqual(C.reported, 0)
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(tenant.layout.pipelines['check'].queues), 0)
|
||||
self.assertIn('Build succeeded', A.messages[0])
|
||||
|
||||
|
@ -3769,7 +3777,8 @@ class TestScheduler(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
|
||||
def get_job():
|
||||
data = json.loads(self.sched.formatStatusJSON('tenant-one'))
|
||||
data = json.loads(self.scheds.first.sched
|
||||
.formatStatusJSON('tenant-one'))
|
||||
for pipeline in data['pipelines']:
|
||||
for queue in pipeline['change_queues']:
|
||||
for head in queue['heads']:
|
||||
|
@ -3781,7 +3790,7 @@ class TestScheduler(ZuulTestCase):
|
|||
job = get_job()
|
||||
self.assertTrue(job['queued'])
|
||||
|
||||
self.sched.reconfigure(self.config)
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(self.config))
|
||||
self.waitUntilSettled()
|
||||
|
||||
job = get_job()
|
||||
|
@ -3944,7 +3953,8 @@ class TestScheduler(ZuulTestCase):
|
|||
|
||||
# Ensure that the status json has the ref so we can render it in the
|
||||
# web ui.
|
||||
data = json.loads(self.sched.formatStatusJSON('tenant-one'))
|
||||
data = json.loads(self.scheds.first.sched
|
||||
.formatStatusJSON('tenant-one'))
|
||||
pipeline = [x for x in data['pipelines'] if x['name'] == 'periodic'][0]
|
||||
first = pipeline['change_queues'][0]['heads'][0][0]
|
||||
second = pipeline['change_queues'][1]['heads'][0][0]
|
||||
|
@ -4058,7 +4068,7 @@ class TestScheduler(ZuulTestCase):
|
|||
# should succeed.
|
||||
report_mock.side_effect = Exception('Gerrit failed to report')
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check = tenant.layout.pipelines['check']
|
||||
|
||||
check.success_actions = sorted(check.success_actions,
|
||||
|
@ -4388,7 +4398,7 @@ class TestScheduler(ZuulTestCase):
|
|||
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
gate_pipeline = tenant.layout.pipelines['gate']
|
||||
self.assertEqual(gate_pipeline.getAllItems(), [])
|
||||
self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 1)
|
||||
|
@ -4426,7 +4436,7 @@ class TestScheduler(ZuulTestCase):
|
|||
ref=None)
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
self.assertEqual(len(check_pipeline.getAllItems()), 2)
|
||||
self.assertEqual(self.countJobResults(self.history, 'ABORTED'), 1)
|
||||
|
@ -4627,7 +4637,7 @@ class TestScheduler(ZuulTestCase):
|
|||
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
items = tenant.layout.pipelines['gate'].getAllItems()
|
||||
enqueue_times = {}
|
||||
for item in items:
|
||||
|
@ -4825,7 +4835,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.executor_server.release('project-.*')
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
# A failed so window is reduced by 1 to 1.
|
||||
self.assertEqual(queue.window, 1)
|
||||
|
@ -4913,7 +4923,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.executor_server.release('project-.*')
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
# A failed so window is reduced by 1 to 1.
|
||||
self.assertEqual(queue.window, 1)
|
||||
|
@ -5035,7 +5045,7 @@ class TestScheduler(ZuulTestCase):
|
|||
# D's remaining job
|
||||
self.assertEqual(self.builds[2].name, 'project-test2')
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
self.assertEqual(queue.window, 1)
|
||||
|
||||
|
@ -5066,7 +5076,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.fake_gerrit.addEvent(B.addApproval('Approved', 1))
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
self.assertEqual(queue.window, 20)
|
||||
self.assertTrue(len(self.builds), 4)
|
||||
|
@ -5076,7 +5086,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.commitConfigUpdate('org/common-config',
|
||||
'layouts/reconfigure-window2.yaml')
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
# Even though we have configured a smaller window, the value
|
||||
# on the existing shared queue should be used.
|
||||
|
@ -5084,7 +5094,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.assertTrue(len(self.builds), 4)
|
||||
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
self.assertEqual(queue.window, 20)
|
||||
self.assertTrue(len(self.builds), 4)
|
||||
|
@ -5114,7 +5124,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.fake_gerrit.addEvent(B.addApproval('Approved', 1))
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
self.assertEqual(queue.window, 2)
|
||||
self.assertEqual(len(self.builds), 4)
|
||||
|
@ -5124,7 +5134,7 @@ class TestScheduler(ZuulTestCase):
|
|||
'layouts/reconfigure-window-fixed2.yaml')
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
self.waitUntilSettled()
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
# Because we have configured a static window, it should
|
||||
# be allowed to shrink on reconfiguration.
|
||||
|
@ -5134,7 +5144,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.assertEqual(len(self.builds), 4)
|
||||
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
self.assertEqual(queue.window, 1)
|
||||
self.waitUntilSettled()
|
||||
|
@ -5173,7 +5183,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
self.log.debug("B complete")
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
self.assertEqual(queue.window, 2)
|
||||
self.assertEqual(len(self.builds), 2)
|
||||
|
@ -5185,7 +5195,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
self.log.debug("Reconfiguration complete")
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
# Because we have configured a static window, it should
|
||||
# be allowed to shrink on reconfiguration.
|
||||
|
@ -5209,7 +5219,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
self.log.debug("Executor unpause complete")
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
queue = tenant.layout.pipelines['gate'].queues[0]
|
||||
self.assertEqual(queue.window, 1)
|
||||
|
||||
|
@ -5342,7 +5352,7 @@ For CI problems and help debugging, contact ci@example.org"""
|
|||
def test_merge_failure_reporters(self):
|
||||
"""Check that the config is set up correctly"""
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(
|
||||
"Merge Failed.\n\nThis change or one of its cross-repo "
|
||||
"dependencies was unable to be automatically merged with the "
|
||||
|
@ -5527,7 +5537,7 @@ For CI problems and help debugging, contact ci@example.org"""
|
|||
def test_disable_at(self):
|
||||
"Test a pipeline will only report to the disabled trigger when failing"
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(3, tenant.layout.pipelines['check'].disable_at)
|
||||
self.assertEqual(
|
||||
0, tenant.layout.pipelines['check']._consecutive_failures)
|
||||
|
@ -5625,7 +5635,7 @@ For CI problems and help debugging, contact ci@example.org"""
|
|||
# comes out of disabled
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
self.assertEqual(3, tenant.layout.pipelines['check'].disable_at)
|
||||
self.assertEqual(
|
||||
|
@ -5772,11 +5782,11 @@ For CI problems and help debugging, contact ci@example.org"""
|
|||
# We're waiting on the nodepool request to complete. Stop the
|
||||
# scheduler from processing further events, then fulfill the
|
||||
# nodepool request.
|
||||
self.sched.run_handler_lock.acquire()
|
||||
self.scheds.first.sched.run_handler_lock.acquire()
|
||||
|
||||
# Fulfill the nodepool request.
|
||||
self.fake_nodepool.unpause()
|
||||
requests = list(self.sched.nodepool.requests.values())
|
||||
requests = list(self.scheds.first.sched.nodepool.requests.values())
|
||||
self.assertEqual(1, len(requests))
|
||||
request = requests[0]
|
||||
for x in iterate_timeout(30, 'fulfill request'):
|
||||
|
@ -5791,7 +5801,7 @@ For CI problems and help debugging, contact ci@example.org"""
|
|||
|
||||
# Allow the scheduler to continue and process the (now
|
||||
# out-of-date) notification that nodes are ready.
|
||||
self.sched.run_handler_lock.release()
|
||||
self.scheds.first.sched.run_handler_lock.release()
|
||||
|
||||
# It should resubmit the request, once it's fulfilled, we can
|
||||
# wait for it to run jobs and settle.
|
||||
|
@ -5980,7 +5990,7 @@ For CI problems and help debugging, contact ci@example.org"""
|
|||
# Fulfill only the first request
|
||||
self.fake_nodepool.fulfillRequest(reqs[0])
|
||||
for x in iterate_timeout(30, 'fulfill request'):
|
||||
if len(self.sched.nodepool.requests) < 4:
|
||||
if len(self.scheds.first.sched.nodepool.requests) < 4:
|
||||
break
|
||||
self.waitUntilSettled()
|
||||
|
||||
|
@ -6091,13 +6101,13 @@ For CI problems and help debugging, contact ci@example.org"""
|
|||
self.fake_gerrit.addEvent(A.getRefUpdatedEvent())
|
||||
self.waitUntilSettled()
|
||||
# Reconfigure while we still have an outstanding merge job
|
||||
self.sched.reconfigureTenant(self.sched.abide.tenants['tenant-one'],
|
||||
None, None)
|
||||
self.scheds.first.sched.reconfigureTenant(
|
||||
self.scheds.first.sched.abide.tenants['tenant-one'], None, None)
|
||||
self.waitUntilSettled()
|
||||
# Verify the merge job is still running and that the item is
|
||||
# in the pipeline
|
||||
self.assertEqual(len(self.sched.merger.jobs), 1)
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(len(self.scheds.first.sched.merger.jobs), 1)
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
pipeline = tenant.layout.pipelines['post']
|
||||
self.assertEqual(len(pipeline.getAllItems()), 1)
|
||||
self.gearman_server.hold_merge_jobs_in_queue = False
|
||||
|
@ -7052,7 +7062,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
|
||||
def test_semaphore_one(self):
|
||||
"Test semaphores with max=1 (mutex)"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
|
||||
|
@ -7133,7 +7143,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
|
||||
def test_semaphore_two(self):
|
||||
"Test semaphores with max>1"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||
|
@ -7213,7 +7223,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
|
||||
def test_semaphore_node_failure(self):
|
||||
"Test semaphore and node failure"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
# Pause nodepool so we can fail the node request later
|
||||
self.fake_nodepool.pause()
|
||||
|
@ -7245,7 +7255,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
|
||||
def test_semaphore_resources_first(self):
|
||||
"Test semaphores with max=1 (mutex) and get resources first"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
|
||||
|
@ -7292,7 +7302,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
|
||||
def test_semaphore_resources_first_node_failure(self):
|
||||
"Test semaphore and node failure"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
# Pause nodepool so we can fail the node request later
|
||||
self.fake_nodepool.pause()
|
||||
|
@ -7324,7 +7334,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
|
||||
def test_semaphore_zk_error(self):
|
||||
"Test semaphore release with zk error"
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
A = self.fake_gerrit.addFakeChange('org/project2', 'master', 'A')
|
||||
self.assertFalse('test-semaphore' in
|
||||
|
@ -7354,7 +7364,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
def test_semaphore_abandon(self):
|
||||
"Test abandon with job semaphores"
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
|
@ -7390,7 +7400,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
# and aquiring the semaphore.
|
||||
self.fake_nodepool.paused = True
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
|
@ -7432,7 +7442,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
# in a controlled manner.
|
||||
self.fake_nodepool.paused = True
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
|
@ -7470,7 +7480,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
def test_semaphore_new_patchset(self):
|
||||
"Test new patchset with job semaphores"
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
|
@ -7510,7 +7520,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
def test_semaphore_reconfigure(self):
|
||||
"Test reconfigure with job semaphores"
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
self.assertFalse('test-semaphore' in
|
||||
tenant.semaphore_handler.semaphores)
|
||||
|
@ -7524,7 +7534,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
# reconfigure without layout change
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
self.waitUntilSettled()
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
# semaphore still must be held
|
||||
self.assertTrue('test-semaphore' in
|
||||
|
@ -7535,7 +7545,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
'config/semaphore/zuul-reconfiguration.yaml')
|
||||
self.scheds.execute(lambda app: app.sched.reconfigure(app.config))
|
||||
self.waitUntilSettled()
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
self.executor_server.release('project-test1')
|
||||
self.waitUntilSettled()
|
||||
|
@ -7550,7 +7560,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
def test_semaphore_reconfigure_job_removal(self):
|
||||
"Test job removal during reconfiguration with semaphores"
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
self.assertFalse('test-semaphore' in
|
||||
|
@ -7573,7 +7583,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
|
||||
# The check pipeline should be empty
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
items = check_pipeline.getAllItems()
|
||||
self.assertEqual(len(items), 0)
|
||||
|
@ -7597,7 +7607,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
# reconfiguration.
|
||||
self.fake_nodepool.pause()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
|
||||
self.assertFalse('test-semaphore' in
|
||||
|
@ -7624,7 +7634,7 @@ class TestSemaphore(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
|
||||
# The check pipeline should be empty
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
items = check_pipeline.getAllItems()
|
||||
self.assertEqual(len(items), 0)
|
||||
|
@ -7645,8 +7655,8 @@ class TestSemaphoreMultiTenant(ZuulTestCase):
|
|||
"Test semaphores in multiple tenants"
|
||||
|
||||
self.waitUntilSettled()
|
||||
tenant_one = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant_two = self.sched.abide.tenants.get('tenant-two')
|
||||
tenant_one = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
tenant_two = self.scheds.first.sched.abide.tenants.get('tenant-two')
|
||||
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||
|
@ -7837,7 +7847,7 @@ class TestSemaphoreInRepo(ZuulTestCase):
|
|||
# after the change lands.
|
||||
|
||||
self.waitUntilSettled()
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
|
||||
in_repo_conf = textwrap.dedent(
|
||||
"""
|
||||
|
@ -7920,7 +7930,7 @@ class TestSemaphoreInRepo(ZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
|
||||
# now that change A was merged, the new semaphore max must be effective
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEqual(tenant.layout.semaphores.get('test-semaphore').max, 2)
|
||||
|
||||
# two builds must be in queue, two semaphores acquired
|
||||
|
@ -8259,8 +8269,10 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase):
|
|||
self.fake_gerrit.addEvent(C.getPatchsetCreatedEvent(1))
|
||||
|
||||
# record previous tenant reconfiguration time, which may not be set
|
||||
old_one = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
old_two = self.sched.tenant_last_reconfigured.get('tenant-two', 0)
|
||||
old_one = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
old_two = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-two', 0)
|
||||
self.waitUntilSettled()
|
||||
|
||||
self.newTenantConfig('config/multi-tenant/main-reconfig.yaml')
|
||||
|
@ -8276,7 +8288,8 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase):
|
|||
while True:
|
||||
if time.time() - start > 15:
|
||||
raise Exception("Timeout waiting for smart reconfiguration")
|
||||
new_two = self.sched.tenant_last_reconfigured.get('tenant-two', 0)
|
||||
new_two = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-two', 0)
|
||||
if old_two < new_two:
|
||||
break
|
||||
else:
|
||||
|
@ -8284,7 +8297,8 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase):
|
|||
|
||||
# Ensure that tenant-one has not been reconfigured
|
||||
self.waitUntilSettled()
|
||||
new_one = self.sched.tenant_last_reconfigured.get('tenant-one', 0)
|
||||
new_one = self.scheds.first.sched.tenant_last_reconfigured\
|
||||
.get('tenant-one', 0)
|
||||
self.assertEqual(old_one, new_one)
|
||||
|
||||
self.executor_server.hold_jobs_in_build = False
|
||||
|
@ -8300,10 +8314,11 @@ class TestSchedulerSmartReconfiguration(ZuulTestCase):
|
|||
|
||||
# Verify known tenants
|
||||
expected_tenants = {'tenant-one', 'tenant-two', 'tenant-four'}
|
||||
self.assertEqual(expected_tenants, self.sched.abide.tenants.keys())
|
||||
self.assertEqual(expected_tenants,
|
||||
self.scheds.first.sched.abide.tenants.keys())
|
||||
|
||||
self.assertIsNotNone(
|
||||
self.sched.tenant_last_reconfigured.get('tenant-four'),
|
||||
self.assertIsNotNone(self.scheds.first.sched.tenant_last_reconfigured
|
||||
.get('tenant-four'),
|
||||
'Tenant tenant-four should exist now.')
|
||||
|
||||
# Test that the new tenant-four actually works
|
||||
|
|
|
@ -1139,7 +1139,7 @@ class TestInRepoConfig(ZuulTestCase):
|
|||
files=file_dict)
|
||||
self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1))
|
||||
self.waitUntilSettled()
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 0,
|
||||
"No error should have been accumulated")
|
||||
|
@ -1233,7 +1233,7 @@ class TestInRepoConfig(ZuulTestCase):
|
|||
def test_dynamic_config_new_patchset(self):
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
check_pipeline = tenant.layout.pipelines['check']
|
||||
|
||||
in_repo_conf = textwrap.dedent(
|
||||
|
@ -2186,7 +2186,7 @@ class TestInRepoConfig(ZuulTestCase):
|
|||
self.fake_gerrit.addEvent(B.getChangeMergedEvent())
|
||||
self.waitUntilSettled()
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
# Ensure the latest change is reflected in the config; if it
|
||||
# isn't this will raise an exception.
|
||||
tenant.layout.getJob('project-test2')
|
||||
|
@ -2536,7 +2536,7 @@ class TestInRepoJoin(ZuulTestCase):
|
|||
# dependent pipeline for the first time
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
gate_pipeline = tenant.layout.pipelines['gate']
|
||||
self.assertEqual(gate_pipeline.queues, [])
|
||||
|
||||
|
@ -3083,7 +3083,7 @@ class TestBrokenTrustedConfig(ZuulTestCase):
|
|||
|
||||
def test_broken_config_on_startup(self):
|
||||
# verify get the errors at tenant level.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
loading_errors = tenant.layout.loading_errors
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 1,
|
||||
|
@ -3140,7 +3140,7 @@ class TestBrokenConfig(ZuulTestCase):
|
|||
|
||||
def test_broken_config_on_startup(self):
|
||||
# verify get the errors at tenant level.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
loading_errors = tenant.layout.loading_errors
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 2,
|
||||
|
@ -3156,7 +3156,7 @@ class TestBrokenConfig(ZuulTestCase):
|
|||
def test_broken_config_on_startup_template(self):
|
||||
# Verify that a missing project-template doesn't break gate
|
||||
# pipeline construction.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 1,
|
||||
"An error should have been stored")
|
||||
|
@ -3167,7 +3167,7 @@ class TestBrokenConfig(ZuulTestCase):
|
|||
@simple_layout('layouts/broken-double-gate.yaml')
|
||||
def test_broken_config_on_startup_double_gate(self):
|
||||
# Verify that duplicated pipeline definitions raise config errors
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 1,
|
||||
"An error should have been stored")
|
||||
|
@ -3177,7 +3177,7 @@ class TestBrokenConfig(ZuulTestCase):
|
|||
|
||||
def test_dynamic_ignore(self):
|
||||
# Verify dynamic config behaviors inside a tenant broken config
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
# There is a configuration error
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 2,
|
||||
|
@ -3209,7 +3209,7 @@ class TestBrokenConfig(ZuulTestCase):
|
|||
|
||||
def test_dynamic_fail_unbroken(self):
|
||||
# Verify dynamic config behaviors inside a tenant broken config
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
# There is a configuration error
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 2,
|
||||
|
@ -3243,7 +3243,7 @@ class TestBrokenConfig(ZuulTestCase):
|
|||
|
||||
def test_dynamic_fail_broken(self):
|
||||
# Verify dynamic config behaviors inside a tenant broken config
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
# There is a configuration error
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 2,
|
||||
|
@ -3277,7 +3277,7 @@ class TestBrokenConfig(ZuulTestCase):
|
|||
|
||||
def test_dynamic_fix_broken(self):
|
||||
# Verify dynamic config behaviors inside a tenant broken config
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
# There is a configuration error
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 2,
|
||||
|
@ -3309,7 +3309,7 @@ class TestBrokenConfig(ZuulTestCase):
|
|||
|
||||
def test_dynamic_fail_cross_repo(self):
|
||||
# Verify dynamic config behaviors inside a tenant broken config
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
# There is a configuration error
|
||||
self.assertEquals(
|
||||
len(tenant.layout.loading_errors), 2,
|
||||
|
@ -3735,7 +3735,7 @@ class TestDataReturn(AnsibleZuulTestCase):
|
|||
self.waitUntilSettled()
|
||||
|
||||
# Make sure skipped jobs are not reported as failing
|
||||
tenant = self.sched.abide.tenants.get("tenant-one")
|
||||
tenant = self.scheds.first.sched.abide.tenants.get("tenant-one")
|
||||
status = tenant.layout.pipelines["check"].formatStatusJSON()
|
||||
self.assertEqual(
|
||||
status["change_queues"][0]["heads"][0][0]["failing_reasons"], [])
|
||||
|
@ -4042,7 +4042,7 @@ class TestPragma(ZuulTestCase):
|
|||
|
||||
# This is an untrusted repo with 2 branches, so it should have
|
||||
# an implied branch matcher for the job.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
jobs = tenant.layout.getJobs('test-job')
|
||||
self.assertEqual(len(jobs), 1)
|
||||
for job in tenant.layout.getJobs('test-job'):
|
||||
|
@ -4070,7 +4070,7 @@ class TestPragma(ZuulTestCase):
|
|||
# This is an untrusted repo with 2 branches, so it would
|
||||
# normally have an implied branch matcher, but our pragma
|
||||
# overrides it.
|
||||
tenant = self.sched.abide.tenants.get('tenant-one')
|
||||
tenant = self.scheds.first.sched.abide.tenants.get('tenant-one')
|
||||
jobs = tenant.layout.getJobs('test-job')
|
||||
self.assertEqual(len(jobs), 1)
|
||||
for job in tenant.layout.getJobs('test-job'):
|
||||
|
|
|
@ -69,11 +69,12 @@ class TestZuulTriggerParentChangeEnqueued(ZuulTestCase):
|
|||
nonlocal zuultrigger_event_count
|
||||
if isinstance(args[0], ZuulTriggerEvent):
|
||||
zuultrigger_event_count += 1
|
||||
self.sched.trigger_event_queue.put_orig(*args, **kwargs)
|
||||
self.scheds.first.sched.trigger_event_queue\
|
||||
.put_orig(*args, **kwargs)
|
||||
|
||||
self.sched.trigger_event_queue.put_orig = \
|
||||
self.sched.trigger_event_queue.put
|
||||
self.sched.trigger_event_queue.put = counting_put
|
||||
self.scheds.first.sched.trigger_event_queue.put_orig = \
|
||||
self.scheds.first.sched.trigger_event_queue.put
|
||||
self.scheds.first.sched.trigger_event_queue.put = counting_put
|
||||
|
||||
C = self.fake_gerrit.addFakeChange('org/project', 'master', 'C')
|
||||
C.addApproval('Verified', -1)
|
||||
|
@ -150,11 +151,12 @@ class TestZuulTriggerParentChangeEnqueuedGithub(ZuulGithubAppTestCase):
|
|||
nonlocal zuultrigger_event_count
|
||||
if isinstance(args[0], ZuulTriggerEvent):
|
||||
zuultrigger_event_count += 1
|
||||
self.sched.trigger_event_queue.put_orig(*args, **kwargs)
|
||||
self.scheds.first.sched.trigger_event_queue\
|
||||
.put_orig(*args, **kwargs)
|
||||
|
||||
self.sched.trigger_event_queue.put_orig = \
|
||||
self.sched.trigger_event_queue.put
|
||||
self.sched.trigger_event_queue.put = counting_put
|
||||
self.scheds.first.sched.trigger_event_queue.put_orig = \
|
||||
self.scheds.first.sched.trigger_event_queue.put
|
||||
self.scheds.first.sched.trigger_event_queue.put = counting_put
|
||||
|
||||
C = self.fake_github.openFakePullRequest('org/project', 'master', 'C')
|
||||
C.addLabel('for-check') # should go to check
|
||||
|
|
Loading…
Reference in New Issue