initial checkin of new rspec version implementation
[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.type = 'SFA'
16         out_rspec.xml = rspec.xml
17     else:
18         #out_rspec = PGRSpec(in_rspec)
19         # TODO: determine if this is an ad or request
20         out_rspec = PGRSpec()
21         out_rspec.type = 'ProtoGENI'
22         out_rspec.xml = rspec.xml
23     return out_rspec
24
25 if __name__ == '__main__':
26     
27     print "Parsing SFA RSpec:", 
28     rspec = parse_rspec('nodes.rspec')
29     print rspec.version
30     rspec = parse_rspec('protogeni.rspec')
31     print "Parsing ProtoGENI RSpec:", 
32     print rspec.version
33     
34     
35