Skip to content

Commit

Permalink
Merge pull request #7551 from tdesveaux/workerforbuilder/remove_setBu…
Browse files Browse the repository at this point in the history
…ilder

process: remove AbstractWorkerForBuilder.setBuilder
  • Loading branch information
p12tic committed May 2, 2024
2 parents 07fecfb + 91046a9 commit b6c0574
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 16 deletions.
3 changes: 1 addition & 2 deletions master/buildbot/process/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,8 +273,7 @@ def attached(self, worker, commands):
# just ignore it.
return self

wfb = workerforbuilder.WorkerForBuilder()
wfb.setBuilder(self)
wfb = workerforbuilder.WorkerForBuilder(self)
self.attaching_workers.append(wfb)

try:
Expand Down
22 changes: 10 additions & 12 deletions master/buildbot/process/workerforbuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
from twisted.python.constants import Names

if TYPE_CHECKING:
from buildbot.process.builder import Builder
from buildbot.worker.base import AbstractWorker
from buildbot.worker.latent import AbstractLatentWorker


class States(Names):
Expand All @@ -37,11 +39,12 @@ class States(Names):


class AbstractWorkerForBuilder:
def __init__(self):
self.ping_watchers = []
def __init__(self, builder: Builder):
self.ping_watchers: list[defer.Deferred] = []
self.state = None # set in subclass
self.worker: AbstractWorker | None = None
self.builder_name = None
self.builder = builder
self.builder_name = builder.name
self.locks = None

def __repr__(self):
Expand All @@ -53,10 +56,6 @@ def __repr__(self):
r.extend([" state=", self.state.name, ">"])
return ''.join(r)

def setBuilder(self, b):
self.builder = b
self.builder_name = b.name

def getWorkerCommandVersion(self, command, oldversion=None):
if self.remoteCommands is None:
# the worker is 0.5.0 or earlier
Expand Down Expand Up @@ -179,8 +178,8 @@ def _ping_failed(self, res, conn):


class WorkerForBuilder(AbstractWorkerForBuilder):
def __init__(self):
super().__init__()
def __init__(self, builder: Builder):
super().__init__(builder)
self.state = States.DETACHED

@defer.inlineCallbacks
Expand All @@ -200,11 +199,10 @@ def detached(self):


class LatentWorkerForBuilder(AbstractWorkerForBuilder):
def __init__(self, worker, builder):
super().__init__()
def __init__(self, worker: AbstractLatentWorker, builder: Builder):
super().__init__(builder)
self.worker = worker
self.state = States.AVAILABLE
self.setBuilder(builder)
self.worker.addWorkerForBuilder(self)
log.msg(f"Latent worker {worker.workername} attached to {self.builder_name}")

Expand Down
7 changes: 5 additions & 2 deletions master/buildbot/test/unit/process/test_workerforbuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#
# Copyright Buildbot Team Members

from buildbot.process.builder import Builder
from twisted.trial.unittest import TestCase

from buildbot.process.workerforbuilder import AbstractWorkerForBuilder
Expand All @@ -37,8 +38,9 @@ class ConcreteWorker(AbstractWorker):
def buildStarted(self, workerforbuilder):
self._buildStartedCalls.append(workerforbuilder)

fake_builder = Builder("fake_builder")
worker = ConcreteWorker("worker", "pass")
workerforbuilder = AbstractWorkerForBuilder()
workerforbuilder = AbstractWorkerForBuilder(fake_builder)
# FIXME: This should call attached, instead of setting the attribute
# directly
workerforbuilder.worker = worker
Expand All @@ -56,8 +58,9 @@ def test_buildStarted_missing(self):
class ConcreteWorker(AbstractWorker):
pass

fake_builder = Builder("fake_builder")
worker = ConcreteWorker("worker", "pass")
workerforbuilder = AbstractWorkerForBuilder()
workerforbuilder = AbstractWorkerForBuilder(fake_builder)
# FIXME: This should call attached, instead of setting the attribute
# directly
workerforbuilder.worker = worker
Expand Down

0 comments on commit b6c0574

Please sign in to comment.