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()
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())
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)
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())
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
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