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:])
 | 
