47 lines
1.0 KiB
Python
47 lines
1.0 KiB
Python
import sys
|
|
import logging
|
|
import argparse
|
|
|
|
from ostack_validator.model_parser import ModelParser
|
|
from ostack_validator.inspection import MainConfigValidationInspection
|
|
|
|
|
|
def main(args):
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
'-d',
|
|
'--debug',
|
|
help='set debug log level',
|
|
action='store_true')
|
|
parser.add_argument('path', help='Path to config snapshot')
|
|
|
|
args = parser.parse_args(args)
|
|
|
|
if args.debug:
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
else:
|
|
logging.basicConfig(level=logging.WARN)
|
|
|
|
model_parser = ModelParser()
|
|
|
|
print('Analyzing configs in "%s"' % args.path)
|
|
|
|
model = model_parser.parse(args.path)
|
|
|
|
inspections = [MainConfigValidationInspection()]
|
|
|
|
issues = []
|
|
for inspection in inspections:
|
|
issues.extend(inspection.inspect(model))
|
|
|
|
if len(issues) == 0:
|
|
print('No issues found')
|
|
else:
|
|
print('Found issues:')
|
|
for issue in issues:
|
|
print(issue)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv[1:])
|