Merge "Remove deprecated overcloud-resource-registry.yaml"
[apex-tripleo-heat-templates.git] / tools / yaml-validate.py
1 #!/usr/bin/env python
2 #    Licensed under the Apache License, Version 2.0 (the "License"); you may
3 #    not use this file except in compliance with the License. You may obtain
4 #    a copy of the License at
5 #
6 #         http://www.apache.org/licenses/LICENSE-2.0
7 #
8 #    Unless required by applicable law or agreed to in writing, software
9 #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11 #    License for the specific language governing permissions and limitations
12 #    under the License.
13
14 import os
15 import sys
16 import traceback
17 import yaml
18
19 base_path = sys.argv[1]
20 exit_val = 0
21 failed_files = []
22
23 def validate(filename):
24     try:
25         yaml.load(open(filename).read())
26     except Exception:
27         print(traceback.format_exc())
28         return 1
29     return 0
30
31 for subdir, dirs, files in os.walk(base_path):
32     for f in files:
33         if f.endswith('.yaml'):
34             file_path = os.path.join(subdir, f)
35             failed = validate(file_path)
36             if failed:
37                 failed_files.append(file_path)
38             exit_val |= failed
39
40 if failed_files:
41     print('Validation failed on:')
42     for f in failed_files:
43         print(f)
44 else:
45     print('Validation successful!')
46 sys.exit(exit_val)