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