update how RSpecVersion is used
[sfa.git] / sfa / rspecs / rspec_parser.py
1 #!/usr/bin/python
2 from sfa.rspecs.sfa_rspec import SfaRSpec
3 from sfa.rspecs.pg_rspec import PGRSpec
4 from sfa.rspecs.rspec import RSpec
5 from lxml import etree 
6
7 def parse_rspec(in_rspec):
8     rspec = RSpec(rspec=in_rspec)
9     # really simple check
10     # TODO: check against schema instead
11     out_rspec = None 
12     if rspec.xml.xpath('//network'):
13         #out_rspec = SfaRSpec(in_rspec)
14         out_rspec = SfaRSpec()
15         out_rspec.xml = rspec.xml
16     else:
17         #out_rspec = PGRSpec(in_rspec)
18         out_rspec = PGRSpec()
19         out_rspec.xml = rspec.xml
20     return out_rspec
21
22 if __name__ == '__main__':
23     
24     print "Parsing SFA RSpec:", 
25     rspec = parse_rspec('nodes.rspec')
26     print rspec.version
27     rspec = parse_rspec('protogeni.rspec')
28     print "Parsing ProtoGENI RSpec:", 
29     print rspec.version
30     
31     
32