Nitos: channels now have component_id (urn), which is used to address them into Lease...
[sfa.git] / sfa / rspecs / rspec_converter.py
1 #!/usr/bin/python
2
3 from sfa.rspecs.pg_rspec_converter import PGRSpecConverter
4 from sfa.rspecs.sfa_rspec_converter import SfaRSpecConverter
5 from sfa.rspecs.rspec import RSpec
6 from sfa.rspecs.version_manager import VersionManager
7
8 class RSpecConverter:
9
10     @staticmethod
11     def to_sfa_rspec(in_rspec, content_type=None):
12         rspec = RSpec(in_rspec)
13         version_manager = VersionManager()
14         sfa_version = version_manager._get_version('sfa', '1')
15         pg_version = version_manager._get_version('protogeni', '2')
16         if rspec.version.type.lower() == sfa_version.type.lower(): 
17           return in_rspec
18         elif rspec.version.type.lower() == pg_version.type.lower(): 
19             return PGRSpecConverter.to_sfa_rspec(in_rspec, content_type)
20         else:
21             return in_rspec 
22
23     @staticmethod 
24     def to_pg_rspec(in_rspec, content_type=None):
25         rspec = RSpec(in_rspec)
26         version_manager = VersionManager()
27         sfa_version = version_manager._get_version('sfa', '1')
28         pg_version = version_manager._get_version('protogeni', '2')
29
30         if rspec.version.type.lower() == pg_version.type.lower(): 
31             return in_rspec
32         elif rspec.version.type.lower() == sfa_version.type.lower(): 
33             return SfaRSpecConverter.to_pg_rspec(in_rspec, content_type)
34         else:
35             return in_rspec 
36
37
38 if __name__ == '__main__':
39     pg_rspec = 'test/protogeni.rspec'
40     sfa_rspec = 'test/nodes.rspec'  
41
42     print "converting pg rspec to sfa rspec"
43     print RSpecConverter.to_sfa_rspec(pg_rspec)
44     
45     print "converting sfa rspec to pg rspec"
46     print RSpecConverter.to_pg_rspec(sfa_rspec)