From: Jason Ish Date: Tue, 30 Oct 2018 19:35:16 +0000 (-0600) Subject: Show error on failure to create output directory. X-Git-Tag: 1.0.0~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0047cfb4bd29d1449af104a214f860ef87aabfad;p=thirdparty%2Fsuricata-update.git Show error on failure to create output directory. Previously: Output directory does not exist and could not be created: /var/lib/suricata/rules Now: Failed to create directory /var/lib/suricata/rules: [Errno 13] Permission denied: '/var/lib/suricata --- diff --git a/suricata/update/main.py b/suricata/update/main.py index bb435b6..d9b3728 100644 --- a/suricata/update/main.py +++ b/suricata/update/main.py @@ -997,6 +997,17 @@ def copytree_ignore_backup(src, names): """ Returns files to ignore when doing a backup of the rules. """ return [".cache"] +def check_output_directory(output_dir): + """ Check that the output directory exists, creating it if it doesn't. """ + if not os.path.exists(output_dir): + logger.info("Creating directory %s." % (output_dir)) + try: + os.makedirs(output_dir, mode=0o770) + except Exception as err: + raise exceptions.ApplicationError( + "Failed to create directory %s: %s" % ( + output_dir, err)) + def _main(): global args @@ -1362,15 +1373,8 @@ def _main(): # Fixup flowbits. resolve_flowbits(rulemap, disabled_rules) - # Check that output directory exists. - if not os.path.exists(config.get_output_dir()): - try: - os.makedirs(config.get_output_dir(), mode=0o770) - except Exception as err: - logger.error( - "Output directory does not exist and could not be created: %s", - config.get_output_dir()) - return 1 + # Check that output directory exists, creating it if needed. + check_output_directory(config.get_output_dir()) # Check that output directory is writable. if not os.access(config.get_output_dir(), os.W_OK):