X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fclient%2Fsfi.py;h=aa13830e04e7e1654fa5504688094033262dcd99;hb=53cfd89c9fa5735ffd22b265d18e0dcf1d2cf106;hp=d3c320f954711c220cb000acc0ba3ac389e7e31d;hpb=f13173726f8382eef380f1e754f24dd2b126a77b;p=sfa.git diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index d3c320f9..aa13830e 100755 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -11,11 +11,11 @@ from optparse import OptionParser from sfa.trust.certificate import Keypair, Certificate from sfa.trust.credential import Credential -from sfa.trust.gid import create_uuid -from sfa.util.geniclient import GeniClient, ServerException +from sfa.util.geniclient import GeniClient from sfa.util.record import * from sfa.util.rspec import Rspec +from sfa.util.xmlrpcprotocol import ServerException # xxx todo xxx auto-load ~/.sfi/sfi_config @@ -91,8 +91,8 @@ def set_servers(options): cert_file = get_cert_file(key_file) # Establish connection to server(s) - slicemgr = GeniClient(sm_url, key_file, cert_file) - registry = GeniClient(reg_url, key_file, cert_file) + slicemgr = GeniClient(sm_url, key_file, cert_file, options.protocol) + registry = GeniClient(reg_url, key_file, cert_file, options.protocol) return # @@ -340,6 +340,9 @@ def create_parser(): parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help="verbose mode") + parser.add_option("-p", "--protocol", + dest="protocol", default="xmlrpc", + help="RPC protocol (xmlrpc or soap)") parser.disable_interspersed_args() return parser @@ -397,7 +400,11 @@ def main(): def list(opts, args): global registry user_cred = get_user_cred() - list = registry.list(user_cred, args[0]) + try: + list = registry.list(user_cred, args[0]) + except IndexError: + raise Exception, "Not enough parameters for the 'list' command" + # filter on person, slice, site, node, etc. # THis really should be in the filter_records funct def comment... list = filter_records(opts.type, list) @@ -582,8 +589,7 @@ def create(opts, args): slice_hrn = args[0] slice_cred = get_slice_cred(slice_hrn) rspec_file = get_rspec_file(args[1]) - with open(rspec_file) as f: - rspec = f.read() + rspec=open(rspec_file).read() return slicemgr.create_slice(slice_cred, slice_hrn, rspec) # delete named slice