Browse Source

HUE-4358 [meta] Split metadata services into two

Search not showing up still in the editor.
Nav requires a URL + password to be activated.
Romain Rigaux 9 years ago
parent
commit
7e22dd8

+ 14 - 10
apps/metastore/src/metastore/static/metastore/js/metastore.ko.js

@@ -118,7 +118,7 @@
     };
   }
 
-  MetastoreDatabase.prototype.load = function (callback, optimizerEnabled) {
+  MetastoreDatabase.prototype.load = function (callback, optimizerEnabled, navigatorEnabled) {
     var self = this;
     if (self.loading()) {
       return;
@@ -137,12 +137,13 @@
             comment: tableMeta.comment,
             apiHelper: self.apiHelper,
             i18n: self.i18n,
-            optimizerEnabled: optimizerEnabled
+            optimizerEnabled: optimizerEnabled,
+            navigatorEnabled: navigatorEnabled
           })
         }));
         self.loaded(true);
         self.loading(false);
-        if (optimizerEnabled) {
+        if (optimizerEnabled && navigatorEnabled) {
           $.get('/metadata/api/navigator/find_entity', {
             type: 'database',
             name: self.name
@@ -343,6 +344,7 @@
     self.apiHelper = options.apiHelper;
     self.i18n = options.i18n;
     self.optimizerEnabled = options.optimizerEnabled;
+    self.navigatorEnabled = options.navigatorEnabled;
     self.name = options.name;
     self.type = options.type;
 
@@ -469,7 +471,7 @@
               self.partitions.loading(false);
               self.partitions.loaded(true);
             }
-            if (self.optimizerEnabled) {
+            if (self.navigatorEnabled) {
               $.get('/metadata/api/navigator/find_entity', {
                 type: 'table',
                 database: self.database.name,
@@ -484,7 +486,7 @@
               }).fail(function (xhr, textStatus, errorThrown) {
                 $(document).trigger("error", xhr.responseText);
               });
-
+            } else if (self.optimizerEnabled) {
               $.post('/metadata/api/optimizer_api/table_details', {
                 tableName: self.name
               }, function(data){
@@ -646,9 +648,10 @@
     self.isLeftPanelVisible = ko.observable();
     self.apiHelper.withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
     self.optimizerEnabled = ko.observable(options.optimizerEnabled || false);
+    self.navigatorEnabled = ko.observable(options.navigatorEnabled || false);
 
-    self.optimizerEnabled.subscribe(function (newValue) {
-      huePubSub.publish('meta.optimizer.enabled', newValue);
+    self.navigatorEnabled.subscribe(function (newValue) {
+      huePubSub.publish('meta.navigator.enabled', newValue);
     });
 
     self.optimizerUrl = ko.observable(options.optimizerUrl);
@@ -695,7 +698,8 @@
               name: name,
               apiHelper: self.apiHelper,
               i18n: self.i18n,
-              optimizerEnabled: self.optimizerEnabled
+              optimizerEnabled: self.optimizerEnabled,
+              navigatorEnabled: self.navigatorEnabled
             })
           }));
           self.loading(false);
@@ -748,7 +752,7 @@
               clearAll: false,
               databaseName: self.database().name
             });
-            self.database().load(setTableAfterLoad, self.optimizerEnabled());
+            self.database().load(setTableAfterLoad, self.optimizerEnabled(), self.navigatorEnabled());
           }
         };
 
@@ -873,7 +877,7 @@
     self.database(metastoreDatabase);
 
     if (!metastoreDatabase.loaded()) {
-      metastoreDatabase.load(callback, self.optimizerEnabled());
+      metastoreDatabase.load(callback, self.optimizerEnabled(), self.navigatorEnabled());
     } else if (callback) {
       callback();
     }

+ 8 - 1
apps/metastore/src/metastore/templates/components.mako

@@ -31,10 +31,17 @@
                 </a>
               </li>              
             </ul>
