"GetVersion": "name",
"ListResources": "name",
"CreateSliver": "name",
- "get_geni_aggregates": "name"
+ "get_geni_aggregates": "name",
+ "DeleteSliver": "name",
+ "SliverStatus": "name",
+ "RenewSliver": "name",
+ "Shutdown": "name"
}
if additional_cmdargs:
parser.add_option("-v", "--verbose",
action="store_true", dest="verbose", default=False,
help="verbose mode")
+ parser.add_option("-D", "--debug",
+ action="store_true", dest="debug", default=False,
+ help="Debug (xml-rpc) protocol messages")
parser.add_option("-p", "--protocol",
dest="protocol", default="xmlrpc",
help="RPC protocol (xmlrpc or soap)")
self.cert_file = cert_file
self.cert = Certificate(filename=cert_file)
# Establish connection to server(s)
- self.registry = xmlrpcprotocol.get_server(reg_url, key_file, cert_file)
- self.slicemgr = xmlrpcprotocol.get_server(sm_url, key_file, cert_file)
- self.geni_am = xmlrpcprotocol.get_server(geni_am_url, key_file, cert_file)
+ self.registry = xmlrpcprotocol.get_server(reg_url, key_file, cert_file, self.options.debug)
+ self.slicemgr = xmlrpcprotocol.get_server(sm_url, key_file, cert_file, self.options.debug)
+ self.geni_am = xmlrpcprotocol.get_server(geni_am_url, key_file, cert_file, self.options.debug)
+
return
#
record = records[0]
cm_port = "12346"
url = "https://%s:%s" % (record['hostname'], cm_port)
- return xmlrpcprotocol.get_server(url, self.key_file, self.cert_file)
+ return xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.debug)
#
# Following functions implement the commands
raise Exception, "No such aggregate %s" % agg_hrn
aggregate = aggregates[0]
url = "http://%s:%s" % (aggregate['addr'], aggregate['port'])
- server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file)
+ server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.debug)
if args:
cred = self.get_slice_cred(args[0]).save_to_string(save_parents=True)
hrn = args[0]
raise Exception, "No such aggregate %s" % opts.aggregate
aggregate = aggregates[0]
url = "http://%s:%s" % (aggregate['addr'], aggregate['port'])
- server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.protocol)
+ server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.debug)
return server.create_slice(slice_cred, slice_hrn, rspec)
# get a ticket for the specified slice
raise Exception, "No such aggregate %s" % opts.aggregate
aggregate = aggregates[0]
url = "http://%s:%s" % (aggregate['addr'], aggregate['port'])
- server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.protocol)
+ server = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.debug)
ticket_string = server.get_ticket(slice_cred, slice_hrn, rspec)
file = os.path.join(self.options.sfi_dir, get_leaf(slice_hrn) + ".ticket")
print "writing ticket to ", file
cm_port = "12346"
url = "https://%(hostname)s:%(cm_port)s" % locals()
print "Calling redeem_ticket at %(url)s " % locals(),
- cm = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file)
+ cm = xmlrpcprotocol.get_server(url, self.key_file, self.cert_file, self.options.debug)
cm.redeem_ticket(slice_cred, ticket.save_to_string(save_parents=True))
print "Success"
except socket.gaierror:
if xrn:
call_options['geni_slice_urn'] = xrn
- rspec = server.ListResources([user_cred], call_options)
+ rspec = server.ListResources([cred], call_options)
rspec = zlib.decompress(rspec.decode('base64'))
print rspec
def CreateSliver(self, opts, args):
slice_xrn = args[0]
- user_cred = self.get_user_cred()
slice_cred = self.get_slice_cred(slice_xrn).save_to_string(save_parents=True)
rspec_file = self.get_rspec_file(args[1])
rspec = open(rspec_file).read()
server = self.geni_am
return server.CreateSliver(slice_xrn, [slice_cred], rspec)
+
+ def DeleteSliver(self, opts, args):
+ slice_xrn = args[0]
+ slice_cred = self.get_slice_cred(slice_xrn).save_to_string(save_parents=True)
+ server = self.geni_am
+ return server.DeleteSliver(slice_xrn, [slice_cred])
+
+ def SliverStatus(self, opts, args):
+ slice_xrn = args[0]
+ slice_cred = self.get_slice_cred(slice_xrn).save_to_string(save_parents=True)
+ server = self.geni_am
+ print server.SliverStatus(slice_xrn, [slice_cred])
+
+ def RenewSliver(self, opts, args):
+ slice_xrn = args[0]
+ slice_cred = self.get_slice_cred(slice_xrn).save_to_string(save_parents=True)
+ time = args[1]
+ server = self.geni_am
+ return server.RenewSliver(slice_xrn, [slice_cred], time)
+
+ def Shutdown(self, opts, args):
+ slice_xrn = args[0]
+ slice_cred = self.get_slice_cred(slice_xrn).save_to_string(save_parents=True)
+ server = self.geni_am
+ return server.Shutdown(slice_xrn, [slice_cred])
+
#
# Main: parse arguments and dispatch to command
#