def _getDsDatapoints(self, comp, ds, perfServer):
     """
     Given a component a data source, gather its data points
     """
     points = []
     component_name = ds.getComponent(comp)
     basepath = comp.rrdPath()
     for dp in ds.getRRDDataPoints():
         alias = (dp.aliases() or [dp])[0]
         formula = getattr(alias, 'formula', None)
         dpc = DataPointConfig()
         dpc.id = dp.id
         if formula:
             dpc.expr=talesEval("string:%s"%formula,comp,extra={'now':'now'})
         dpc.alias = alias.id.strip().lower()
         dpc.component = component_name
         dpc.rrdPath = "/".join((basepath, dp.name()))
         dpc.rrdType = dp.rrdtype
         dpc.rrdCreateSql = dp.getRRDCreateCommand(perfServer)
         dpc.rrdMin = dp.rrdmin
         dpc.rrdMax = dp.rrdmax
         points.append(dpc)
     return points
 def _getDsDatapoints(self, comp, ds, perfServer, dpnames, sql=''):
     """
     Given a component a data source, gather its data points
     """
     points = []
     if comp == comp.device():
         component_name = ds.getComponent(comp)
     elif callable(getattr(comp, 'name', None)):
         component_name = comp.name()
     else:
         component_name = getattr(comp, 'id', '')
     basepath = comp.rrdPath()
     for dp in ds.getRRDDataPoints():
         dpnames.add(dp.name())
         dpc = DataPointConfig()
         dpc.id = dp.id
         for alias in dp.aliases():
             aliasId = alias.id.strip().lower()
             if dpc.alias and ' %s '%aliasId not in sql: continue
             dpc.alias = aliasId
             formula = getattr(alias, 'formula', None)
             if not formula: continue
             dpc.expr=talesEval("string:%s"%formula,comp,extra={'now':'now'})
         if not dpc.alias:
             dpc.alias = dp.id.strip().lower()
         dpc.component = component_name
         dpc.rrdPath = "/".join((basepath, dp.name()))
         dpc.rrdType = dp.rrdtype
         dpc.rrdCreateSql = dp.getRRDCreateCommand(perfServer)
         dpc.rrdMin = dp.rrdmin
         dpc.rrdMax = dp.rrdmax
         points.append(dpc)
     return points
Beispiel #3
0
 def _getDsDatapoints(self, comp, ds, perfServer, dpnames, sql=''):
     """
     Given a component a data source, gather its data points
     """
     points = []
     if comp == comp.device():
         component_name = ds.getComponent(comp)
     elif callable(getattr(comp, 'name', None)):
         component_name = comp.name()
     else:
         component_name = getattr(comp, 'id', '')
     basepath = comp.rrdPath()
     for dp in ds.getRRDDataPoints():
         dpnames.add(dp.name())
         dpc = DataPointConfig()
         dpc.id = dp.id
         for alias in dp.aliases():
             aliasId = alias.id.strip().lower()
             if dpc.alias and ' %s ' % aliasId not in sql: continue
             dpc.alias = aliasId
             formula = getattr(alias, 'formula', None)
             if not formula: continue
             dpc.expr = talesEval("string:%s" % formula,
                                  comp,
                                  extra={'now': 'now'})
         if not dpc.alias:
             dpc.alias = dp.id.strip().lower()
         dpc.component = component_name
         dpc.rrdPath = "/".join((basepath, dp.name()))
         dpc.rrdType = dp.rrdtype
         dpc.rrdCreateSql = dp.getRRDCreateCommand(perfServer)
         dpc.rrdMin = dp.rrdmin
         dpc.rrdMax = dp.rrdmax
         points.append(dpc)
     return points