Implement getSafeAttributes for other objects
To be consistent, allow objects to individually provide attributes
considered safe for use in report formatting.
Change-Id: Ib1d262b48e8e7341c250546437f17339b89065b4
diff --git a/zuul/model.py b/zuul/model.py
index dde6e6e..00a2903 100644
--- a/zuul/model.py
+++ b/zuul/model.py
@@ -163,6 +163,9 @@
def __repr__(self):
return '<Pipeline %s>' % self.name
+ def getSafeAttributes(self):
+ return Attributes(name=self.name)
+
def setManager(self, manager):
self.manager = manager
@@ -756,6 +759,9 @@
def _get(self, name):
return self.__dict__.get(name)
+ def getSafeAttributes(self):
+ return Attributes(name=self.name)
+
def setRun(self):
if not self.run:
self.run = self.implied_run
@@ -985,6 +991,9 @@
return ('<Build %s of %s on %s>' %
(self.uuid, self.job.name, self.worker))
+ def getSafeAttributes(self):
+ return Attributes(uuid=self.uuid)
+
class Worker(object):
"""Information about the specific worker executing a Build."""
@@ -1445,9 +1454,9 @@
# the entire data structure where they might be able to access
# secrets, etc.
safe_change = self.change.getSafeAttributes()
- safe_pipeline = Attributes(name=self.pipeline.name)
- safe_job = Attributes(name=job.name)
- safe_build = Attributes(uuid=build.uuid)
+ safe_pipeline = self.pipeline.getSafeAttributes()
+ safe_job = job.getSafeAttributes()
+ safe_build = build.getSafeAttributes()
if pattern:
try:
url = pattern.format(change=safe_change,