diff options
author | Daniil Baturin <daniil@baturin.org> | 2019-08-14 13:25:10 -0400 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2019-08-14 13:25:10 -0400 |
commit | 589952faadcf7700702b24390c1d654706f3a857 (patch) | |
tree | b3d486d0b0bc9e08d706d16d852bcae60b504dc0 /src/validators | |
parent | 4e781d4dec184308ac844a4c2ff7dcfc7832cc77 (diff) | |
parent | 8d1e768a6f3285ed717f588f356db9340871b043 (diff) | |
download | vyos-1x-589952faadcf7700702b24390c1d654706f3a857.tar.gz vyos-1x-589952faadcf7700702b24390c1d654706f3a857.zip |
Merge branch 'current' into equuleus
Diffstat (limited to 'src/validators')
-rwxr-xr-x | src/validators/cidr | 3 | ||||
-rwxr-xr-x | src/validators/file-exists | 62 | ||||
-rwxr-xr-x | src/validators/ip-cidr | 3 |
3 files changed, 65 insertions, 3 deletions
diff --git a/src/validators/cidr b/src/validators/cidr deleted file mode 100755 index 815aa8ba1..000000000 --- a/src/validators/cidr +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -ipaddrcheck --is-any-cidr $1 diff --git a/src/validators/file-exists b/src/validators/file-exists new file mode 100755 index 000000000..e179805ed --- /dev/null +++ b/src/validators/file-exists @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2019 VyOS maintainers and contributors +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 or later as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# Description: +# Check if a given file exists on the system. Used for files that +# are referenced from the CLI and need to be preserved during an image upgrade. +# Warn the user if these aren't under /config + +import os +import sys +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument("-d", "--directory", type=str, help="File must be present in this directory.") +parser.add_argument("-e", "--error", action="store_true", help="Tread warnings as errors - change exit code to '1'") +parser.add_argument("file", type=str, help="Path of file to validate") + +args = parser.parse_args() + +msg_prefix = "WARNING: " +if args.error: + msg_prefix = "ERROR: " + +# +# Always check if the given file exists +# +if not os.path.exists(args.file): + print(msg_prefix + "File '{}' not found".format(args.file)) + if args.error: + sys.exit(1) + else: + sys.exit(0) + +# +# Optional check if the file is under a certain directory path +# +if args.directory: + # remove directory path from path to verify + rel_filename = args.file.replace(args.directory, '').lstrip('/') + + if not os.path.exists(args.directory + '/' + rel_filename): + print(msg_prefix + "'{}' lies outside of '{}' directory.\n" \ + "It will not get preserved during image upgrade!".format(args.file, args.directory)) + if args.error: + sys.exit(1) + else: + sys.exit(0) + +sys.exit(0) diff --git a/src/validators/ip-cidr b/src/validators/ip-cidr new file mode 100755 index 000000000..987bf84ca --- /dev/null +++ b/src/validators/ip-cidr @@ -0,0 +1,3 @@ +#!/bin/sh + +ipaddrcheck --is-any-cidr $1 |