コード例 #1
0
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)')
コード例 #2
0
 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)
コード例 #3
0
    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)
コード例 #4
0
 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)
コード例 #5
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)
コード例 #6
0
 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)
コード例 #7
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)
コード例 #8
0
 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)
コード例 #9
0
 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)