Exemple #1
0
def get_info_(db_info, file_info):
    mng = mongoConnect()
    for (cat, exp) in get_experiment_list():
        db_name = mongoDBName(cat, exp)

        # Mongo stats
        stats = mng[db_name].command("dbStats")
        db_info[db_name] = {
            'size': round((stats['dataSize']) / (1024.0 * 1024.0), 2),
            'avgObjSize': round((stats['avgObjSize']) / (1024.0 * 1024.0), 2),
            'objects': stats['objects'],
            'collections': stats['collections']
        }

        size = 0
        collections = set()
        for (collection, f) in get_episode_files(cat, exp):
            size += round((os.path.getsize(f)) / (1024.0 * 1024.0), 2)
            collections.add(collection)

        file_info[db_name] = {
            'category': cat,
            'experiment': exp,
            'episodes': get_episode_count(cat, exp),
            'size': size,
            'collections': list(collections)
        }
    mng.close()
Exemple #2
0
def admin_mongo():
    mng = mongoConnect()
    
    db_info = {}
    file_info = {}
    
    for (cat,exp) in get_experiment_list():
        db_name = mongoDBName(cat,exp)
        
        # Mongo stats
        stats =  mng[db_name].command("dbStats")
        db_info[db_name] = {
            'size': round((stats['dataSize'])/(1024.0*1024.0), 2),
            'avgObjSize': round((stats['avgObjSize'])/(1024.0*1024.0), 2),
            'objects': stats['objects'],
            'collections': stats['collections']
        }
        
        size = 0
        collections = set()
        for (collection,f) in get_episode_files(cat,exp):
            size += round((os.path.getsize(f))/(1024.0*1024.0), 2)
            collections.add(collection)
            
        file_info[db_name] = {
            'category': cat,
            'experiment': exp,
            'episodes': get_episode_count(cat,exp),
            'size': size,
            'collections': list(collections)
        }
    
    mng.close()
    return render_template('admin_mongo.html', **locals())
Exemple #3
0
def menu():
    # Maps projects to list of experiments
    episode_choices_map =  {}
    for (category,exp) in get_experiment_list():
        episode_url = get_experiment_url(category,exp)
        
        menu = ''
        if len(category)>0: menu = category
        if not menu in episode_choices_map:
            episode_choices_map[menu] = []
        
        episode_choices_map[menu].append((exp, episode_url))
    
    episode_page = '<div class="mega_menu" id="episode-selection">'
    for category in sorted(episode_choices_map.keys()):
        cat_episodes = episode_choices_map[category]
        cat_episodes = sorted(cat_episodes, key=lambda tup: tup[0])
        div_id = category.lower().replace(' ', '-')
        episode_page += '<div class="mega_menu_column" id="'+div_id+'">'
        episode_page += '<h3 class="category-title">'+category.replace('-',' ')+'</h3>'
        episode_page += '<div class="category-episodes">'
        
        technology_episodes = {}
        for (exp,url) in cat_episodes:
            data = experiment_load_queries(category, exp)
            if data is None:
                app.logger.warn("Failed to load episodes for " + str((category, exp)))
                continue
            if "meta" not in data:
                app.logger.warn("Meta data missing for episodes for " + str((category, exp)))
                continue
            meta = data['meta']
            if "name" not in meta or "platforms" not in meta:
                app.logger.warn("Meta data missing for episodes for " + str((category, exp)))
                continue
            
            if not 'published' in meta: meta['published'] = 'true'
            if meta['published'] == 'false': continue
            
            for t in meta['platforms']:
                if t not in technology_episodes.keys(): technology_episodes[t] = []
                technology_episodes[t].append((meta['name'], url))
        
        for t in sorted(technology_episodes.keys()):
            episode_page += '<h4 class="technology-title">'+t+'</h4>'
            for (name,url) in technology_episodes[t]:
                episode_page += '<a href="'+ url +'">'+name+'</a>'
        episode_page += '</div></div>'
    episode_page += '</div>'
    
    menu_left = []
    menu_right = [{
        'text': 'Episode Selection',
        'submenu': [{
            'text': '',
            'submenu_page': episode_page
        }]
    }]
    
    return jsonify(menu_left=menu_left, menu_right=menu_right)
Exemple #4
0
def admin_mongo():
    mng = mongoConnect()

    db_info = {}
    file_info = {}

    for (cat, exp) in get_experiment_list():
        db_name = mongoDBName(cat, exp)

        # Mongo stats
        stats = mng[db_name].command("dbStats")
        db_info[db_name] = {
            "size": round((stats["dataSize"]) / (1024.0 * 1024.0), 2),
            "avgObjSize": round((stats["avgObjSize"]) / (1024.0 * 1024.0), 2),
            "objects": stats["objects"],
            "collections": stats["collections"],
        }

        size = 0
        collections = set()
        for (collection, f) in get_episode_files(cat, exp):
            size += round((os.path.getsize(f)) / (1024.0 * 1024.0), 2)
            collections.add(collection)

        file_info[db_name] = {
            "category": cat,
            "experiment": exp,
            "episodes": get_episode_count(cat, exp),
            "size": size,
            "collections": list(collections),
        }

    mng.close()
    return render_template("admin_mongo.html", **locals())
Exemple #5
0
def _generate_episode_choices_map_from_experiment_list():
    episode_choices_map = {}
    for (category, exp) in get_experiment_list():
        m_menu = ''
        if len(category) > 0:
            m_menu = category
        if m_menu not in episode_choices_map:
            episode_choices_map[m_menu] = []
        episode_choices_map[m_menu].append((exp, category))
    return episode_choices_map
Exemple #6
0
def _get_db_and_file_info(mongo_db):
    db_info = {}
    file_info = {}

    for (cat, exp) in get_experiment_list():
        db_name = _build_mongo_db_name(cat, exp)
        # Mongo stats
        db_info[db_name] = _get_db_info(db_name, mongo_db)

        file_info[db_name] = _get_file_info(cat, exp)

    return db_info, file_info