b96a765b76dce31640a96915dff798316da9a1c6
[sfa.git] / sfa / rspecs / rspec_version.py
1 #!/usr/bin/python
2 from sfa.util.sfalogging import _SfaLogger
3
4 class RSpecVersion(dict):
5
6     fields = {'type': None,
7               'version': None,
8               'schema': None,
9               'namespace': None,
10               'extensions': []
11         }
12     def __init__(self, version={}):
13         
14         self.logger = _SfaLogger('/var/log/sfa.log')
15         dict.__init__(self, self.fields)
16
17         if not version:
18             from sfa.rspecs.sfa_rspec import sfa_rspec_version
19             self.update(sfa_rspec_version)          
20         elif isinstance(version, dict):
21             self.update(version)
22         elif isinstance(version, basestring):
23             version_parts = version.split(' ')
24             num_parts = len(version_parts)
25             self['type'] = version_parts[0]
26             if num_parts > 1:
27                 self['version'] = version_parts[1]
28         else:
29             logger.info("Unable to parse rspec version, using default")
30
31     def get_version_name(self):
32         return "%s %s" % (str(self['type']), str(self['version']))
33
34 if __name__ == '__main__':
35
36     from sfa.rspecs.pl_rspec_version import ad_rspec_versions
37     for version in [RSpecVersion(), 
38                     RSpecVersion("SFA"), 
39                     RSpecVersion("SFA 1"),
40                     RSpecVersion(ad_rspec_versions[0])]: 
41         print version.get_version_name() + ": " + str(version)
42