A lot of horizon's views use the pattern:
def get_data(self):
if not hasattr(self, "_data"):
# Calculate data here.
self._data = data
return self._data
This is copy-pasted all over the codebase. It's better to handle that
with a single decorator. In the future, we might even replace it with
some better caching approach.
Closes-bug: #1248230
Change-Id: Id021fccf9032e5068993ec91a7774a5d0fbf29bb