Merge branch 'master' of ssh://bakers@git.planet-lab.org/git/sfa
[sfa.git] / sfa / rspecs / version_manager.py
index 2847479..caf2d23 100644 (file)
@@ -1,6 +1,6 @@
 import os
-from sfa.util.faults import InvalidRSpec
-from sfa.rspecs.rspec_version import BaseVersion 
+from sfa.util.faults import InvalidRSpec, InvalidRSpecVersion
+from sfa.rspecs.baseversion import BaseVersion 
 from sfa.util.sfalogging import logger    
 
 class VersionManager:
@@ -31,11 +31,12 @@ class VersionManager:
         retval = None
         for version in self.versions:
             if type is None or type.lower() == version.type.lower():
-                if version_num is None or version_num == version.version:
-                    if content_type is None or content_type.lower() == version.content_type.lower():
+                if version_num is None or str(version_num) == version.version:
+                    if content_type is None or content_type.lower() == version.content_type.lower() \
+                      or version.content_type == '*':
                         retval = version
         if not retval:
-            raise InvalidRSpec("No such version format: %s version: %s type:%s "% (type, version_num, content_type))
+            raise InvalidRSpecVersion("No such version format: %s version: %s type:%s "% (type, version_num, content_type))
         return retval
 
     def get_version(self, version=None):
@@ -54,9 +55,8 @@ class VersionManager:
                 content_type = version_parts[2]
             retval = self._get_version(type, version_num, content_type) 
         elif isinstance(version, BaseVersion):
-            return version
+            retval = version
         else:
-            logger.info("Unable to parse rspec version, using default")
             retval = self._get_version(self.default_type, self.default_version_num)   
  
         return retval