Ver código fonte

HUE-8758 [connector] Use impersonation value from setting

Romain 5 anos atrás
pai
commit
876f68706e

+ 13 - 1
apps/beeswax/src/beeswax/server/dbms.py

@@ -249,6 +249,18 @@ def get_query_server_config_via_connector(connector):
     full_connector_name = '%s-%s' % (connector_name, compute_name)
   LOG.debug("Query cluster connector %s compute %s" % (connector_name, compute_name))
 
+  if connector['options'].get('has_ssh') == 'true':
+    server_host = '127.0.0.1'
+    server_port = connector['options']['server_port']
+  else:
+    server_host = (connector['compute']['options'] if 'compute' in connector else connector['options'])['server_host']
+    server_port = int((connector['compute']['options'] if 'compute' in connector else connector['options'])['server_port'])
+
+  if 'impersonation_enabled' in connector['options']:
+    impersonation_enabled = connector['options']['impersonation_enabled'] == 'true'
+  else:
+    impersonation_enabled = hiveserver2_impersonation_enabled()
+
   return {
       'dialect': connector['dialect'],
       'server_name': full_connector_name,
@@ -258,7 +270,7 @@ def get_query_server_config_via_connector(connector):
       'auth_username': AUTH_USERNAME.get(),
       'auth_password': AUTH_PASSWORD.get(),
 
-      'impersonation_enabled': hiveserver2_impersonation_enabled(),
+      'impersonation_enabled': impersonation_enabled,
       'use_sasl': connector['dialect'] in ('hive',),
       'SESSION_TIMEOUT_S': 15 * 60,
       'querycache_rows': 1000,

+ 1 - 0
apps/beeswax/src/beeswax/server/hive_server2_lib.py

@@ -682,6 +682,7 @@ class HiveServerClient(object):
         message = res.status.errorMessage
       else:
         message = ''
+
       raise QueryServerException(Exception('Bad status for request %s:\n%s' % (req, res)), message=message)
 
     sessionId = res.sessionHandle.sessionId

+ 0 - 1
apps/impala/src/impala/dbms.py

@@ -38,7 +38,6 @@ LOG = logging.getLogger(__name__)
 def get_query_server_config(connector=None):
   if connector and has_connectors():
     query_server = get_query_server_config_via_connector(connector)
-    query_server['impersonation_enabled'] = conf.IMPERSONATION_ENABLED.get()  # TODO Use impersonation_enabled property
   else:
     query_server = {
         'server_name': 'impala',