summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/buildstream/_context.py13
-rw-r--r--src/buildstream/_frontend/app.py6
-rw-r--r--src/buildstream/_messenger.py21
-rw-r--r--src/buildstream/_scheduler/jobs/job.py8
-rw-r--r--tests/artifactcache/pull.py2
-rw-r--r--tests/artifactcache/push.py2
-rw-r--r--tests/internals/loader.py2
-rw-r--r--tests/internals/pluginloading.py2
-rw-r--r--tests/sourcecache/fetch.py2
-rw-r--r--tests/sourcecache/push.py2
-rw-r--r--tests/sourcecache/staging.py2
11 files changed, 36 insertions, 26 deletions
diff --git a/src/buildstream/_context.py b/src/buildstream/_context.py
index de1f83d32..8d8509f27 100644
--- a/src/buildstream/_context.py
+++ b/src/buildstream/_context.py
@@ -438,8 +438,13 @@ class Context():
# Sets the handler for any status messages propagated through
# the context.
#
- # The message handler should have the same signature as
- # the message() method
+ # The handler should have the signature:
+ #
+ # def handler(
+ # message: _message.Message, # The message to send.
+ # is_silenced: bool, # Whether messages are currently being silenced.
+ # ) -> None
+ #
def set_message_handler(self, handler):
self._messenger.set_message_handler(handler)
@@ -460,7 +465,7 @@ class Context():
# message: A Message object
#
def message(self, message):
- self._messenger.message(message, context=self)
+ self._messenger.message(message)
# silence()
#
@@ -487,7 +492,7 @@ class Context():
@contextmanager
def timed_activity(self, activity_name, *, unique_id=None, detail=None, silent_nested=False):
with self._messenger.timed_activity(
- activity_name, context=self, unique_id=unique_id, detail=detail, silent_nested=silent_nested):
+ activity_name, unique_id=unique_id, detail=detail, silent_nested=silent_nested):
yield
# recorded_messages()
diff --git a/src/buildstream/_frontend/app.py b/src/buildstream/_frontend/app.py
index dafde153c..52d5f2d47 100644
--- a/src/buildstream/_frontend/app.py
+++ b/src/buildstream/_frontend/app.py
@@ -695,11 +695,11 @@ class App():
#
# Handle messages from the pipeline
#
- def _message_handler(self, message, context):
+ def _message_handler(self, message, is_silenced):
# Drop status messages from the UI if not verbose, we'll still see
# info messages and status messages will still go to the log files.
- if not context.log_verbose and message.message_type == MessageType.STATUS:
+ if not self.context.log_verbose and message.message_type == MessageType.STATUS:
return
# Hold on to the failure messages
@@ -707,7 +707,7 @@ class App():
self._fail_messages[message.unique_id] = message
# Send to frontend if appropriate
- if self.context.silent_messages() and (message.message_type not in unconditional_messages):
+ if is_silenced and (message.message_type not in unconditional_messages):
return
if self._status:
diff --git a/src/buildstream/_messenger.py b/src/buildstream/_messenger.py
index 6dcb649d7..069ca124a 100644
--- a/src/buildstream/_messenger.py
+++ b/src/buildstream/_messenger.py
@@ -42,8 +42,13 @@ class Messenger():
# Sets the handler for any status messages propagated through
# the context.
#
- # The message handler should have the same signature as
- # the message() method
+ # The handler should have the signature:
+ #
+ # def handler(
+ # message: _message.Message, # The message to send.
+ # is_silenced: bool, # Whether messages are currently being silenced.
+ # ) -> None
+ #
def set_message_handler(self, handler):
self._message_handler = handler
@@ -66,7 +71,7 @@ class Messenger():
# Args:
# message: A Message object
#
- def message(self, message, context):
+ def message(self, message):
# Tag message only once
if message.depth is None:
@@ -80,7 +85,7 @@ class Messenger():
# to the frontend)
assert self._message_handler
- self._message_handler(message, context=context)
+ self._message_handler(message, is_silenced=self.silent_messages())
# silence()
#
@@ -109,7 +114,7 @@ class Messenger():
# silent_nested (bool): If specified, nested messages will be silenced
#
@contextmanager
- def timed_activity(self, activity_name, context, *, unique_id=None, detail=None, silent_nested=False):
+ def timed_activity(self, activity_name, *, unique_id=None, detail=None, silent_nested=False):
starttime = datetime.datetime.now()
stopped_time = None
@@ -128,7 +133,7 @@ class Messenger():
try:
# Push activity depth for status messages
message = Message(unique_id, MessageType.START, activity_name, detail=detail)
- self.message(message, context)
+ self.message(message)
self._push_message_depth(silent_nested)
yield
@@ -138,13 +143,13 @@ class Messenger():
elapsed = datetime.datetime.now() - starttime
message = Message(unique_id, MessageType.FAIL, activity_name, elapsed=elapsed)
self._pop_message_depth()
- self.message(message, context)
+ self.message(message)
raise
elapsed = datetime.datetime.now() - starttime
message = Message(unique_id, MessageType.SUCCESS, activity_name, elapsed=elapsed)
self._pop_message_depth()
- self.message(message, context)
+ self.message(message)
# recorded_messages()
#
diff --git a/src/buildstream/_scheduler/jobs/job.py b/src/buildstream/_scheduler/jobs/job.py
index 51531de64..e970481ab 100644
--- a/src/buildstream/_scheduler/jobs/job.py
+++ b/src/buildstream/_scheduler/jobs/job.py
@@ -828,16 +828,16 @@ class ChildJob():
# the message back to the parent process for further propagation.
#
# Args:
- # message (Message): The message to log
- # context (Context): The context object delegating this message
+ # message (Message): The message to log
+ # is_silenced (bool) : Whether messages are silenced
#
- def _child_message_handler(self, message, context):
+ def _child_message_handler(self, message, is_silenced):
message.action_name = self.action_name
message.task_id = self._task_id
# Send to frontend if appropriate
- if context.silent_messages() and (message.message_type not in unconditional_messages):
+ if is_silenced and (message.message_type not in unconditional_messages):
return
if message.message_type == MessageType.LOG:
diff --git a/tests/artifactcache/pull.py b/tests/artifactcache/pull.py
index 0b57a6c9a..b42af9e6e 100644
--- a/tests/artifactcache/pull.py
+++ b/tests/artifactcache/pull.py
@@ -24,7 +24,7 @@ DATA_DIR = os.path.join(
# Handle messages from the pipeline
-def message_handler(message, context):
+def message_handler(message, is_silenced):
pass
diff --git a/tests/artifactcache/push.py b/tests/artifactcache/push.py
index 862393f35..996091fca 100644
--- a/tests/artifactcache/push.py
+++ b/tests/artifactcache/push.py
@@ -23,7 +23,7 @@ DATA_DIR = os.path.join(
# Handle messages from the pipeline
-def message_handler(message, context):
+def message_handler(message, is_silenced):
pass
diff --git a/tests/internals/loader.py b/tests/internals/loader.py
index 006b5787f..f0b4f2622 100644
--- a/tests/internals/loader.py
+++ b/tests/internals/loader.py
@@ -13,7 +13,7 @@ DATA_DIR = os.path.join(
)
-def dummy_handler(message, context):
+def dummy_handler(message, is_silenced):
pass
diff --git a/tests/internals/pluginloading.py b/tests/internals/pluginloading.py
index 2d997077a..fa0b9afe8 100644
--- a/tests/internals/pluginloading.py
+++ b/tests/internals/pluginloading.py
@@ -19,7 +19,7 @@ def create_pipeline(tmpdir, basedir, target):
context.casdir = os.path.join(str(tmpdir), 'cas')
project = Project(basedir, context)
- def dummy_handler(message, context):
+ def dummy_handler(message, is_silenced):
pass
context.set_message_handler(dummy_handler)
diff --git a/tests/sourcecache/fetch.py b/tests/sourcecache/fetch.py
index cd8a3e989..d7145d7f4 100644
--- a/tests/sourcecache/fetch.py
+++ b/tests/sourcecache/fetch.py
@@ -34,7 +34,7 @@ from tests.testutils import create_artifact_share
DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
-def message_handler(message, context):
+def message_handler(message, is_silenced):
pass
diff --git a/tests/sourcecache/push.py b/tests/sourcecache/push.py
index 4c652d21e..af4e262f0 100644
--- a/tests/sourcecache/push.py
+++ b/tests/sourcecache/push.py
@@ -35,7 +35,7 @@ from tests.testutils import create_artifact_share
DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
-def message_handler(message, context):
+def message_handler(message, is_silenced):
pass
diff --git a/tests/sourcecache/staging.py b/tests/sourcecache/staging.py
index 318285292..cffd0bb58 100644
--- a/tests/sourcecache/staging.py
+++ b/tests/sourcecache/staging.py
@@ -35,7 +35,7 @@ from tests.testutils.element_generators import create_element_size
DATA_DIR = os.path.dirname(os.path.realpath(__file__))
-def dummy_message_handler(message, context):
+def dummy_message_handler(message, is_silenced):
pass