Przeglądaj źródła

[sentry] Cleanup and remove autocomplete for now

Romain Rigaux 11 lat temu
rodzic
commit
b5fb623

+ 44 - 116
apps/beeswax/src/beeswax/templates/execute.mako

@@ -935,12 +935,9 @@ ${layout.menubar(section='query')}
 <script type="text/javascript" charset="utf-8">
 var codeMirror, renderNavigator, resetNavigator, resizeNavigator, dataTable, renderRecent;
 
-var HIVE_AUTOCOMPLETE_BASE_URL = "${ hive_autocomplete_base_url | n,unicode }";
+var HIVE_AUTOCOMPLETE_BASE_URL = "${ autocomplete_base_url | n,unicode }";
 var HIVE_AUTOCOMPLETE_FAILS_QUIETLY_ON = [500]; // error codes from beeswax/views.py - autocomplete
 var HIVE_AUTOCOMPLETE_USER = "${ user }";
-var SENTRY_AUTOCOMPLETE_BASE_URL = "${ sentry_autocomplete_base_url | n,unicode }";
-var SENTRY_AUTOCOMPLETE_FAILS_QUIETLY_ON = [500]; // error codes from beeswax/views.py - autocomplete
-var SENTRY_AUTOCOMPLETE_USER = "${ user }";
 
 var HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK = function (data) {
   if (data != null && data.error) {
@@ -1390,129 +1387,60 @@ $(document).ready(function () {
     }
     $(".CodeMirror-spinner").css("top", pos.top + "px").css("left", (pos.left - 4) + "px").show();
 
-    var _statementAtCursor = getStatementAtCursor();
-    if (_statementAtCursor.statement.toUpperCase().indexOf("GRANT") != -1 || _statementAtCursor.statement.toUpperCase().indexOf("REVOKE") != -1) {
-      // Not a SELECT/INSERT statement
-      CodeMirror.possibleSoloField = false;
-      CodeMirror.possibleRole = false;
-      CodeMirror.possibleObject = false;
-      CodeMirror.possiblePrivilege = false;
-      CodeMirror.tableMagic = false;
-      CodeMirror.roleMagic = false;
-      CodeMirror.objectMagic = false;
-
-      var _start = _statementAtCursor.statement.toUpperCase().indexOf("ROLE");
-      if ( _start != -1 && _start < 10 ) {
-        // GRANT/REVOKE ROLE
-        sac_getRoles(function (roles) {
-          CodeMirror.roles = Object.keys(roles).join(" ");
-          var _stop = _statementAtCursor.statement.indexOf("TO GROUP");
-          if (_stop == -1) {
-            _stop = _statementAtCursor.statement.indexOf("FROM GROUP");
-          }
-          // Make sure cursor is before "TO GROUP", which naturally follows the ROLES list
-          if (_stop == -1 || _statementAtCursor.relativeIndex <= _stop) {
-            CodeMirror.possibleRole = true;
-            CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
-          } else {
-            CodeMirror.possibleRole = false;
-            CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
-          }
-        });
-      } else {
-        // GRANT/REVOKE privileges
-        var _stop = _statementAtCursor.statement.indexOf("ON");
-        if (_stop == -1 || _statementAtCursor.relativeIndex <= _stop) {
-          // Choosing privilege
-          CodeMirror.possiblePrivilege = true;
-          CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
-        } else {
-          // Choosing object or role
-          _stop = _statementAtCursor.statement.indexOf("TO");
-          if (_stop == -1) {
-            _stop = _statementAtCursor.statement.indexOf("FROM");
-          }
-
-          if (_stop == -1 || _statementAtCursor.relativeIndex <= _stop) {
-            // Choose object
-            CodeMirror.possibleObject = true;
-            CodeMirror.objectMagic = true;
-            hac_getTables(viewModel.database(), function (tables) {
-              CodeMirror.catalogTables = tables;
-              CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
-            });
-          } else {
-            // Choose role
-            sac_getRoles(function (roles) {
-              CodeMirror.roles = Object.keys(roles).join(" ");
-              CodeMirror.possibleRole = true;
-              CodeMirror.roleMagic = true;
+    if ($.totalStorage(hac_getTotalStorageUserPrefix() + 'tables_' + viewModel.database()) == null) {
+      CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
+      hac_getTables(viewModel.database(), function () {
+      }); // if preload didn't work, tries again
+    }
+    else {
+      hac_getTables(viewModel.database(), function (tables) {
+        CodeMirror.catalogTables = tables;
+        var _statementAtCursor = getStatementAtCursor();
+        var _before = _statementAtCursor.statement.substr(0, _statementAtCursor.relativeIndex).replace(/;+$/, "");
+        var _after = _statementAtCursor.statement.substr(_statementAtCursor.relativeIndex).replace(/;+$/, "");
+        if ($.trim(_before).substr(-1) == ".") {
+          var _statement = _statementAtCursor.statement;
+          var _line = codeMirror.getLine(codeMirror.getCursor().line);
+          var _partial = _line.substring(0, codeMirror.getCursor().ch);
+          var _table = _partial.substring(_partial.lastIndexOf(" ") + 1, _partial.length - 1);
+          if (_statement.indexOf("FROM") > -1) {
+            hac_getTableColumns(viewModel.database(), _table, _statement, function (columns) {
+              var _cols = columns.split(" ");
+              for (var col in _cols) {
+                _cols[col] = "." + _cols[col];
+              }
+              CodeMirror.catalogFields = _cols.join(" ");
               CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
             });
           }
-
-          CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
         }
-      }
-    } else {
-      // Not a GRANT/REVOKE statement
-      CodeMirror.possibleRole = false;
-      CodeMirror.possiblePrivilege = false;
-
-      if ($.totalStorage(hac_getTotalStorageUserPrefix() + 'tables_' + viewModel.database()) == null) {
-        CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
-        hac_getTables(viewModel.database(), function () {
-        }); // if preload didn't work, tries again
-      } else {
-        hac_getTables(viewModel.database(), function (tables) {
-          CodeMirror.catalogTables = tables;
-          var _statementAtCursor = getStatementAtCursor();
-          var _before = _statementAtCursor.statement.substr(0, _statementAtCursor.relativeIndex).replace(/;+$/, "");
-          var _after = _statementAtCursor.statement.substr(_statementAtCursor.relativeIndex).replace(/;+$/, "");
-          if ($.trim(_before).substr(-1) == ".") {
-            var _statement = _statementAtCursor.statement;
-            var _line = codeMirror.getLine(codeMirror.getCursor().line);
-            var _partial = _line.substring(0, codeMirror.getCursor().ch);
-            var _table = _partial.substring(_partial.lastIndexOf(" ") + 1, _partial.length - 1);
-            if (_statement.indexOf("FROM") > -1) {
-              hac_getTableColumns(viewModel.database(), _table, _statement, function (columns) {
-                var _cols = columns.split(" ");
-                for (var col in _cols) {
-                  _cols[col] = "." + _cols[col];
-                }
-                CodeMirror.catalogFields = _cols.join(" ");
-                CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
-              });
+        else {
+          CodeMirror.possibleTable = false;
+          CodeMirror.tableFieldMagic = false;
+          if ((_before.toUpperCase().indexOf(" FROM ") > -1 || _before.toUpperCase().indexOf(" TABLE ") > -1 || _before.toUpperCase().indexOf(" STATS ") > -1) && _before.toUpperCase().indexOf(" ON ") == -1 && _before.toUpperCase().indexOf(" ORDER BY ") == -1 && _before.toUpperCase().indexOf(" WHERE ") == -1 ||
+              _before.toUpperCase().indexOf("REFRESH") > -1 || _before.toUpperCase().indexOf("METADATA") > -1 || _before.toUpperCase().indexOf("DESCRIBE") > -1) {
+            CodeMirror.possibleTable = true;
+          }
+          CodeMirror.possibleSoloField = false;
+          if (_before.toUpperCase().indexOf("SELECT ") > -1 && _before.toUpperCase().indexOf(" FROM ") == -1 && !CodeMirror.fromDot) {
+            if (_after.toUpperCase().indexOf("FROM ") > -1 || $.trim(_before).substr(-1) == "(") {
+              fieldsAutocomplete(cm);
+            }
+            else {
+              CodeMirror.tableFieldMagic = true;
+              CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
             }
           }
           else {
-            CodeMirror.possibleTable = false;
-            CodeMirror.tableFieldMagic = false;
-            if ((_before.toUpperCase().indexOf(" FROM ") > -1 || _before.toUpperCase().indexOf(" TABLE ") > -1 || _before.toUpperCase().indexOf(" STATS ") > -1) && _before.toUpperCase().indexOf(" ON ") == -1 && _before.toUpperCase().indexOf(" ORDER BY ") == -1 && _before.toUpperCase().indexOf(" WHERE ") == -1 ||
-                _before.toUpperCase().indexOf("REFRESH") > -1 || _before.toUpperCase().indexOf("METADATA") > -1 || _before.toUpperCase().indexOf("DESCRIBE") > -1) {
-              CodeMirror.possibleTable = true;
-            }
-            CodeMirror.possibleSoloField = false;
-            if (_before.toUpperCase().indexOf("SELECT ") > -1 && _before.toUpperCase().indexOf(" FROM ") == -1 && !CodeMirror.fromDot) {
-              if (_after.toUpperCase().indexOf("FROM ") > -1 || $.trim(_before).substr(-1) == "(") {
-                fieldsAutocomplete(cm);
-              }
-              else {
-                CodeMirror.tableFieldMagic = true;
-                CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
-              }
+            if ((_before.toUpperCase().indexOf("WHERE ") > -1 || _before.toUpperCase().indexOf("ORDER BY ") > -1) && !CodeMirror.fromDot && _before.toUpperCase().match(/ ON| LIMIT| GROUP| SORT/) == null) {
+              fieldsAutocomplete(cm);
             }
             else {
-              if ((_before.toUpperCase().indexOf("WHERE ") > -1 || _before.toUpperCase().indexOf("ORDER BY ") > -1) && !CodeMirror.fromDot && _before.toUpperCase().match(/ ON| LIMIT| GROUP| SORT/) == null) {
-                fieldsAutocomplete(cm);
-              }
-              else {
-                CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
-              }
+              CodeMirror.showHint(cm, AUTOCOMPLETE_SET);
             }
           }
-        });
-      }
+        }
+      });
     }
   }
 

+ 0 - 6
apps/beeswax/src/beeswax/urls.py

@@ -74,9 +74,3 @@ urlpatterns += patterns(
 
   url(r'^api/table/(?P<database>\w+)/(?P<table>\w+)$', 'describe_table', name='describe_table'),
 )
-
-urlpatterns += patterns(
-  'libsentry.views',
-
-  url(r'^api/sentry/autocomplete/roles$', 'roles', name='api_sentry_roles')
-)

+ 1 - 2
apps/beeswax/src/beeswax/views.py

@@ -405,8 +405,7 @@ def execute_query(request, design_id=None, query_history_id=None):
     'design': design,
     'query': query_history, # Backward
     'query_history': query_history,
-    'hive_autocomplete_base_url': reverse(get_app_name(request) + ':api_autocomplete_databases', kwargs={}),
-    'sentry_autocomplete_base_url': ('/%s/api/sentry/autocomplete' % get_app_name(request)),
+    'autocomplete_base_url': reverse(get_app_name(request) + ':api_autocomplete_databases', kwargs={}),
     'can_edit_name': design and design.id and not design.is_auto,
     'can_edit': design and design.id and design.doc.get().can_write(request.user),
     'action': action,

+ 1 - 91
apps/beeswax/static/js/autocomplete.utils.js

@@ -14,9 +14,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-
-// Hive
-
 function hac_jsoncalls(options) {
   if (typeof HIVE_AUTOCOMPLETE_BASE_URL != "undefined") {
     if (options.database == null) {
@@ -231,91 +228,4 @@ function hac_errorHandler(data) {
       $(document).trigger('error', data.error);
     }
   }
-}
-
-
-// Sentry
-
-function sac_getTotalStorageUserPrefix(){
-  if (typeof SENTRY_AUTOCOMPLETE_USER != "undefined") {
-    return SENTRY_AUTOCOMPLETE_USER + "_";
-  }
-  return "";
-}
-
-function sac_jsoncalls(options) {
-  if (typeof SENTRY_AUTOCOMPLETE_BASE_URL != "undefined") {
-    $.getJSON(SENTRY_AUTOCOMPLETE_BASE_URL + '/roles', options.onDataReceived);
-  }
-  else {
-    try {
-      console.error("You need to specify a SENTRY_AUTOCOMPLETE_BASE_URL to use the autocomplete");
-    }
-    catch (e) {
-    }
-  }
-}
-
-function sac_hasExpired(timestamp){
-  var TIME_TO_LIVE_IN_MILLIS = 600000; // 10 minutes
-  return (new Date()).getTime() - timestamp > TIME_TO_LIVE_IN_MILLIS;
-}
-
-function sac_errorHandler(data) {
-  $(document).trigger('error.autocomplete');
-  if (typeof SENTRY_AUTOCOMPLETE_FAILS_QUIETLY_ON == "undefined" || data.code == null || SENTRY_AUTOCOMPLETE_FAILS_QUIETLY_ON.indexOf(data.code) == -1){
-    if (typeof SENTRY_AUTOCOMPLETE_FAILS_QUIETLY_ON != "undefined" && SENTRY_AUTOCOMPLETE_FAILS_QUIETLY_ON.indexOf(data.code) > -1){
-      $(document).trigger('info', data.error);
-    }
-    else {
-      $(document).trigger('error', data.error);
-    }
-  }
-}
-
-function sac_getRoles(callback) {
-  var key = sac_getTotalStorageUserPrefix() + 'roles';
-  var timestamp_key = sac_getTotalStorageUserPrefix() + 'timestamp_roles';
-
-  if ($.totalStorage(key) != null) {
-    if ($.totalStorage(timestamp_key) == null || sac_hasExpired($.totalStorage(timestamp_key))){
-      sac_jsoncalls({
-        onDataReceived: function (data) {
-          if (typeof SENTRY_AUTOCOMPLETE_GLOBAL_CALLBACK == "function") {
-            SENTRY_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
-          }
-          if (data.error) {
-            sac_errorHandler(data);
-          }
-          else {
-            if (data.roles) {
-              $.totalStorage(key, JSON.stringify(data.roles));
-              $.totalStorage(timestamp_key, (new Date()).getTime());
-              callback($.parseJSON($.totalStorage(key)));
-            }
-          }
-        }
-      });
-    } else {
-      callback($.parseJSON($.totalStorage(key)));
-    }
-  } else {
-    console.log('here4');
-    sac_jsoncalls({
-      onDataReceived: function (data) {
-        if (typeof SENTRY_AUTOCOMPLETE_GLOBAL_CALLBACK == "function") {
-          SENTRY_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
-        }
-        if (data.error) {
-          sac_errorHandler(data);
-        } else {
-          if (data.roles) {
-            $.totalStorage(key, JSON.stringify(data.roles));
-            $.totalStorage(timestamp_key, (new Date()).getTime());
-            callback($.parseJSON($.totalStorage(key)));
-          }
-        }
-      }
-    });
-  }
-}
+}

+ 0 - 1
desktop/Makefile

@@ -49,7 +49,6 @@ APPS := core \
 	libs/libsolr \
 	libs/libsentry \
 	libs/indexer
->>>>>>> [sentry] Add sentry client and API
 
 .PHONY: default
 default:: hue syncdb

+ 7 - 55
desktop/core/static/js/codemirror-hql-hint.js

@@ -58,14 +58,9 @@
 
   CodeMirror.catalogTables = "";
   CodeMirror.catalogFields = "";
-  CodeMirror.roles = "";
   CodeMirror.possibleTable = false;
   CodeMirror.possibleSoloField = false;
-  CodeMirror.possibleRole = false;
-  CodeMirror.possibleObject = false;
   CodeMirror.tableFieldMagic = false;
-  CodeMirror.roleMagic = false;
-  CodeMirror.objectMagic = false;
 
   CodeMirror.hiveQLHint = function (editor) {
     return scriptHint(editor, hiveQLKeywordsU, function (e, cur) {
@@ -89,26 +84,9 @@
   var hiveQLBuiltinsU = hiveQLBuiltins.split(" ").join("() ").split(" ");
   var hiveQLBuiltinsL = hiveQLBuiltins.toLowerCase().split(" ").join("() ").split(" ");
 
-  var hiveQLGrantables = "ROLE";
-  var hiveQLGrantablesU = hiveQLGrantables.split(" ");
-  var hiveQLGrantablesL = hiveQLGrantables.toLowerCase().split(" ");
-
-  var hiveQLGrantablePrivileges = "ROLE SELECT INSERT ALL";
-  var hiveQLGrantablePrivilegesU = hiveQLGrantablePrivileges.split(" ");
-  var hiveQLGrantablePrivilegesL = hiveQLGrantablePrivileges.toLowerCase().split(" ");
-
-  var hiveQLKeywordsAfterGrants = "TO GROUP FROM ON";
-  var hiveQLKeywordsAfterGrantsU = hiveQLKeywordsAfterGrants.split(" ");
-  var hiveQLKeywordsAfterGrantsL = hiveQLKeywordsAfterGrants.toLowerCase().split(" ");
-
-  var hiveQLKeywordsAfterPrivileges = "DATABASE TABLE FROM TO";
-  var hiveQLKeywordsAfterPrivilegesU = hiveQLKeywordsAfterPrivileges.split(" ");
-  var hiveQLKeywordsAfterPrivilegesL = hiveQLKeywordsAfterPrivileges.toLowerCase().split(" ");
-
   function getCompletions(token, context) {
     var catalogTablesL = CodeMirror.catalogTables.toLowerCase().split(" ");
     var catalogFieldsL = CodeMirror.catalogFields.toLowerCase().split(" ");
-    var rolesL = CodeMirror.roles.split(" ");
 
     var found = [], start = token.string, extraFound = [];
 
@@ -129,39 +107,7 @@
         forEach(catalogFieldsL, maybeAdd);
       }
       else {
-        if (CodeMirror.possibleRole) {
-          if (CodeMirror.roleMagic) {
-            var _specialRoleTablesL = CodeMirror.roles.toLowerCase().split(" ");
-            for (var i = 0; i < _specialRoleTablesL.length; i++) {
-              _specialRoleTablesL[i] = "<i class='fa fa-magic'></i> ROLE " + _specialRoleTablesL[i];
-            }
-            forEach(_specialRoleTablesL, maybeAddToExtra);
-          }
-          forEach(rolesL, maybeAddToExtra);
-          forEach(hiveQLKeywordsAfterGrantsU, maybeAdd);
-          forEach(hiveQLKeywordsAfterGrantsL, maybeAdd);
-        } else if (CodeMirror.possiblePrivilege) {
-          forEach(hiveQLGrantablesL, maybeAdd);
-          forEach(hiveQLGrantablesU, maybeAdd);
-          forEach(hiveQLGrantablePrivilegesL, maybeAddToExtra);
-          forEach(hiveQLGrantablePrivilegesU, maybeAddToExtra);
-          forEach(hiveQLKeywordsAfterGrantsL, maybeAdd);
-          forEach(hiveQLKeywordsAfterGrantsU, maybeAdd);
-        } else if (CodeMirror.possibleObject) {
-          if (CodeMirror.objectMagic) {
-            var _specialCatalogTablesL = CodeMirror.catalogTables.toLowerCase().split(" ");
-            for (var i = 0; i < _specialCatalogTablesL.length; i++) {
-              _specialCatalogTablesL[i] = "<i class='fa fa-magic'></i> TABLE " + _specialCatalogTablesL[i];
-            }
-            forEach(_specialCatalogTablesL, maybeAddToExtra);
-          }
-          forEach(hiveQLKeywordsAfterPrivilegesL, maybeAddToExtra);
-          forEach(hiveQLKeywordsAfterPrivilegesU, maybeAddToExtra);
-        } else if (CodeMirror.possibleTable) {
-          forEach(catalogTablesL, maybeAddToExtra);
-          forEach(hiveQLKeywordsAfterTablesU, maybeAdd);
-          forEach(hiveQLKeywordsAfterTablesL, maybeAdd);
-        } else {
+        if (!CodeMirror.possibleTable) {
           if (CodeMirror.tableFieldMagic) {
             var _specialCatalogTablesL = CodeMirror.catalogTables.toLowerCase().split(" ");
             for (var i = 0; i < _specialCatalogTablesL.length; i++) {
@@ -178,6 +124,12 @@
           forEach(hiveQLTypesL, maybeAdd);
           forEach(hiveQLKeywordsU, maybeAdd);
           forEach(hiveQLKeywordsL, maybeAdd);
+
+        }
+        else {
+          forEach(catalogTablesL, maybeAddToExtra);
+          forEach(hiveQLKeywordsAfterTablesU, maybeAdd);
+          forEach(hiveQLKeywordsAfterTablesL, maybeAdd);
         }
       }
     }