← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] ~cjwatson/launchpad:rename-build-slave into launchpad:master

 

Colin Watson has proposed merging ~cjwatson/launchpad:rename-build-slave into launchpad:master.

Commit message:
Rename remaining uses of "build slave" to "build worker"

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/421592
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:rename-build-slave into launchpad:master.
diff --git a/daemons/buildd-manager.tac b/daemons/buildd-manager.tac
index 015b877..bd87b03 100644
--- a/daemons/buildd-manager.tac
+++ b/daemons/buildd-manager.tac
@@ -46,7 +46,7 @@ application.addComponent(
 # Service that announces when the daemon is ready.
 readyservice.ReadyService().setServiceParent(application)
 
-# Service for scanning buildd slaves.
+# Service for scanning buildd workers.
 service = BuilddManager()
 service.setServiceParent(application)
 
diff --git a/database/schema/comments.sql b/database/schema/comments.sql
index 99af160..7801419 100644
--- a/database/schema/comments.sql
+++ b/database/schema/comments.sql
@@ -1646,21 +1646,21 @@ COMMENT ON COLUMN BinaryPackageBuild.distro_arch_series IS 'Points the target Di
 COMMENT ON COLUMN BinaryPackageBuild.source_package_release IS 'SourcePackageRelease which originated this build.';
 
 -- Builder
-COMMENT ON TABLE Builder IS 'Builder: This table stores the build-slave registry and status information as: name, url, trusted, builderok, builderaction, failnotes.';
+COMMENT ON TABLE Builder IS 'Builder: This table stores the build-worker registry and status information as: name, url, trusted, builderok, builderaction, failnotes.';
 COMMENT ON COLUMN Builder.builderok IS 'Should a builder fail for any reason, from out-of-disk-space to not responding to the buildd master, the builderok flag is set to false and the failnotes column is filled with a reason.';
 COMMENT ON COLUMN Builder.failnotes IS 'This column gets filled out with a textual description of how/why a builder has failed. If the builderok column is true then the value in this column is irrelevant and should be treated as NULL or empty.';
 COMMENT ON COLUMN Builder.virtualized IS 'Whether or not the builder is a virtual Xen builder. Packages coming via ubuntu workflow are trusted to build on non-Xen and do not need facist behaviour to be built. Other packages like ppa/grumpy incoming packages can contain malicious code, so are unstrusted and build in a Xen virtual machine.';
-COMMENT ON COLUMN Builder.url IS 'The url to the build slave. There may be more than one build slave on a given host so this url includes the port number to use. The default port number for a build slave is 8221';
+COMMENT ON COLUMN Builder.url IS 'The url to the build worker. There may be more than one build worker on a given host so this url includes the port number to use. The default port number for a build worker is 8221';
 COMMENT ON COLUMN Builder.manual IS 'Whether or not builder was manual mode, i.e., collect any result from the it, but do not dispach anything to it automatically.';
 COMMENT ON COLUMN Builder.vm_host IS 'The virtual machine host associated to this builder. It should be empty for "native" builders (old fashion or architectures not yet supported by XEN).';
 COMMENT ON COLUMN Builder.active IS 'Whether to present or not the builder in the public list of builders avaialble. It is used to hide transient or defunct builders while they get fixed.';
 COMMENT ON COLUMN Builder.failure_count IS 'The number of consecutive failures on this builder.  Is reset to zero after a sucessful dispatch.';
-COMMENT ON COLUMN Builder.version IS 'The version of launchpad-buildd on the slave.';
+COMMENT ON COLUMN Builder.version IS 'The version of launchpad-buildd on the worker.';
 
 -- BuildQueue
 COMMENT ON TABLE BuildQueue IS 'BuildQueue: The queue of jobs in progress/scheduled to run on the Soyuz build farm.';
 COMMENT ON COLUMN BuildQueue.builder IS 'The builder assigned to this build. Some builds will have a builder assigned to queue them up; some will be building on the specified builder already; others will not have a builder yet (NULL) and will be waiting to be assigned into a builder''s queue';
-COMMENT ON COLUMN BuildQueue.logtail IS 'The tail end of the log of the current build. This is updated regularly as the buildd master polls the buildd slaves. Once the build is complete; the full log will be lodged with the librarian and linked into the build table.';
+COMMENT ON COLUMN BuildQueue.logtail IS 'The tail end of the log of the current build. This is updated regularly as the buildd master polls the buildd workers. Once the build is complete; the full log will be lodged with the librarian and linked into the build table.';
 COMMENT ON COLUMN BuildQueue.lastscore IS 'The last score ascribed to this build record. This can be used in the UI among other places.';
 COMMENT ON COLUMN BuildQueue.manual IS 'Indicates if the current record was or not rescored manually, if so it get skipped from the auto-score procedure.';
 COMMENT ON COLUMN BuildQueue.estimated_duration IS 'Estimated job duration, based on previous running times of comparable jobs.';
diff --git a/lib/lp/archiveuploader/tests/nascentupload.txt b/lib/lp/archiveuploader/tests/nascentupload.txt
index 2542d70..bf902fe 100644
--- a/lib/lp/archiveuploader/tests/nascentupload.txt
+++ b/lib/lp/archiveuploader/tests/nascentupload.txt
@@ -612,7 +612,7 @@ worker-scanner can safely update the build information (buildlog,
 duration, etc) and clean the builder for anther job.
 
 If the build record was not marked as FULLYBUILT during the
-upload-time, it means that the slave should be hold with the builds
+upload-time, it means that the worker should be held with the build
 results for later processing.
 
 Updating the build record as part of the upload processing avoids possible
diff --git a/lib/lp/archiveuploader/tests/upload-path-parsing.txt b/lib/lp/archiveuploader/tests/upload-path-parsing.txt
index c278e3e..c70da0b 100644
--- a/lib/lp/archiveuploader/tests/upload-path-parsing.txt
+++ b/lib/lp/archiveuploader/tests/upload-path-parsing.txt
@@ -258,10 +258,10 @@ An old-style named PPA upload missing '~'.
     lp.archiveuploader.uploadprocessor.UploadPathError: Path format mismatch.
 
 
-Binary uploads from build slaves
---------------------------------
+Binary uploads from build workers
+---------------------------------
 
-A relative path for a binary upload from a build slave will have the
+A relative path for a binary upload from a build worker will have the
 following format: <archive_id>/<distribution_name> where archive_id
 is the database key of the archive in question.
 
diff --git a/lib/lp/archiveuploader/uploadprocessor.py b/lib/lp/archiveuploader/uploadprocessor.py
index 3b6820d..7782783 100644
--- a/lib/lp/archiveuploader/uploadprocessor.py
+++ b/lib/lp/archiveuploader/uploadprocessor.py
@@ -931,7 +931,7 @@ def parse_upload_path(relative_path):
                 % (person.name, distribution.name, ppa_name))
 
     elif first_path.isdigit():
