Example #1
0
def get_audit_logger():
  from desktop.conf import AUDIT_EVENT_LOG_DIR, AUDIT_LOG_MAX_FILE_SIZE

  audit_logger = logging.getLogger('audit')
  if not [hclass for hclass in audit_logger.handlers if isinstance(hclass, AuditHandler)]: # Don't add handler twice
    size, unit = int(AUDIT_LOG_MAX_FILE_SIZE.get()[:-2]), AUDIT_LOG_MAX_FILE_SIZE.get()[-2:]
    maxBytes = size * 1024 ** (1 if unit == 'KB' else 2 if unit == 'MB' else 3)

    audit_handler = AuditHandler(AUDIT_EVENT_LOG_DIR.get(), maxBytes=maxBytes, backupCount=50)
    audit_handler.setFormatter(MessageOnlyFormatter())
    audit_logger.addHandler(audit_handler)

  return audit_logger
Example #2
0
def get_audit_logger():
  from desktop.conf import AUDIT_EVENT_LOG_DIR, AUDIT_LOG_MAX_FILE_SIZE

  audit_logger = logging.getLogger('audit')
  if not filter(lambda hclass: isinstance(hclass, AuditHandler), audit_logger.handlers): # Don't add handler twice
    size, unit = int(AUDIT_LOG_MAX_FILE_SIZE.get()[:-2]), AUDIT_LOG_MAX_FILE_SIZE.get()[-2:]
    maxBytes = size * 1024 ** (1 if unit == 'KB' else 2 if unit == 'MB' else 3)

    audit_handler = AuditHandler(AUDIT_EVENT_LOG_DIR.get(), maxBytes=maxBytes, backupCount=50)
    audit_handler.setFormatter(MessageOnlyFormatter())
    audit_logger.addHandler(audit_handler)

  return audit_logger
Example #3
0
def test_one_audit():
  log_tmp = tempfile.NamedTemporaryFile("w+t")

  # KB
  reset = [
      AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp),
      AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25KB')
  ]

  audit_logger = get_audit_logger()
  audit_handler = audit_logger.handlers[0]

  assert_equal(25 * 1024 ** 1, audit_handler.maxBytes)
  assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers)
  assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers)

  audit_logger = get_audit_logger()
  assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice

  # Cleanup
  audit_logger.removeHandler(audit_handler)

  for r in reset:
    r()

  # MB
  reset = [
      AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp),
      AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25MB')
  ]

  audit_logger = get_audit_logger()
  audit_handler = audit_logger.handlers[0]

  assert_equal(25 * 1024 ** 2, audit_handler.maxBytes)
  assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers)
  assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers)

  audit_logger = get_audit_logger()
  assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice

  # Cleanup
  audit_logger.removeHandler(audit_handler)

  for r in reset:
    r()

  # GB
  reset = [
      AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp),
      AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25GB')
  ]

  audit_logger = get_audit_logger()
  audit_handler = audit_logger.handlers[0]

  assert_equal(25 * 1024 ** 3, audit_handler.maxBytes)
  assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers)
  assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers)

  audit_logger = get_audit_logger()
  assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice

  # Cleanup
  audit_logger.removeHandler(audit_handler)

  for r in reset:
    r()
Example #4
0
def test_one_audit():
  with tempfile.NamedTemporaryFile("w+t") as log_tmp:

    # KB
    reset = [
        AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name),
        AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25KB')
    ]

    audit_logger = get_audit_logger()
    audit_handler = audit_logger.handlers[0]

    assert_equal(25 * 1024 ** 1, audit_handler.maxBytes)
    assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers)
    assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers)

    audit_logger = get_audit_logger()
    assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice

    # Cleanup
    audit_logger.removeHandler(audit_handler)

    for r in reset:
      r()

    # MB
    reset = [
        AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name),
        AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25MB')
    ]

    audit_logger = get_audit_logger()
    audit_handler = audit_logger.handlers[0]

    assert_equal(25 * 1024 ** 2, audit_handler.maxBytes)
    assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers)
    assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers)

    audit_logger = get_audit_logger()
    assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice

    # Cleanup
    audit_logger.removeHandler(audit_handler)

    for r in reset:
      r()

    # GB
    reset = [
        AUDIT_EVENT_LOG_DIR.set_for_testing(log_tmp.name),
        AUDIT_LOG_MAX_FILE_SIZE.set_for_testing('25GB')
    ]

    audit_logger = get_audit_logger()
    audit_handler = audit_logger.handlers[0]

    assert_equal(25 * 1024 ** 3, audit_handler.maxBytes)
    assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers)
    assert_true(isinstance(audit_handler, AuditHandler), audit_logger.handlers)

    audit_logger = get_audit_logger()
    assert_equal(len(audit_logger.handlers), 1, audit_logger.handlers) # Not adding handler twice

    # Cleanup
    audit_logger.removeHandler(audit_handler)

    for r in reset:
      r()