use sfa.client.return_value.ReturnValue to parse aggregate return values
[sfa.git] / sfa / server / sfaapi.py
index 845ccff..faf62af 100644 (file)
@@ -1,7 +1,7 @@
 import os, os.path
 import datetime
 
-from sfa.util.faults import SfaAPIError
+from sfa.util.faults import SfaFault, SfaAPIError
 from sfa.util.config import Config
 from sfa.util.cache import Cache
 from sfa.trust.auth import Auth
@@ -10,6 +10,7 @@ from sfa.trust.credential import Credential
 from sfa.trust.rights import determine_rights
 from sfa.server.xmlrpcapi import XmlrpcApi
 from sfa.util.genicode import GENICODE
+from sfa.client.return_value import ReturnValue
 
 # thgen xxx fixme this is wrong all right, but temporary, will use generic
 from sfa.util.table import SfaTable
@@ -201,7 +202,8 @@ class SfaApi (XmlrpcApi):
         if self.cache:
             server_version = self.cache.get(cache_key)
         if not server_version:
-            server_version = server.GetVersion()
+            result = server.GetVersion()
+            server_version = ReturnValue.get_value(result)
             # cache version for 24 hours
             self.cache.add(cache_key, server_version, ttl= 60*60*24)
         return server_version
@@ -213,7 +215,7 @@ class SfaApi (XmlrpcApi):
             'am_type': 'sfa',
             'am_code': None,
         }
-        if isinstnace(result, SfaFault):
+        if isinstance(result, SfaFault):
             code['geni_code'] = result.faultCode
             code['am_code'] = result.faultCode                        
                 
@@ -227,7 +229,7 @@ class SfaApi (XmlrpcApi):
 
     def get_geni_output(self, result):
         output = ""
-        if isinstance(result, SFaFault):
+        if isinstance(result, SfaFault):
             output = result.faultString 
         return output
 
@@ -246,7 +248,7 @@ class SfaApi (XmlrpcApi):
         """
         if self.interface.lower() == 'aggregate': 
             if hasattr(self.config, 'SFA_AGGREGATE_API_VERSION') and \
-              self.config.SFA_AGGREGATE_API_VERSION == "2":
+              self.config.SFA_AGGREGATE_API_VERSION == 2:
                 result = self.prepare_response_v2_am(result)
         return XmlrpcApi.prepare_response(self, result, method)