소스 검색

[metadata] Support retrieving top tables

Romain Rigaux 9 년 전
부모
커밋
3b885def1f
2개의 변경된 파일20개의 추가작업 그리고 0개의 파일을 삭제
  1. 11 0
      desktop/libs/metadata/src/metadata/optimizer_client.py
  2. 9 0
      desktop/libs/metadata/src/metadata/optimizer_tests.py

+ 11 - 0
desktop/libs/metadata/src/metadata/optimizer_client.py

@@ -133,6 +133,17 @@ class OptimizerApi(object):
       raise PopupException(e, title=_('Error while accessing Optimizer'))
 
 
+  def top_tables(self, token, email=None):
+    try:
+      data = {
+          'email': email if email is not None else self._email,
+          'token': token,
+      }
+      return self._root.post('/api/topTables', data=json.dumps(data), contenttype=_JSON_CONTENT_TYPE)
+    except RestException, e:
+      raise PopupException(e, title=_('Error while accessing Optimizer'))
+
+
 def OptimizerDataAdapter(queries):
   headers = ['SQL_ID', 'ELAPSED_TIME', 'SQL_FULLTEXT']
   rows = ([str(uuid.uuid4()), 1000, q] for q in queries)

+ 9 - 0
desktop/libs/metadata/src/metadata/optimizer_tests.py

@@ -113,3 +113,12 @@ class TestOptimizerApi(object):
 
     resp = self.api.upload(token=token, queries=queries)
     assert_equal('success', resp['status'], resp)
+
+
+  def test_api_top_tables(self):
+    resp = self.api.authenticate()
+    token = resp['token']
+
+    resp = self.api.top_tables(token=token)
+
+    assert_true(isinstance(resp, list), resp) # No status code currently