Add simple parameter test to yaml-validate.py
authorSteven Hardy <shardy@redhat.com>
Tue, 12 Jan 2016 19:03:30 +0000 (19:03 +0000)
committerSteven Hardy <shardy@redhat.com>
Wed, 23 Mar 2016 15:35:28 +0000 (15:35 +0000)
Output a warning for parameters which look unused, this should help
developers clean up the template a bit, and eventually could maybe
be developed further into something we can use for gating.

Change-Id: Ide4fbe3c85854cbddee44801d39ae73003d63bb8

tools/yaml-validate.py

index fe690d8..2da873d 100755 (executable)
@@ -24,10 +24,19 @@ def exit_usage():
 def validate(filename):
     print('Validating %s' % filename)
     try:
-        yaml.load(open(filename).read())
+        tpl = yaml.load(open(filename).read())
     except Exception:
         print(traceback.format_exc())
         return 1
+    # yaml is OK, now walk the parameters and output a warning for unused ones
+    for p in tpl.get('parameters', {}):
+        str_p = '\'%s\'' % p
+        in_resources =  str_p in str(tpl.get('resources', {}))
+        in_outputs =  str_p in str(tpl.get('outputs', {}))
+        if not in_resources and not in_outputs:
+            print('Warning: parameter %s in template %s appears to be unused'
+                  % (p, filename))
+
     return 0
 
 if len(sys.argv) < 2: