Переглянути джерело

HUE-9540 [query browser] API - List queries

ayush.goyal 5 роки тому
батько
коміт
345a706b61

+ 7 - 0
apps/jobbrowser/src/jobbrowser/api2.py

@@ -189,6 +189,13 @@ def query_store_api(request, path=None):
       response['message'] = ex_response.reason
       response['message'] = ex_response.reason
       response['content'] = ex_response.text
       response['content'] = ex_response.text
 
 
+  else:
+
+    if path == 'api/query/search':
+      filters = json.loads(request.body)
+      resp = get_api(request.user, interface='queries-hive').apps(filters['search'])
+      response = resp['apps']
+
   return JsonResponse(response)
   return JsonResponse(response)
 
 
 
 

+ 1 - 2
apps/jobbrowser/src/jobbrowser/apis/hive_query_api.py

@@ -52,7 +52,7 @@ class HiveQueryApi(Api):
         "queries": [{
         "queries": [{
             "details": None,
             "details": None,
             "dags": [],
             "dags": [],
-            "id": query.query_id,
+            "id": query.id,
             "queryId": query.query_id,
             "queryId": query.query_id,
             "startTime": query.start_time,
             "startTime": query.start_time,
             "query": query.query.replace('\r\n', ' ')[:60] + ('...' if len(query.query) > 60 else ''),
             "query": query.query.replace('\r\n', ' ')[:60] + ('...' if len(query.query) > 60 else ''),
@@ -82,7 +82,6 @@ class HiveQueryApi(Api):
             "domainId": query.domain_id,
             "domainId": query.domain_id,
             "llapAppId": query.llap_app_id,
             "llapAppId": query.llap_app_id,
             "usedCBO": query.used_cbo,
             "usedCBO": query.used_cbo,
-            "processed": query.processed,
             "createdAt": query.created_at
             "createdAt": query.created_at
           }
           }
           for query in queries
           for query in queries

+ 3 - 2
apps/jobbrowser/src/jobbrowser/models.py

@@ -85,6 +85,7 @@ def can_kill_job(self, user):
 class HiveQuery(models.Model):
 class HiveQuery(models.Model):
   # (mysql.E001) MySQL does not allow unique CharFields to have a max_length > 255.
   # (mysql.E001) MySQL does not allow unique CharFields to have a max_length > 255.
   # query_id = models.CharField(unique=True, max_length=512, blank=True, null=True)
   # query_id = models.CharField(unique=True, max_length=512, blank=True, null=True)
+  id = models.IntegerField(unique=True, blank=True, null=False, primary_key=True)
   query_id = models.CharField(unique=True, max_length=255, blank=True, null=True)
   query_id = models.CharField(unique=True, max_length=255, blank=True, null=True)
   query = models.TextField(blank=True, null=True)
   query = models.TextField(blank=True, null=True)
   query_fts = models.TextField(blank=True, null=True)  # This field type is a guess.
   query_fts = models.TextField(blank=True, null=True)  # This field type is a guess.
@@ -108,17 +109,17 @@ class HiveQuery(models.Model):
   log_id = models.CharField(max_length=512, blank=True, null=True)
   log_id = models.CharField(max_length=512, blank=True, null=True)
   thread_id = models.CharField(max_length=512, blank=True, null=True)
   thread_id = models.CharField(max_length=512, blank=True, null=True)
   execution_mode = models.CharField(max_length=16, blank=True, null=True)
   execution_mode = models.CharField(max_length=16, blank=True, null=True)
+  databases_used = models.TextField(blank=True, null=True)  # This field type is a guess.
   tables_read = models.TextField(blank=True, null=True)  # This field type is a guess.
   tables_read = models.TextField(blank=True, null=True)  # This field type is a guess.
   tables_written = models.TextField(blank=True, null=True)  # This field type is a guess.
   tables_written = models.TextField(blank=True, null=True)  # This field type is a guess.
   domain_id = models.CharField(max_length=512, blank=True, null=True)
   domain_id = models.CharField(max_length=512, blank=True, null=True)
   llap_app_id = models.CharField(max_length=512, blank=True, null=True)
   llap_app_id = models.CharField(max_length=512, blank=True, null=True)
   used_cbo = models.CharField(max_length=16, blank=True, null=True)
   used_cbo = models.CharField(max_length=16, blank=True, null=True)
-  created_at = models.DateTimeField(blank=True, null=True)
-  databases_used = models.TextField(blank=True, null=True)  # This field type is a guess.
   first_task_started_time = models.BigIntegerField(blank=True, null=True)
   first_task_started_time = models.BigIntegerField(blank=True, null=True)
   waiting_time = models.BigIntegerField(blank=True, null=True)
   waiting_time = models.BigIntegerField(blank=True, null=True)
   resource_utilization = models.BigIntegerField(blank=True, null=True)
   resource_utilization = models.BigIntegerField(blank=True, null=True)
   version = models.SmallIntegerField(blank=True, null=True)
   version = models.SmallIntegerField(blank=True, null=True)
+  created_at = models.DateTimeField(blank=True, null=True)
 
 
   class Meta:
   class Meta:
     managed = False
     managed = False