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)
def consume(self, routingKey, msg): """ Consumer for this (CaptureData) class. Gets the data sent from yieldMetricsValue and sends it to the storage backends. """ build_data = msg['build_data'] builder_info = yield self.master.data.get(("builders", build_data['builderid'])) if self._builder_name_matches(builder_info) and self._data_name == msg['data_name']: try: ret_val = self._callback(msg['post_data']) except Exception as e: raise CaptureCallbackError("CaptureData failed for build %s of builder %s." " Exception generated: %s with message %s" % (build_data['number'], builder_info['name'], type(e).__name__, str(e))) post_data = ret_val series_name = '%s-%s' % (builder_info['name'], self._data_name) context = self._defaultContext(build_data, builder_info['name']) yield self._store(post_data, series_name, context)
def consume(self, routingKey, msg): """ Consumer for CaptureBuildStartTime. Gets the build start time. """ builder_info = yield self.master.data.get( ("builders", msg['builderid'])) if self._builder_name_matches(builder_info): try: ret_val = self._callback(*self._retValParams(msg)) except Exception as e: # catching generic exceptions is okay here since we propagate it raise CaptureCallbackError( "%s Exception raised: %s with message: %s" % (self._err_msg( msg, builder_info['name']), type(e).__name__, str(e))) context = self._defaultContext(msg, builder_info['name']) post_data = {self._time_type: ret_val} series_name = "%s-build-times" % builder_info['name'] yield self._store(post_data, series_name, context) else: yield defer.succeed(None)