Example #1
0
def update_cad_related_objects(*_, **kwargs):
  """Update CAD related objects"""
  event_id = ggrc_utils.get_task_attr("event_id", kwargs)
  model_name = ggrc_utils.get_task_attr("model_name", kwargs)
  need_revisions = ggrc_utils.get_task_attr("need_revisions", kwargs)
  modified_by_id = ggrc_utils.get_task_attr("modified_by_id", kwargs)

  event = models.all_models.Event.query.filter_by(id=event_id).first()
  cad = models.all_models.CustomAttributeDefinition.query.filter_by(
      id=event.resource_id
  ).first()
  model = models.get_model(model_name)
  query = db.session.query(model if need_revisions else model.id)
  objects_count = query.count()
  handled_objects = 0
  for chunk in ggrc_utils.generate_query_chunks(query):
    handled_objects += chunk.count()
    logger.info(
        "Updating CAD related objects: %s/%s", handled_objects, objects_count
    )
    if need_revisions:
      for obj in chunk:
        obj.updated_at = datetime.datetime.utcnow()
        obj.modified_by_id = modified_by_id
    else:
      model.bulk_record_update_for([obj_id for obj_id, in chunk])
    log_event.log_event(db.session, cad, event=event)
    db.session.commit()
  return app.make_response(("success", 200, [("Content-Type", "text/html")]))
Example #2
0
def compute_attributes(*_, **kwargs):
  """Web hook to update the full text search index."""
  with benchmark("Run compute_attributes background task"):
    event_id = utils.get_task_attr("event_id", kwargs)
    revision_ids = utils.get_task_attr("revision_ids", kwargs)

    if event_id and not revision_ids:
      rows = db.session.query(Revision.id).filter_by(event_id=event_id).all()
      revision_ids = [revision_id for revision_id, in rows]
    elif str(revision_ids) == "all_latest":
      revision_ids = "all_latest"
    else:
      revision_ids = list(revision_ids)

    from ggrc.data_platform import computed_attributes
    computed_attributes.compute_attributes(revision_ids)
    return app.make_response(("success", 200, [("Content-Type", "text/html")]))
Example #3
0
def compute_attributes(*_, **kwargs):
    """Web hook to update the full text search index."""
    with benchmark("Run compute_attributes background task"):
        event_id = utils.get_task_attr("event_id", kwargs)
        revision_ids = utils.get_task_attr("revision_ids", kwargs)

        if event_id and not revision_ids:
            rows = db.session.query(
                Revision.id).filter_by(event_id=event_id).all()
            revision_ids = [revision_id for revision_id, in rows]
        elif str(revision_ids) == "all_latest":
            revision_ids = "all_latest"
        else:
            revision_ids = list(revision_ids)

        from ggrc.data_platform import computed_attributes
        computed_attributes.compute_attributes(revision_ids)
        return app.make_response(
            ("success", 200, [("Content-Type", "text/html")]))