Package report/repo parser integration
- parser able to filter package versions using keywords
- warning message on missing tag
- on the fly versions lookup (excluding '*.hotfix')
- updated versions compare routine
- lexical compare uses numbers, not ordinal values
- updated release version detection
- final report lists pkg section/app if no description given
- final report shows repo info for detected release version
Fixes:
- shorter alternate entrpoints: mcp-pkg, mcp-net, cmp-reclass
- flake8 syntax
- proper mirantis/non-mirantis versions getting
- exit on unexpected arguments
- salt-master class now gets linux codename by default and architecture
Change-Id: I0a2daadca8a1acaecafc8680226dc00d20cc24ce
Related-PROD: PROD-28199
diff --git a/cfg_checker/cli/command.py b/cfg_checker/cli/command.py
index e6d9cd9..8e715f2 100644
--- a/cfg_checker/cli/command.py
+++ b/cfg_checker/cli/command.py
@@ -33,10 +33,11 @@
def execute_command(args, command):
# Validate the commands
# check command
+ _type = args.type.replace("-", "_") if "-" in args.type else args.type
if command not in commands:
logger_cli.info("\n# Please, type a command listed above")
return 0
- elif args.type not in commands[command]:
+ elif _type not in commands[command]:
# check type
logger_cli.info(
"\n# Please, select '{}' command type listed above".format(
@@ -46,7 +47,7 @@
return 0
else:
# form function name to call
- _method_name = "do_" + args.type
+ _method_name = "do_" + _type
_target_module = __import__(
mods_prefix + command,
fromlist=[""]
@@ -79,11 +80,19 @@
# parse arguments
try:
- args = my_parser.parse_args()
+ args, unknown = my_parser.parse_known_args()
except TypeError:
logger_cli.info("\n# Please, check arguments")
sys.exit(0)
+ if unknown:
+ logger_cli.error(
+ "# Unexpected arguments: {}".format(
+ ", ".join(["'{}'".format(a) for a in unknown])
+ )
+ )
+ sys.exit(1)
+
# force use of sudo
config.ssh_uses_sudo = True