-        # This must be a binary upload from a build slave.
+        # This must be a binary upload from a build worker.
         try:
             archive = getUtility(IArchiveSet).get(int(first_path))
         except SQLObjectNotFound:
diff --git a/lib/lp/buildmaster/browser/builder.py b/lib/lp/buildmaster/browser/builder.py
index 88b3d20..4e65faa 100644
--- a/lib/lp/buildmaster/browser/builder.py
+++ b/lib/lp/buildmaster/browser/builder.py
@@ -444,7 +444,7 @@ class BuilderEditView(LaunchpadEditFormView):
         # lazr.lifecycle.snapshot to store the state of the object
         # before and after modification.  This is dangerous for the
         # builder model class because it causes some properties to be
-        # queried that try and communicate with the slave, which cannot
+        # queried that try and communicate with the worker, which cannot
         # be done from the webapp (it's generally firewalled).  We could
         # prevent snapshots for individual properties by defining the
         # interface properties with doNotSnapshot() but this doesn't
diff --git a/lib/lp/buildmaster/doc/builder.txt b/lib/lp/buildmaster/doc/builder.txt
index 396a390..75feca7 100644
--- a/lib/lp/buildmaster/doc/builder.txt
+++ b/lib/lp/buildmaster/doc/builder.txt
@@ -8,7 +8,7 @@ Builder Class
 =============
 
 The Builder class represents a machine in the build farm. These
-slaves are used to execute untrusted code -- for example when building
+workers are used to execute untrusted code -- for example when building
 packages.
 
 There are several builders in the sample data. Let's examine the first.
