def main(): logging_setup() args = cli.parse_args() # TODO better log configuration (e.g. file-based logging) if args.verbose: coloredlogs.install(level="DEBUG") else: coloredlogs.install(level="INFO") # TODO validate if args combination makes any sense validator = Validator() if cli.check_args(args): if args.api: # TODO start validator in service mode print("Validator started as an API in IP: {} and port {}".format( args.service_address, args.service_port)) rest.serve_forever(args) pass else: # run validator in CLI mode validator = Validator() result_validator = cli.dispatch(args, validator) if result_validator.error_count > 0: exit(1) # exit with error code exit(0) else: print('Invalid arguments. Please check the help (-h)')
def test_cli_validation_service_topology_ko_bad_parameters(self): validator = Validator() input_args = ['--topology', '--service', SAMPLE_DIR + 'samples/services/valid-son/valid.yml'] args = cli.parse_args(input_args) print("Test arguments: {}".format(args)) check_args = cli.check_args(args) self.assertFalse(check_args)
def test_cli_validation_function_custom_ko_not_cfile(self): validator = Validator() input_args = ['--custom', '--function', SAMPLE_DIR + 'samples/functions/valid-son/firewall-vnfd.yml'] args = cli.parse_args(input_args) print("Test arguments: {}".format(args)) check_args = cli.check_args(args) self.assertFalse(check_args)
def test_cli_validation_service_syntax_ok(self): validator = Validator() input_args = ['--syntax', '--service', SAMPLE_DIR + 'samples/services/valid-son/valid.yml'] args = cli.parse_args(input_args) print("Test arguments: {}".format(args)) check_args = cli.check_args(args) self.assertTrue(check_args) result_validator = cli.dispatch(args, validator) self.assertEqual(result_validator.error_count, 0)
def test_cli_validation_function_syntax_ko_bad_syntax(self): validator = Validator() input_args = ['--syntax', '--function', SAMPLE_DIR + 'samples/functions/invalid-syntax-tng/' + 'invalid-firewall-vnfd-tng.yml'] args = cli.parse_args(input_args) print("Test arguments: {}".format(args)) check_args = cli.check_args(args) self.assertTrue(check_args) result_validator = cli.dispatch(args, validator) self.assertEqual(result_validator.error_count, 1)
def test_cli_validation_function_topology_ok_dext(self): validator = Validator() input_args = ['--topology', '--function', SAMPLE_DIR + 'samples/functions/valid-son/', '--dext', 'yml'] args = cli.parse_args(input_args) print("Test arguments: {}".format(args)) check_args = cli.check_args(args) self.assertTrue(check_args) result_validator = cli.dispatch(args, validator) self.assertEqual(result_validator.error_count, 0)
def test_cli_validation_function_integrity_ko(self): validator = Validator() input_args = ['--integrity', '--function', SAMPLE_DIR + 'samples/functions/invalid_integrity-son/' + 'firewall-vnfd.yml'] args = cli.parse_args(input_args) print("Test arguments: {}".format(args)) check_args = cli.check_args(args) self.assertTrue(check_args) result_validator = cli.dispatch(args, validator) self.assertEqual(result_validator.error_count, 1)
def test_cli_validation_service_syntax_nonexistent_descriptor(self): validator = Validator() input_args = ['--syntax', '--service', SAMPLE_DIR + 'samples/services/invalid-syntax-tng/' + 'unexpected_field.yml'] args = cli.parse_args(input_args) print("Test arguments: {}".format(args)) check_args = cli.check_args(args) self.assertTrue(check_args) result_validator = cli.dispatch(args, validator) self.assertEqual(result_validator.error_count, 1)
def test_cli_validation_function_custom_ko(self): validator = Validator() input_args = ['--custom', '--cfile', SAMPLE_DIR + 'samples/custom_rules/rules/' + 'custom_rule_1.yml', '--function', SAMPLE_DIR + 'samples/custom_rules/functions/' + 'invalid/function_1_ko.yml'] args = cli.parse_args(input_args) print("Test arguments: {}".format(args)) check_args = cli.check_args(args) self.assertTrue(check_args) result_validator = cli.dispatch(args, validator) self.assertEqual(len(result_validator.customErrors), 4)