mirror of
https://github.com/OISF/suricata.git
synced 2026-05-28 04:32:12 -04:00
ctl/filestore: Add check for filestore directory
Up until now, suricatactl would delete any directory that is provided as an argument on command line. This patch adds a basic test for the directories `tmp`, `00` and `ff` in order to justify that the provided directory is actually a filestore directory. Additionally, some code has been broken up and made more readable and pythonic. Closes redmine ticket #2843
This commit is contained in:
parent
52187d8548
commit
ba6b73cd10
1 changed files with 19 additions and 9 deletions
|
|
@ -82,22 +82,32 @@ def remove_file(path, dry_run):
|
|||
return size
|
||||
|
||||
|
||||
def prune(args):
|
||||
def set_logger_level(args):
|
||||
if args.verbose:
|
||||
logger.setLevel(logging.DEBUG)
|
||||
if args.quiet:
|
||||
logger.setLevel(logging.WARNING)
|
||||
|
||||
if not args.directory:
|
||||
print(
|
||||
"error: the filestore directory must be provided with --directory",
|
||||
file=sys.stderr)
|
||||
return 1
|
||||
|
||||
if not args.age:
|
||||
print("error: no age provided, nothing to do", file=sys.stderr)
|
||||
return 1
|
||||
def perform_sanity_checks(args):
|
||||
set_logger_level(args)
|
||||
err_msg = {
|
||||
"directory": "filestore directory must be provided",
|
||||
"age": "no age provided, nothing to do",
|
||||
}
|
||||
for val, msg in err_msg.items():
|
||||
if not getattr(args, val):
|
||||
print("Error: {}".format(msg), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
required_dirs = ["tmp", "00", "ff"]
|
||||
for required_dir in required_dirs:
|
||||
if not os.path.exists(os.path.join(args.directory, required_dir)):
|
||||
logger.error("Provided directory is not a filestore directory")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def prune(args):
|
||||
perform_sanity_checks(args)
|
||||
age = parse_age(args.age)
|
||||
now = time.time()
|
||||
size = 0
|
||||
|
|
|
|||
Loading…
Reference in a new issue