Selaa lähdekoodia

HUE-8737 [optimizer] Convert queries to bytes if needed

Romain 5 vuotta sitten
vanhempi
commit
7a3d3a93d6

+ 3 - 1
desktop/libs/metadata/src/metadata/optimizer/optimizer_client.py

@@ -94,7 +94,9 @@ class OptimizerClient(object):
     self.user = user
     self._api_url = (api_url or get_optimizer_url()).strip('/')
     self._auth_key = auth_key if auth_key else OPTIMIZER.AUTH_KEY_ID.get()
-    self._auth_key_secret = auth_key_secret if auth_key_secret else (OPTIMIZER.AUTH_KEY_SECRET.get() and OPTIMIZER.AUTH_KEY_SECRET.get().replace('\\n', '\n'))
+    self._auth_key_secret = auth_key_secret if auth_key_secret else (
+        OPTIMIZER.AUTH_KEY_SECRET.get() and OPTIMIZER.AUTH_KEY_SECRET.get().replace('\\n', '\n')
+    )
 
     self._api = ApiLib("navopt", self._api_url, self._auth_key, self._auth_key_secret)
 

+ 4 - 1
desktop/libs/metadata/src/metadata/optimizer_api.py

@@ -346,7 +346,10 @@ def _convert_queries(queries_data):
     try:
       snippet = query_data['snippets'][0]
       if 'guid' in snippet['result']['handle']: # Not failed query
-        original_query_id = '%s:%s' % struct.unpack(b"QQ", base64.decodestring(snippet['result']['handle']['guid'])) # unpack_guid uses '%016x:%016x' while optmizer api uses '%s:%s'.
+        guid = snippet['result']['handle']['guid']
+        if isinstance(guid, str):
+          guid = guid.encode('utf-8')
+        original_query_id = '%s:%s' % struct.unpack(b"QQ", base64.decodestring(guid)) # unpack_guid uses '%016x:%016x' while optmizer api uses '%s:%s'.
         execution_time = snippet['result']['executionTime'] * 100 if snippet['status'] in ('available', 'expired') else -1
         statement = _clean_query(_get_statement(query_data))
         queries.append((original_query_id, execution_time, statement, snippet.get('database', 'default').strip()))