예제 #1
0
파일: __init__.py 프로젝트: bkupidura/meact
  def aggregate(aggregate_details, db, start, end, sensor_type, execute):
    ids_to_delete = []
    a_metrics = database.get_metric_aggregated(db, start=start, end=end, sensor_type=sensor_type)

    for a_metric in a_metrics:
      metric = {
        'id': a_metric[0],
        'board_id': a_metric[1],
        'sensor_type': a_metric[2],
        'total_sum': a_metric[3],
        'count': a_metric[4]
      }

      for aggregate_detail in aggregate_details:
        if metric['sensor_type'] in aggregate_detail['sensor_type']:
          m_to_delete = database.get_metric(db, board_ids=metric['board_id'], sensor_type=metric['sensor_type'], start=start, end=end)
          ids_to_delete += [m.id for m in m_to_delete if m.id != metric['id']]

          new_value = compute_value(aggregate_detail, metric['total_sum'], metric['count'])

          LOG.info("Update record with id '%d' for sensor_type '%s' for board_id '%s' with value '%s'",
                metric['id'],
                metric['sensor_type'],
                metric['board_id'],
                new_value)

          if execute and new_value:
            database.update_metric(db, metric['id'], new_value)


    LOG.info("Delete %d metrics", len(ids_to_delete))
    if execute:
      database.delete_row(db, database.Metric, ids_to_delete)
예제 #2
0
파일: __init__.py 프로젝트: bkupidura/meact
def clean_feed(args):
  LOG.info('Cleaning feeds table')

  db_string = get_global_config(args.dir).get('db_string')
  db = database.connect(db_string)

  feeds = database.get_feed(db, start=args.start, end=args.end)
  LOG.info('Got %d feeds between %s and %s', len(feeds), args.start, args.end)

  ids_to_delete = [feed.id for feed in feeds]

  if args.execute:
    database.delete_row(db, database.Feed, ids_to_delete)
예제 #3
0
파일: __init__.py 프로젝트: bkupidura/meact
def clean_action(args):
  LOG.info('Cleaning action table')

  db_string = get_global_config(args.dir).get('db_string')
  db = database.connect(db_string)

  actions = database.get_action(db, start=args.start, end=args.end)
  LOG.info('Got %d actions between %s and %s', len(actions), args.start, args.end)

  ids_to_delete = [action.id for action in actions]

  if args.execute:
    database.delete_row(db, database.Action, ids_to_delete)