def main(n_users=2, n_event_recipes=10, n_content_item_recipes=10, n_subject_tags=10, n_impact_tags=10, n_events=500, n_content_item_timeseries_metrics=10000, n_org_timeseries_metrics=10000, n_content_items=50, verbose=True): # top level content_items admin = db_session.query(User).filter_by( email=settings.SUPER_USER_EMAIL).first() users = [gen_user() for _ in xrange(n_users)] + [admin] org = gen_org(users) impact_tags = gen_impact_tags(org, n_subject_tags) subject_tags = gen_subject_tags(org, n_impact_tags) authors = gen_authors(org) recipes, metrics = gen_built_in_recipes(org) # generate content_items + metrics if verbose: print "generating {} content items".format(n_content_items) content_items = [] for i in xrange(n_content_items): content_item = gen_content_item(org, recipes, subject_tags, authors) content_items.append(content_item) if verbose: print "generating {} events".format(n_events) if verbose: print "generating {} content item timeseries metrics"\ .format(n_content_item_timeseries_metrics) gen_content_metric_timeseries(org, content_items, metrics, n_content_item_timeseries_metrics) if verbose: print "generating {} org timeseries metrics"\ .format(n_org_timeseries_metrics) gen_org_metric_timeseries(org, metrics, n_org_timeseries_metrics) if verbose: print "generating {} events"\ .format(n_events) # generate events gen_events(org, recipes, impact_tags, content_items, n_events) db_session.commit() # rollup metrics if verbose: print "rolling up metrics" rollup_metric.content_timeseries_to_summary(org) rollup_metric.event_tags_to_summary(org)
def get_scheduled_recipes(self): """ Get stored schedules from the Database. We only run recipes whose status is not 'uninitialized'. """ recipes = db_session.query(Recipe) # .filter(Recipe.scheduled)\ # .filter(Recipe.status != 'uninitialized') d = {} for r in recipes.all(): d[r.id] = r return d
def gen_subject_tags(org, n_subject_tags): subject_tags = [] for tag in load_default_tags(): if tag['type'] == 'subject': tag['org_id'] = org.id t = db_session.query(Tag)\ .filter_by(org_id=org.id, name=tag['name'])\ .first() if not t: t = Tag(**tag) db_session.add(t) db_session.commit() subject_tags.append(t) return subject_tags