فهرست منبع

HUE-5690 [metadata] Need to filter data to the current Hue cluster only

Romain Rigaux 8 سال پیش
والد
کامیت
c530a1d
2فایلهای تغییر یافته به همراه14 افزوده شده و 0 حذف شده
  1. 5 0
      desktop/libs/metadata/src/metadata/metadata_sites.py
  2. 9 0
      desktop/libs/metadata/src/metadata/navigator_client.py

+ 5 - 0
desktop/libs/metadata/src/metadata/metadata_sites.py

@@ -28,6 +28,7 @@ _SITE_DICT = None
 _CONF_NAVIGATOR_SERVER_URL = 'navigator.server.url'
 _CONF_NAVIGATOR_AUDIT_LOG_DIR = 'audit_event_log_dir'
 _CONF_NAVIGATOR_AUDIT_MAX_FILE_SIZE = 'navigator.audit_log_max_file_size'
+_CONF_NAVIGATOR_HUE_SERVER_NAME = 'navigator.client.clusterName'
 
 
 def reset():
@@ -57,6 +58,10 @@ def get_navigator_audit_max_file_size():
   return '%sMB' % size.strip() if size else "100MB"
 
 
+def get_navigator_hue_server_name():
+  return get_conf().get(_CONF_NAVIGATOR_HUE_SERVER_NAME, '')
+
+
 def _parse_sites():
   from metadata.conf import NAVIGATOR
 

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

@@ -30,6 +30,7 @@ from libsentry.privilege_checker import PrivilegeChecker
 from libsentry.sentry_site import get_hive_sentry_provider
 
 from metadata.conf import NAVIGATOR
+from metadata.metadata_sites import get_navigator_hue_server_name
 
 
 _JSON_CONTENT_TYPE = 'application/json'
@@ -131,6 +132,8 @@ class NavigatorApi(object):
       filter_query = '%s AND (%s) AND (%s)' % (filter_query, user_filter_clause, source_filter_clause)
       if source_type_filter:
         filter_query += ' AND (%s)' % 'OR '.join(source_type_filter)
+      if get_navigator_hue_server_name():
+        filter_query += 'AND clusterName:%s' % get_navigator_hue_server_name()
 
       params += (
         ('query', filter_query),
@@ -193,6 +196,9 @@ class NavigatorApi(object):
       if fq_type:
         filterQueries += ['{!tag=type} %s' % ' OR '.join(['type:%s' % fq for fq in fq_type])]
 
+      if get_navigator_hue_server_name():
+        filterQueries.append('clusterName:%s' % get_navigator_hue_server_name())
+
       body['facetFields'] = facetFields or [] # Currently mandatory in API
       if facetPrefix:
         body['facetPrefix'] = facetPrefix
@@ -255,6 +261,9 @@ class NavigatorApi(object):
         'originalName': name,
         'deleted': 'false'
       }
+      if get_navigator_hue_server_name():
+        query_filters['clusterName'] = get_navigator_hue_server_name()
+
       for key, value in filters.items():
         query_filters[key] = value