docs: def consume(self, routingKey, msg):
          """
          Consumer for this (CaptureProperty) class. Gets the properties from data api and
          send them to the storage backends.
          """
          builder_info = yield self.master.data.get(("builders", msg['builderid']))
  
          if self._builder_name_matches(builder_info):
              properties = yield self.master.data.get(("builds", msg['buildid'], "properties"))
  
              if self._regex:
                  filtered_prop_names = [
                      pn for pn in properties if re.match(self._property_name, pn)]
              else:
                  filtered_prop_names = [self._property_name]
  
              for pn in filtered_prop_names:
                  try:
                      ret_val = self._callback(properties, pn)
                  except KeyError:
                      raise CaptureCallbackError("CaptureProperty failed."
                                                 " The property %s not found for build number %s on"
                                                 " builder %s."
                                                 % (pn, msg['number'], builder_info['name']))
                  context = self._defaultContext(msg, builder_info['name'])
                  series_name = "%s-%s" % (builder_info['name'], pn)
                  post_data = {
                      "name": pn,
                      "value": ret_val
                  }
                  yield self._store(post_data, series_name, context)
  
          else:
              yield defer.succeed(None)