Explorar el Código

HUE-8519 [jb] Impala API can now directly return json

jdesjean hace 7 años
padre
commit
ab702d5

+ 20 - 5
apps/impala/src/impala/server.py

@@ -184,7 +184,10 @@ class ImpalaDaemonApi(object):
 
     resp = self._root.get('queries', params=params)
     try:
-      return json.loads(resp)
+      if isinstance(resp, basestring):
+        return json.loads(resp)
+      else:
+        return resp
     except ValueError, e:
       raise ImpalaDaemonApiException('ImpalaDaemonApi did not return valid JSON: %s' % e)
 
@@ -197,7 +200,10 @@ class ImpalaDaemonApi(object):
 
     resp = self._root.get('query_plan', params=params)
     try:
-      return json.loads(resp)
+      if isinstance(resp, basestring):
+        return json.loads(resp)
+      else:
+        return resp
     except ValueError, e:
       raise ImpalaDaemonApiException('ImpalaDaemonApi did not return valid JSON: %s' % e)
 
@@ -210,7 +216,10 @@ class ImpalaDaemonApi(object):
 
     resp = self._root.get('query_profile', params=params)
     try:
-      return json.loads(resp)
+      if isinstance(resp, basestring):
+        return json.loads(resp)
+      else:
+        return resp
     except ValueError, e:
       raise ImpalaDaemonApiException('ImpalaDaemonApi query_profile did not return valid JSON: %s' % e)
 
@@ -222,7 +231,10 @@ class ImpalaDaemonApi(object):
 
     resp = self._root.get('query_memory', params=params)
     try:
-      return json.loads(resp)
+      if isinstance(resp, basestring):
+        return json.loads(resp)
+      else:
+        return resp
     except ValueError, e:
       raise ImpalaDaemonApiException('ImpalaDaemonApi query_memory did not return valid JSON: %s' % e)
 
@@ -233,6 +245,9 @@ class ImpalaDaemonApi(object):
     }
     resp = self._root.get('cancel_query', params=params)
     try:
-      return json.loads(resp)
+      if isinstance(resp, basestring):
+        return json.loads(resp)
+      else:
+        return resp
     except ValueError, e:
       raise ImpalaDaemonApiException('ImpalaDaemonApi kill did not return valid JSON: %s' % e)

+ 1 - 1
apps/jobbrowser/src/jobbrowser/templates/job_browser.mako

@@ -2062,7 +2062,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
       self.rerunModalContent = ko.observable('');
 
       self.hasKill = ko.pureComputed(function() {
-        return ['MAPREDUCE', 'SPARK', 'workflow', 'schedule', 'bundle', 'QUERY'].indexOf(self.type()) != -1 || self.type().indexOf('Altus') != -1;
+        return self.type() && (['MAPREDUCE', 'SPARK', 'workflow', 'schedule', 'bundle', 'QUERY'].indexOf(self.type()) != -1 || self.type().indexOf('Altus') != -1);
       });
       self.killEnabled = ko.pureComputed(function() {
         // Impala can kill queries that are finished, but not yet terminated