X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fclient%2Fsfi.py;h=421ff10e6df53d821bf916a601abfd072f0d4d32;hb=cf630d87d633f3861e3ac8a50433fa29ca46a74e;hp=9ed3c84815d1f6a401b8238f4cf27806794a1bfd;hpb=99374374f38fb62e54a6c284eec6b06c1c53dff7;p=sfa.git diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index 9ed3c848..421ff10e 100755 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -4,6 +4,7 @@ import sys sys.path.append('.') + 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 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.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 -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.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 +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 @@ -417,15 +424,15 @@ class Sfi: if cache: version = cache.get(cache_key) - + 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) - return version @@ -912,7 +919,8 @@ class Sfi: 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: @@ -933,8 +941,9 @@ class Sfi: 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 @@ -972,10 +981,11 @@ class Sfi: call_args = [creds, options] result = server.ListResources(*call_args) + value = ReturnValue.get_value(result) if opts.file is None: - display_rspec(result, opts.format) + display_rspec(value, opts.format) else: - save_rspec_to_file(result, opts.file) + save_rspec_to_file(value, opts.file) 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) + value = ReturnValue.get_value(result) if opts.file is None: - print result + print value 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): @@ -1153,7 +1164,9 @@ class Sfi: 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): @@ -1170,9 +1183,10 @@ class Sfi: 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: - save_variable_to_file(result, opts.file, opts.fileformat) + save_variable_to_file(value, opts.file, opts.fileformat) def shutdown(self, opts, args):