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
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
#
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
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)
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