7ebaae5b585bd029d8e742432f3802e74aa12bfb
[sfa.git] / sfa / managers / eucalyptus / euca_rspec_validator.py
1 #!/usr/bin/env python
2
3 from __future__ import print_function
4
5 import sys
6 import os
7 from lxml import etree as ET
8
9 ##
10 # The location of the RelaxNG schema.
11 #
12 EUCALYPTUS_RSPEC_SCHEMA='eucalyptus.rng'
13
14 def main():
15     with open(sys.argv[1], 'r') as f:
16         xml = f.read()
17         schemaXML = ET.parse(EUCALYPTUS_RSPEC_SCHEMA)
18         rspecValidator = ET.RelaxNG(schemaXML)
19         rspecXML = ET.XML(xml)
20         if not rspecValidator(rspecXML):
21             error = rspecValidator.error_log.last_error
22             message = '%s (line %s)' % (error.message, error.line) 
23             print(message)
24         else:
25             print('It is valid')
26
27 if __name__ == "__main__":
28     main()
29