Преглед на файлове

[logs] Remove obsolete log view code and related tests (#4081)

Harsh Gupta преди 8 месеца
родител
ревизия
f33cf6b3a4

+ 0 - 17
apps/oozie/src/oozie/tests.py

@@ -3339,23 +3339,6 @@ my_prop_not_filtered=10
     finally:
       finish()
 
-  def test_httppool(self):
-    # With http pool the http connection is reused and so new connection count is 0
-    superuser_client = make_logged_in_client(is_superuser=True)
-    start_log = "--START HTTP POOL TEST--"
-    LOG.warning(start_log)
-    superuser_client.get(reverse('oozie:list_oozie_workflows'))
-    superuser_client.get(reverse('oozie:list_oozie_workflows') + "?format=json")
-    superuser_client.get(reverse('oozie:list_oozie_workflows') + "?format=json&status=RUNNING&status=PREP&status=SUSPENDED")
-    superuser_client.get(reverse('oozie:list_oozie_workflows') + "?format=json&status=KILLED&status=FAILED")
-    end_log = "--END HTTP POOL TEST--"
-    LOG.warning(end_log)
-    response = superuser_client.get(reverse(views.log_view))
-
-    s1 = response._container[0].index(start_log)
-    e1 = response._container[0].index(end_log)
-    c1 = response._container[0][e1:s1].count('Starting new HTTP')
-    assert c1 == 0
 
 class TestDashboard(OozieMockBase):
 

+ 0 - 6
apps/useradmin/src/useradmin/test_ldap.py

@@ -604,12 +604,6 @@ class TestUserAdminLdap(BaseUserAdminTests):
           password1='test', password2='test', dn=True)
         )
       assert b"Could not get LDAP details for users in pattern" in response.content, response.content
-      # Removing this test because we are not running log listener
-      # response = c.get(reverse(desktop.views.log_view))
-      # whitespaces_message = "{username}: Username must not contain whitespaces".format(username='user with space')
-      # if not isinstance(whitespaces_message, bytes):
-      #  whitespaces_message = whitespaces_message.encode('utf-8')
-      # assert_true(whitespaces_message in response.content, response.content)
 
       # Test dn with spaces in dn, but not username (should succeed)
       response = c.post(

+ 0 - 7
apps/useradmin/src/useradmin/test_ldap_deprecated.py

@@ -517,13 +517,6 @@ class TestUserAdminLdapDeprecated(BaseUserAdminTests):
       )
       assert b"Could not get LDAP details for users in pattern" in response.content, response
 
-      # Removing this test because we are not running log listener
-      # response = c.get(reverse(desktop.views.log_view))
-      # whitespaces_message = "{username}: Username must not contain whitespaces".format(username='user with space')
-      # if not isinstance(whitespaces_message, bytes):
-      #  whitespaces_message = whitespaces_message.encode('utf-8')
-      # assert_true(whitespaces_message in response.content, response.content)
-
       # Test dn with spaces in dn, but not username (should succeed)
       response = c.post(
         URL, dict(username_pattern='uid=user without space,ou=People,dc=example,dc=com', password1='test', password2='test', dn=True)

+ 0 - 39
desktop/core/src/desktop/tests.py

@@ -195,45 +195,6 @@ def test_prometheus_view():
       assert metric in response.content, 'metric: %s \n %s' % (metric, response.content)
 
 
-@pytest.mark.django_db
-def test_log_view():
-  c = make_logged_in_client()
-
-  URL = reverse(views.log_view)
-
-  LOG = logging.getLogger()
-  LOG.warning('une voix m’a réveillé')
-
-  # UnicodeDecodeError: 'ascii' codec can't decode byte... should not happen
-  response = c.get(URL)
-  assert 200 == response.status_code
-
-  c = make_logged_in_client()
-
-  URL = reverse(views.log_view)
-
-  LOG = logging.getLogger()
-  LOG.warning('Got response: PK\x03\x04\n\x00\x00\x08\x00\x00\xad\x0cN?\x00\x00\x00\x00')
-
-  # DjangoUnicodeDecodeError: 'utf8' codec can't decode byte 0xad in position 75: invalid start byte... should not happen
-  response = c.get(URL)
-  assert 200 == response.status_code
-
-
-def test_download_log_view():
-  pytest.skip("Skipping Test")
-  c = make_logged_in_client()
-
-  URL = reverse(views.download_log_view)
-
-  LOG = logging.getLogger()
-  LOG.warning('une voix m’a réveillé')
-
-  # UnicodeDecodeError: 'ascii' codec can't decode byte... should not happen
-  response = c.get(URL)
-  assert "application/zip" == response.get('Content-Type', '')
-
-
 def hue_version():
   global HUE_VERSION
   HUE_VERSION_BAK = HUE_VERSION

+ 2 - 1
desktop/core/src/desktop/urls.py

@@ -73,12 +73,13 @@ else:
   ]
 
 dynamic_patterns += [
+  # Mount the new server logs component
   re_path(r'^logs$', desktop_views.log_view, name="desktop.views.log_view"),
+
   re_path(r'^task_server$', desktop_views.task_server_view, name='desktop.views.task_server_view'),
   re_path(r'^desktop/log_analytics$', desktop_views.log_analytics),
   re_path(r'^desktop/log_js_error$', desktop_views.log_js_error),
   re_path(r'^desktop/dump_config$', desktop_views.dump_config, name="desktop.views.dump_config"),
-  re_path(r'^desktop/download_logs$', desktop_views.download_log_view),
   re_path(r'^desktop/get_debug_level', desktop_views.get_debug_level),
   re_path(r'^desktop/set_all_debug', desktop_views.set_all_debug),
   re_path(r'^desktop/reset_all_debug', desktop_views.reset_all_debug),

+ 1 - 114
desktop/core/src/desktop/views.py

@@ -238,54 +238,8 @@ def log_analytics(request):
   return JsonResponse({'status': 0})
 
 
-@hue_admin_required
-@access_log_level(logging.WARN)
 def log_view(request):
-  """
-  We have a log handler that retains the last X characters of log messages.
-  If it is attached to the root logger, this view will display that history,
-  otherwise it will report that it can't be found.
-  """
-  hostname = socket.gethostname()
-  BUF_SIZE = 32 * 1024
-
-  buffer = []
-  log_dir = os.getenv("DESKTOP_LOG_DIR", DEFAULT_LOG_DIR)
-  log_file = "%s/rungunicornserver.log" % (log_dir)
-  prev_log_file = "%s/rungunicornserver.log.1" % (log_dir)
-
-  if log_dir and os.path.exists(log_file):
-    log_file_size = os.path.getsize(log_file)
-
-    # log file might get rotated or fresh start of server
-    if log_file_size < BUF_SIZE:
-      # search the previous file
-      if os.path.exists(prev_log_file):
-        prev_log_file_size = os.path.getsize(prev_log_file)
-        with open(prev_log_file, 'rb') as fh1:
-          fh1.seek(prev_log_file_size - BUF_SIZE - log_file_size)
-          for line in fh1.readlines():
-            buffer.append(line)
-      # read the current log file
-      with open(log_file, 'rb') as fh:
-        fh.seek(0)
-        for line in fh.readlines():
-          buffer.append(line)
-    else:
-      with open(log_file, 'rb') as fh:
-        fh.seek(log_file_size - BUF_SIZE)
-        for line in fh.readlines():
-          buffer.append(line)
-    return render('logs.mako', request, dict(
-        log=buffer,
-        query=request.GET.get("q", ""),
-        hostname=hostname, is_embeddable=request.GET.get('is_embeddable', False)
-      )
-    )
-  return render('logs.mako', request, dict(
-      log=[_("No logs found!")], query='', hostname=hostname, is_embeddable=request.GET.get('is_embeddable', False)
-    )
-  )
+  return render('logs.mako', request, None)
 
 
 def task_server_view(request):
@@ -302,73 +256,6 @@ def task_server_view(request):
   })
 
 
-@hue_admin_required
-@access_log_level(logging.WARN)
-def download_log_view(request):
-  """
-  Zip up the log buffer and then return as a file attachment.
-  """
-  # Download 1MB log
-  BUF_SIZE = 1024 * 1024
-
-  buffer = []
-  log_dir = os.getenv("DESKTOP_LOG_DIR", DEFAULT_LOG_DIR)
-  log_file = "%s/rungunicornserver.log" % (log_dir)
-  prev_log_file = "%s/rungunicornserver.log.1" % (log_dir)
-
-  if log_dir and os.path.exists(log_file):
-    log_file_size = os.path.getsize(log_file)
-
-    # log file might get rotated or fresh start of server
-    if log_file_size < BUF_SIZE:
-      # search the previous file
-      if os.path.exists(prev_log_file):
-        prev_log_file_size = os.path.getsize(prev_log_file)
-        with open(prev_log_file, 'rb') as fh1:
-          fh1.seek(prev_log_file_size - BUF_SIZE - log_file_size)
-          for line in fh1.readlines():
-            buffer.append(line)
-      # read the current log file
-      with open(log_file, 'rb') as fh:
-        fh.seek(0)
-        for line in fh.readlines():
-          buffer.append(line)
-    else:
-      with open(log_file, 'rb') as fh:
-        fh.seek(log_file_size - BUF_SIZE)
-        for line in fh.readlines():
-          buffer.append(line)
-    try:
-      # We want to avoid doing a '\n'.join of the entire log in memory
-      # in case it is rather big. So we write it to a file line by line
-      # and pass that file to zipfile, which might follow a more efficient path.
-      tmp = tempfile.NamedTemporaryFile()
-      log_tmp = tempfile.NamedTemporaryFile("w+t", encoding='utf-8')
-      for line in buffer:
-        log_tmp.write(smart_str(line, errors='replace'))
-      # This is not just for show - w/out flush, we often get truncated logs
-      log_tmp.flush()
-      t = time.time()
-
-      zip = zipfile.ZipFile(tmp, "w", zipfile.ZIP_DEFLATED)
-      zip.write(log_tmp.name, "hue-logs/hue-%s.log" % t)
-      zip.close()
-      length = tmp.tell()
-
-      # if we don't seek to start of file, no bytes will be written
-      tmp.seek(0)
-      wrapper = FileWrapper(tmp)
-      response = HttpResponse(wrapper, content_type="application/zip")
-      response['Content-Disposition'] = 'attachment; filename=hue-logs-%s.zip' % t
-      response['Content-Length'] = length
-      return response
-    except Exception:
-      LOG.exception("Couldn't construct zip file to write logs")
-      return log_view(request)
-
-  return django_render(request, "logs.mako", dict(log=[_("No logs found.")], is_embeddable=request.GET.get('is_embeddable', False)))
-
-
 def bootstrap(request):
   """Concatenates bootstrap.js files from all installed Hue apps."""