diff --git a/tests/base.py b/tests/base.py index 2c478ad433..61e1deb8af 100755 --- a/tests/base.py +++ b/tests/base.py @@ -1180,7 +1180,7 @@ class FakeBuild(object): self.log.debug("Build %s continuing" % self.unique) result = (RecordingAnsibleJob.RESULT_NORMAL, 0) # Success - if (('ZUUL_REF' in self.parameters) and self.shouldFail()): + if self.shouldFail(): result = (RecordingAnsibleJob.RESULT_NORMAL, 1) # Failure if self.aborted: result = (RecordingAnsibleJob.RESULT_ABORTED, None) @@ -1215,8 +1215,7 @@ class FakeBuild(object): except NoSuchPathError as e: self.log.debug('%s' % e) return False - ref = self.parameters['ZUUL_REF'] - repo_messages = [c.message.strip() for c in repo.iter_commits(ref)] + repo_messages = [c.message.strip() for c in repo.iter_commits()] commit_message = '%s-1' % change.subject self.log.debug("Checking if build %s has changes; commit_message " "%s; repo_messages %s" % (self, commit_message, diff --git a/tests/unit/test_scheduler.py b/tests/unit/test_scheduler.py index d4290a91dd..e995d89df8 100755 --- a/tests/unit/test_scheduler.py +++ b/tests/unit/test_scheduler.py @@ -4776,12 +4776,10 @@ class TestSchedulerMerges(ZuulTestCase): self.waitUntilSettled() build = self.builds[-1] - ref = self.getParameter(build, 'ZUUL_REF') - path = os.path.join(build.jobdir.src_root, 'review.example.com', project) repo = git.Repo(path) - repo_messages = [c.message.strip() for c in repo.iter_commits(ref)] + repo_messages = [c.message.strip() for c in repo.iter_commits()] repo_messages.reverse() self.executor_server.hold_jobs_in_build = False @@ -4848,12 +4846,11 @@ class TestSchedulerMerges(ZuulTestCase): build = self.builds[-1] self.assertEqual(self.getParameter(build, 'ZUUL_BRANCH'), 'mp') - ref = self.getParameter(build, 'ZUUL_REF') path = os.path.join(build.jobdir.src_root, 'review.example.com', 'org/project-merge-branches') repo = git.Repo(path) - repo_messages = [c.message.strip() for c in repo.iter_commits(ref)] + repo_messages = [c.message.strip() for c in repo.iter_commits()] repo_messages.reverse() correct_messages = [ 'initial commit', @@ -4889,16 +4886,14 @@ class TestSchedulerMerges(ZuulTestCase): for job in self.builds: if 'project-merge' in job.name: job_A = job - ref_A = self.getParameter(job_A, 'ZUUL_REF') commit_A = self.getParameter(job_A, 'ZUUL_COMMIT') - self.log.debug("Got Zuul ref for change A: %s" % ref_A) self.log.debug("Got Zuul commit for change A: %s" % commit_A) path = os.path.join(job_A.jobdir.src_root, 'review.example.com', 'org/project-merge-branches') repo = git.Repo(path) repo_messages = [c.message.strip() - for c in repo.iter_commits(ref_A)] + for c in repo.iter_commits()] repo_messages.reverse() correct_messages = [ 'initial commit', 'add content from fixture', 'A-1'] @@ -4911,16 +4906,13 @@ class TestSchedulerMerges(ZuulTestCase): for job in self.builds: if 'project-merge' in job.name: job_B = job - ref_B = self.getParameter(job_B, 'ZUUL_REF') commit_B = self.getParameter(job_B, 'ZUUL_COMMIT') - self.log.debug("Got Zuul ref for change B: %s" % ref_B) self.log.debug("Got Zuul commit for change B: %s" % commit_B) path = os.path.join(job_B.jobdir.src_root, 'review.example.com', 'org/project-merge-branches') repo = git.Repo(path) - repo_messages = [c.message.strip() - for c in repo.iter_commits(ref_B)] + repo_messages = [c.message.strip() for c in repo.iter_commits()] repo_messages.reverse() correct_messages = [ 'initial commit', 'add content from fixture', 'mp commit', 'B-1'] @@ -4933,15 +4925,12 @@ class TestSchedulerMerges(ZuulTestCase): for job in self.builds: if 'project-merge' in job.name: job_C = job - ref_C = self.getParameter(job_C, 'ZUUL_REF') commit_C = self.getParameter(job_C, 'ZUUL_COMMIT') - self.log.debug("Got Zuul ref for change C: %s" % ref_C) self.log.debug("Got Zuul commit for change C: %s" % commit_C) path = os.path.join(job_C.jobdir.src_root, 'review.example.com', 'org/project-merge-branches') repo = git.Repo(path) - repo_messages = [c.message.strip() - for c in repo.iter_commits(ref_C)] + repo_messages = [c.message.strip() for c in repo.iter_commits()] repo_messages.reverse() correct_messages = [ diff --git a/zuul/driver/gerrit/gerritconnection.py b/zuul/driver/gerrit/gerritconnection.py index 8f8465afd3..98adc69b53 100644 --- a/zuul/driver/gerrit/gerritconnection.py +++ b/zuul/driver/gerrit/gerritconnection.py @@ -80,7 +80,7 @@ class GerritEventConnector(threading.Thread): patchset = data.get('patchSet') if patchset: event.patch_number = patchset.get('number') - event.refspec = patchset.get('ref') + event.ref = patchset.get('ref') event.approvals = data.get('approvals', []) event.comment = data.get('comment') refupdate = data.get('refUpdate') @@ -418,7 +418,7 @@ class GerritConnection(BaseConnection): files = [] for ps in data['patchSets']: if ps['number'] == change.patchset: - change.refspec = ps['ref'] + change.ref = ps['ref'] for f in ps.get('files', []): files.append(f['file']) if int(ps['number']) > int(max_ps): diff --git a/zuul/driver/github/githubconnection.py b/zuul/driver/github/githubconnection.py index ff113ce2bf..c3cafba3b1 100644 --- a/zuul/driver/github/githubconnection.py +++ b/zuul/driver/github/githubconnection.py @@ -299,7 +299,7 @@ class GithubWebhookListener(): event.change_number) event.updated_at = pr_body.get('updated_at') event.branch = base.get('ref') - event.refspec = "refs/pull/" + str(pr_body.get('number')) + "/head" + event.ref = "refs/pull/" + str(pr_body.get('number')) + "/head" event.patch_number = head.get('sha') event.title = pr_body.get('title') @@ -601,7 +601,7 @@ class GithubConnection(BaseConnection): self.log.info("Updating %s" % (change,)) change.pr = self.getPull(change.project.name, change.number) - change.refspec = "refs/pull/%s/head" % change.number + change.ref = "refs/pull/%s/head" % change.number change.branch = change.pr.get('base').get('ref') change.files = change.pr.get('files') change.title = change.pr.get('title') diff --git a/zuul/driver/sql/sqlreporter.py b/zuul/driver/sql/sqlreporter.py index 214b667124..aca1b069ba 100644 --- a/zuul/driver/sql/sqlreporter.py +++ b/zuul/driver/sql/sqlreporter.py @@ -41,14 +41,14 @@ class SQLReporter(BaseReporter): with self.connection.engine.begin() as conn: change = getattr(item.change, 'number', '') patchset = getattr(item.change, 'patchset', '') - refspec = getattr(item.change, 'refspec', item.change.newrev) + ref = getattr(item.change, 'ref', '') buildset_ins = self.connection.zuul_buildset_table.insert().values( zuul_ref=item.current_build_set.ref, pipeline=item.pipeline.name, project=item.change.project.name, change=change, patchset=patchset, - ref=refspec, + ref=ref, score=self.result_score, message=self._formatItemReport( item, with_jobs=False), diff --git a/zuul/driver/zuul/__init__.py b/zuul/driver/zuul/__init__.py index 08612dcc91..0f6ec7da88 100644 --- a/zuul/driver/zuul/__init__.py +++ b/zuul/driver/zuul/__init__.py @@ -82,7 +82,7 @@ class ZuulDriver(Driver, TriggerInterface): event.branch = change.branch event.change_url = change.url event.patch_number = change.patchset - event.refspec = change.refspec + event.ref = change.ref self.sched.addEvent(event) def _createParentChangeEnqueuedEvents(self, change, pipeline): @@ -104,7 +104,7 @@ class ZuulDriver(Driver, TriggerInterface): event.branch = change.branch event.change_url = change.url event.patch_number = change.patchset - event.refspec = change.refspec + event.ref = change.ref self.sched.addEvent(event) def getTrigger(self, connection_name, config=None): diff --git a/zuul/executor/client.py b/zuul/executor/client.py index beb8964fa8..49569ccf41 100644 --- a/zuul/executor/client.py +++ b/zuul/executor/client.py @@ -196,10 +196,10 @@ class ExecutorClient(object): params['ZUUL_PIPELINE'] = pipeline.name params['ZUUL_URL'] = item.current_build_set.zuul_url params['ZUUL_VOTING'] = job.voting and '1' or '0' - if hasattr(item.change, 'refspec'): + if hasattr(item.change, 'number'): changes_str = '^'.join( ['%s:%s:%s' % (i.change.project.name, i.change.branch, - i.change.refspec) + i.change.ref) for i in all_items]) params['ZUUL_BRANCH'] = item.change.branch params['ZUUL_CHANGES'] = changes_str diff --git a/zuul/executor/server.py b/zuul/executor/server.py index ef5363c5ff..4448db8903 100644 --- a/zuul/executor/server.py +++ b/zuul/executor/server.py @@ -848,7 +848,7 @@ class AnsibleJob(object): project['name']) repos[project['canonical_name']] = repo - merge_items = [i for i in args['items'] if i.get('refspec')] + merge_items = [i for i in args['items'] if i.get('number')] if merge_items: if not self.doMergeChanges(merger, merge_items, args['repo_state']): diff --git a/zuul/merger/merger.py b/zuul/merger/merger.py index 93340faa51..c5d1f2ad55 100644 --- a/zuul/merger/merger.py +++ b/zuul/merger/merger.py @@ -225,9 +225,9 @@ class Repo(object): except AssertionError: origin.fetch(ref) - def fetchFrom(self, repository, refspec): + def fetchFrom(self, repository, ref): repo = self.createRepoObject() - repo.git.fetch(repository, refspec) + repo.git.fetch(repository, ref) def createZuulRef(self, ref, commit='HEAD'): repo = self.createRepoObject() @@ -391,11 +391,11 @@ class Merger(object): try: mode = item['merge_mode'] if mode == zuul.model.MERGER_MERGE: - commit = repo.merge(item['refspec']) + commit = repo.merge(item['ref']) elif mode == zuul.model.MERGER_MERGE_RESOLVE: - commit = repo.merge(item['refspec'], 'resolve') + commit = repo.merge(item['ref'], 'resolve') elif mode == zuul.model.MERGER_CHERRY_PICK: - commit = repo.cherryPick(item['refspec']) + commit = repo.cherryPick(item['ref']) else: raise Exception("Unsupported merge mode: %s" % mode) except git.GitCommandError: @@ -410,9 +410,10 @@ class Merger(object): return commit def _mergeItem(self, item, recent, repo_state): - self.log.debug("Processing refspec %s for project %s/%s / %s ref %s" % - (item['refspec'], item['connection'], - item['project'], item['branch'], item['ref'])) + self.log.debug("Processing ref %s for project %s/%s / %s uuid %s" % + (item['ref'], item['connection'], + item['project'], item['branch'], + item['buildset_uuid'])) repo = self.getRepo(item['connection'], item['project']) key = (item['connection'], item['project'], item['branch']) @@ -451,7 +452,7 @@ class Merger(object): zuul_ref = None try: repo = self.getRepo(connection, project) - zuul_ref = branch + '/' + item['ref'] + zuul_ref = branch + '/' + item['buildset_uuid'] if not repo.getCommitFromRef(zuul_ref): repo.createZuulRef(zuul_ref, mrc) except Exception: diff --git a/zuul/model.py b/zuul/model.py index ed77864f90..ed501640e5 100644 --- a/zuul/model.py +++ b/zuul/model.py @@ -1841,12 +1841,10 @@ class QueueItem(object): patchset = None oldrev = None newrev = None - refspec = None branch = None if hasattr(self.change, 'number'): number = self.change.number patchset = self.change.patchset - refspec = self.change.refspec if hasattr(self.change, 'newrev'): oldrev = self.change.oldrev newrev = self.change.newrev @@ -1860,9 +1858,9 @@ class QueueItem(object): return dict(project=project.name, connection=connection_name, merge_mode=self.current_build_set.getMergeMode(), - refspec=refspec, + ref=self.change.ref, branch=branch, - ref=self.current_build_set.ref, + buildset_uuid=self.current_build_set.uuid, number=number, patchset=patchset, oldrev=oldrev, @@ -1951,7 +1949,6 @@ class Change(Branch): self.number = None self.url = None self.patchset = None - self.refspec = None self.needs_changes = [] self.needed_by_changes = [] @@ -2008,6 +2005,7 @@ class TriggerEvent(object): # common self.type = None self.branch_updated = False + self.ref = None # For management events (eg: enqueue / promote) self.tenant_name = None self.project_hostname = None @@ -2019,12 +2017,10 @@ class TriggerEvent(object): self.change_number = None self.change_url = None self.patch_number = None - self.refspec = None self.branch = None self.comment = None self.state = None # ref-updated - self.ref = None self.oldrev = None self.newrev = None # For events that arrive with a destination pipeline (eg, from