def acilint(): """ Main execution routine :return: None """ description = ('acilint - A static configuration analysis tool. ' 'Checks can be individually disabled by generating' ' and editing a configuration file. If no config ' 'file is given, all checks will be run.') creds = Credentials('apic', description) creds.add_argument('-c', '--configfile', type=argparse.FileType('r')) creds.add_argument('-g', '--generateconfigfile', type=argparse.FileType('w')) args = creds.get() if args.generateconfigfile: print 'Generating configuration file....' f = args.generateconfigfile f.write(('# acilint configuration file\n# Remove or comment out any ' 'warnings or errors that you no longer wish to see\n')) methods = dir(Checker) for method in methods: if method.startswith(('warning_', 'critical_', 'error_')): f.write(method + '\n') f.close() sys.exit(0) methods = [] if args.configfile: f = args.configfile for line in f: method = line.split('\n')[0] if method in dir(Checker) and method.startswith( ('warning_', 'error_', 'critical_')): methods.append(method) f.close() else: for method in dir(Checker): if method.startswith(('warning_', 'error_', 'critical_')): methods.append(method) if args.snapshotfiles: session = FakeSession(filenames=args.snapshotfiles) else: # Login to APIC session = Session(args.url, args.login, args.password) resp = session.login() if not resp.ok: print '%% Could not login to APIC' sys.exit(0) checker = Checker(session) checker.execute(methods)
def acilint(): """ Main execution routine :return: None """ description = ('acilint - A static configuration analysis tool. ' 'Checks can be individually disabled by generating' ' and editing a configuration file. If no config ' 'file is given, all checks will be run.') creds = Credentials('apic', description) creds.add_argument('-c', '--configfile', type=argparse.FileType('r')) creds.add_argument('-g', '--generateconfigfile', type=argparse.FileType('w')) args = creds.get() if args.generateconfigfile: print 'Generating configuration file....' f = args.generateconfigfile f.write(('# acilint configuration file\n# Remove or comment out any ' 'warnings or errors that you no longer wish to see\n')) methods = dir(Checker) for method in methods: if method.startswith(('warning_', 'critical_', 'error_')): f.write(method + '\n') f.close() sys.exit(0) methods = [] if args.configfile: f = args.configfile for line in f: method = line.split('\n')[0] if method in dir(Checker) and method.startswith(('warning_', 'error_', 'critical_')): methods.append(method) f.close() else: for method in dir(Checker): if method.startswith(('warning_', 'error_', 'critical_')): methods.append(method) if args.snapshotfiles: session = FakeSession(filenames=args.snapshotfiles) else: # Login to APIC session = Session(args.url, args.login, args.password) resp = session.login() if not resp.ok: print '%% Could not login to APIC' sys.exit(0) checker = Checker(session) checker.execute(methods)
def acilint(): """ Main execution routine :return: None """ description = ('acilint - A static configuration analysis tool. ' 'Checks can be individually disabled by generating' ' and editing a configuration file. If no config ' 'file is given, all checks will be run.') creds = Credentials('apic', description) creds.add_argument('-c', '--configfile', type=argparse.FileType('r')) creds.add_argument('-g', '--generateconfigfile', type=argparse.FileType('w')) creds.add_argument('-o', '--output', required=False, default='console') args = creds.get() if args.generateconfigfile: print('Generating configuration file....') f = args.generateconfigfile f.write(('# acilint configuration file\n# Remove or comment out any ' 'warnings or errors that you no longer wish to see\n')) methods = dir(Checker) for method in methods: if method.startswith(('warning_', 'critical_', 'error_')): f.write(method + '\n') f.close() sys.exit(0) methods = [] if args.configfile: f = args.configfile for line in f: method = line.split('\n')[0] if method in dir(Checker) and method.startswith(('warning_', 'error_', 'critical_')): methods.append(method) f.close() else: for method in dir(Checker): if method.startswith(('warning_', 'error_', 'critical_')): methods.append(method) if args.snapshotfiles: session = FakeSession(filenames=args.snapshotfiles) else: # Login to APIC session = Session(args.url, args.login, args.password) resp = session.login() if not resp.ok: print('%% Could not login to APIC') sys.exit(0) html = None if args.output == 'html': print('Creating file lint.html') html = open('lint.html', 'w') html.write(""" <table border="2" style="width:100%"> <tr> <th>Severity</th> <th>Rule</th> <th>Description</th> </tr> """) checker = Checker(session, args.output, html) checker.execute(methods)