def getGraphValues(self, relatedGps, context): """ Returns the values that we want to include for the visualization of this threshold. For a minmax we simply display lines representing the minval and maxval. """ minval = self.minimum if minval is None or minval == '': minval = NaN maxval = self.maximum if maxval is None or maxval == '': maxval = NaN if not self.dataPointNames: return [] gp = relatedGps[self.dataPointNames[0]] # Attempt any RPN expressions rpn = getattr(gp, 'rpn', None) if rpn: try: rpn = talesEvalStr(rpn, context) except Exception as e: log.exception(e) self.raiseRPNExc() return [] try: if minval is not NaN: minval = rpneval(minval, rpn) except Exception: minval = 0 self.raiseRPNExc() try: if maxval is not NaN: maxval = rpneval(maxval, rpn) except Exception: maxval = 0 self.raiseRPNExc() minval = nanToNone(minval) maxval = nanToNone(maxval) return [minval, maxval]
def getDataPointsRPNValues(self, maxval, thuid, selecteddps, minval): threshold = self._getObject(thuid) dpsrpn = [] for point in selecteddps: dpParams = {} for graph in threshold.rrdTemplate.getGraphDefs(): dpParams.update({ 'rpnvalue': pobj.rpn if pobj.rpn else '' for pobj in graph.getDataPointGraphPoints(point) }) dpParams['name'] = point #if we can't use rpn to the entered values, return raw values back try: dpParams.update({'maxrpn': rpneval(maxval, dpParams.get('rpnvalue', ''))}) except: dpParams.update({'maxrpn': maxval}) try: dpParams.update({'minrpn': rpneval(minval, dpParams.get('rpnvalue', ''))}) except: dpParams.update({'minrpn': minval}) dpsrpn.append(dpParams) return dpsrpn
def getGraphValues(self, relatedGps, context): """ Returns the values that we want to include for the visualization of this threshold. For a minmax we simply display lines representing the minval and maxval. """ minval = self.minimum if minval is None or minval == '': minval = NaN maxval = self.maximum if maxval is None or maxval == '': maxval = NaN if not self.dataPointNames: return [] gp = relatedGps[self.dataPointNames[0]] # Attempt any RPN expressions rpn = getattr(gp, 'rpn', None) if rpn: try: rpn = talesEvalStr(rpn, context) except Exception, e: log.exception(e) self.raiseRPNExc() return [] try: if minval is not NaN: minval = rpneval(minval, rpn) except: minval= 0 self.raiseRPNExc() try: if maxval is not NaN: maxval = rpneval(maxval, rpn) except: maxval= 0 self.raiseRPNExc()
def getGraphElements(self, template, context, gopts, namespace, color, legend, relatedGps): """Produce a visual indication on the graph of where the threshold applies.""" unused(template, namespace) if not color.startswith('#'): color = '#%s' % color minval = self.minimum if minval is None or minval == '': minval = NaN maxval = self.maximum if maxval is None or maxval == '': maxval = NaN if not self.dataPointNames: return gopts gp = relatedGps[self.dataPointNames[0]] # Attempt any RPN expressions rpn = getattr(gp, 'rpn', None) if rpn: try: rpn = talesEvalStr(rpn, context) except: self.raiseRPNExc() return gopts try: minval = rpneval(minval, rpn) except: minval= 0 self.raiseRPNExc() try: maxval = rpneval(maxval, rpn) except: maxval= 0 self.raiseRPNExc() minstr = self.setPower(minval) maxstr = self.setPower(maxval) minval = nanToNone(minval) maxval = nanToNone(maxval) if legend: gopts.append( "HRULE:%s%s:%s\\j" % (minval or maxval, color, legend)) elif minval is not None and maxval is not None: if minval == maxval: gopts.append( "HRULE:%s%s:%s not equal to %s\\j" % (minval, color, self.getNames(relatedGps), minstr)) elif minval < maxval: gopts.append( "HRULE:%s%s:%s not within %s and %s\\j" % (minval, color, self.getNames(relatedGps), minstr, maxstr)) gopts.append("HRULE:%s%s" % (maxval, color)) elif minval > maxval: gopts.append( "HRULE:%s%s:%s between %s and %s\\j" % (minval, color, self.getNames(relatedGps), maxstr, minstr)) gopts.append("HRULE:%s%s" % (maxval, color)) elif minval is not None : gopts.append( "HRULE:%s%s:%s less than %s\\j" % (minval, color, self.getNames(relatedGps), minstr)) elif maxval is not None: gopts.append( "HRULE:%s%s:%s greater than %s\\j" % (maxval, color, self.getNames(relatedGps), maxstr)) return gopts
def getGraphElements(self, template, context, gopts, namespace, color, legend, relatedGps): """Produce a visual indication on the graph of where the threshold applies.""" unused(template, namespace) if not color.startswith('#'): color = '#%s' % color minval = self.minimum if minval is None: minval = NaN maxval = self.maximum if maxval is None: maxval = NaN if not self.dataPointNames: return gopts gp = relatedGps[self.dataPointNames[0]] # Attempt any RPN expressions rpn = getattr(gp, 'rpn', None) if rpn: try: rpn = talesEvalStr(rpn, context) except: self.raiseRPNExc() return gopts try: minval = rpneval(minval, rpn) except: minval= 0 self.raiseRPNExc() try: maxval = rpneval(maxval, rpn) except: maxval= 0 self.raiseRPNExc() minstr = self.setPower(minval) maxstr = self.setPower(maxval) minval = nanToNone(minval) maxval = nanToNone(maxval) if legend: gopts.append( "HRULE:%s%s:%s\\j" % (minval or maxval, color, legend)) elif minval is not None and maxval is not None: if minval == maxval: gopts.append( "HRULE:%s%s:%s not equal to %s\\j" % (minval, color, self.getNames(relatedGps), minstr)) elif minval < maxval: gopts.append( "HRULE:%s%s:%s not within %s and %s\\j" % (minval, color, self.getNames(relatedGps), minstr, maxstr)) gopts.append("HRULE:%s%s" % (maxval, color)) elif minval > maxval: gopts.append( "HRULE:%s%s:%s between %s and %s\\j" % (minval, color, self.getNames(relatedGps), maxstr, minstr)) gopts.append("HRULE:%s%s" % (maxval, color)) elif minval is not None : gopts.append( "HRULE:%s%s:%s less than %s\\j" % (minval, color, self.getNames(relatedGps), minstr)) elif maxval is not None: gopts.append( "HRULE:%s%s:%s greater than %s\\j" % (maxval, color, self.getNames(relatedGps), maxstr)) return gopts