group db-related stuff in sfa/storage
[sfa.git] / sfa / client / sfi.py
index 9ed3c84..421ff10 100755 (executable)
@@ -4,6 +4,7 @@
 
 import sys
 sys.path.append('.')
 
 import sys
 sys.path.append('.')
+
 import os, os.path
 import tempfile
 import socket
 import os, os.path
 import tempfile
 import socket
@@ -13,22 +14,28 @@ import pickle
 from lxml import etree
 from StringIO import StringIO
 from optparse import OptionParser
 from lxml import etree
 from StringIO import StringIO
 from optparse import OptionParser
-from sfa.client.client_helper import pg_users_arg, sfa_users_arg
-from sfa.util.sfalogging import sfi_logger
+
 from sfa.trust.certificate import Keypair, Certificate
 from sfa.trust.gid import GID
 from sfa.trust.credential import Credential
 from sfa.trust.sfaticket import SfaTicket
 from sfa.trust.certificate import Keypair, Certificate
 from sfa.trust.gid import GID
 from sfa.trust.credential import Credential
 from sfa.trust.sfaticket import SfaTicket
-from sfa.util.record import SfaRecord, UserRecord, SliceRecord, NodeRecord, AuthorityRecord
-from sfa.rspecs.rspec import RSpec
-from sfa.rspecs.rspec_converter import RSpecConverter
+
+from sfa.util.sfalogging import sfi_logger
 from sfa.util.xrn import get_leaf, get_authority, hrn_to_urn
 from sfa.util.xrn import get_leaf, get_authority, hrn_to_urn
-import sfa.client.xmlrpcprotocol as xmlrpcprotocol
 from sfa.util.config import Config
 from sfa.util.version import version_core
 from sfa.util.cache import Cache
 from sfa.util.config import Config
 from sfa.util.version import version_core
 from sfa.util.cache import Cache
+
+from sfa.storage.record import SfaRecord, UserRecord, SliceRecord, NodeRecord, AuthorityRecord
+
+from sfa.rspecs.rspec import RSpec
+from sfa.rspecs.rspec_converter import RSpecConverter
 from sfa.rspecs.version_manager import VersionManager
 
 from sfa.rspecs.version_manager import VersionManager
 
+import sfa.client.xmlrpcprotocol as xmlrpcprotocol
+from sfa.client.return_value import ReturnValue
+from sfa.client.client_helper import pg_users_arg, sfa_users_arg
+
 AGGREGATE_PORT=12346
 CM_PORT=12346
 
 AGGREGATE_PORT=12346
 CM_PORT=12346
 
@@ -417,15 +424,15 @@ class Sfi:
 
         if cache:
             version = cache.get(cache_key)
 
         if cache:
             version = cache.get(cache_key)
-            
+
         if not version: 
         if not version: 
-            version = server.GetVersion()
+            result = server.GetVersion()
+            version= ReturnValue.get_value(result)
             # cache version for 24 hours
             cache.add(cache_key, version, ttl= 60*60*24)
             self.logger.info("Updating cache file %s" % cache_file)
             cache.save_to_file(cache_file)
 
             # cache version for 24 hours
             cache.add(cache_key, version, ttl= 60*60*24)
             self.logger.info("Updating cache file %s" % cache_file)
             cache.save_to_file(cache_file)
 
-
         return version   
         
 
         return version   
         
 
@@ -912,7 +919,8 @@ class Sfi:
                 server=self.registry
             else:
                 server = self.server_proxy_from_opts(opts)
                 server=self.registry
             else:
                 server = self.server_proxy_from_opts(opts)
-            version=server.GetVersion()
+            result = server.GetVersion()
+            version = ReturnValue.get_value(result)
         for (k,v) in version.iteritems():
             print "%-20s: %s"%(k,v)
         if opts.file:
         for (k,v) in version.iteritems():
             print "%-20s: %s"%(k,v)
         if opts.file:
@@ -933,8 +941,9 @@ class Sfi:
         if self.server_supports_options_arg(server):
             options = {'call_id': unique_call_id()}
             call_args.append(options)
         if self.server_supports_options_arg(server):
             options = {'call_id': unique_call_id()}
             call_args.append(options)
-        results = server.ListSlices(*call_args)
-        display_list(results)
+        result = server.ListSlices(*call_args)
+        value = ReturnValue.get_value(result)
+        display_list(value)
         return
     
     # show rspec for named slice
         return
     
     # show rspec for named slice
@@ -972,10 +981,11 @@ class Sfi:
 
         call_args = [creds, options]
         result = server.ListResources(*call_args)
 
         call_args = [creds, options]
         result = server.ListResources(*call_args)
+        value = ReturnValue.get_value(result)
         if opts.file is None:
         if opts.file is None:
-            display_rspec(result, opts.format)
+            display_rspec(value, opts.format)
         else:
         else:
-            save_rspec_to_file(result, opts.file)
+            save_rspec_to_file(value, opts.file)
         return
 
     # created named slice with given rspec
         return
 
     # created named slice with given rspec
@@ -1027,11 +1037,12 @@ class Sfi:
             options = {'call_id': unique_call_id()}
             call_args.append(options)
         result = server.CreateSliver(*call_args)
             options = {'call_id': unique_call_id()}
             call_args.append(options)
         result = server.CreateSliver(*call_args)
+        value = ReturnValue.get_value(result)
         if opts.file is None:
         if opts.file is None:
-            print result
+            print value
         else:
         else:
-            save_rspec_to_file (result, opts.file)
-        return result
+            save_rspec_to_file (value, opts.file)
+        return value
 
     # get a ticket for the specified slice
     def get_ticket(self, opts, args):
 
     # get a ticket for the specified slice
     def get_ticket(self, opts, args):
@@ -1153,7 +1164,9 @@ class Sfi:
         if self.server_supports_options_arg(server):
             options = {'call_id': unique_call_id()}
             call_args.append(options)
         if self.server_supports_options_arg(server):
             options = {'call_id': unique_call_id()}
             call_args.append(options)
-        return server.RenewSliver(*call_args)
+        result =  server.RenewSliver(*call_args)
+        value = ReturnValue.get_value(result)
+        return value
 
 
     def status(self, opts, args):
 
 
     def status(self, opts, args):
@@ -1170,9 +1183,10 @@ class Sfi:
             options = {'call_id': unique_call_id()}
             call_args.append(options)
         result = server.SliverStatus(*call_args)
             options = {'call_id': unique_call_id()}
             call_args.append(options)
         result = server.SliverStatus(*call_args)
-        print result
+        value = ReturnValue.get_value(result)
+        print value
         if opts.file:
         if opts.file:
-            save_variable_to_file(result, opts.file, opts.fileformat)
+            save_variable_to_file(value, opts.file, opts.fileformat)
 
 
     def shutdown(self, opts, args):
 
 
     def shutdown(self, opts, args):