Browse Source

HUE-3286 [cluster] Automatically disable the non compatible app in an analytic db cluster

Romain Rigaux 8 năm trước cách đây
mục cha
commit
21f2e5b05a

+ 5 - 1
desktop/core/src/desktop/conf.py

@@ -1441,11 +1441,15 @@ def get_clusters():
       }) for i in cluster_config]
     )
   else:
-    clusters = OrderedDict([('Default', {'name': 'Default', 'type': 'ini', 'interfaces': []})])
+    if IS_EMBEDDED.get():
+      clusters = OrderedDict([('Default', {'name': 'Analytic DB', 'type': 'analyticdb', 'interfaces': []})])
+    else:
+      clusters = OrderedDict([('Default', {'name': 'Default', 'type': 'ini', 'interfaces': []})])
 
   if 'Data Eng' in clusters:
     clusters['Data Eng']['interfaces'].append({'name': 'Data Eng', 'type': 'dataeng', 'interface': 'c1'})
     clusters['Data Eng']['interfaces'].append({'name': 'Data Eng', 'type': 'dataeng', 'interface': 'c2'})
+
   return clusters
 
 

+ 5 - 3
desktop/core/src/desktop/models.py

@@ -47,7 +47,7 @@ from dashboard.conf import get_engines
 from notebook.conf import SHOW_NOTEBOOKS, get_ordered_interpreters
 
 from desktop import appmanager
-from desktop.conf import get_clusters
+from desktop.conf import get_clusters, IS_EMBEDDED
 from desktop.lib.i18n import force_unicode
 from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.paths import get_run_root
@@ -1840,7 +1840,7 @@ class ClusterConfig():
       }
     ]
 
-    if 'oozie' in self.apps and not (self.user.has_hue_permission(action="disable_editor_access", app="oozie") and not self.user.is_superuser) and self.cluster_type != 'impalaui':
+    if 'oozie' in self.apps and not (self.user.has_hue_permission(action="disable_editor_access", app="oozie") and not self.user.is_superuser) and self.cluster_type != ANALYTIC_DB:
       return {
           'name': 'oozie',
           'displayName': _('Scheduler'),
@@ -1884,7 +1884,9 @@ class Cluster():
     self.default_cluster = get_user_preferences(self.user, key=USER_PREFERENCE_CLUSTER)
     self.data = {}
 
-    if self.default_cluster:
+    if IS_EMBEDDED.get():
+      self.data = get_clusters()['Default']
+    elif self.default_cluster:
       clusters = get_clusters()
       cluster_name = json.loads(self.default_cluster[USER_PREFERENCE_CLUSTER]).get('name')
       self.data = cluster_name and clusters.get(cluster_name) and clusters[cluster_name] or None

+ 8 - 4
desktop/core/src/desktop/templates/hue.mako

@@ -287,15 +287,19 @@ ${ hueIcons.symbols() }
     <a class="pointer inactive-action pull-right" onclick="huePubSub.publish('hide.jobs.panel')"><i class="fa fa-fw fa-times"></i></a>
     <a class="pointer inactive-action pull-right" onclick="huePubSub.publish('mini.jb.expand'); huePubSub.publish('hide.jobs.panel')"><i class="fa fa-fw fa-expand" title="${ _('Open Job Browser') }"></i></a>
     <ul class="nav nav-pills">
+      % if cluster != ANALYTIC_DB:
       <li class="active" data-interface="jobs"><a href="javascript:void(0)" onclick="huePubSub.publish('mini.jb.navigate', 'jobs')">${_('Jobs')}</a></li>
+      % endif
       % if 'jobbrowser' in apps:
       <% from jobbrowser.conf import ENABLE_QUERY_BROWSER %>
       % if ENABLE_QUERY_BROWSER.get():
-        <li data-interface="queries"><a href="javascript:void(0)" onclick="huePubSub.publish('mini.jb.navigate', 'queries')">${_('Queries')}</a></li>
+        <li data-interface="queries" class="${ 'active' if cluster == ANALYTIC_DB else '' }"><a href="javascript:void(0)" onclick="huePubSub.publish('mini.jb.navigate', 'queries')">${_('Queries')}</a></li>
+      % endif
       % endif
+      % if cluster != ANALYTIC_DB:
+        <li data-interface="workflows"><a href="javascript:void(0)" onclick="huePubSub.publish('mini.jb.navigate', 'workflows')">${_('Workflows')}</a></li>
+        <li data-interface="schedules"><a href="javascript:void(0)" onclick="huePubSub.publish('mini.jb.navigate', 'schedules')">${_('Schedules')}</a></li>
       % endif
-      <li data-interface="workflows"><a href="javascript:void(0)" onclick="huePubSub.publish('mini.jb.navigate', 'workflows')">${_('Workflows')}</a></li>
-      <li data-interface="schedules"><a href="javascript:void(0)" onclick="huePubSub.publish('mini.jb.navigate', 'schedules')">${_('Schedules')}</a></li>
     </ul>
     <div id="mini_jobbrowser"></div>
   </div>
@@ -1381,7 +1385,7 @@ ${ smart_unicode(login_modal(request).content) | n,unicode }
                 }
               });
 
-              % if user.is_superuser:
+              % if user.is_superuser and cluster != ANALYTIC_DB:
                 if (app.name === 'editor') {
                   interpreters.push({
                     displayName: '${ _('Add more...') }',