+            % if is_navigator_enabled:
+            <div class="pull-right">
+              <a class="pointer" data-bind="click: function() { navigatorEnabled(! navigatorEnabled()); }">
+                <i class="fa" data-bind="css: {'fa-toggle-off': ! navigatorEnabled(), 'fa-toggle-on': navigatorEnabled() }" style="margin-top:15px"></i> ${ _('Enhance Nav') }
+              </a>
+            </div>
+            % endif
             % if is_optimizer_enabled:
             <div class="pull-right">
               <a class="pointer" data-bind="click: function() { optimizerEnabled(! optimizerEnabled()); }">
-                <i class="fa" data-bind="css: {'fa-toggle-off': ! optimizerEnabled(), 'fa-toggle-on': optimizerEnabled() }" style="margin-top:15px"></i> ${ _('Enhance') }
+                <i class="fa" data-bind="css: {'fa-toggle-off': ! optimizerEnabled(), 'fa-toggle-on': optimizerEnabled() }" style="margin-top:15px"></i> ${ _('Enhance Opt') }
               </a>
             </div>
             % endif

+ 3 - 3
apps/metastore/src/metastore/templates/metastore.mako

@@ -402,7 +402,7 @@ ${ assist.assistPanel() }
         </div>
         <!-- /ko -->
 
-      <!-- ko if: $root.optimizerEnabled() && $root.database().navigatorStats() && $root.database().navigatorStats().tags -->
+      <!-- ko if: $root.navigatorEnabled() && $root.database().navigatorStats() && $root.database().navigatorStats().tags -->
         <!-- ko template: { name: 'metastore-databases-tags', data: $root.database() }--><!-- /ko -->
       <!-- /ko -->
       </div>
@@ -624,7 +624,7 @@ ${ assist.assistPanel() }
     <div class="span3 tile">
       <!-- ko template: 'metastore-table-stats' --><!-- /ko -->
     </div>
-    <!-- ko if: $root.optimizerEnabled() && navigatorStats() -->
+    <!-- ko if: $root.navigatorEnabled() && navigatorStats() -->
     <div class="span6 tile">
       <h4>${ _('Tagging') }</h4>
       <div title="${ _('Tags') }"><i class="fa fa-fw fa-tags muted"></i>
@@ -1238,6 +1238,7 @@ ${ assist.assistPanel() }
           errorLoadingTablePreview: '${ _('There was a problem loading the table preview. Please try again.') }'
         },
         optimizerEnabled: '${ is_optimizer_enabled }' === 'True',
+        navigatorEnabled: '${ is_navigator_enabled }' === 'True',
         optimizerUrl: '${ optimizer_url }',
         navigatorUrl: '${ navigator_url }'
       };
@@ -1303,7 +1304,6 @@ ${ assist.assistPanel() }
       });
 
       ko.applyBindings(viewModel);
-      viewModel.optimizerEnabled(false);
 
       if (location.getParameter('refresh') === 'true') {
         huePubSub.publish('assist.db.refresh', 'hive');

+ 4 - 1
apps/metastore/src/metastore/views.py

@@ -31,7 +31,7 @@ from desktop.lib.django_util import JsonResponse, render
 from desktop.lib.exceptions_renderable import PopupException
 from desktop.models import Document, Document2
 
-from metadata.conf import has_optimizer, get_optimizer_url, get_navigator_url
+from metadata.conf import has_optimizer, has_navigator, get_optimizer_url, get_navigator_url
 
 from beeswax.design import hql_query
 from beeswax.models import SavedQuery, MetaInstall
@@ -183,6 +183,7 @@ def show_tables(request, database=None):
     'partitions': [],
     'has_write_access': has_write_access(request.user),
     'is_optimizer_enabled': has_optimizer(),
+    'is_navigator_enabled': has_navigator(),
     'optimizer_url': get_optimizer_url(),
     'navigator_url': get_navigator_url(),
     })
@@ -257,6 +258,7 @@ def describe_table(request, database, table):
       'database': database,
       'has_write_access': has_write_access(request.user),
       'is_optimizer_enabled': has_optimizer(),
+      'is_navigator_enabled': has_navigator(),
       'optimizer_url': get_optimizer_url(),
       'navigator_url': get_navigator_url(),
     })
