浏览代码

[metastore] Speed up loading of initial page

All content is then fetched asynchronously
Romain Rigaux 9 年之前
父节点
当前提交
a2fcdc6
共有 1 个文件被更改,包括 18 次插入20 次删除
  1. 18 20
      apps/metastore/src/metastore/views.py

+ 18 - 20
apps/metastore/src/metastore/views.py

@@ -141,34 +141,32 @@ def show_tables(request, database=None):
   if database is None:
     database = 'default' # Assume always 'default'
 
-  db = dbms.get(request.user)
-
-  try:
-    databases = db.get_databases()
+  if request.REQUEST.get("format", "html") == "json":
+    db = dbms.get(request.user)
 
-    if database not in databases:
-      database = 'default'
+    try:
+      databases = db.get_databases()
 
-    if request.method == 'POST':
-      db_form = DbForm(request.POST, databases=databases)
-      if db_form.is_valid():
-        database = db_form.cleaned_data['database']
-    else:
-      db_form = DbForm(initial={'database': database}, databases=databases)
+      if database not in databases:
+        database = 'default'
 
-    search_filter = request.GET.get('filter', '')
+      if request.method == 'POST':
+        db_form = DbForm(request.POST, databases=databases)
+        if db_form.is_valid():
+          database = db_form.cleaned_data['database']
+      else:
+        db_form = DbForm(initial={'database': database}, databases=databases)
 
-    tables = db.get_tables_meta(database=database, table_names=search_filter) # SparkSql returns []
-    table_names = [table['name'] for table in tables]
-  except Exception, e:
-    raise PopupException(_('Failed to retrieve tables for database: %s' % database), detail=e)
+      search_filter = request.GET.get('filter', '')
 
-  database_meta = db.get_database(database)
+      tables = db.get_tables_meta(database=database, table_names=search_filter) # SparkSql returns []
+      table_names = [table['name'] for table in tables]
+    except Exception, e:
+      raise PopupException(_('Failed to retrieve tables for database: %s' % database), detail=e)
 
-  if request.REQUEST.get("format", "html") == "json":
     resp = JsonResponse({
         'status': 0,
-        'database_meta': database_meta,
+        'database_meta': db.get_database(database),
         'tables': tables,
         'table_names': table_names,
         'search_filter': search_filter