launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #27952
[Merge] ~jugmac00/launchpad:fix-typo-access into launchpad:master
Jürgen Gmach has proposed merging ~jugmac00/launchpad:fix-typo-access into launchpad:master.
Commit message:
Fix typo
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~jugmac00/launchpad/+git/launchpad/+merge/414065
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~jugmac00/launchpad:fix-typo-access into launchpad:master.
diff --git a/lib/lp/buildmaster/interactor.py b/lib/lp/buildmaster/interactor.py
index ea8c962..6b51df7 100644
--- a/lib/lp/buildmaster/interactor.py
+++ b/lib/lp/buildmaster/interactor.py
@@ -381,7 +381,7 @@ class BuilderInteractor:
if not vitals.vm_host:
return defer.fail(CannotResumeHost('Undefined vm_host.'))
- logger = cls._getSlaveScannerLogger()
+ logger = cls._getWorkerScannerLogger()
logger.info("Resuming %s (%s)" % (vitals.name, vitals.url))
d = slave.resume()
@@ -435,7 +435,7 @@ class BuilderInteractor:
builder_factory[vitals.name].setCleanStatus(
BuilderCleanStatus.CLEANING)
transaction.commit()
- logger = cls._getSlaveScannerLogger()
+ logger = cls._getWorkerScannerLogger()
logger.info("%s is being cleaned.", vitals.name)
return False
raise CannotResumeHost(
@@ -497,7 +497,7 @@ class BuilderInteractor:
:return: A Deferred whose value is the `IBuildQueue` instance
found or None if no job was found.
"""
- logger = cls._getSlaveScannerLogger()
+ logger = cls._getWorkerScannerLogger()
# Try a few candidates so that we make reasonable progress if we
# have only a few idle builders but lots of candidates that fail
# postprocessing due to old source publications or similar. The
@@ -600,11 +600,11 @@ class BuilderInteractor:
raise AssertionError("Unknown status %s" % builder_status)
@staticmethod
- def _getSlaveScannerLogger():
- """Return the logger instance from buildd-slave-scanner.py."""
+ def _getWorkerScannerLogger():
+ """Return the logger instance from lp.buildmaster.manager."""
# XXX cprov 20071120: Ideally the Launchpad logging system
# should be able to configure the root-logger instead of creating
# a new object, then the logger lookups won't require the specific
# name argument anymore. See bug 164203.
- logger = logging.getLogger('slave-scanner')
+ logger = logging.getLogger('worker-scanner')
return logger
diff --git a/lib/lp/buildmaster/manager.py b/lib/lp/buildmaster/manager.py
index b78c912..1ad0c9d 100644
--- a/lib/lp/buildmaster/manager.py
+++ b/lib/lp/buildmaster/manager.py
@@ -1,13 +1,13 @@
# Copyright 2009-2020 Canonical Ltd. This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).
-"""Soyuz buildd slave manager logic."""
+"""Soyuz buildd worker manager logic."""
__all__ = [
'BuilddManager',
'BUILDD_MANAGER_LOG_NAME',
'PrefetchedBuilderFactory',
- 'SlaveScanner',
+ 'WorkerScanner',
]
from collections import defaultdict
@@ -63,7 +63,7 @@ from lp.services.propertycache import get_property_cache
from lp.services.statsd.interfaces.statsd_client import IStatsdClient
-BUILDD_MANAGER_LOG_NAME = "slave-scanner"
+BUILDD_MANAGER_LOG_NAME = "worker-scanner"
# The number of times a builder can consecutively fail before we
@@ -410,7 +410,7 @@ def recover_failure(logger, vitals, builder, retry, exception):
builder.setCleanStatus(BuilderCleanStatus.DIRTY)
-class SlaveScanner:
+class WorkerScanner:
"""A manager for a single builder."""
# The interval between each poll cycle, in seconds. We'd ideally
@@ -431,14 +431,14 @@ class SlaveScanner:
def __init__(self, builder_name, builder_factory, manager, logger,
clock=None, interactor_factory=BuilderInteractor,
- slave_factory=BuilderInteractor.makeSlaveFromVitals,
+ worker_factory=BuilderInteractor.makeSlaveFromVitals,
behaviour_factory=BuilderInteractor.getBuildBehaviour):
self.builder_name = builder_name
self.builder_factory = builder_factory
self.manager = manager
self.logger = logger
self.interactor_factory = interactor_factory
- self.slave_factory = slave_factory
+ self.worker_factory = worker_factory
self.behaviour_factory = behaviour_factory
# Use the clock if provided, so that tests can advance it. Use the
# reactor by default.
@@ -606,7 +606,7 @@ class SlaveScanner:
self.builder_factory.prescanUpdate()
vitals = self.builder_factory.getVitals(self.builder_name)
interactor = self.interactor_factory()
- slave = self.slave_factory(vitals)
+ slave = self.worker_factory(vitals)
if vitals.build_queue is not None:
if vitals.clean_status != BuilderCleanStatus.DIRTY:
@@ -709,7 +709,7 @@ class BuilddManager(service.Service):
if clock is None:
clock = reactor
self._clock = clock
- self.builder_slaves = []
+ self.workers = []
self.builder_factory = builder_factory or PrefetchedBuilderFactory()
self.logger = self._setupLogger()
self.current_builders = []
@@ -717,7 +717,7 @@ class BuilddManager(service.Service):
self.statsd_client = getUtility(IStatsdClient)
def _setupLogger(self):
- """Set up a 'slave-scanner' logger that redirects to twisted.
+ """Set up a 'worker-scanner' logger that redirects to twisted.
Make it less verbose to avoid messing too much with the old code.
"""
@@ -796,7 +796,7 @@ class BuilddManager(service.Service):
def startService(self):
"""Service entry point, called when the application starts."""
- # Add and start SlaveScanners for each current builder, and any
+ # Add and start WorkerScanners for each current builder, and any
# added in the future.
self.scan_builders_loop, self.scan_builders_deferred = (
self._startLoop(self.SCAN_BUILDERS_INTERVAL, self.scanBuilders))
@@ -807,15 +807,15 @@ class BuilddManager(service.Service):
def stopService(self):
"""Callback for when we need to shut down."""
# XXX: lacks unit tests
- # All the SlaveScanner objects need to be halted gracefully.
- deferreds = [slave.stopping_deferred for slave in self.builder_slaves]
+ # All the WorkerScanner objects need to be halted gracefully.
+ deferreds = [worker.stopping_deferred for worker in self.workers]
deferreds.append(self.scan_builders_deferred)
deferreds.append(self.flush_logtails_deferred)
self.flush_logtails_loop.stop()
self.scan_builders_loop.stop()
- for slave in self.builder_slaves:
- slave.stopCycle()
+ for worker in self.workers:
+ worker.stopCycle()
# The 'stopping_deferred's are called back when the loops are
# stopped, so we can wait on them all at once here before
@@ -826,10 +826,10 @@ class BuilddManager(service.Service):
def addScanForBuilders(self, builders):
"""Set up scanner objects for the builders specified."""
for builder in builders:
- slave_scanner = SlaveScanner(
+ worker_scanner = WorkerScanner(
builder, self.builder_factory, self, self.logger)
- self.builder_slaves.append(slave_scanner)
- slave_scanner.startCycle()
+ self.workers.append(worker_scanner)
+ worker_scanner.startCycle()
- # Return the slave list for the benefit of tests.
- return self.builder_slaves
+ # Return the worker list for the benefit of tests.
+ return self.workers
diff --git a/lib/lp/buildmaster/model/buildqueue.py b/lib/lp/buildmaster/model/buildqueue.py
index f82102d..1bc3b0d 100644
--- a/lib/lp/buildmaster/model/buildqueue.py
+++ b/lib/lp/buildmaster/model/buildqueue.py
@@ -290,13 +290,13 @@ class BuildQueueSet:
get_property_cache(build).buildqueue_record = bq
return bqs
- def _getSlaveScannerLogger(self):
- """Return the logger instance from buildd-slave-scanner.py."""
+ def _getWorkerScannerLogger(self):
+ """Return the logger instance from lp.buildmaster.manager."""
# XXX cprov 20071120: Ideally the Launchpad logging system
# should be able to configure the root-logger instead of creating
# a new object, then the logger lookups won't require the specific
# name argument anymore. See bug 164203.
- logger = logging.getLogger('slave-scanner')
+ logger = logging.getLogger('worker-scanner')
return logger
def findBuildCandidates(self, processor, virtualized, limit):
@@ -304,7 +304,7 @@ class BuildQueueSet:
# Circular import.
from lp.buildmaster.model.buildfarmjob import BuildFarmJob
- logger = self._getSlaveScannerLogger()
+ logger = self._getWorkerScannerLogger()
job_type_conditions = []
job_sources = specific_build_farm_job_sources()
diff --git a/lib/lp/buildmaster/tests/mock_slaves.py b/lib/lp/buildmaster/tests/mock_workers.py
similarity index 86%
rename from lib/lp/buildmaster/tests/mock_slaves.py
rename to lib/lp/buildmaster/tests/mock_workers.py
index a0f9c9b..14de9b6 100644
--- a/lib/lp/buildmaster/tests/mock_slaves.py
+++ b/lib/lp/buildmaster/tests/mock_workers.py
@@ -4,17 +4,17 @@
"""Mock Build objects for tests soyuz buildd-system."""
__all__ = [
- 'AbortingSlave',
- 'BrokenSlave',
- 'BuildingSlave',
+ 'AbortingWorker',
+ 'BrokenWorker',
+ 'BuildingWorker',
'DeadProxy',
- 'LostBuildingBrokenSlave',
+ 'LostBuildingBrokenWorker',
'make_publisher',
'MockBuilder',
- 'OkSlave',
- 'SlaveTestHelpers',
+ 'OkWorker',
'TrivialBehaviour',
- 'WaitingSlave',
+ 'WaitingWorker',
+ 'WorkerTestHelpers',
]
from collections import OrderedDict
@@ -81,8 +81,8 @@ class MockBuilder:
# XXX: It would be *really* nice to run some set of tests against the real
# BuilderSlave and this one to prevent interface skew.
-class OkSlave:
- """An idle mock slave that prints information about itself.
+class OkWorker:
+ """An idle mock worker that prints information about itself.
The architecture tag can be customised during initialization."""
@@ -149,8 +149,8 @@ class OkSlave:
return dl
-class BuildingSlave(OkSlave):
- """A mock slave that looks like it's currently building."""
+class BuildingWorker(OkWorker):
+ """A mock worker that looks like it's currently building."""
def __init__(self, build_id='1-1'):
super().__init__()
@@ -178,8 +178,8 @@ class BuildingSlave(OkSlave):
return defer.succeed(None)
-class WaitingSlave(OkSlave):
- """A mock slave that looks like it's currently waiting."""
+class WaitingWorker(OkWorker):
+ """A mock worker that looks like it's currently waiting."""
def __init__(self, state='BuildStatus.OK', dependencies=None,
build_id='1-1', filemap=None):
@@ -192,7 +192,7 @@ class WaitingSlave(OkSlave):
else:
self.filemap = filemap
- # By default, the slave only has a buildlog, but callsites
+ # By default, the worker only has a buildlog, but callsites
# can update this list as needed.
self.valid_files = {'buildlog': ''}
self._got_file_record = []
@@ -223,8 +223,8 @@ class WaitingSlave(OkSlave):
return defer.succeed(None)
-class AbortingSlave(OkSlave):
- """A mock slave that looks like it's in the process of aborting."""
+class AbortingWorker(OkWorker):
+ """A mock worker that looks like it's in the process of aborting."""
def status(self):
self.call_log.append('status')
@@ -234,8 +234,8 @@ class AbortingSlave(OkSlave):
})
-class LostBuildingBrokenSlave:
- """A mock slave building bogus Build/BuildQueue IDs that can't be aborted.
+class LostBuildingBrokenWorker:
+ """A mock worker building bogus Build/BuildQueue IDs that can't be aborted.
When 'aborted' it raises an xmlrpc.client.Fault(8002, 'Could not abort')
"""
@@ -259,15 +259,15 @@ class LostBuildingBrokenSlave:
return defer.succeed(("", "", 0))
-class BrokenSlave:
- """A mock slave that reports that it is broken."""
+class BrokenWorker:
+ """A mock worker that reports that it is broken."""
def __init__(self):
self.call_log = []
def status(self):
self.call_log.append('status')
- return defer.fail(xmlrpc.client.Fault(8001, "Broken slave"))
+ return defer.fail(xmlrpc.client.Fault(8001, "Broken worker"))
class TrivialBehaviour:
@@ -293,15 +293,15 @@ class LPBuilddSlaveTestSetup(BuilddSlaveTestSetup):
twistd_script=twistd_script)
-class SlaveTestHelpers(fixtures.Fixture):
+class WorkerTestHelpers(fixtures.Fixture):
@property
def base_url(self):
"""The URL for the XML-RPC service set up by `BuilddSlaveTestSetup`."""
return 'http://localhost:%d' % LPBuilddSlaveTestSetup().daemon_port
- def getServerSlave(self):
- """Set up a test build slave server.
+ def getServerWorker(self):
+ """Set up a test build worker server.
:return: A `BuilddSlaveTestSetup` object.
"""
@@ -310,8 +310,8 @@ class SlaveTestHelpers(fixtures.Fixture):
self, tachandler.logfile, name='xmlrpc-log-file', buffer_now=False)
return tachandler
- def getClientSlave(self, reactor=None, proxy=None,
- pool=None, process_pool=None):
+ def getClientWorker(self, reactor=None, proxy=None,
+ pool=None, process_pool=None):
"""Return a `BuilderSlave` for use in testing.
Points to a fixed URL that is also used by `BuilddSlaveTestSetup`.
@@ -321,10 +321,10 @@ class SlaveTestHelpers(fixtures.Fixture):
reactor=reactor, proxy=proxy, pool=pool, process_pool=process_pool)
def makeCacheFile(self, tachandler, filename, contents=b'something'):
- """Make a cache file available on the remote slave.
+ """Make a cache file available on the remote worker.
:param tachandler: The TacTestSetup object used to start the remote
- slave.
+ worker.
:param filename: The name of the file to create in the file cache
area.
:param contents: Bytes to write to the file.
@@ -334,18 +334,18 @@ class SlaveTestHelpers(fixtures.Fixture):
fd.write(contents)
self.addCleanup(os.unlink, path)
- def triggerGoodBuild(self, slave, build_id=None):
- """Trigger a good build on 'slave'.
+ def triggerGoodBuild(self, worker, build_id=None):
+ """Trigger a good build on 'worker'.
- :param slave: A `BuilderSlave` instance to trigger the build on.
+ :param worker: A `BuilderSlave` instance to trigger the build on.
:param build_id: The build identifier. If not specified, defaults to
an arbitrary string.
:type build_id: str
- :return: The build id returned by the slave.
+ :return: The build id returned by the worker.
"""
if build_id is None:
build_id = 'random-build-id'
- tachandler = self.getServerSlave()
+ tachandler = self.getServerWorker()
chroot_file = 'fake-chroot'
dsc_file = 'thing'
self.makeCacheFile(tachandler, chroot_file)
@@ -356,7 +356,7 @@ class SlaveTestHelpers(fixtures.Fixture):
'suite': 'precise',
'ogrecomponent': 'main',
}
- return slave.build(
+ return worker.build(
build_id, 'binarypackage', chroot_file,
# Although a single-element dict obviously has stable ordering,
# we use an OrderedDict anyway to test that BuilderSlave
diff --git a/lib/lp/buildmaster/tests/test_builder.py b/lib/lp/buildmaster/tests/test_builder.py
index 55f3908..731d8e2 100644
--- a/lib/lp/buildmaster/tests/test_builder.py
+++ b/lib/lp/buildmaster/tests/test_builder.py
@@ -18,7 +18,7 @@ from lp.buildmaster.interfaces.builder import (
from lp.buildmaster.interfaces.buildqueue import IBuildQueueSet
from lp.buildmaster.interfaces.processor import IProcessorSet
from lp.buildmaster.model.buildqueue import BuildQueue
-from lp.buildmaster.tests.mock_slaves import make_publisher
+from lp.buildmaster.tests.mock_workers import make_publisher
from lp.services.database.interfaces import IStore
from lp.services.database.sqlbase import flush_database_updates
from lp.services.features.testing import FeatureFixture
diff --git a/lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py b/lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py
index 1980b1e..b3f7d0a 100644
--- a/lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py
+++ b/lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py
@@ -34,10 +34,10 @@ from lp.buildmaster.interfaces.processor import IProcessorSet
from lp.buildmaster.model.buildfarmjobbehaviour import (
BuildFarmJobBehaviourBase,
)
-from lp.buildmaster.tests.mock_slaves import (
+from lp.buildmaster.tests.mock_workers import (
MockBuilder,
- OkSlave,
- WaitingSlave,
+ OkWorker,
+ WaitingWorker,
)
from lp.registry.interfaces.pocket import PackagePublishingPocket
from lp.services.config import config
@@ -209,13 +209,13 @@ class TestDispatchBuildToSlave(StatsMixin, TestCase):
def test_dispatchBuildToSlave(self):
behaviour = self.makeBehaviour(FakeDistroArchSeries())
builder = MockBuilder()
- slave = OkSlave()
+ worker = OkWorker()
logger = BufferLogger()
- behaviour.setBuilder(builder, slave)
+ behaviour.setBuilder(builder, worker)
yield behaviour.dispatchBuildToSlave(logger)
self.assertDispatched(
- slave, logger, 'chroot-fooix-bar-y86.tar.gz', 'chroot')
+ worker, logger, 'chroot-fooix-bar-y86.tar.gz', 'chroot')
@defer.inlineCallbacks
def test_dispatchBuildToSlave_with_other_image_available(self):
@@ -225,13 +225,13 @@ class TestDispatchBuildToSlave(StatsMixin, TestCase):
das.images[BuildBaseImageType.LXD] = 'lxd-fooix-bar-y86.tar.gz'
behaviour = self.makeBehaviour(das)
builder = MockBuilder()
- slave = OkSlave()
+ worker = OkWorker()
logger = BufferLogger()
- behaviour.setBuilder(builder, slave)
+ behaviour.setBuilder(builder, worker)
yield behaviour.dispatchBuildToSlave(logger)
self.assertDispatched(
- slave, logger, 'chroot-fooix-bar-y86.tar.gz', 'chroot')
+ worker, logger, 'chroot-fooix-bar-y86.tar.gz', 'chroot')
@defer.inlineCallbacks
def test_dispatchBuildToSlave_lxd(self):
@@ -241,12 +241,13 @@ class TestDispatchBuildToSlave(StatsMixin, TestCase):
behaviour.image_types = [
BuildBaseImageType.LXD, BuildBaseImageType.CHROOT]
builder = MockBuilder()
- slave = OkSlave()
+ worker = OkWorker()
logger = BufferLogger()
- behaviour.setBuilder(builder, slave)
+ behaviour.setBuilder(builder, worker)
yield behaviour.dispatchBuildToSlave(logger)
- self.assertDispatched(slave, logger, 'lxd-fooix-bar-y86.tar.gz', 'lxd')
+ self.assertDispatched(
+ worker, logger, 'lxd-fooix-bar-y86.tar.gz', 'lxd')
@defer.inlineCallbacks
def test_dispatchBuildToSlave_fallback(self):
@@ -254,22 +255,22 @@ class TestDispatchBuildToSlave(StatsMixin, TestCase):
behaviour.image_types = [
BuildBaseImageType.LXD, BuildBaseImageType.CHROOT]
builder = MockBuilder()
- slave = OkSlave()
+ worker = OkWorker()
logger = BufferLogger()
- behaviour.setBuilder(builder, slave)
+ behaviour.setBuilder(builder, worker)
yield behaviour.dispatchBuildToSlave(logger)
self.assertDispatched(
- slave, logger, 'chroot-fooix-bar-y86.tar.gz', 'chroot')
+ worker, logger, 'chroot-fooix-bar-y86.tar.gz', 'chroot')
@defer.inlineCallbacks
def test_dispatchBuildToSlave_stats(self):
self.setUpStats()
behaviour = self.makeBehaviour(FakeDistroArchSeries())
builder = MockBuilder()
- slave = OkSlave()
+ worker = OkWorker()
logger = BufferLogger()
- behaviour.setBuilder(builder, slave)
+ behaviour.setBuilder(builder, worker)
yield behaviour.dispatchBuildToSlave(logger)
self.assertEqual(1, self.stats_client.incr.call_count)
self.assertEqual(
@@ -351,14 +352,14 @@ class TestHandleStatusMixin:
self.factory = LaunchpadObjectFactory()
self.build = self.makeBuild()
# For the moment, we require a builder for the build so that
- # handleStatus_OK can get a reference to the slave.
+ # handleStatus_OK can get a reference to the worker.
self.builder = self.factory.makeBuilder()
self.build.buildqueue_record.markAsBuilding(self.builder)
- self.slave = WaitingSlave('BuildStatus.OK')
- self.slave.valid_files['test_file_hash'] = ''
+ self.worker = WaitingWorker('BuildStatus.OK')
+ self.worker.valid_files['test_file_hash'] = ''
self.interactor = BuilderInteractor()
self.behaviour = self.interactor.getBuildBehaviour(
- self.build.buildqueue_record, self.builder, self.slave)
+ self.build.buildqueue_record, self.builder, self.worker)
self.addCleanup(shut_down_default_process_pool)
# We overwrite the buildmaster root to use a temp directory.
@@ -385,7 +386,7 @@ class TestHandleStatusMixin:
def test_handleStatus_OK_normal_file(self):
# A filemap with plain filenames should not cause a problem.
# The call to handleStatus will attempt to get the file from
- # the slave resulting in a URL error in this test case.
+ # the worker resulting in a URL error in this test case.
with dbuser(config.builddmaster.dbuser):
yield self.behaviour.handleStatus(
self.build.buildqueue_record, 'OK',
@@ -467,7 +468,7 @@ class TestHandleStatusMixin:
def test_handleStatus_ABORTED_illegal_when_building(self):
self.builder.vm_host = "fake_vm_host"
self.behaviour = self.interactor.getBuildBehaviour(
- self.build.buildqueue_record, self.builder, self.slave)
+ self.build.buildqueue_record, self.builder, self.worker)
with dbuser(config.builddmaster.dbuser):
self.build.updateStatus(BuildStatus.BUILDING)
with ExpectedException(
diff --git a/lib/lp/buildmaster/tests/test_buildqueue.py b/lib/lp/buildmaster/tests/test_buildqueue.py
index 36c338f..5b41e41 100644
--- a/lib/lp/buildmaster/tests/test_buildqueue.py
+++ b/lib/lp/buildmaster/tests/test_buildqueue.py
@@ -72,8 +72,8 @@ class TestBuildCancellation(TestCaseWithFactory):
def test_buildqueue_cancel_running(self):
# Cancelling a RUNNING BuildQueue leaves it around but sets the
- # status to CANCELLING. SlaveScanner will destroy it and set the
- # build status to CANCELLED when the slave cancellation has
+ # status to CANCELLING. WorkerScanner will destroy it and set the
+ # build status to CANCELLED when the worker cancellation has
# completed.
build = self.factory.makeBinaryPackageBuild()
bq = build.queueBuild()
diff --git a/lib/lp/buildmaster/tests/test_interactor.py b/lib/lp/buildmaster/tests/test_interactor.py
index 29901c2..30e86ed 100644
--- a/lib/lp/buildmaster/tests/test_interactor.py
+++ b/lib/lp/buildmaster/tests/test_interactor.py
@@ -50,15 +50,15 @@ from lp.buildmaster.manager import (
BaseBuilderFactory,
PrefetchedBuilderFactory,
)
-from lp.buildmaster.tests.mock_slaves import (
- AbortingSlave,
- BuildingSlave,
+from lp.buildmaster.tests.mock_workers import (
+ AbortingWorker,
+ BuildingWorker,
DeadProxy,
- LostBuildingBrokenSlave,
+ LostBuildingBrokenWorker,
MockBuilder,
- OkSlave,
- SlaveTestHelpers,
- WaitingSlave,
+ OkWorker,
+ WaitingWorker,
+ WorkerTestHelpers,
)
from lp.services.config import config
from lp.services.twistedsupport.testing import TReqFixture
@@ -193,12 +193,12 @@ class TestBuilderInteractorCleanSlave(TestCase):
run_tests_with = AsynchronousDeferredRunTest
@defer.inlineCallbacks
- def assertCleanCalls(self, builder, slave, calls, done):
+ def assertCleanCalls(self, builder, worker, calls, done):
actually_done = yield BuilderInteractor.cleanSlave(
- extract_vitals_from_db(builder), slave,
+ extract_vitals_from_db(builder), worker,
MockBuilderFactory(builder, None))
self.assertEqual(done, actually_done)
- self.assertEqual(calls, slave.method_log)
+ self.assertEqual(calls, worker.method_log)
@defer.inlineCallbacks
def test_virtual_1_1(self):
@@ -208,7 +208,7 @@ class TestBuilderInteractorCleanSlave(TestCase):
virtualized=True, clean_status=BuilderCleanStatus.DIRTY,
vm_host='lol', vm_reset_protocol=BuilderResetProtocol.PROTO_1_1)
yield self.assertCleanCalls(
- builder, OkSlave(), ['resume', 'echo'], True)
+ builder, OkWorker(), ['resume', 'echo'], True)
@defer.inlineCallbacks
def test_virtual_2_0_dirty(self):
@@ -218,7 +218,7 @@ class TestBuilderInteractorCleanSlave(TestCase):
builder = MockBuilder(
virtualized=True, clean_status=BuilderCleanStatus.DIRTY,
vm_host='lol', vm_reset_protocol=BuilderResetProtocol.PROTO_2_0)
- yield self.assertCleanCalls(builder, OkSlave(), ['resume'], False)
+ yield self.assertCleanCalls(builder, OkWorker(), ['resume'], False)
self.assertEqual(BuilderCleanStatus.CLEANING, builder.clean_status)
@defer.inlineCallbacks
@@ -229,7 +229,7 @@ class TestBuilderInteractorCleanSlave(TestCase):
builder = MockBuilder(
virtualized=True, clean_status=BuilderCleanStatus.CLEANING,
vm_host='lol', vm_reset_protocol=BuilderResetProtocol.PROTO_2_0)
- yield self.assertCleanCalls(builder, OkSlave(), [], False)
+ yield self.assertCleanCalls(builder, OkWorker(), [], False)
self.assertEqual(BuilderCleanStatus.CLEANING, builder.clean_status)
@defer.inlineCallbacks
@@ -243,42 +243,42 @@ class TestBuilderInteractorCleanSlave(TestCase):
with ExpectedException(
CannotResumeHost, "Invalid vm_reset_protocol: None"):
yield BuilderInteractor.cleanSlave(
- extract_vitals_from_db(builder), OkSlave(),
+ extract_vitals_from_db(builder), OkWorker(),
MockBuilderFactory(builder, None))
@defer.inlineCallbacks
def test_nonvirtual_idle(self):
- # An IDLE non-virtual slave is already as clean as we can get it.
+ # An IDLE non-virtual worker is already as clean as we can get it.
yield self.assertCleanCalls(
MockBuilder(
virtualized=False, clean_status=BuilderCleanStatus.DIRTY),
- OkSlave(), ['status'], True)
+ OkWorker(), ['status'], True)
@defer.inlineCallbacks
def test_nonvirtual_building(self):
- # A BUILDING non-virtual slave needs to be aborted. It'll go
+ # A BUILDING non-virtual worker needs to be aborted. It'll go
# through ABORTING and eventually be picked up from WAITING.
yield self.assertCleanCalls(
MockBuilder(
virtualized=False, clean_status=BuilderCleanStatus.DIRTY),
- BuildingSlave(), ['status', 'abort'], False)
+ BuildingWorker(), ['status', 'abort'], False)
@defer.inlineCallbacks
def test_nonvirtual_aborting(self):
- # An ABORTING non-virtual slave must be waited out. It should
+ # An ABORTING non-virtual worker must be waited out. It should
# hit WAITING eventually.
yield self.assertCleanCalls(
MockBuilder(
virtualized=False, clean_status=BuilderCleanStatus.DIRTY),
- AbortingSlave(), ['status'], False)
+ AbortingWorker(), ['status'], False)
@defer.inlineCallbacks
def test_nonvirtual_waiting(self):
- # A WAITING non-virtual slave just needs clean() called.
+ # A WAITING non-virtual worker just needs clean() called.
yield self.assertCleanCalls(
MockBuilder(
virtualized=False, clean_status=BuilderCleanStatus.DIRTY),
- WaitingSlave(), ['status', 'clean'], True)
+ WaitingWorker(), ['status', 'clean'], True)
@defer.inlineCallbacks
def test_nonvirtual_broken(self):
@@ -287,12 +287,12 @@ class TestBuilderInteractorCleanSlave(TestCase):
builder = MockBuilder(
virtualized=False, clean_status=BuilderCleanStatus.DIRTY)
vitals = extract_vitals_from_db(builder)
- slave = LostBuildingBrokenSlave()
+ worker = LostBuildingBrokenWorker()
try:
yield BuilderInteractor.cleanSlave(
- vitals, slave, MockBuilderFactory(builder, None))
+ vitals, worker, MockBuilderFactory(builder, None))
except xmlrpc.client.Fault:
- self.assertEqual(['status', 'abort'], slave.call_log)
+ self.assertEqual(['status', 'abort'], worker.call_log)
else:
self.fail("abort() should crash.")
@@ -304,10 +304,10 @@ class TestBuilderSlaveStatus(TestCase):
run_tests_with = AsynchronousDeferredRunTest
@defer.inlineCallbacks
- def assertStatus(self, slave, builder_status=None, build_status=None,
+ def assertStatus(self, worker, builder_status=None, build_status=None,
build_id=False, logtail=False, filemap=None,
dependencies=None):
- status = yield slave.status()
+ status = yield worker.status()
expected = {}
if builder_status is not None:
@@ -329,22 +329,22 @@ class TestBuilderSlaveStatus(TestCase):
self.assertEqual(expected, status)
- def test_status_idle_slave(self):
- self.assertStatus(OkSlave(), builder_status='BuilderStatus.IDLE')
+ def test_status_idle_worker(self):
+ self.assertStatus(OkWorker(), builder_status='BuilderStatus.IDLE')
- def test_status_building_slave(self):
+ def test_status_building_worker(self):
self.assertStatus(
- BuildingSlave(), builder_status='BuilderStatus.BUILDING',
+ BuildingWorker(), builder_status='BuilderStatus.BUILDING',
build_id=True, logtail=True)
- def test_status_waiting_slave(self):
+ def test_status_waiting_worker(self):
self.assertStatus(
- WaitingSlave(), builder_status='BuilderStatus.WAITING',
+ WaitingWorker(), builder_status='BuilderStatus.WAITING',
build_status='BuildStatus.OK', build_id=True, filemap={})
- def test_status_aborting_slave(self):
+ def test_status_aborting_worker(self):
self.assertStatus(
- AbortingSlave(), builder_status='BuilderStatus.ABORTING',
+ AbortingWorker(), builder_status='BuilderStatus.ABORTING',
build_id=True)
@@ -365,21 +365,21 @@ class TestBuilderInteractorDB(TestCaseWithFactory):
# Set the builder attribute on the buildqueue record so that our
# builder will think it has a current build.
builder = self.factory.makeBuilder(name='builder')
- slave = BuildingSlave()
+ worker = BuildingWorker()
build = self.factory.makeBinaryPackageBuild()
bq = build.queueBuild()
bq.markAsBuilding(builder)
- behaviour = BuilderInteractor.getBuildBehaviour(bq, builder, slave)
+ behaviour = BuilderInteractor.getBuildBehaviour(bq, builder, worker)
self.assertIsInstance(behaviour, BinaryPackageBuildBehaviour)
self.assertEqual(behaviour._builder, builder)
- self.assertEqual(behaviour._slave, slave)
+ self.assertEqual(behaviour._slave, worker)
def _setupBuilder(self):
processor = self.factory.makeProcessor(name="i386")
builder = self.factory.makeBuilder(
processors=[processor], virtualized=True, vm_host="bladh")
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
distroseries = self.factory.makeDistroSeries()
das = self.factory.makeDistroArchSeries(
distroseries=distroseries, architecturetag="i386",
@@ -416,7 +416,7 @@ class TestBuilderInteractorDB(TestCaseWithFactory):
builder_factory.findBuildCandidate = FakeMethod(result=candidate)
vitals = extract_vitals_from_db(builder)
d = BuilderInteractor.findAndStartJob(
- vitals, builder, OkSlave(), builder_factory)
+ vitals, builder, OkWorker(), builder_factory)
return d.addCallback(self.assertEqual, candidate)
@defer.inlineCallbacks
@@ -443,7 +443,7 @@ class TestBuilderInteractorDB(TestCaseWithFactory):
# Starting a job selects a non-superseded candidate, and supersedes
# the candidates that have superseded source packages.
candidate = yield BuilderInteractor.findAndStartJob(
- vitals, builder, OkSlave(), builder_factory)
+ vitals, builder, OkWorker(), builder_factory)
self.assertEqual(candidates[2], candidate)
self.assertEqual(
[BuildStatus.SUPERSEDED, BuildStatus.SUPERSEDED,
@@ -460,7 +460,7 @@ class TestBuilderInteractorDB(TestCaseWithFactory):
builder_factory.findBuildCandidate = FakeMethod(result=candidate)
vitals = extract_vitals_from_db(builder)
d = BuilderInteractor.findAndStartJob(
- vitals, builder, OkSlave(), builder_factory)
+ vitals, builder, OkWorker(), builder_factory)
def check_build_started(candidate):
self.assertEqual(candidate.builder, builder)
@@ -481,7 +481,7 @@ class TestBuilderInteractorDB(TestCaseWithFactory):
BuildDaemonIsolationError,
"Attempted to start build on a dirty slave."):
yield BuilderInteractor.findAndStartJob(
- vitals, builder, OkSlave(), builder_factory)
+ vitals, builder, OkWorker(), builder_factory)
@defer.inlineCallbacks
def test_findAndStartJob_dirties_slave(self):
@@ -492,31 +492,31 @@ class TestBuilderInteractorDB(TestCaseWithFactory):
builder_factory.findBuildCandidate = FakeMethod(result=candidate)
vitals = extract_vitals_from_db(builder)
yield BuilderInteractor.findAndStartJob(
- vitals, builder, OkSlave(), builder_factory)
+ vitals, builder, OkWorker(), builder_factory)
self.assertEqual(BuilderCleanStatus.DIRTY, builder.clean_status)
-class TestSlave(TestCase):
+class TestWorker(TestCase):
"""
Integration tests for BuilderSlave that verify how it works against a
- real slave server.
+ real worker server.
"""
run_tests_with = AsynchronousDeferredRunTest.make_factory(timeout=30)
def setUp(self):
super().setUp()
- self.slave_helper = self.useFixture(SlaveTestHelpers())
+ self.worker_helper = self.useFixture(WorkerTestHelpers())
self.addCleanup(shut_down_default_process_pool)
@defer.inlineCallbacks
def test_abort(self):
- slave = self.slave_helper.getClientSlave()
+ worker = self.worker_helper.getClientWorker()
# We need to be in a BUILDING state before we can abort.
build_id = 'some-id'
- response = yield self.slave_helper.triggerGoodBuild(slave, build_id)
+ response = yield self.worker_helper.triggerGoodBuild(worker, build_id)
self.assertEqual([BuilderStatus.BUILDING, build_id], response)
- response = yield slave.abort()
+ response = yield worker.abort()
self.assertEqual(BuilderStatus.ABORTING, response)
@defer.inlineCallbacks
@@ -525,36 +525,36 @@ class TestSlave(TestCase):
# valid chroot & filemaps works and returns a BuilderStatus of
# BUILDING.
build_id = 'some-id'
- slave = self.slave_helper.getClientSlave()
- response = yield self.slave_helper.triggerGoodBuild(slave, build_id)
+ worker = self.worker_helper.getClientWorker()
+ response = yield self.worker_helper.triggerGoodBuild(worker, build_id)
self.assertEqual([BuilderStatus.BUILDING, build_id], response)
def test_clean(self):
- slave = self.slave_helper.getClientSlave()
- # XXX: JonathanLange 2010-09-21: Calling clean() on the slave requires
+ worker = self.worker_helper.getClientWorker()
+ # XXX: JonathanLange 2010-09-21: Calling clean() on the worker requires
# it to be in either the WAITING or ABORTED states, and both of these
# states are very difficult to achieve in a test environment. For the
# time being, we'll just assert that a clean attribute exists.
- self.assertNotEqual(getattr(slave, 'clean', None), None)
+ self.assertNotEqual(getattr(worker, 'clean', None), None)
@defer.inlineCallbacks
def test_echo(self):
# Calling 'echo' contacts the server which returns the arguments we
# gave it.
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- response = yield slave.echo('foo', 'bar', 42)
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ response = yield worker.echo('foo', 'bar', 42)
self.assertEqual(['foo', 'bar', 42], response)
@defer.inlineCallbacks
def test_info(self):
- # Calling 'info' gets some information about the slave.
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- info = yield slave.info()
+ # Calling 'info' gets some information about the worker.
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ info = yield worker.info()
# We're testing the hard-coded values, since the version is hard-coded
- # into the remote slave, the supported build managers are hard-coded
- # into the tac file for the remote slave and config is returned from
+ # into the remote worker, the supported build managers are hard-coded
+ # into the tac file for the remote worker and config is returned from
# the configuration file.
self.assertEqual(3, len(info))
self.assertEqual(['1.0', 'i386'], info[:2])
@@ -566,22 +566,22 @@ class TestSlave(TestCase):
@defer.inlineCallbacks
def test_initial_status(self):
- # Calling 'status' returns the current status of the slave. The
+ # Calling 'status' returns the current status of the worker. The
# initial status is IDLE.
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- status = yield slave.status()
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ status = yield worker.status()
self.assertEqual(BuilderStatus.IDLE, status['builder_status'])
@defer.inlineCallbacks
def test_status_after_build(self):
- # Calling 'status' returns the current status of the slave. After a
+ # Calling 'status' returns the current status of the worker. After a
# build has been triggered, the status is BUILDING.
- slave = self.slave_helper.getClientSlave()
+ worker = self.worker_helper.getClientWorker()
build_id = 'status-build-id'
- response = yield self.slave_helper.triggerGoodBuild(slave, build_id)
+ response = yield self.worker_helper.triggerGoodBuild(worker, build_id)
self.assertEqual([BuilderStatus.BUILDING, build_id], response)
- status = yield slave.status()
+ status = yield worker.status()
self.assertEqual(BuilderStatus.BUILDING, status['builder_status'])
self.assertEqual(build_id, status['build_id'])
self.assertIsInstance(status['logtail'], xmlrpc.client.Binary)
@@ -589,58 +589,58 @@ class TestSlave(TestCase):
@defer.inlineCallbacks
def test_ensurepresent_not_there(self):
# ensurepresent checks to see if a file is there.
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- response = yield slave.ensurepresent('blahblah', None, None, None)
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ response = yield worker.ensurepresent('blahblah', None, None, None)
self.assertEqual([False, 'No URL'], response)
@defer.inlineCallbacks
def test_ensurepresent_actually_there(self):
# ensurepresent checks to see if a file is there.
- tachandler = self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- self.slave_helper.makeCacheFile(tachandler, 'blahblah')
- response = yield slave.ensurepresent('blahblah', None, None, None)
+ tachandler = self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ self.worker_helper.makeCacheFile(tachandler, 'blahblah')
+ response = yield worker.ensurepresent('blahblah', None, None, None)
self.assertEqual([True, 'No URL'], response)
def test_sendFileToSlave_not_there(self):
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- d = slave.sendFileToSlave('blahblah', None, None, None)
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ d = worker.sendFileToSlave('blahblah', None, None, None)
return assert_fails_with(d, CannotFetchFile)
@defer.inlineCallbacks
def test_sendFileToSlave_actually_there(self):
- tachandler = self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- self.slave_helper.makeCacheFile(tachandler, 'blahblah')
- yield slave.sendFileToSlave('blahblah', None, None, None)
- response = yield slave.ensurepresent('blahblah', None, None, None)
+ tachandler = self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ self.worker_helper.makeCacheFile(tachandler, 'blahblah')
+ yield worker.sendFileToSlave('blahblah', None, None, None)
+ response = yield worker.ensurepresent('blahblah', None, None, None)
self.assertEqual([True, 'No URL'], response)
@defer.inlineCallbacks
def test_resumeHost_success(self):
# On a successful resume resume() fires the returned deferred
# callback with (stdout, stderr, subprocess exit code).
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
# The configuration testing command-line.
self.assertEqual(
'echo %(vm_host)s', config.builddmaster.vm_resume_command)
- out, err, code = yield slave.resume()
+ out, err, code = yield worker.resume()
self.assertEqual(os.EX_OK, code)
# XXX: JonathanLange 2010-09-23: We should instead pass the
- # expected vm_host into the client slave. Not doing this now,
- # since the SlaveHelper is being moved around.
- self.assertEqual("%s\n" % slave._vm_host, six.ensure_str(out))
+ # expected vm_host into the client worker. Not doing this now,
+ # since the WorkerHelper is being moved around.
+ self.assertEqual("%s\n" % worker._vm_host, six.ensure_str(out))
def test_resumeHost_failure(self):
# On a failed resume, 'resumeHost' fires the returned deferred
# errorback with the `ProcessTerminated` failure.
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
# Override the configuration command-line with one that will fail.
failed_config = """
@@ -656,7 +656,7 @@ class TestSlave(TestCase):
out, err, code = failure.value
# The process will exit with a return code of "1".
self.assertEqual(code, 1)
- d = slave.resume()
+ d = worker.resume()
d.addBoth(check_resume_failure)
return d
@@ -673,8 +673,8 @@ class TestSlave(TestCase):
config.push('timeout_resume_command', timeout_config)
self.addCleanup(config.pop, 'timeout_resume_command')
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
# On timeouts, the response is a twisted `Failure` object containing
# a `TimeoutError` error.
@@ -683,7 +683,7 @@ class TestSlave(TestCase):
out, err, code = failure.value
self.assertEqual(code, signal.SIGKILL)
clock = Clock()
- d = slave.resume(clock=clock)
+ d = worker.resume(clock=clock)
# Move the clock beyond the socket_timeout but earlier than the
# sleep 5. This stops the test having to wait for the timeout.
# Fast tests FTW!
@@ -692,7 +692,7 @@ class TestSlave(TestCase):
return d
-class TestSlaveTimeouts(TestCase):
+class TestWorkerTimeouts(TestCase):
# Testing that the methods that call callRemote() all time out
# as required.
@@ -701,10 +701,10 @@ class TestSlaveTimeouts(TestCase):
def setUp(self):
super().setUp()
- self.slave_helper = self.useFixture(SlaveTestHelpers())
+ self.worker_helper = self.useFixture(WorkerTestHelpers())
self.clock = Clock()
self.proxy = DeadProxy(b"url")
- self.slave = self.slave_helper.getClientSlave(
+ self.worker = self.worker_helper.getClientWorker(
reactor=self.clock, proxy=self.proxy)
self.addCleanup(shut_down_default_process_pool)
@@ -713,31 +713,31 @@ class TestSlaveTimeouts(TestCase):
return assert_fails_with(d, defer.CancelledError)
def test_timeout_abort(self):
- return self.assertCancelled(self.slave.abort())
+ return self.assertCancelled(self.worker.abort())
def test_timeout_clean(self):
- return self.assertCancelled(self.slave.clean())
+ return self.assertCancelled(self.worker.clean())
def test_timeout_echo(self):
- return self.assertCancelled(self.slave.echo())
+ return self.assertCancelled(self.worker.echo())
def test_timeout_info(self):
- return self.assertCancelled(self.slave.info())
+ return self.assertCancelled(self.worker.info())
def test_timeout_status(self):
- return self.assertCancelled(self.slave.status())
+ return self.assertCancelled(self.worker.status())
def test_timeout_ensurepresent(self):
return self.assertCancelled(
- self.slave.ensurepresent(None, None, None, None),
+ self.worker.ensurepresent(None, None, None, None),
config.builddmaster.socket_timeout * 5)
def test_timeout_build(self):
return self.assertCancelled(
- self.slave.build(None, None, None, None, None))
+ self.worker.build(None, None, None, None, None))
-class TestSlaveConnectionTimeouts(TestCase):
+class TestWorkerConnectionTimeouts(TestCase):
# Testing that we can override the default 30 second connection
# timeout.
@@ -748,7 +748,7 @@ class TestSlaveConnectionTimeouts(TestCase):
def setUp(self):
super().setUp()
- self.slave_helper = self.useFixture(SlaveTestHelpers())
+ self.worker_helper = self.useFixture(WorkerTestHelpers())
self.clock = Clock()
self.addCleanup(shut_down_default_process_pool)
@@ -757,8 +757,8 @@ class TestSlaveConnectionTimeouts(TestCase):
# only the config value should.
self.pushConfig('builddmaster', socket_timeout=180)
- slave = self.slave_helper.getClientSlave(reactor=self.clock)
- d = slave.echo()
+ worker = self.worker_helper.getClientWorker(reactor=self.clock)
+ d = worker.echo()
# Advance past the 30 second timeout. The real reactor will
# never call connectTCP() since we're not spinning it up. This
# avoids "connection refused" errors and simulates an
@@ -771,7 +771,7 @@ class TestSlaveConnectionTimeouts(TestCase):
return assert_fails_with(d, defer.CancelledError)
-class TestSlaveWithLibrarian(TestCaseWithFactory):
+class TestWorkerWithLibrarian(TestCaseWithFactory):
"""Tests that need more of Launchpad to run."""
layer = LaunchpadZopelessLayer
@@ -780,7 +780,7 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
def setUp(self):
super().setUp()
- self.slave_helper = self.useFixture(SlaveTestHelpers())
+ self.worker_helper = self.useFixture(WorkerTestHelpers())
self.addCleanup(shut_down_default_process_pool)
def test_ensurepresent_librarian(self):
@@ -792,15 +792,15 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
lf = self.factory.makeLibraryFileAlias(
'HelloWorld.txt', content="Hello World")
self.layer.txn.commit()
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- d = slave.ensurepresent(lf.content.sha1, lf.http_url, "", "")
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ d = worker.ensurepresent(lf.content.sha1, lf.http_url, "", "")
d.addCallback(self.assertEqual, [True, 'Download'])
return d
@defer.inlineCallbacks
def test_retrieve_files_from_filecache(self):
- # Files that are present on the slave can be downloaded with a
+ # Files that are present on the worker can be downloaded with a
# filename made from the sha1 of the content underneath the
# 'filecache' directory.
from twisted.internet import reactor
@@ -809,10 +809,10 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
'HelloWorld.txt', content=content)
self.layer.txn.commit()
expected_url = '%s/filecache/%s' % (
- self.slave_helper.base_url, lf.content.sha1)
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
- yield slave.ensurepresent(lf.content.sha1, lf.http_url, "", "")
+ self.worker_helper.base_url, lf.content.sha1)
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
+ yield worker.ensurepresent(lf.content.sha1, lf.http_url, "", "")
client = self.useFixture(TReqFixture(reactor)).client
response = yield client.get(expected_url).addCallback(check_status)
got_content = yield treq.content(response)
@@ -824,8 +824,8 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
# separately because it increases test run time and it's going
# away at some point anyway, in favour of getFiles().
contents = ["content1", "content2", "content3"]
- self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
+ self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
files = []
content_map = {}
@@ -837,7 +837,7 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
self.assertEqual(content_map[sha1], f.read())
def finished_uploading(ignored):
- d = slave.getFiles(files)
+ d = worker.getFiles(files)
return d.addCallback(got_files)
# Set up some files on the builder and store details in
@@ -854,7 +854,7 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
files.append((lf.content.sha1, tempfile.mkstemp()[1]))
self.addCleanup(os.remove, files[-1][1])
self.layer.txn.commit()
- d = slave.ensurepresent(lf.content.sha1, lf.http_url, "", "")
+ d = worker.ensurepresent(lf.content.sha1, lf.http_url, "", "")
dl.append(d)
return defer.DeferredList(dl).addCallback(finished_uploading)
@@ -863,11 +863,11 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
# getFiles honours the configured limit on active download
# connections.
contents = [self.factory.getUniqueString() for _ in range(10)]
- self.slave_helper.getServerSlave()
+ self.worker_helper.getServerWorker()
process_pool = make_download_process_pool(min=1, max=2)
process_pool.start()
self.addCleanup(process_pool.stop)
- slave = self.slave_helper.getClientSlave(process_pool=process_pool)
+ worker = self.worker_helper.getClientWorker(process_pool=process_pool)
files = []
content_map = {}
@@ -881,7 +881,7 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
self.assertEqual(2, len(process_pool.processes))
def finished_uploading(ignored):
- d = slave.getFiles(files)
+ d = worker.getFiles(files)
return d.addCallback(got_files)
# Set up some files on the builder and store details in
@@ -894,7 +894,7 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
files.append((lf.content.sha1, tempfile.mkstemp()[1]))
self.addCleanup(os.remove, files[-1][1])
self.layer.txn.commit()
- d = slave.ensurepresent(lf.content.sha1, lf.http_url, "", "")
+ d = worker.ensurepresent(lf.content.sha1, lf.http_url, "", "")
dl.append(d)
return defer.DeferredList(dl).addCallback(finished_uploading)
@@ -902,12 +902,12 @@ class TestSlaveWithLibrarian(TestCaseWithFactory):
@defer.inlineCallbacks
def test_getFiles_with_empty_file(self):
# getFiles works with zero-length files.
- tachandler = self.slave_helper.getServerSlave()
- slave = self.slave_helper.getClientSlave()
+ tachandler = self.worker_helper.getServerWorker()
+ worker = self.worker_helper.getClientWorker()
temp_fd, temp_name = tempfile.mkstemp()
self.addCleanup(os.remove, temp_name)
empty_sha1 = hashlib.sha1(b'').hexdigest()
- self.slave_helper.makeCacheFile(tachandler, empty_sha1, contents=b'')
- yield slave.getFiles([(empty_sha1, temp_name)])
+ self.worker_helper.makeCacheFile(tachandler, empty_sha1, contents=b'')
+ yield worker.getFiles([(empty_sha1, temp_name)])
with open(temp_name, 'rb') as f:
self.assertEqual(b'', f.read())
diff --git a/lib/lp/buildmaster/tests/test_manager.py b/lib/lp/buildmaster/tests/test_manager.py
index e058811..705389e 100644
--- a/lib/lp/buildmaster/tests/test_manager.py
+++ b/lib/lp/buildmaster/tests/test_manager.py
@@ -1,7 +1,7 @@
# Copyright 2009-2021 Canonical Ltd. This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).
-"""Tests for the renovated slave scanner aka BuilddManager."""
+"""Tests for the renovated worker scanner aka BuilddManager."""
import os
import signal
@@ -48,18 +48,18 @@ from lp.buildmaster.manager import (
judge_failure,
PrefetchedBuilderFactory,
recover_failure,
- SlaveScanner,
+ WorkerScanner,
)
from lp.buildmaster.tests.harness import BuilddManagerTestSetup
-from lp.buildmaster.tests.mock_slaves import (
- BrokenSlave,
- BuildingSlave,
- LostBuildingBrokenSlave,
+from lp.buildmaster.tests.mock_workers import (
+ BrokenWorker,
+ BuildingWorker,
+ LostBuildingBrokenWorker,
make_publisher,
MockBuilder,
- OkSlave,
+ OkWorker,
TrivialBehaviour,
- WaitingSlave,
+ WaitingWorker,
)
from lp.buildmaster.tests.test_interactor import (
FakeBuildQueue,
@@ -92,8 +92,8 @@ from lp.testing.matchers import HasQueryCount
from lp.testing.sampledata import BOB_THE_BUILDER_NAME
-class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
- """Tests `SlaveScanner.scan` method.
+class TestWorkerScannerScan(StatsMixin, TestCaseWithFactory):
+ """Tests `WorkerScanner.scan` method.
This method uses the old framework for scanning and dispatching builds.
"""
@@ -140,7 +140,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
self.assertEqual(job.logtail, logtail)
def _getScanner(self, builder_name=None, clock=None, builder_factory=None):
- """Instantiate a SlaveScanner object.
+ """Instantiate a WorkerScanner object.
Replace its default logging handler by a testing version.
"""
@@ -150,10 +150,10 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
builder_factory = BuilderFactory()
manager = BuilddManager(builder_factory=builder_factory, clock=clock)
manager.logger = BufferLogger()
- scanner = SlaveScanner(
+ scanner = WorkerScanner(
builder_name, builder_factory, manager, BufferLogger(),
clock=clock)
- scanner.logger.name = 'slave-scanner'
+ scanner.logger.name = 'worker-scanner'
return scanner
@@ -164,7 +164,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
# Reset sampledata builder.
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
self._resetBuilder(builder)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
# Set this to 1 here so that _checkDispatch can make sure it's
# reset to 0 after a successful dispatch.
builder.failure_count = 1
@@ -184,7 +184,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
self.assertTrue(builder.currentjob is None)
def _checkJobRescued(self, builder, job):
- """`SlaveScanner.scan` rescued the job.
+ """`WorkerScanner.scan` rescued the job.
Nothing gets dispatched, the 'broken' builder remained disabled
and the 'rescued' job is ready to be dispatched.
@@ -205,7 +205,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
self.patch(
BuilderSlave, 'makeBuilderSlave',
- FakeMethod(BuildingSlave(build_id='PACKAGEBUILD-8')))
+ FakeMethod(BuildingWorker(build_id='PACKAGEBUILD-8')))
self.assertTrue(builder.builderok)
job = builder.currentjob
self.assertBuildingJob(job, builder)
@@ -224,7 +224,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
self._checkJobRescued(builder, job)
def _checkJobUpdated(self, builder, job, logtail='This is a build log: 0'):
- """`SlaveScanner.scan` updates legitimate jobs.
+ """`WorkerScanner.scan` updates legitimate jobs.
Job is kept assigned to the active builder and its 'logtail' is
updated.
@@ -238,13 +238,13 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
@defer.inlineCallbacks
def testScanUpdatesBuildingJobs(self):
# Enable sampledata builder attached to an appropriate testing
- # slave. It will respond as if it was building the sampledata job.
+ # worker. It will respond as if it was building the sampledata job.
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
login('foo.bar@xxxxxxxxxxxxx')
builder.builderok = True
self.patch(BuilderSlave, 'makeBuilderSlave',
- FakeMethod(BuildingSlave(build_id='PACKAGEBUILD-8')))
+ FakeMethod(BuildingWorker(build_id='PACKAGEBUILD-8')))
transaction.commit()
login(ANONYMOUS)
@@ -263,7 +263,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
factory = LaunchpadObjectFactory()
builder = factory.makeBuilder()
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
transaction.commit()
scanner = self._getScanner(builder_name=builder.name)
yield scanner.scan()
@@ -274,7 +274,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
# Reset sampledata builder.
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
self._resetBuilder(builder)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
builder.manual = True
transaction.commit()
scanner = self._getScanner()
@@ -286,7 +286,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
# Reset sampledata builder.
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
self._resetBuilder(builder)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
builder.builderok = False
transaction.commit()
scanner = self._getScanner()
@@ -299,7 +299,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
self._resetBuilder(builder)
self.patch(
- BuilderSlave, 'makeBuilderSlave', FakeMethod(BrokenSlave()))
+ BuilderSlave, 'makeBuilderSlave', FakeMethod(BrokenWorker()))
builder.failure_count = 0
transaction.commit()
scanner = self._getScanner(builder_name=builder.name)
@@ -310,7 +310,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
def test_scan_of_partial_utf8_logtail(self):
# The builder returns a fixed number of bytes from the tail of the
# log, so the first character can easily end up being invalid UTF-8.
- class BrokenUTF8Slave(BuildingSlave):
+ class BrokenUTF8Worker(BuildingWorker):
@defer.inlineCallbacks
def status(self):
status = yield super().status()
@@ -322,7 +322,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
builder.builderok = True
self.patch(
BuilderSlave, 'makeBuilderSlave',
- FakeMethod(BrokenUTF8Slave(build_id='PACKAGEBUILD-8')))
+ FakeMethod(BrokenUTF8Worker(build_id='PACKAGEBUILD-8')))
transaction.commit()
login(ANONYMOUS)
@@ -339,7 +339,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
def test_scan_of_logtail_containing_nul(self):
# PostgreSQL text columns can't store ASCII NUL (\0) characters, so
# we make sure to filter those out of the logtail.
- class NULSlave(BuildingSlave):
+ class NULWorker(BuildingWorker):
@defer.inlineCallbacks
def status(self):
status = yield super().status()
@@ -351,7 +351,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
builder.builderok = True
self.patch(
BuilderSlave, 'makeBuilderSlave',
- FakeMethod(NULSlave(build_id='PACKAGEBUILD-8')))
+ FakeMethod(NULWorker(build_id='PACKAGEBUILD-8')))
transaction.commit()
login(ANONYMOUS)
@@ -366,14 +366,14 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
@defer.inlineCallbacks
def test_scan_calls_builder_factory_prescanUpdate(self):
- # SlaveScanner.scan() starts by calling
+ # WorkerScanner.scan() starts by calling
# BuilderFactory.prescanUpdate() to eg. perform necessary
# transaction management.
bf = BuilderFactory()
bf.prescanUpdate = FakeMethod()
scanner = self._getScanner(builder_factory=bf)
- # Disable the builder so we don't try to use the slave. It's not
+ # Disable the builder so we don't try to use the worker. It's not
# relevant for this test.
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
builder.builderok = False
@@ -418,7 +418,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
def test_scan_of_snap_build(self):
# Snap builds return additional status information, which the scan
# collects.
- class SnapBuildingSlave(BuildingSlave):
+ class SnapBuildingWorker(BuildingWorker):
revision_id = None
@defer.inlineCallbacks
@@ -433,15 +433,15 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
builder = self.factory.makeBuilder(
processors=[job.processor], vm_host="fake_vm_host")
job.markAsBuilding(builder)
- slave = SnapBuildingSlave(build_id="SNAPBUILD-%d" % build.id)
- self.patch(BuilderSlave, "makeBuilderSlave", FakeMethod(slave))
+ worker = SnapBuildingWorker(build_id="SNAPBUILD-%d" % build.id)
+ self.patch(BuilderSlave, "makeBuilderSlave", FakeMethod(worker))
transaction.commit()
scanner = self._getScanner(builder_name=builder.name)
yield scanner.scan()
yield scanner.manager.flushLogTails()
self.assertBuildingJob(job, builder, logtail="This is a build log: 0")
self.assertIsNone(build.revision_id)
- slave.revision_id = "dummy"
+ worker.revision_id = "dummy"
scanner = self._getScanner(builder_name=builder.name)
yield scanner.scan()
yield scanner.manager.flushLogTails()
@@ -538,12 +538,12 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
@defer.inlineCallbacks
def test_fail_to_resume_leaves_it_dirty(self):
- # If an attempt to resume a slave fails, its failure count is
+ # If an attempt to resume a worker fails, its failure count is
# incremented and it is left DIRTY.
- # Make a slave with a failing resume() method.
- slave = OkSlave()
- slave.resume = lambda: deferLater(
+ # Make a worker with a failing resume() method.
+ worker = OkWorker()
+ worker.resume = lambda: deferLater(
reactor, 0, defer.fail, Failure(('out', 'err', 1)))
# Reset sampledata builder.
@@ -553,7 +553,7 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
builder.setCleanStatus(BuilderCleanStatus.DIRTY)
builder.virtualized = True
self.assertEqual(0, builder.failure_count)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(worker))
builder.vm_host = "fake_vm_host"
transaction.commit()
@@ -587,20 +587,20 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
self.assertEqual(BuildStatus.FAILEDTOBUILD, build.status)
@defer.inlineCallbacks
- def test_update_slave_version(self):
- # If the reported slave version differs from the DB's record of it,
+ def test_update_worker_version(self):
+ # If the reported worker version differs from the DB's record of it,
# then scanning the builder updates the DB.
- slave = OkSlave(version="100")
+ worker = OkWorker(version="100")
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
builder.version = "99"
self._resetBuilder(builder)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(worker))
scanner = self._getScanner()
yield scanner.scan()
self.assertEqual("100", builder.version)
def test_updateVersion_no_op(self):
- # If the slave version matches the DB, then updateVersion does not
+ # If the worker version matches the DB, then updateVersion does not
# touch the DB.
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
builder.version = "100"
@@ -617,21 +617,21 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
# then the build should be aborted, and eventually stopped and moved
# to the CANCELLED state if it does not abort by itself.
- # Set up a mock building slave.
- slave = BuildingSlave()
+ # Set up a mock building worker.
+ worker = BuildingWorker()
- # Set the sample data builder building with the slave from above.
+ # Set the sample data builder building with the worker from above.
builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
login('foo.bar@xxxxxxxxxxxxx')
builder.builderok = True
# For now, we can only cancel virtual builds.
builder.virtualized = True
builder.vm_host = "fake_vm_host"
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(worker))
transaction.commit()
login(ANONYMOUS)
buildqueue = builder.currentjob
- slave.build_id = buildqueue.build_cookie
+ worker.build_id = buildqueue.build_cookie
self.assertBuildingJob(buildqueue, builder)
# Now set the build to CANCELLING.
@@ -645,26 +645,26 @@ class TestSlaveScannerScan(StatsMixin, TestCaseWithFactory):
yield scanner.scan()
# An abort request should be sent.
- self.assertEqual(1, slave.call_log.count("abort"))
+ self.assertEqual(1, worker.call_log.count("abort"))
self.assertEqual(BuildStatus.CANCELLING, build.status)
# Advance time a little. Nothing much should happen.
clock.advance(1)
yield scanner.scan()
- self.assertEqual(1, slave.call_log.count("abort"))
+ self.assertEqual(1, worker.call_log.count("abort"))
self.assertEqual(BuildStatus.CANCELLING, build.status)
# Advance past the timeout. The build state should be cancelled and
- # we should have also called the resume() method on the slave that
+ # we should have also called the resume() method on the worker that
# resets the virtual machine.
- clock.advance(SlaveScanner.CANCEL_TIMEOUT)
+ clock.advance(WorkerScanner.CANCEL_TIMEOUT)
yield scanner.singleCycle()
- self.assertEqual(1, slave.call_log.count("abort"))
+ self.assertEqual(1, worker.call_log.count("abort"))
self.assertEqual(BuilderCleanStatus.DIRTY, builder.clean_status)
self.assertEqual(BuildStatus.CANCELLED, build.status)
-class TestSlaveScannerWithLibrarian(TestCaseWithFactory):
+class TestWorkerScannerWithLibrarian(TestCaseWithFactory):
layer = LaunchpadZopelessLayer
run_tests_with = AsynchronousDeferredRunTest.make_factory(timeout=20)
@@ -675,7 +675,7 @@ class TestSlaveScannerWithLibrarian(TestCaseWithFactory):
@defer.inlineCallbacks
def test_end_to_end(self):
- # Test that SlaveScanner.scan() successfully finds, dispatches,
+ # Test that WorkerScanner.scan() successfully finds, dispatches,
# collects and cleans a build, and then makes a reasonable start on
# a second build.
build = self.factory.makeBinaryPackageBuild()
@@ -699,40 +699,40 @@ class TestSlaveScannerWithLibrarian(TestCaseWithFactory):
self.patch(
BinaryPackageBuildBehaviour, 'handleSuccess', handleSuccess)
- # And create a SlaveScanner with a slave and a clock that we
+ # And create a WorkerScanner with a worker and a clock that we
# control.
- get_slave = FakeMethod(OkSlave())
+ get_worker = FakeMethod(OkWorker())
clock = task.Clock()
manager = BuilddManager(clock=clock)
manager.logger = BufferLogger()
- scanner = SlaveScanner(
+ scanner = WorkerScanner(
builder.name, BuilderFactory(), manager, BufferLogger(),
- slave_factory=get_slave, clock=clock)
+ worker_factory=get_worker, clock=clock)
- # The slave is idle and dirty, so the first scan will clean it
+ # The worker is idle and dirty, so the first scan will clean it
# with a reset.
self.assertEqual(BuilderCleanStatus.DIRTY, builder.clean_status)
yield scanner.scan()
- self.assertEqual(['resume', 'echo'], get_slave.result.method_log)
+ self.assertEqual(['resume', 'echo'], get_worker.result.method_log)
self.assertEqual(BuilderCleanStatus.CLEAN, builder.clean_status)
self.assertIs(None, builder.currentjob)
- # The slave is idle and clean, and there's a build candidate, so
+ # The worker is idle and clean, and there's a build candidate, so
# the next scan will dispatch the build.
- get_slave.result = OkSlave()
+ get_worker.result = OkWorker()
yield scanner.scan()
self.assertEqual(
['status', 'ensurepresent', 'build'],
- get_slave.result.method_log)
+ get_worker.result.method_log)
self.assertEqual(bq, builder.currentjob)
self.assertEqual(BuildQueueStatus.RUNNING, bq.status)
self.assertEqual(BuildStatus.BUILDING, build.status)
self.assertEqual(BuilderCleanStatus.DIRTY, builder.clean_status)
- # build() has been called, so switch in a BUILDING slave.
+ # build() has been called, so switch in a BUILDING worker.
# Scans will now just do a status() each, as the logtail is
# updated.
- get_slave.result = BuildingSlave(build.build_cookie)
+ get_worker.result = BuildingWorker(build.build_cookie)
yield scanner.scan()
yield scanner.manager.flushLogTails()
self.assertEqual("This is a build log: 0", bq.logtail)
@@ -743,43 +743,43 @@ class TestSlaveScannerWithLibrarian(TestCaseWithFactory):
yield scanner.manager.flushLogTails()
self.assertEqual("This is a build log: 2", bq.logtail)
self.assertEqual(
- ['status', 'status', 'status'], get_slave.result.method_log)
+ ['status', 'status', 'status'], get_worker.result.method_log)
# When the build finishes, the scanner will notice and call
# handleStatus(). Our fake handleSuccess() doesn't do anything
# special, but there'd usually be file retrievals in the middle,
# and the log is retrieved by handleStatus() afterwards.
# The builder remains dirty afterward.
- get_slave.result = WaitingSlave(build_id=build.build_cookie)
+ get_worker.result = WaitingWorker(build_id=build.build_cookie)
yield scanner.scan()
- self.assertEqual(['status', 'getFile'], get_slave.result.method_log)
+ self.assertEqual(['status', 'getFile'], get_worker.result.method_log)
self.assertIs(None, builder.currentjob)
self.assertEqual(BuildStatus.UPLOADING, build.status)
self.assertEqual(builder, build.builder)
self.assertEqual(BuilderCleanStatus.DIRTY, builder.clean_status)
- # We're idle and dirty, so let's flip back to an idle slave and
- # confirm that the slave gets cleaned.
- get_slave.result = OkSlave()
+ # We're idle and dirty, so let's flip back to an idle worker and
+ # confirm that the worker gets cleaned.
+ get_worker.result = OkWorker()
yield scanner.scan()
- self.assertEqual(['resume', 'echo'], get_slave.result.method_log)
+ self.assertEqual(['resume', 'echo'], get_worker.result.method_log)
self.assertIs(None, builder.currentjob)
self.assertEqual(BuilderCleanStatus.CLEAN, builder.clean_status)
# Now we can go round the loop again with a second build. (We only
# go far enough to ensure that the lost-job check works on the
# second iteration.)
- get_slave.result = OkSlave()
+ get_worker.result = OkWorker()
yield scanner.scan()
self.assertEqual(
['status', 'ensurepresent', 'build'],
- get_slave.result.method_log)
+ get_worker.result.method_log)
self.assertEqual(bq2, builder.currentjob)
self.assertEqual(BuildQueueStatus.RUNNING, bq2.status)
self.assertEqual(BuildStatus.BUILDING, build2.status)
self.assertEqual(BuilderCleanStatus.DIRTY, builder.clean_status)
- get_slave.result = BuildingSlave(build2.build_cookie)
+ get_worker.result = BuildingWorker(build2.build_cookie)
yield scanner.scan()
yield scanner.manager.flushLogTails()
self.assertEqual("This is a build log: 0", bq2.logtail)
@@ -923,7 +923,7 @@ class FakeBuilddManager:
self.pending_logtails[build_queue_id] = logtail
-class TestSlaveScannerWithoutDB(TestCase):
+class TestWorkerScannerWithoutDB(TestCase):
layer = ZopelessDatabaseLayer
run_tests_with = AsynchronousDeferredRunTest
@@ -932,7 +932,7 @@ class TestSlaveScannerWithoutDB(TestCase):
super().setUp()
self.addCleanup(shut_down_default_process_pool)
- def getScanner(self, builder_factory=None, interactor=None, slave=None,
+ def getScanner(self, builder_factory=None, interactor=None, worker=None,
behaviour=None):
if builder_factory is None:
builder_factory = MockBuilderFactory(
@@ -940,46 +940,46 @@ class TestSlaveScannerWithoutDB(TestCase):
if interactor is None:
interactor = BuilderInteractor()
interactor.updateBuild = FakeMethod()
- if slave is None:
- slave = OkSlave()
+ if worker is None:
+ worker = OkWorker()
if behaviour is None:
behaviour = TrivialBehaviour()
- return SlaveScanner(
+ return WorkerScanner(
'mock', builder_factory, FakeBuilddManager(), BufferLogger(),
interactor_factory=FakeMethod(interactor),
- slave_factory=FakeMethod(slave),
+ worker_factory=FakeMethod(worker),
behaviour_factory=FakeMethod(behaviour))
@defer.inlineCallbacks
def test_scan_with_job(self):
- # SlaveScanner.scan calls updateBuild() when a job is building.
- slave = BuildingSlave('trivial')
+ # WorkerScanner.scan calls updateBuild() when a job is building.
+ worker = BuildingWorker('trivial')
bq = FakeBuildQueue('trivial')
scanner = self.getScanner(
builder_factory=MockBuilderFactory(MockBuilder(), bq),
- slave=slave)
+ worker=worker)
yield scanner.scan()
- self.assertEqual(['status'], slave.call_log)
+ self.assertEqual(['status'], worker.call_log)
self.assertEqual(
1, scanner.interactor_factory.result.updateBuild.call_count)
self.assertEqual(0, bq.reset.call_count)
@defer.inlineCallbacks
- def test_scan_recovers_lost_slave_with_job(self):
- # SlaveScanner.scan identifies slaves that aren't building what
- # they should be, resets the jobs, and then aborts the slaves.
- slave = BuildingSlave('nontrivial')
+ def test_scan_recovers_lost_worker_with_job(self):
+ # WorkerScanner.scan identifies workers that aren't building what
+ # they should be, resets the jobs, and then aborts the workers.
+ worker = BuildingWorker('nontrivial')
bq = FakeBuildQueue('trivial')
builder = MockBuilder(virtualized=False)
scanner = self.getScanner(
builder_factory=MockBuilderFactory(builder, bq),
- slave=slave)
+ worker=worker)
- # A single scan will call status(), notice that the slave is lost,
+ # A single scan will call status(), notice that the worker is lost,
# and reset() the job without calling updateBuild().
yield scanner.scan()
- self.assertEqual(['status'], slave.call_log)
+ self.assertEqual(['status'], worker.call_log)
self.assertEqual(
0, scanner.interactor_factory.result.updateBuild.call_count)
self.assertEqual(1, bq.reset.call_count)
@@ -987,60 +987,60 @@ class TestSlaveScannerWithoutDB(TestCase):
scanner.builder_factory.updateTestData(builder, None)
# The next scan will see a dirty idle builder with a BUILDING
- # slave, and abort() it.
+ # worker, and abort() it.
yield scanner.scan()
- self.assertEqual(['status', 'status', 'abort'], slave.call_log)
+ self.assertEqual(['status', 'status', 'abort'], worker.call_log)
@defer.inlineCallbacks
- def test_scan_recovers_lost_slave_when_idle(self):
- # SlaveScanner.scan identifies slaves that are building when
+ def test_scan_recovers_lost_worker_when_idle(self):
+ # WorkerScanner.scan identifies workers that are building when
# they shouldn't be and aborts them.
- slave = BuildingSlave()
- scanner = self.getScanner(slave=slave)
+ worker = BuildingWorker()
+ scanner = self.getScanner(worker=worker)
yield scanner.scan()
- self.assertEqual(['status', 'abort'], slave.call_log)
+ self.assertEqual(['status', 'abort'], worker.call_log)
@defer.inlineCallbacks
def test_scan_building_but_not_dirty_builder_explodes(self):
# Builders with a build assigned must be dirty for safety
# reasons. If we run into one that's clean, we blow up.
- slave = BuildingSlave()
+ worker = BuildingWorker()
builder = MockBuilder(clean_status=BuilderCleanStatus.CLEAN)
bq = FakeBuildQueue()
scanner = self.getScanner(
- slave=slave, builder_factory=MockBuilderFactory(builder, bq))
+ worker=worker, builder_factory=MockBuilderFactory(builder, bq))
with ExpectedException(
BuildDaemonIsolationError,
"Non-dirty builder allegedly building."):
yield scanner.scan()
- self.assertEqual([], slave.call_log)
+ self.assertEqual([], worker.call_log)
@defer.inlineCallbacks
- def test_scan_clean_but_not_idle_slave_explodes(self):
- # Clean builders by definition have slaves that are idle. If
- # an ostensibly clean slave isn't idle, blow up.
- slave = BuildingSlave()
+ def test_scan_clean_but_not_idle_worker_explodes(self):
+ # Clean builders by definition have workers that are idle. If
+ # an ostensibly clean worker isn't idle, blow up.
+ worker = BuildingWorker()
builder = MockBuilder(clean_status=BuilderCleanStatus.CLEAN)
scanner = self.getScanner(
- slave=slave, builder_factory=MockBuilderFactory(builder, None))
+ worker=worker, builder_factory=MockBuilderFactory(builder, None))
with ExpectedException(
BuildDaemonIsolationError,
r"Allegedly clean slave not idle \(%r instead\)" %
'BuilderStatus.BUILDING'):
yield scanner.scan()
- self.assertEqual(['status'], slave.call_log)
+ self.assertEqual(['status'], worker.call_log)
def test_getExpectedCookie_caches(self):
bq = FakeBuildQueue('trivial')
bf = MockBuilderFactory(MockBuilder(), bq)
manager = BuilddManager()
manager.logger = BufferLogger()
- scanner = SlaveScanner(
+ scanner = WorkerScanner(
'mock', bf, manager, BufferLogger(),
interactor_factory=FakeMethod(None),
- slave_factory=FakeMethod(None),
+ worker_factory=FakeMethod(None),
behaviour_factory=FakeMethod(TrivialBehaviour()))
# The first call retrieves the cookie from the BuildQueue.
@@ -1136,61 +1136,61 @@ class TestCancellationChecking(TestCaseWithFactory):
def _getScanner(self, clock=None):
manager = BuilddManager(clock=clock)
manager.logger = BufferLogger()
- scanner = SlaveScanner(
+ scanner = WorkerScanner(
None, BuilderFactory(), manager, BufferLogger(), clock=clock)
- scanner.logger.name = 'slave-scanner'
+ scanner.logger.name = 'worker-scanner'
return scanner
def test_ignores_build_not_cancelling(self):
# If the active build is not in a CANCELLING state, ignore it.
- slave = BuildingSlave()
+ worker = BuildingWorker()
scanner = self._getScanner()
- yield scanner.checkCancellation(self.vitals, slave)
- self.assertEqual([], slave.call_log)
+ yield scanner.checkCancellation(self.vitals, worker)
+ self.assertEqual([], worker.call_log)
@defer.inlineCallbacks
def test_cancelling_build_is_aborted(self):
- # The first time we see a CANCELLING build, we abort the slave.
- slave = BuildingSlave()
+ # The first time we see a CANCELLING build, we abort the worker.
+ worker = BuildingWorker()
self.builder.current_build.cancel()
scanner = self._getScanner()
- yield scanner.checkCancellation(self.vitals, slave)
- self.assertEqual(["abort"], slave.call_log)
+ yield scanner.checkCancellation(self.vitals, worker)
+ self.assertEqual(["abort"], worker.call_log)
# A further scan is a no-op, as we remember that we've already
- # requested that the slave abort.
- yield scanner.checkCancellation(self.vitals, slave)
- self.assertEqual(["abort"], slave.call_log)
+ # requested that the worker abort.
+ yield scanner.checkCancellation(self.vitals, worker)
+ self.assertEqual(["abort"], worker.call_log)
@defer.inlineCallbacks
def test_timed_out_cancel_errors(self):
# If a BuildQueue is CANCELLING and the cancel timeout expires,
# an exception is raised so the normal scan error handler can
# finalise the build.
- slave = OkSlave()
+ worker = OkWorker()
build = self.builder.current_build
build.cancel()
clock = task.Clock()
scanner = self._getScanner(clock=clock)
- yield scanner.checkCancellation(self.vitals, slave)
- self.assertEqual(["abort"], slave.call_log)
+ yield scanner.checkCancellation(self.vitals, worker)
+ self.assertEqual(["abort"], worker.call_log)
self.assertEqual(BuildStatus.CANCELLING, build.status)
- clock.advance(SlaveScanner.CANCEL_TIMEOUT)
+ clock.advance(WorkerScanner.CANCEL_TIMEOUT)
with ExpectedException(
BuildSlaveFailure, "Timeout waiting for .* to cancel"):
- yield scanner.checkCancellation(self.vitals, slave)
+ yield scanner.checkCancellation(self.vitals, worker)
@defer.inlineCallbacks
def test_failed_abort_errors(self):
# If the builder reports a fault while attempting to abort it,
# an exception is raised so the build can be finalised.
- slave = LostBuildingBrokenSlave()
+ worker = LostBuildingBrokenWorker()
self.builder.current_build.cancel()
with ExpectedException(
xmlrpc.client.Fault, "<Fault 8002: %r>" % 'Could not abort'):
- yield self._getScanner().checkCancellation(self.vitals, slave)
+ yield self._getScanner().checkCancellation(self.vitals, worker)
class TestBuilddManager(TestCase):
@@ -1200,10 +1200,10 @@ class TestBuilddManager(TestCase):
def _stub_out_scheduleNextScanCycle(self):
# stub out the code that adds a callLater, so that later tests
# don't get surprises.
- self.patch(SlaveScanner, 'startCycle', FakeMethod())
+ self.patch(WorkerScanner, 'startCycle', FakeMethod())
def test_addScanForBuilders(self):
- # Test that addScanForBuilders generates SlaveScanner objects.
+ # Test that addScanForBuilders generates WorkerScanner objects.
self._stub_out_scheduleNextScanCycle()
manager = BuilddManager()
@@ -1256,7 +1256,7 @@ class TestFailureAssessments(TestCaseWithFactory):
self.build = self.factory.makeSourcePackageRecipeBuild()
self.buildqueue = self.build.queueBuild()
self.buildqueue.markAsBuilding(self.builder)
- self.slave = OkSlave()
+ self.worker = OkWorker()
def _recover_failure(self, fail_notes, retry=True):
# Helper for recover_failure boilerplate.
diff --git a/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py b/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
index 92aa239..e0b5cca 100644
--- a/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
+++ b/lib/lp/charms/tests/test_charmrecipebuildbehaviour.py
@@ -50,10 +50,10 @@ from lp.buildmaster.tests.builderproxy import (
ProxyURLMatcher,
RevocationEndpointMatcher,
)
-from lp.buildmaster.tests.mock_slaves import (
+from lp.buildmaster.tests.mock_workers import (
MockBuilder,
- OkSlave,
- SlaveTestHelpers,
+ OkWorker,
+ WorkerTestHelpers,
)
from lp.buildmaster.tests.test_buildfarmjobbehaviour import (
TestGetUploadMethodsMixin,
@@ -137,7 +137,7 @@ class TestCharmRecipeBuildBehaviour(TestCharmRecipeBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
job.verifyBuildRequest(logger)
self.assertEqual("", logger.getLogBuffer())
@@ -150,7 +150,7 @@ class TestCharmRecipeBuildBehaviour(TestCharmRecipeBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder(virtualized=False)
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(AssertionError, job.verifyBuildRequest, logger)
self.assertEqual(
@@ -160,7 +160,7 @@ class TestCharmRecipeBuildBehaviour(TestCharmRecipeBuildBehaviourBase):
# verifyBuildRequest raises when the DAS has no chroot.
job = self.makeJob()
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(CannotBuild, job.verifyBuildRequest, logger)
self.assertIn("Missing chroot", str(e))
@@ -198,9 +198,9 @@ class TestAsyncCharmRecipeBuildBehaviour(
job = super().makeJob(**kwargs)
builder = MockBuilder()
builder.processor = job.build.processor
- slave = self.useFixture(SlaveTestHelpers()).getClientSlave()
- job.setBuilder(builder, slave)
- self.addCleanup(slave.pool.closeCachedConnections)
+ worker = self.useFixture(WorkerTestHelpers()).getClientWorker()
+ job.setBuilder(builder, worker)
+ self.addCleanup(worker.pool.closeCachedConnections)
return job
@defer.inlineCallbacks
@@ -424,8 +424,8 @@ class TestAsyncCharmRecipeBuildBehaviour(
job = self.makeJob()
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
chroot_lfa, image_type=BuildBaseImageType.CHROOT)
@@ -434,7 +434,7 @@ class TestAsyncCharmRecipeBuildBehaviour(
lxd_lfa, image_type=BuildBaseImageType.LXD)
yield job.dispatchBuildToSlave(DevNullLogger())
self.assertEqual(
- ("ensurepresent", lxd_lfa.http_url, "", ""), slave.call_log[0])
+ ("ensurepresent", lxd_lfa.http_url, "", ""), worker.call_log[0])
self.assertEqual(1, self.stats_client.incr.call_count)
self.assertEqual(
self.stats_client.incr.call_args_list[0][0],
@@ -447,14 +447,14 @@ class TestAsyncCharmRecipeBuildBehaviour(
job = self.makeJob()
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
chroot_lfa, image_type=BuildBaseImageType.CHROOT)
yield job.dispatchBuildToSlave(DevNullLogger())
self.assertEqual(
- ("ensurepresent", chroot_lfa.http_url, "", ""), slave.call_log[0])
+ ("ensurepresent", chroot_lfa.http_url, "", ""), worker.call_log[0])
class MakeCharmRecipeBuildMixin:
diff --git a/lib/lp/code/model/tests/test_recipebuilder.py b/lib/lp/code/model/tests/test_recipebuilder.py
index add7e6e..9077a08 100644
--- a/lib/lp/code/model/tests/test_recipebuilder.py
+++ b/lib/lp/code/model/tests/test_recipebuilder.py
@@ -23,10 +23,10 @@ from lp.buildmaster.interfaces.buildfarmjobbehaviour import (
IBuildFarmJobBehaviour,
)
from lp.buildmaster.interfaces.processor import IProcessorSet
-from lp.buildmaster.tests.mock_slaves import (
+from lp.buildmaster.tests.mock_workers import (
MockBuilder,
- OkSlave,
- WaitingSlave,
+ OkWorker,
+ WaitingWorker,
)
from lp.buildmaster.tests.test_buildfarmjobbehaviour import (
TestGetUploadMethodsMixin,
@@ -127,7 +127,7 @@ class TestRecipeBuilder(TestRecipeBuilderBase):
# valid builder set.
job = self.makeJob()
builder = MockBuilder("bob-de-bouwer")
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
job.verifyBuildRequest(logger)
self.assertEqual("", logger.getLogBuffer())
@@ -137,7 +137,7 @@ class TestRecipeBuilder(TestRecipeBuilderBase):
job = self.makeJob()
builder = MockBuilder('non-virtual builder')
builder.virtualized = False
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(AssertionError, job.verifyBuildRequest, logger)
self.assertEqual(
@@ -148,7 +148,7 @@ class TestRecipeBuilder(TestRecipeBuilderBase):
build = self.factory.makeSourcePackageRecipeBuild(
pocket=PackagePublishingPocket.SECURITY)
job = IBuildFarmJobBehaviour(build)
- job.setBuilder(MockBuilder("bob-de-bouwer"), OkSlave())
+ job.setBuilder(MockBuilder("bob-de-bouwer"), OkWorker())
e = self.assertRaises(
AssertionError, job.verifyBuildRequest, BufferLogger())
self.assertIn('invalid pocket due to the series status of', str(e))
@@ -413,9 +413,9 @@ class TestBuildNotifications(TestCaseWithFactory):
config.push('tmp_builddmaster_root', tmp_builddmaster_root)
self.addCleanup(config.pop, 'tmp_builddmaster_root')
self.queue_record.builder = self.factory.makeBuilder()
- slave = WaitingSlave('BuildStatus.OK')
+ worker = WaitingWorker('BuildStatus.OK')
return BuilderInteractor.getBuildBehaviour(
- self.queue_record, self.queue_record.builder, slave)
+ self.queue_record, self.queue_record.builder, worker)
def assertDeferredNotifyCount(self, status, behaviour, expected_count):
d = behaviour.handleStatus(self.queue_record, status, {'filemap': {}})
diff --git a/lib/lp/codehosting/puller/worker.py b/lib/lp/codehosting/puller/worker.py
index 75cb919..5f4e58d 100644
--- a/lib/lp/codehosting/puller/worker.py
+++ b/lib/lp/codehosting/puller/worker.py
@@ -181,7 +181,7 @@ class BranchMirrorer:
"""A `BranchMirrorer` safely makes mirrors of branches.
A `BranchMirrorer` has a `BranchOpenPolicy` to tell it which URLs are safe
- to accesss and whether or not to follow branch references.
+ to access and whether or not to follow branch references.
The mirrorer knows how to follow branch references, create new mirrors,
update existing mirrors, determine stacked-on branches and the like.
diff --git a/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py b/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py
index 0961a2b..ded5db8 100644
--- a/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py
+++ b/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py
@@ -61,11 +61,11 @@ from lp.buildmaster.tests.builderproxy import (
ProxyURLMatcher,
RevocationEndpointMatcher,
)
-from lp.buildmaster.tests.mock_slaves import (
+from lp.buildmaster.tests.mock_workers import (
MockBuilder,
- OkSlave,
- SlaveTestHelpers,
- WaitingSlave,
+ OkWorker,
+ WaitingWorker,
+ WorkerTestHelpers,
)
from lp.buildmaster.tests.test_buildfarmjobbehaviour import (
TestGetUploadMethodsMixin,
@@ -122,9 +122,9 @@ class MakeOCIBuildMixin:
job = IBuildFarmJobBehaviour(build)
builder = MockBuilder()
builder.processor = job.build.processor
- slave = self.useFixture(SlaveTestHelpers()).getClientSlave()
- job.setBuilder(builder, slave)
- self.addCleanup(slave.pool.closeCachedConnections)
+ worker = self.useFixture(WorkerTestHelpers()).getClientWorker()
+ job.setBuilder(builder, worker)
+ self.addCleanup(worker.pool.closeCachedConnections)
self.addCleanup(shut_down_default_process_pool)
# Taken from test_archivedependencies.py
@@ -591,8 +591,8 @@ class TestAsyncOCIRecipeBuildBehaviour(
job = self.makeJob(git_ref=ref, allow_internet=False)
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
chroot_lfa, image_type=BuildBaseImageType.CHROOT)
@@ -601,7 +601,7 @@ class TestAsyncOCIRecipeBuildBehaviour(
lxd_lfa, image_type=BuildBaseImageType.LXD)
yield job.dispatchBuildToSlave(DevNullLogger())
self.assertEqual(
- ('ensurepresent', lxd_lfa.http_url, '', ''), slave.call_log[0])
+ ('ensurepresent', lxd_lfa.http_url, '', ''), worker.call_log[0])
self.assertEqual(1, self.stats_client.incr.call_count)
self.assertEqual(
self.stats_client.incr.call_args_list[0][0],
@@ -616,14 +616,14 @@ class TestAsyncOCIRecipeBuildBehaviour(
job = self.makeJob(git_ref=ref, allow_internet=False)
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
chroot_lfa, image_type=BuildBaseImageType.CHROOT)
yield job.dispatchBuildToSlave(DevNullLogger())
self.assertEqual(
- ('ensurepresent', chroot_lfa.http_url, '', ''), slave.call_log[0])
+ ('ensurepresent', chroot_lfa.http_url, '', ''), worker.call_log[0])
@defer.inlineCallbacks
def test_dispatchBuildToSlave_oci_feature_flag_enabled(self):
@@ -646,8 +646,8 @@ class TestAsyncOCIRecipeBuildBehaviour(
job = self.makeJob(git_ref=ref, build=build)
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
@@ -659,11 +659,10 @@ class TestAsyncOCIRecipeBuildBehaviour(
self.assertEqual(distroseries.name,
job.build.distro_arch_series.distroseries.name)
self.assertEqual(
- ('ensurepresent', lxd_lfa.http_url, '', ''), slave.call_log[0])
- # grab the build method log from the OKMockSlave
- # and check inside the arguments dict that we build
- # for Distro series
- self.assertEqual(distroseries.name, slave.call_log[1][5]['series'])
+ ('ensurepresent', lxd_lfa.http_url, '', ''), worker.call_log[0])
+ # grab the build method log from the OKWorker and check inside the
+ # arguments dict that we build for distro series
+ self.assertEqual(distroseries.name, worker.call_log[1][5]['series'])
@defer.inlineCallbacks
def test_extraBuildArgs_disallow_internet(self):
@@ -693,7 +692,7 @@ class TestHandleStatusForOCIRecipeBuild(MakeOCIBuildMixin,
path = os.path.join(self.test_files_dir, name)
with open(path, 'wb') as fp:
fp.write(six.ensure_binary(content))
- self.slave.valid_files[hash] = path
+ self.worker.valid_files[hash] = path
def setUp(self):
super().setUp()
@@ -701,14 +700,14 @@ class TestHandleStatusForOCIRecipeBuild(MakeOCIBuildMixin,
self.useFixture(FeatureFixture({OCI_RECIPE_ALLOW_CREATE: 'on'}))
self.build = self.makeBuild()
# For the moment, we require a builder for the build so that
- # handleStatus_OK can get a reference to the slave.
+ # handleStatus_OK can get a reference to the worker.
self.builder = self.factory.makeBuilder()
self.build.buildqueue_record.markAsBuilding(self.builder)
- self.slave = WaitingSlave('BuildStatus.OK')
- self.slave.valid_files['test_file_hash'] = ''
+ self.worker = WaitingWorker('BuildStatus.OK')
+ self.worker.valid_files['test_file_hash'] = ''
self.interactor = BuilderInteractor()
self.behaviour = self.interactor.getBuildBehaviour(
- self.build.buildqueue_record, self.builder, self.slave)
+ self.build.buildqueue_record, self.builder, self.worker)
self.addCleanup(shut_down_default_process_pool)
# We overwrite the buildmaster root to use a temp directory.
@@ -786,9 +785,9 @@ class TestHandleStatusForOCIRecipeBuild(MakeOCIBuildMixin,
self.assertEqual(
['buildlog', 'manifest_hash', 'digests_hash', 'config_1_hash',
'layer_2_hash'],
- self.slave._got_file_record)
+ self.worker._got_file_record)
# This hash should not appear as it is already in the librarian
- self.assertNotIn('layer_1_hash', self.slave._got_file_record)
+ self.assertNotIn('layer_1_hash', self.worker._got_file_record)
self.assertEqual(BuildStatus.UPLOADING, self.build.status)
self.assertResultCount(1, "incoming")
@@ -825,10 +824,10 @@ class TestHandleStatusForOCIRecipeBuild(MakeOCIBuildMixin,
{'filemap': self.filemap})
self.assertEqual(
['buildlog', 'manifest_hash', 'digests_hash', 'config_1_hash'],
- self.slave._got_file_record)
+ self.worker._got_file_record)
# This hash should not appear as it is already in the librarian
- self.assertNotIn('layer_1_hash', self.slave._got_file_record)
- self.assertNotIn('layer_2_hash', self.slave._got_file_record)
+ self.assertNotIn('layer_1_hash', self.worker._got_file_record)
+ self.assertNotIn('layer_2_hash', self.worker._got_file_record)
# layer_2 should have been retrieved from the librarian
layer_2_path = os.path.join(
@@ -909,7 +908,7 @@ class TestHandleStatusForOCIRecipeBuild(MakeOCIBuildMixin,
def test_handleStatus_ABORTED_illegal_when_building(self):
self.builder.vm_host = "fake_vm_host"
self.behaviour = self.interactor.getBuildBehaviour(
- self.build.buildqueue_record, self.builder, self.slave)
+ self.build.buildqueue_record, self.builder, self.worker)
with dbuser(config.builddmaster.dbuser):
self.build.updateStatus(BuildStatus.BUILDING)
with ExpectedException(
diff --git a/lib/lp/services/statsd/tests/test_numbercruncher.py b/lib/lp/services/statsd/tests/test_numbercruncher.py
index 0885072..4fb881f 100644
--- a/lib/lp/services/statsd/tests/test_numbercruncher.py
+++ b/lib/lp/services/statsd/tests/test_numbercruncher.py
@@ -27,7 +27,7 @@ from lp.buildmaster.interactor import BuilderSlave
from lp.buildmaster.interfaces.builder import IBuilderSet
from lp.buildmaster.interfaces.processor import IProcessorSet
from lp.buildmaster.model.buildqueue import BuildQueue
-from lp.buildmaster.tests.mock_slaves import OkSlave
+from lp.buildmaster.tests.mock_workers import OkWorker
from lp.code.enums import CodeImportJobState
from lp.services.database.isolation import is_transaction_in_progress
from lp.services.database.policy import DatabaseBlockedPolicy
@@ -56,7 +56,7 @@ class TestNumberCruncher(StatsMixin, TestCaseWithFactory):
def test_single_processor_counts(self):
builder = self.factory.makeBuilder()
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
transaction.commit()
clock = task.Clock()
manager = NumberCruncher(clock=clock)
@@ -89,7 +89,7 @@ class TestNumberCruncher(StatsMixin, TestCaseWithFactory):
)]
for builder in builders:
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
transaction.commit()
clock = task.Clock()
manager = NumberCruncher(clock=clock)
@@ -141,7 +141,7 @@ class TestNumberCruncher(StatsMixin, TestCaseWithFactory):
build.queueBuild()
build.buildqueue_record.markAsBuilding(builder=building_builder)
builds.append(build)
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
transaction.commit()
clock = task.Clock()
manager = NumberCruncher(clock=clock)
@@ -201,7 +201,7 @@ class TestNumberCruncher(StatsMixin, TestCaseWithFactory):
builder.setCleanStatus(BuilderCleanStatus.CLEANING)
build = self.factory.makeSnapBuild()
build.queueBuild()
- self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkWorker()))
transaction.commit()
clock = task.Clock()
manager = NumberCruncher(clock=clock)
diff --git a/lib/lp/snappy/tests/test_snapbuildbehaviour.py b/lib/lp/snappy/tests/test_snapbuildbehaviour.py
index fc2d5a8..14cd8e5 100644
--- a/lib/lp/snappy/tests/test_snapbuildbehaviour.py
+++ b/lib/lp/snappy/tests/test_snapbuildbehaviour.py
@@ -55,10 +55,10 @@ from lp.buildmaster.tests.builderproxy import (
ProxyURLMatcher,
RevocationEndpointMatcher,
)
-from lp.buildmaster.tests.mock_slaves import (
+from lp.buildmaster.tests.mock_workers import (
MockBuilder,
- OkSlave,
- SlaveTestHelpers,
+ OkWorker,
+ WorkerTestHelpers,
)
from lp.buildmaster.tests.test_buildfarmjobbehaviour import (
TestGetUploadMethodsMixin,
@@ -174,7 +174,7 @@ class TestSnapBuildBehaviour(TestSnapBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
job.verifyBuildRequest(logger)
self.assertEqual("", logger.getLogBuffer())
@@ -187,7 +187,7 @@ class TestSnapBuildBehaviour(TestSnapBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder(virtualized=False)
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(AssertionError, job.verifyBuildRequest, logger)
self.assertEqual(
@@ -201,7 +201,7 @@ class TestSnapBuildBehaviour(TestSnapBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(ArchiveDisabled, job.verifyBuildRequest, logger)
self.assertEqual("Disabled Archive is disabled.", str(e))
@@ -214,7 +214,7 @@ class TestSnapBuildBehaviour(TestSnapBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
job.verifyBuildRequest(logger)
self.assertEqual("", logger.getLogBuffer())
@@ -226,7 +226,7 @@ class TestSnapBuildBehaviour(TestSnapBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(
SnapBuildArchiveOwnerMismatch, job.verifyBuildRequest, logger)
@@ -239,7 +239,7 @@ class TestSnapBuildBehaviour(TestSnapBuildBehaviourBase):
# verifyBuildRequest raises when the DAS has no chroot.
job = self.makeJob()
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(CannotBuild, job.verifyBuildRequest, logger)
self.assertIn("Missing chroot", str(e))
@@ -271,14 +271,14 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
self.setUpStats()
def makeJob(self, **kwargs):
- # We need a builder slave in these tests, in order that requesting a
- # proxy token can piggyback on its reactor and pool.
+ # We need a builder worker in these tests, in order that requesting
+ # a proxy token can piggyback on its reactor and pool.
job = super().makeJob(**kwargs)
builder = MockBuilder()
builder.processor = job.build.processor
- slave = self.useFixture(SlaveTestHelpers()).getClientSlave()
- job.setBuilder(builder, slave)
- self.addCleanup(slave.pool.closeCachedConnections)
+ worker = self.useFixture(WorkerTestHelpers()).getClientWorker()
+ job.setBuilder(builder, worker)
+ self.addCleanup(worker.pool.closeCachedConnections)
return job
@defer.inlineCallbacks
@@ -971,8 +971,8 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
job = self.makeJob(allow_internet=False)
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
chroot_lfa, image_type=BuildBaseImageType.CHROOT)
@@ -981,7 +981,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
lxd_lfa, image_type=BuildBaseImageType.LXD)
yield job.dispatchBuildToSlave(DevNullLogger())
self.assertEqual(
- ('ensurepresent', lxd_lfa.http_url, '', ''), slave.call_log[0])
+ ('ensurepresent', lxd_lfa.http_url, '', ''), worker.call_log[0])
self.assertEqual(1, self.stats_client.incr.call_count)
self.assertEqual(
self.stats_client.incr.call_args_list[0][0],
@@ -993,14 +993,14 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase):
job = self.makeJob(allow_internet=False)
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
chroot_lfa, image_type=BuildBaseImageType.CHROOT)
yield job.dispatchBuildToSlave(DevNullLogger())
self.assertEqual(
- ('ensurepresent', chroot_lfa.http_url, '', ''), slave.call_log[0])
+ ('ensurepresent', chroot_lfa.http_url, '', ''), worker.call_log[0])
class MakeSnapBuildMixin:
diff --git a/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py b/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
index 4f06427..1f89c74 100644
--- a/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
+++ b/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
@@ -39,11 +39,11 @@ from lp.buildmaster.interfaces.buildfarmjobbehaviour import (
IBuildFarmJobBehaviour,
)
from lp.buildmaster.manager import BuilddManager
-from lp.buildmaster.tests.mock_slaves import (
- AbortingSlave,
- BuildingSlave,
- OkSlave,
- WaitingSlave,
+from lp.buildmaster.tests.mock_workers import (
+ AbortingWorker,
+ BuildingWorker,
+ OkWorker,
+ WaitingWorker,
)
from lp.buildmaster.tests.test_buildfarmjobbehaviour import (
TestGetUploadMethodsMixin,
@@ -177,7 +177,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
# purpose is "PRIMARY" because this ensures that the package mangling
# tools will run over the built packages.
archive = self.factory.makeArchive(virtualized=False)
- slave = OkSlave()
+ worker = OkWorker()
builder = self.factory.makeBuilder(virtualized=False)
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
vitals = extract_vitals_from_db(builder)
@@ -189,11 +189,11 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
bq = build.queueBuild()
bq.markAsBuilding(builder)
interactor = BuilderInteractor()
- behaviour = interactor.getBuildBehaviour(bq, builder, slave)
+ behaviour = interactor.getBuildBehaviour(bq, builder, worker)
yield interactor._startBuild(
- bq, vitals, builder, slave, behaviour, BufferLogger())
+ bq, vitals, builder, worker, behaviour, BufferLogger())
yield self.assertExpectedInteraction(
- slave.call_log, builder, build, behaviour, lf, archive,
+ worker.call_log, builder, build, behaviour, lf, archive,
ArchivePurpose.PRIMARY, 'universe')
self.assertEqual(1, self.stats_client.incr.call_count)
self.assertEqual(
@@ -207,7 +207,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
# If there is a primary component override, it is honoured for
# non-virtual PPA builds too.
archive = self.factory.makeArchive(virtualized=False)
- slave = OkSlave()
+ worker = OkWorker()
builder = self.factory.makeBuilder(virtualized=False)
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
vitals = extract_vitals_from_db(builder)
@@ -224,17 +224,17 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
bq = build.queueBuild()
bq.markAsBuilding(builder)
interactor = BuilderInteractor()
- behaviour = interactor.getBuildBehaviour(bq, builder, slave)
+ behaviour = interactor.getBuildBehaviour(bq, builder, worker)
yield interactor._startBuild(
- bq, vitals, builder, slave, behaviour, BufferLogger())
+ bq, vitals, builder, worker, behaviour, BufferLogger())
yield self.assertExpectedInteraction(
- slave.call_log, builder, build, behaviour, lf, archive,
+ worker.call_log, builder, build, behaviour, lf, archive,
ArchivePurpose.PRIMARY, 'main')
@defer.inlineCallbacks
def test_virtual_ppa_dispatch(self):
archive = self.factory.makeArchive(virtualized=True)
- slave = OkSlave()
+ worker = OkWorker()
builder = self.factory.makeBuilder(
virtualized=True, vm_host="foohost")
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
@@ -247,11 +247,11 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
bq = build.queueBuild()
bq.markAsBuilding(builder)
interactor = BuilderInteractor()
- behaviour = interactor.getBuildBehaviour(bq, builder, slave)
+ behaviour = interactor.getBuildBehaviour(bq, builder, worker)
yield interactor._startBuild(
- bq, vitals, builder, slave, behaviour, BufferLogger())
+ bq, vitals, builder, worker, behaviour, BufferLogger())
yield self.assertExpectedInteraction(
- slave.call_log, builder, build, behaviour, lf, archive,
+ worker.call_log, builder, build, behaviour, lf, archive,
ArchivePurpose.PPA)
self.assertEqual(1, self.stats_client.incr.call_count)
self.assertEqual(
@@ -266,7 +266,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
self.pushConfig(
"launchpad", internal_macaroon_secret_key="some-secret")
archive = self.factory.makeArchive(private=True)
- slave = OkSlave()
+ worker = OkWorker()
builder = self.factory.makeBuilder()
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
vitals = extract_vitals_from_db(builder)
@@ -288,11 +288,11 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
bq = build.queueBuild()
bq.markAsBuilding(builder)
interactor = BuilderInteractor()
- behaviour = interactor.getBuildBehaviour(bq, builder, slave)
+ behaviour = interactor.getBuildBehaviour(bq, builder, worker)
yield interactor._startBuild(
- bq, vitals, builder, slave, behaviour, BufferLogger())
+ bq, vitals, builder, worker, behaviour, BufferLogger())
yield self.assertExpectedInteraction(
- slave.call_log, builder, build, behaviour, lf, archive,
+ worker.call_log, builder, build, behaviour, lf, archive,
ArchivePurpose.PPA,
extra_uploads=[
(Equals(sprf_url),
@@ -304,7 +304,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
def test_partner_dispatch_no_publishing_history(self):
archive = self.factory.makeArchive(
virtualized=False, purpose=ArchivePurpose.PARTNER)
- slave = OkSlave()
+ worker = OkWorker()
builder = self.factory.makeBuilder(virtualized=False)
builder.setCleanStatus(BuilderCleanStatus.CLEAN)
vitals = extract_vitals_from_db(builder)
@@ -316,11 +316,11 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
bq = build.queueBuild()
bq.markAsBuilding(builder)
interactor = BuilderInteractor()
- behaviour = interactor.getBuildBehaviour(bq, builder, slave)
+ behaviour = interactor.getBuildBehaviour(bq, builder, worker)
yield interactor._startBuild(
- bq, vitals, builder, slave, behaviour, BufferLogger())
+ bq, vitals, builder, worker, behaviour, BufferLogger())
yield self.assertExpectedInteraction(
- slave.call_log, builder, build, behaviour, lf, archive,
+ worker.call_log, builder, build, behaviour, lf, archive,
ArchivePurpose.PARTNER)
def test_dont_dispatch_release_builds(self):
@@ -515,7 +515,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
"""Tests for the BinaryPackageBuildBehaviour.
- Using various mock slaves, we check how updateBuild() behaves in
+ Using various mock workers, we check how updateBuild() behaves in
various scenarios.
"""
@@ -576,7 +576,7 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
self.assertEqual(BuildStatus.FAILEDTOBUILD, self.build.status)
d = self.updateBuild(
- self.candidate, WaitingSlave('BuildStatus.PACKAGEFAIL'))
+ self.candidate, WaitingWorker('BuildStatus.PACKAGEFAIL'))
return d.addCallback(got_update)
def test_depwait_collection(self):
@@ -589,7 +589,7 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
self.assertEqual(DEPENDENCIES, self.build.dependencies)
d = self.updateBuild(
- self.candidate, WaitingSlave('BuildStatus.DEPFAIL', DEPENDENCIES))
+ self.candidate, WaitingWorker('BuildStatus.DEPFAIL', DEPENDENCIES))
return d.addCallback(got_update)
def test_chrootfail_collection(self):
@@ -599,16 +599,16 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
self.assertEqual(BuildStatus.CHROOTWAIT, self.build.status)
d = self.updateBuild(
- self.candidate, WaitingSlave('BuildStatus.CHROOTFAIL'))
+ self.candidate, WaitingWorker('BuildStatus.CHROOTFAIL'))
return d.addCallback(got_update)
def test_building_collection(self):
# The builder is still building the package.
def got_update(ignored):
- # The fake log is returned from the BuildingSlave() mock.
+ # The fake log is returned from the BuildingWorker() mock.
self.assertEqual("This is a build log: 0", self.candidate.logtail)
- d = self.updateBuild(self.candidate, BuildingSlave())
+ d = self.updateBuild(self.candidate, BuildingWorker())
return d.addCallback(got_update)
def test_aborting_collection(self):
@@ -618,7 +618,7 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
"Waiting for slave process to be terminated",
self.candidate.logtail)
- d = self.updateBuild(self.candidate, AbortingSlave())
+ d = self.updateBuild(self.candidate, AbortingWorker())
return d.addCallback(got_update)
def test_collection_for_deleted_source(self):
@@ -633,7 +633,7 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
self.assertEqual(
BuildStatus.SUPERSEDED, self.build.status)
- d = self.updateBuild(self.candidate, WaitingSlave('BuildStatus.OK'))
+ d = self.updateBuild(self.candidate, WaitingWorker('BuildStatus.OK'))
return d.addCallback(got_update)
def test_uploading_collection(self):
@@ -644,14 +644,14 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
# upload processing succeeded.
self.assertIs(None, self.build.upload_log)
- d = self.updateBuild(self.candidate, WaitingSlave('BuildStatus.OK'))
+ d = self.updateBuild(self.candidate, WaitingWorker('BuildStatus.OK'))
return d.addCallback(got_update)
def test_log_file_collection(self):
self.build.updateStatus(BuildStatus.FULLYBUILT)
old_tmps = sorted(os.listdir('/tmp'))
- slave = WaitingSlave('BuildStatus.OK')
+ worker = WaitingWorker('BuildStatus.OK')
def got_log(logfile_lfa_id):
# Grabbing logs should not leave new files in /tmp (bug #172798)
@@ -681,18 +681,18 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
fd, tmp_orig_file_name = tempfile.mkstemp()
self.addCleanup(os.remove, tmp_orig_file_name)
- # Check that the original file from the slave matches the
+ # Check that the original file from the worker matches the
# uncompressed file in the librarian.
def got_orig_log(ignored):
orig_file_content = open(tmp_orig_file_name, 'rb').read()
self.assertEqual(orig_file_content, uncompressed_file)
- d = removeSecurityProxy(slave).getFile(
+ d = removeSecurityProxy(worker).getFile(
'buildlog', tmp_orig_file_name)
return d.addCallback(got_orig_log)
behaviour = IBuildFarmJobBehaviour(self.build)
- behaviour.setBuilder(self.builder, slave)
+ behaviour.setBuilder(self.builder, worker)
d = behaviour.getLogFromSlave(self.build.buildqueue_record)
return d.addCallback(got_log)
@@ -713,7 +713,7 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
self.layer.txn.commit()
self.assertTrue(self.build.log.restricted)
- d = self.updateBuild(self.candidate, WaitingSlave('BuildStatus.OK'))
+ d = self.updateBuild(self.candidate, WaitingWorker('BuildStatus.OK'))
return d.addCallback(got_update)
diff --git a/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py b/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py
index 0c39013..4ca994c 100644
--- a/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py
+++ b/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py
@@ -26,9 +26,9 @@ from lp.buildmaster.interfaces.buildfarmjobbehaviour import (
IBuildFarmJobBehaviour,
)
from lp.buildmaster.interfaces.processor import IProcessorSet
-from lp.buildmaster.tests.mock_slaves import (
+from lp.buildmaster.tests.mock_workers import (
MockBuilder,
- OkSlave,
+ OkWorker,
)
from lp.buildmaster.tests.test_buildfarmjobbehaviour import (
TestGetUploadMethodsMixin,
@@ -113,7 +113,7 @@ class TestLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
job.verifyBuildRequest(logger)
self.assertEqual("", logger.getLogBuffer())
@@ -126,7 +126,7 @@ class TestLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder(virtualized=False)
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(AssertionError, job.verifyBuildRequest, logger)
self.assertEqual(
@@ -140,7 +140,7 @@ class TestLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(ArchiveDisabled, job.verifyBuildRequest, logger)
self.assertEqual("Disabled Archive is disabled.", str(e))
@@ -153,7 +153,7 @@ class TestLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
job.verifyBuildRequest(logger)
self.assertEqual("", logger.getLogBuffer())
@@ -165,7 +165,7 @@ class TestLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
transaction.commit()
job.build.distro_arch_series.addOrUpdateChroot(lfa)
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(
LiveFSBuildArchiveOwnerMismatch, job.verifyBuildRequest, logger)
@@ -178,7 +178,7 @@ class TestLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
# verifyBuildRequest raises when the DAS has no chroot.
job = self.makeJob()
builder = MockBuilder()
- job.setBuilder(builder, OkSlave())
+ job.setBuilder(builder, OkWorker())
logger = BufferLogger()
e = self.assertRaises(CannotBuild, job.verifyBuildRequest, logger)
self.assertIn("Missing chroot", str(e))
@@ -281,8 +281,8 @@ class TestAsyncLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
job = self.makeJob()
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
chroot_lfa, image_type=BuildBaseImageType.CHROOT)
@@ -291,21 +291,21 @@ class TestAsyncLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase):
lxd_lfa, image_type=BuildBaseImageType.LXD)
yield job.dispatchBuildToSlave(DevNullLogger())
self.assertEqual(
- ('ensurepresent', lxd_lfa.http_url, '', ''), slave.call_log[0])
+ ('ensurepresent', lxd_lfa.http_url, '', ''), worker.call_log[0])
@defer.inlineCallbacks
def test_dispatchBuildToSlave_falls_back_to_chroot(self):
job = self.makeJob()
builder = MockBuilder()
builder.processor = job.build.processor
- slave = OkSlave()
- job.setBuilder(builder, slave)
+ worker = OkWorker()
+ job.setBuilder(builder, worker)
chroot_lfa = self.factory.makeLibraryFileAlias(db_only=True)
job.build.distro_arch_series.addOrUpdateChroot(
chroot_lfa, image_type=BuildBaseImageType.CHROOT)
yield job.dispatchBuildToSlave(DevNullLogger())
self.assertEqual(
- ('ensurepresent', chroot_lfa.http_url, '', ''), slave.call_log[0])
+ ('ensurepresent', chroot_lfa.http_url, '', ''), worker.call_log[0])
class MakeLiveFSBuildMixin:
diff --git a/lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py b/lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py
index 5bfd56d..fc1a712 100644
--- a/lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py
+++ b/lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py
@@ -18,9 +18,9 @@ from lp.buildmaster.interactor import BuilderInteractor
from lp.buildmaster.interfaces.buildfarmjobbehaviour import (
IBuildFarmJobBehaviour,
)
-from lp.buildmaster.tests.mock_slaves import (
- SlaveTestHelpers,
- WaitingSlave,
+from lp.buildmaster.tests.mock_workers import (
+ WaitingWorker,
+ WorkerTestHelpers,
)
from lp.registry.interfaces.pocket import PackagePublishingPocket
from lp.services.config import config
@@ -59,13 +59,13 @@ class MakeBehaviourMixin(object):
def makeBehaviour(self, branch=None, use_fake_chroot=True, **kwargs):
"""Create a TranslationTemplatesBuildBehaviour.
- Anything that might communicate with build slaves and such
+ Anything that might communicate with build workers and such
(which we can't really do here) is mocked up.
"""
build = self.factory.makeTranslationTemplatesBuild(branch=branch)
behaviour = IBuildFarmJobBehaviour(build)
- slave = WaitingSlave(**kwargs)
- behaviour.setBuilder(self.factory.makeBuilder(), slave)
+ worker = WaitingWorker(**kwargs)
+ behaviour.setBuilder(self.factory.makeBuilder(), worker)
if use_fake_chroot:
behaviour.distro_arch_series.addOrUpdateChroot(
self.factory.makeLibraryFileAlias(db_only=True))
@@ -91,7 +91,7 @@ class TestTranslationTemplatesBuildBehaviour(
def setUp(self):
super(TestTranslationTemplatesBuildBehaviour, self).setUp()
- self.slave_helper = self.useFixture(SlaveTestHelpers())
+ self.worker_helper = self.useFixture(WorkerTestHelpers())
def test_getLogFileName(self):
# Each job has a unique log file name.