diff --git a/lib/lp/buildmaster/enums.py b/lib/lp/buildmaster/enums.py
index 86a2348..8417ed1 100644
--- a/lib/lp/buildmaster/enums.py
+++ b/lib/lp/buildmaster/enums.py
@@ -243,7 +243,7 @@ class BuilderResetProtocol(DBEnumeratedType):
         1.1
 
         Original synchronous protocol with vm_host and buildd_name. The
-        reset trigger must exit cleanly once the slave is reset and
+        reset trigger must exit cleanly once the worker is reset and
         accepting requests.
         """)
 
@@ -253,7 +253,7 @@ class BuilderResetProtocol(DBEnumeratedType):
         Asynchronous protocol with vm_host and buildd_name. The reset
         trigger must exit cleanly once the request is accepted, and use
         the webservice to set Builder.clean_status back to 'Clean' when
-        the slave is reset and accepting requests.
+        the worker is reset and accepting requests.
         """)
 
 
diff --git a/lib/lp/buildmaster/interfaces/builder.py b/lib/lp/buildmaster/interfaces/builder.py
index 81861e0..3d35fa3 100644
--- a/lib/lp/buildmaster/interfaces/builder.py
+++ b/lib/lp/buildmaster/interfaces/builder.py
@@ -6,7 +6,7 @@
 __all__ = [
     'BuildDaemonError',
     'BuildDaemonIsolationError',
-    'BuildSlaveFailure',
+    'BuildWorkerFailure',
     'CannotBuild',
     'CannotFetchFile',
     'CannotResumeHost',
@@ -75,7 +75,7 @@ class BuildDaemonIsolationError(BuildDaemonError):
 
 
 class CannotFetchFile(BuildDaemonError):
-    """The slave was unable to fetch the file."""
+    """The worker was unable to fetch the file."""
 
     def __init__(self, file_url, error_information):
         super().__init__()
@@ -84,7 +84,7 @@ class CannotFetchFile(BuildDaemonError):
 
 
 class CannotResumeHost(BuildDaemonError):
-    """The build slave virtual machine cannot be resumed."""
+    """The build worker virtual machine cannot be resumed."""
 
 
 # CannotBuild is intended to be the base class for a family of more specific
@@ -93,8 +93,8 @@ class CannotBuild(BuildDaemonError):
     """The requested build cannot be done."""
 
 
-class BuildSlaveFailure(BuildDaemonError):
-    """The build slave has suffered an error and cannot be used."""
+class BuildWorkerFailure(BuildDaemonError):
+    """The build worker has suffered an error and cannot be used."""
 
 
 class IBuilderModerateAttributes(Interface):
diff --git a/lib/lp/buildmaster/manager.py b/lib/lp/buildmaster/manager.py
index 850b83b..03a21b3 100644
--- a/lib/lp/buildmaster/manager.py
+++ b/lib/lp/buildmaster/manager.py
@@ -43,7 +43,7 @@ from lp.buildmaster.interactor import (
 from lp.buildmaster.interfaces.builder import (
     BuildDaemonError,
     BuildDaemonIsolationError,
-    BuildSlaveFailure,
+    BuildWorkerFailure,
     CannotBuild,
     CannotFetchFile,
     CannotResumeHost,
@@ -426,7 +426,7 @@ class WorkerScanner:
 
     # The time before deciding that a cancelling builder has failed, in
     # seconds.  This should normally be a multiple of SCAN_INTERVAL, and
-    # greater than abort_timeout in launchpad-buildd's slave BuildManager.
+    # greater than abort_timeout in launchpad-buildd's worker BuildManager.
     CANCEL_TIMEOUT = 180
 
     def __init__(self, builder_name, builder_factory, manager, logger,
@@ -507,7 +507,7 @@ class WorkerScanner:
         # the error.
         error_message = failure.getErrorMessage()
         if failure.check(
-            BuildSlaveFailure, CannotBuild, CannotResumeHost,
+            BuildWorkerFailure, CannotBuild, CannotResumeHost,
             BuildDaemonError, CannotFetchFile):
             self.logger.info("Scanning %s failed with: %s" % (
                 self.builder_name, error_message))
@@ -541,7 +541,7 @@ class WorkerScanner:
             transaction.abort()
 
     @defer.inlineCallbacks
-    def checkCancellation(self, vitals, slave):
+    def checkCancellation(self, vitals, worker):
         """See if there is a pending cancellation request.
 
         If the current build is in status CANCELLING then terminate it
@@ -556,7 +556,7 @@ class WorkerScanner:
                 "Cancelling BuildQueue %d (%s) on %s",
                 vitals.build_queue.id, self.getExpectedCookie(vitals),
                 vitals.name)
-            yield slave.abort()
+            yield worker.abort()
             self.date_cancel = self._clock.seconds() + self.CANCEL_TIMEOUT
         else:
             # The BuildFarmJob will normally set the build's status to
@@ -568,14 +568,14 @@ class WorkerScanner:
                     vitals.build_queue.id, self.getExpectedCookie(vitals),
                     vitals.name)
             else:
-                raise BuildSlaveFailure(
+                raise BuildWorkerFailure(
                     "Timeout waiting for BuildQueue %d (%s) on %s to "
                     "cancel" % (
                     vitals.build_queue.id, self.getExpectedCookie(vitals),
                     vitals.name))
 
     def getExpectedCookie(self, vitals):
-        """Return the build cookie expected to be held by the slave.
+        """Return the build cookie expected to be held by the worker.
 
         Calculating this requires hitting the DB, so it's cached based
         on the current BuildQueue.
@@ -606,12 +606,12 @@ class WorkerScanner:
         self.builder_factory.prescanUpdate()
         vitals = self.builder_factory.getVitals(self.builder_name)
         interactor = self.interactor_factory()
-        slave = self.worker_factory(vitals)
+        worker = self.worker_factory(vitals)
 
         if vitals.build_queue is not None:
             if vitals.clean_status != BuilderCleanStatus.DIRTY:
                 # This is probably a grave bug with security implications,
-                # as a slave that has a job must be cleaned afterwards.
+                # as a worker that has a job must be cleaned afterwards.
                 raise BuildDaemonIsolationError(
                     "Non-dirty builder allegedly building.")
 
@@ -619,8 +619,8 @@ class WorkerScanner:
             if not vitals.builderok:
                 lost_reason = '%s is disabled' % vitals.name
             else:
-                worker_status = yield slave.status()
-                # Ensure that the slave has the job that we think it
+                worker_status = yield worker.status()
+                # Ensure that the worker has the job that we think it
                 # should.
                 worker_cookie = worker_status.get('build_id')
                 expected_cookie = self.getExpectedCookie(vitals)
@@ -630,9 +630,9 @@ class WorkerScanner:
                             vitals.name, expected_cookie, worker_cookie))
 
             if lost_reason is not None:
-                # The slave is either confused or disabled, so reset and
+                # The worker is either confused or disabled, so reset and
                 # requeue the job. The next scan cycle will clean up the
-                # slave if appropriate.
+                # worker if appropriate.
                 self.logger.warning(
                     "%s. Resetting job %s.", lost_reason,
                     vitals.build_queue.build_cookie)
@@ -640,14 +640,14 @@ class WorkerScanner:
                 transaction.commit()
                 return
 
-            yield self.checkCancellation(vitals, slave)
+            yield self.checkCancellation(vitals, worker)
 
-            # The slave and DB agree on the builder's state.  Scan the
-            # slave and get the logtail, or collect the build if it's
+            # The worker and DB agree on the builder's state.  Scan the
+            # worker and get the logtail, or collect the build if it's
             # ready.  Yes, "updateBuild" is a bad name.
             assert worker_status is not None
             yield interactor.updateBuild(
-                vitals, slave, worker_status, self.builder_factory,
+                vitals, worker, worker_status, self.builder_factory,
                 self.behaviour_factory, self.manager)
         else:
             if not vitals.builderok:
@@ -655,7 +655,7 @@ class WorkerScanner:
             # We think the builder is idle. If it's clean, dispatch. If
             # it's dirty, clean.
             if vitals.clean_status == BuilderCleanStatus.CLEAN:
-                worker_status = yield slave.status()
+                worker_status = yield worker.status()
                 if worker_status.get('builder_status') != 'BuilderStatus.IDLE':
                     raise BuildDaemonIsolationError(
                         'Allegedly clean worker not idle (%r instead)'
@@ -672,7 +672,7 @@ class WorkerScanner:
                 # the job so the dispatch will be reattempted.
                 builder = self.builder_factory[self.builder_name]
                 d = interactor.findAndStartJob(
-                    vitals, builder, slave, self.builder_factory)
+                    vitals, builder, worker, self.builder_factory)
                 d.addErrback(functools.partial(self._scanFailed, False))
                 yield d
                 if builder.currentjob is not None:
@@ -686,7 +686,7 @@ class WorkerScanner:
                 # straight back to CLEAN, or we might have to spin
                 # through another few cycles.
                 done = yield interactor.cleanWorker(
-                    vitals, slave, self.builder_factory)
+                    vitals, worker, self.builder_factory)
                 if done:
                     builder = self.builder_factory[self.builder_name]
                     builder.setCleanStatus(BuilderCleanStatus.CLEAN)
diff --git a/lib/lp/buildmaster/model/buildfarmjob.py b/lib/lp/buildmaster/model/buildfarmjob.py
index 977c83e..9d86194 100644
--- a/lib/lp/buildmaster/model/buildfarmjob.py
+++ b/lib/lp/buildmaster/model/buildfarmjob.py
@@ -230,7 +230,7 @@ class BuildFarmJobMixin:
                 BuildStatus.NEEDSBUILD, BuildStatus.BUILDING,
                 BuildStatus.CANCELLING)):
             # XXX cprov 20060615 bug=120584: Currently buildduration includes
-            # the scanner latency, it should really be asking the slave for
+            # the scanner latency, it should really be asking the worker for
             # the duration spent building locally.
             self.build_farm_job.date_finished = self.date_finished = (
                 date_finished or datetime.datetime.now(pytz.UTC))
diff --git a/lib/lp/buildmaster/model/buildqueue.py b/lib/lp/buildmaster/model/buildqueue.py
index ab531f3..b0da009 100644
--- a/lib/lp/buildmaster/model/buildqueue.py
+++ b/lib/lp/buildmaster/model/buildqueue.py
@@ -220,12 +220,12 @@ class BuildQueue(StormBase):
     def cancel(self):
         """See `IBuildQueue`."""
         if self.status == BuildQueueStatus.WAITING:
-            # If the job's not yet on a slave then we can just
+            # If the job's not yet on a worker then we can just
             # short-circuit to completed cancellation.
             self.markAsCancelled()
         elif self.status == BuildQueueStatus.RUNNING:
             # Otherwise set the statuses to CANCELLING so buildd-manager
-            # can kill the slave, grab the log, and call
+            # can kill the worker, grab the log, and call
             # markAsCancelled() when it's done.
             self.status = BuildQueueStatus.CANCELLING
             self.specific_build.updateStatus(BuildStatus.CANCELLING)
diff --git a/lib/lp/buildmaster/tests/test_manager.py b/lib/lp/buildmaster/tests/test_manager.py
index e5441ea..3a6e086 100644
--- a/lib/lp/buildmaster/tests/test_manager.py
+++ b/lib/lp/buildmaster/tests/test_manager.py
@@ -36,7 +36,7 @@ from lp.buildmaster.interactor import (
     )
 from lp.buildmaster.interfaces.builder import (
     BuildDaemonIsolationError,
-    BuildSlaveFailure,
+    BuildWorkerFailure,
     IBuilderSet,
     )
 from lp.buildmaster.interfaces.buildqueue import IBuildQueueSet
@@ -1175,7 +1175,7 @@ class TestCancellationChecking(TestCaseWithFactory):
 
         clock.advance(WorkerScanner.CANCEL_TIMEOUT)
         with ExpectedException(
-                BuildSlaveFailure, "Timeout waiting for .* to cancel"):
+                BuildWorkerFailure, "Timeout waiting for .* to cancel"):
             yield scanner.checkCancellation(self.vitals, worker)
 
     @defer.inlineCallbacks
diff --git a/lib/lp/charms/model/charmrecipebuildbehaviour.py b/lib/lp/charms/model/charmrecipebuildbehaviour.py
index cd44314..7c8dabc 100644
--- a/lib/lp/charms/model/charmrecipebuildbehaviour.py
+++ b/lib/lp/charms/model/charmrecipebuildbehaviour.py
@@ -3,7 +3,7 @@
 
 """An `IBuildFarmJobBehaviour` for `CharmRecipeBuild`.
 
-Dispatches charm recipe build jobs to build-farm slaves.
+Dispatches charm recipe build jobs to build-farm workers.
 """
 
 __all__ = [
@@ -34,7 +34,7 @@ from lp.soyuz.adapters.archivedependencies import (
 @adapter(ICharmRecipeBuild)
 @implementer(IBuildFarmJobBehaviour)
 class CharmRecipeBuildBehaviour(BuilderProxyMixin, BuildFarmJobBehaviourBase):
-    """Dispatches `CharmRecipeBuild` jobs to slaves."""
+    """Dispatches `CharmRecipeBuild` jobs to workers."""
 
     builder_type = "charm"
     image_types = [BuildBaseImageType.LXD, BuildBaseImageType.CHROOT]
@@ -69,7 +69,7 @@ class CharmRecipeBuildBehaviour(BuilderProxyMixin, BuildFarmJobBehaviourBase):
     @defer.inlineCallbacks
     def extraBuildArgs(self, logger=None):
         """
-        Return the extra arguments required by the slave for the given build.
+        Return the extra arguments required by the worker for the given build.
         """
         build = self.build
         args = yield super().extraBuildArgs(logger=logger)
diff --git a/lib/lp/code/model/recipebuilder.py b/lib/lp/code/model/recipebuilder.py
index abd82e8..1005e17 100644
--- a/lib/lp/code/model/recipebuilder.py
+++ b/lib/lp/code/model/recipebuilder.py
@@ -54,7 +54,7 @@ class RecipeBuildBehaviour(BuildFarmJobBehaviourBase):
     @defer.inlineCallbacks
     def extraBuildArgs(self, logger=None):
         """
-        Return the extra arguments required by the slave for the given build.
+        Return the extra arguments required by the worker for the given build.
         """
         if self.distro_arch_series is None:
             raise CannotBuild(
diff --git a/lib/lp/services/config/schema-lazr.conf b/lib/lp/services/config/schema-lazr.conf
index 5a90eef..b556073 100644
--- a/lib/lp/services/config/schema-lazr.conf
+++ b/lib/lp/services/config/schema-lazr.conf
@@ -78,12 +78,12 @@ default_sender_address: noreply@xxxxxxxxxxxxx
 vm_resume_command: echo %(vm_host)s
 
 # The time in seconds that the builddmaster will wait for a
-# reply from non-virtualized buildd slave.
+# reply from non-virtualized buildd worker.
 # datatype: integer
 socket_timeout: 40
 
 # The time in seconds that the builddmaster will wait for a
-# reply from virtualized buildd slaves.
+# reply from virtualized buildd workers.
 # datatype: integer
 virtualized_socket_timeout: 30
 
@@ -117,7 +117,7 @@ uploader: none
 # datatype: string
 root: none
 
-# Optional sources.list entry to send to build slaves when doing recipe
+# Optional sources.list entry to send to build workers when doing recipe
 # builds involving bzr-builder.  Use this form so that the series is set:
 # deb http://foo %(series)s main
 # datatype: string
@@ -1854,7 +1854,7 @@ builder_proxy_host: none
 # Deprecated in favour of the same key in the builddmaster section.
 builder_proxy_port: none
 
-# Optional sources.list entry to send to build slaves when doing snap
+# Optional sources.list entry to send to build workers when doing snap
 # package builds.  Use this form so that the series is set:
 # deb http://foo %(series)s main
 # datatype: string
diff --git a/lib/lp/snappy/model/snapbuildbehaviour.py b/lib/lp/snappy/model/snapbuildbehaviour.py
index a136e58..62cb2f9 100644
--- a/lib/lp/snappy/model/snapbuildbehaviour.py
+++ b/lib/lp/snappy/model/snapbuildbehaviour.py
@@ -3,7 +3,7 @@
 
 """An `IBuildFarmJobBehaviour` for `SnapBuild`.
 
-Dispatches snap package build jobs to build-farm slaves.
+Dispatches snap package build jobs to build-farm workers.
 """
 
 __all__ = [
@@ -54,7 +54,7 @@ def format_as_rfc3339(timestamp):
 @adapter(ISnapBuild)
 @implementer(IBuildFarmJobBehaviour)
 class SnapBuildBehaviour(BuilderProxyMixin, BuildFarmJobBehaviourBase):
-    """Dispatches `SnapBuild` jobs to slaves."""
+    """Dispatches `SnapBuild` jobs to workers."""
 
     builder_type = "snap"
     image_types = [BuildBaseImageType.LXD, BuildBaseImageType.CHROOT]
@@ -103,7 +103,7 @@ class SnapBuildBehaviour(BuilderProxyMixin, BuildFarmJobBehaviourBase):
     @defer.inlineCallbacks
     def extraBuildArgs(self, logger=None):
         """
-        Return the extra arguments required by the slave for the given build.
+        Return the extra arguments required by the worker for the given build.
         """
         build = self.build
         args = yield super().extraBuildArgs(logger=logger)
diff --git a/lib/lp/soyuz/model/binarypackagebuild.py b/lib/lp/soyuz/model/binarypackagebuild.py
index 9f51a22..d83ebc8 100644
--- a/lib/lp/soyuz/model/binarypackagebuild.py
+++ b/lib/lp/soyuz/model/binarypackagebuild.py
@@ -588,7 +588,7 @@ class BinaryPackageBuild(PackageBuildMixin, SQLBase):
         except (AttributeError, Warning):
             raise UnparsableDependencies(
                 "Build dependencies for %s (%s) could not be parsed: '%s'\n"
-                "It indicates that something is wrong in buildd-slaves."
+                "It indicates that something is wrong in buildd-workers."
                 % (self.title, self.id, self.dependencies))
 
         remaining_deps = []
diff --git a/lib/lp/soyuz/model/binarypackagebuildbehaviour.py b/lib/lp/soyuz/model/binarypackagebuildbehaviour.py
index fd6bd96..f158482 100644
--- a/lib/lp/soyuz/model/binarypackagebuildbehaviour.py
+++ b/lib/lp/soyuz/model/binarypackagebuildbehaviour.py
@@ -64,7 +64,7 @@ class BinaryPackageBuildBehaviour(BuildFarmJobBehaviourBase):
     def determineFilesToSend(self):
         """See `IBuildFarmJobBehaviour`."""
         # Build filemap structure with the files required in this build
-        # and send them to the slave.
+        # and send them to the worker.
         if self.build.archive.private:
             # Builds in private archive may have restricted files that
             # we can't obtain from the public librarian. Prepare a pool
@@ -146,7 +146,7 @@ class BinaryPackageBuildBehaviour(BuildFarmJobBehaviourBase):
     @defer.inlineCallbacks
     def extraBuildArgs(self, logger=None):
         """
-        Return the extra arguments required by the slave for the given build.
+        Return the extra arguments required by the worker for the given build.
         """
         build = self.build
         das = build.distro_arch_series
diff --git a/lib/lp/soyuz/model/livefsbuildbehaviour.py b/lib/lp/soyuz/model/livefsbuildbehaviour.py
index 510d17c..231b3f4 100644
--- a/lib/lp/soyuz/model/livefsbuildbehaviour.py
+++ b/lib/lp/soyuz/model/livefsbuildbehaviour.py
@@ -3,7 +3,7 @@
 
 """An `IBuildFarmJobBehaviour` for `LiveFSBuild`.
 
-Dispatches live filesystem build jobs to build-farm slaves.
+Dispatches live filesystem build jobs to build-farm workers.
 """
 
 __all__ = [
@@ -37,7 +37,7 @@ from lp.soyuz.interfaces.livefsbuild import ILiveFSBuild
 @adapter(ILiveFSBuild)
 @implementer(IBuildFarmJobBehaviour)
 class LiveFSBuildBehaviour(BuildFarmJobBehaviourBase):
-    """Dispatches `LiveFSBuild` jobs to slaves."""
+    """Dispatches `LiveFSBuild` jobs to workers."""
 
     builder_type = "livefs"
     image_types = [BuildBaseImageType.LXD, BuildBaseImageType.CHROOT]
@@ -89,7 +89,7 @@ class LiveFSBuildBehaviour(BuildFarmJobBehaviourBase):
     @defer.inlineCallbacks
     def extraBuildArgs(self, logger=None):
         """
-        Return the extra arguments required by the slave for the given build.
+        Return the extra arguments required by the worker for the given build.
         """
         build = self.build
         base_args = yield super().extraBuildArgs(logger=logger)
diff --git a/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py b/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
index 867d495..47bdcda 100644
--- a/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
+++ b/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py
@@ -85,7 +85,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
     """Tests for the BinaryPackageBuildBehaviour.
 
     In particular, these tests are about how the BinaryPackageBuildBehaviour
-    interacts with the build slave.  We test this by using a test double that
+    interacts with the build worker.  We test this by using a test double that
     implements the same interface as `BuilderWorker` but instead of actually
     making XML-RPC calls, just records any method invocations along with
     interesting parameters.
@@ -114,7 +114,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
     def makeExpectedInteraction(self, builder, build, behaviour, chroot,
                                 archive, archive_purpose, component=None,
                                 extra_uploads=None, filemap_names=None):
-        """Build the log of calls that we expect to be made to the slave.
+        """Build the log of calls that we expect to be made to the worker.
 
         :param builder: The builder we are using to build the binary package.
         :param build: The build being done on the builder.
@@ -125,7 +125,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
         :param archive_purpose: The ArchivePurpose we are sending to the
             builder. We specify this separately from the archive because
             sometimes the behaviour object has to give a different purpose
-            in order to trick the slave into building correctly.
+            in order to trick the worker into building correctly.
         :return: A list of the calls we expect to be made.
         """
         das = build.distro_arch_series
@@ -362,7 +362,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory):
 
     @defer.inlineCallbacks
     def test_arch_indep(self):
-        # BinaryPackageBuild.arch_indep is passed through to the slave.
+        # BinaryPackageBuild.arch_indep is passed through to the worker.
         builder = self.factory.makeBuilder()
         build = self.factory.makeBinaryPackageBuild(arch_indep=False)
         behaviour = IBuildFarmJobBehaviour(build)
@@ -545,11 +545,11 @@ class TestBinaryBuildPackageBehaviourBuildCollection(TestCaseWithFactory):
         self.addCleanup(self._cleanup)
 
     @defer.inlineCallbacks
-    def updateBuild(self, candidate, slave):
+    def updateBuild(self, candidate, worker):
         bf = MockBuilderFactory(self.builder, candidate)
-        worker_status = yield slave.status()
+        worker_status = yield worker.status()
         yield self.interactor.updateBuild(
-            bf.getVitals('foo'), slave, worker_status, bf,
+            bf.getVitals('foo'), worker, worker_status, bf,
             self.interactor.getBuildBehaviour, self.manager)
         self.manager.flushLogTails()
 
diff --git a/lib/lp/testing/factory.py b/lib/lp/testing/factory.py
index 1d104cb..89925b6 100644
--- a/lib/lp/testing/factory.py
+++ b/lib/lp/testing/factory.py
@@ -3108,7 +3108,7 @@ class BareLaunchpadObjectFactory(ObjectFactory):
         """Make a new builder for i386 virtualized builds by default.
 
         Note: the builder returned will not be able to actually build -
-        we currently have a build slave setup for 'bob' only in the
+        we currently have a build worker setup for 'bob' only in the
         test environment.
         """
         if processors is None:
diff --git a/lib/lp/translations/model/translationtemplatesbuildbehaviour.py b/lib/lp/translations/model/translationtemplatesbuildbehaviour.py
index b79ac03..0a9002c 100644
--- a/lib/lp/translations/model/translationtemplatesbuildbehaviour.py
+++ b/lib/lp/translations/model/translationtemplatesbuildbehaviour.py
@@ -75,7 +75,7 @@ class TranslationTemplatesBuildBehaviour(BuildFarmJobBehaviourBase):
     def _readTarball(self, buildqueue, filemap, logger):
         """Read tarball with generated translation templates from worker."""
         if filemap is None:
-            logger.error("Slave returned no filemap.")
+            logger.error("Worker returned no filemap.")
             return defer.succeed(None)
 
         worker_filename = filemap.get(self.templates_tarball_path)