@@ -445,6 +447,7 @@ def describe_partitions(request, database, table):
         'request': request,
         'has_write_access': has_write_access(request.user),
         'is_optimizer_enabled': has_optimizer(),
+        'is_navigator_enabled': has_navigator(),
     })
 
 

+ 2 - 2
desktop/core/src/desktop/templates/assist.mako

@@ -791,7 +791,7 @@ from desktop.views import _ko
   </script>
 
   <script type="text/html" id="assist-panel-navigator-search">
-    % if is_optimizer_enabled:
+    % if is_navigator_enabled:
       <div class="searchbar">
         <input id="appendedInput" placeholder="${ _('Search everywhere...') }" type="text" data-bind="hasFocus: searchHasFocus, textinput: searchInput"><button class="btn btn-primary add-on" data-bind="enabled: !searchSubmitted(), click: function () { if (searchInput() !== '') { searchInput(''); searchHasFocus(false); } else { searchHasFocus(true); window.setTimeout(performSearch, 200); } }"><i class="fa" data-bind="css: { 'fa-search': searchInput() === '' && ! searchHasFocus(), 'fa-times' : searchInput() !== '' || searchHasFocus() }"></i></button>
       </div>
@@ -1184,7 +1184,7 @@ from desktop.views import _ko
 
         self.navigatorEnabled = ko.observable(true);
 
-        huePubSub.subscribe('meta.optimizer.enabled', function (newValue) {
+        huePubSub.subscribe('meta.navigator.enabled', function (newValue) {
           self.navigatorEnabled(newValue);
         });
 

+ 1 - 1
desktop/libs/metadata/src/metadata/conf.py

@@ -45,7 +45,7 @@ def get_navigator_url():
   return NAVIGATOR.API_URL.get() and NAVIGATOR.API_URL.get().strip('/')[:-3]
 
 def has_navigator():
-  return bool(get_navigator_url())
+  return bool(get_navigator_url() and NAVIGATOR.AUTH_PASSWORD.get())
 
 
 OPTIMIZER = ConfigSection(

+ 1 - 0
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -1852,6 +1852,7 @@
     self.isFullscreenMode = ko.observable(false);
     self.successUrl = ko.observable(options.success_url);
     self.isOptimizerEnabled = ko.observable(options.is_optimizer_enabled);
+    self.isNavigatorEnabled = ko.observable(options.is_navigator_enabled);
     self.canSave = ko.computed(function() {
       // Saved query or history but history coming from a saved query
       return self.selectedNotebook() && self.selectedNotebook().canWrite() && (

+ 1 - 1
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -2792,7 +2792,7 @@ ${ hueIcons.symbols() }
 
     window.redrawFixedHeaders = redrawFixedHeaders;
 
-    function addAce (content, snippetType) {
+    function addAce(content, snippetType) {
       var snip = viewModel.selectedNotebook().addSnippet({type: snippetType, result: {}}, true);
       snip.statement_raw(content);
       aceChecks++;

+ 3 - 1
desktop/libs/notebook/src/notebook/views.py

@@ -27,7 +27,7 @@ from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.json_utils import JSONEncoderForHTML
 from desktop.models import Document2, Document
 
-from metadata.conf import has_optimizer
+from metadata.conf import has_optimizer, has_navigator
 
 from notebook.conf import get_interpreters
 from notebook.connectors.base import Notebook, get_api
@@ -78,6 +78,7 @@ def notebook(request):
           'languages': get_interpreters(request.user),
           'session_properties': SparkApi.get_properties(),
           'is_optimizer_enabled': has_optimizer(),
+          'is_navigator_enabled': has_navigator(),
           'editor_type': 'notebook'
       }),
       'is_yarn_mode': is_yarn_mode,
@@ -100,6 +101,7 @@ def editor(request):
           'languages': [{"name": "%s SQL" % editor_type.title(), "type": editor_type}],
           'mode': 'editor',
           'is_optimizer_enabled': has_optimizer(),
+          'is_navigator_enabled': has_navigator(),
           'editor_type': editor_type
       })
   })