summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Pollard <tom.pollard@codethink.co.uk>2019-07-29 15:49:55 +0100
committerTom Pollard <tom.pollard@codethink.co.uk>2019-07-29 15:49:55 +0100
commit60096ffb9165836716d80dff508eba917bea6527 (patch)
tree3df5936f20f11af51f8b50830e4c1654bdad3d52
parentb684d5616c1220453c300508545efabf08424f9a (diff)
downloadbuildstream-tpollard/moremessagetemp.tar.gz
-rw-r--r--src/buildstream/_scheduler/jobs/elementjob.py5
-rw-r--r--src/buildstream/_scheduler/jobs/job.py29
2 files changed, 28 insertions, 6 deletions
diff --git a/src/buildstream/_scheduler/jobs/elementjob.py b/src/buildstream/_scheduler/jobs/elementjob.py
index 366fd761a..e406827b1 100644
--- a/src/buildstream/_scheduler/jobs/elementjob.py
+++ b/src/buildstream/_scheduler/jobs/elementjob.py
@@ -76,6 +76,7 @@ class ElementJob(Job):
# Set the plugin element name for logging purposes
self.set_message_element_name(self.name)
+ self.set_message_element_key(self._element._get_display_key())
@property
def element(self):
@@ -88,7 +89,7 @@ class ElementJob(Job):
return ChildElementJob(*args, element=self._element, action_cb=self._action_cb, **kwargs)
def message(self, message_type, message, **kwargs):
- kwargs['element_key'] = self._element._get_display_key()
+ #kwargs['element_key'] = self._element._get_display_key()
super().message(message_type, message, **kwargs)
@@ -122,5 +123,5 @@ class ChildElementJob(ChildJob):
return data
def message(self, message_type, message, **kwargs):
- kwargs['element_key'] = self._element._get_display_key()
+ #kwargs['element_key'] = self._element._get_display_key()
super().message(message_type, message, **kwargs)
diff --git a/src/buildstream/_scheduler/jobs/job.py b/src/buildstream/_scheduler/jobs/job.py
index 07ed74808..bdab8cc6c 100644
--- a/src/buildstream/_scheduler/jobs/job.py
+++ b/src/buildstream/_scheduler/jobs/job.py
@@ -152,6 +152,7 @@ class Job():
self._logfile = logfile
self._message_element_name = None # The plugin instance element name for messaging
+ self._message_element_key = None # The element key for messaging
# set_name()
#
@@ -178,6 +179,7 @@ class Job():
self._max_retries,
self._tries,
self._message_element_name,
+ self._message_element_key
)
# Make sure that picklability doesn't break, by exercising it during
@@ -313,7 +315,7 @@ class Job():
os.kill(self._process.pid, signal.SIGCONT)
self._suspended = False
- # set_element_name()
+ # set_message_element_name()
#
# This is called by Job subclasses to set the plugin instance element
# name issuing the message (if an element is related to the Job).
@@ -324,6 +326,17 @@ class Job():
def set_message_element_name(self, element_name):
self._message_element_name = element_name
+ # set_message_element_key()
+ #
+ # This is called by Job subclasses to set the element
+ # key for for the issuing message (if an element is related to the Job).
+ #
+ # Args:
+ # element_key (tuple): The element_key tuple to be supplied to the Message() constructor
+ #
+ def set_message_element_key(self, element_key):
+ self._message_element_key = element_key
+
# message():
#
# Logs a message, this will be logged in the task's logfile and
@@ -338,11 +351,12 @@ class Job():
def message(self, message_type, message, **kwargs):
kwargs['scheduler'] = True
element_name = self._message_element_name
+ element_key = self._message_element_key
if "element_name" in kwargs:
element_name = kwargs["element_name"]
del kwargs["element_name"]
self._scheduler.context.messenger.message(
- Message(message_type, message, element_name=element_name, **kwargs))
+ Message(message_type, message, element_name=element_name, element_key=element_key, **kwargs))
#######################################################
# Abstract Methods #
@@ -552,11 +566,14 @@ class Job():
# tries (int): The number of retries so far.
# message_element_name (str): None, or the plugin instance element name
# to be supplied to the Message() constructor.
+# message_element_key (tuple): None, or the element display key tuple
+# to be supplied to the Message() constructor.
#
class ChildJob():
def __init__(
- self, action_name, messenger, logdir, logfile, max_retries, tries, message_element_name):
+ self, action_name, messenger, logdir, logfile, max_retries, tries,
+ message_element_name, message_element_key):
self.action_name = action_name
@@ -566,6 +583,7 @@ class ChildJob():
self._max_retries = max_retries
self._tries = tries
self._message_element_name = message_element_name
+ self._message_element_key = message_element_key
self._queue = None
@@ -583,10 +601,12 @@ class ChildJob():
def message(self, message_type, message, **kwargs):
kwargs['scheduler'] = True
element_name = self._message_element_name
+ element_key = self._message_element_key
if "element_name" in kwargs:
element_name = kwargs["element_name"]
del kwargs["element_name"]
- self._messenger.message(Message(message_type, message, element_name=element_name, **kwargs))
+ self._messenger.message(Message(message_type, message, element_name=element_name,
+ element_key=self._message_element_key, **kwargs))
# send_message()
#
@@ -828,6 +848,7 @@ class ChildJob():
message.action_name = self.action_name
message.element_name = self._message_element_name
+ message.element_key = self._message_element_key
# Send to frontend if appropriate
if is_silenced and (message.message_type not in unconditional_messages):