manager side delete_slice renamed into DeleteSliver
delegated_cred = self.delegate_cred(slice_cred, get_authority(self.authority))
creds.append(delegated_cred)
server = self.get_server_from_opts(opts)
delegated_cred = self.delegate_cred(slice_cred, get_authority(self.authority))
creds.append(delegated_cred)
server = self.get_server_from_opts(opts)
- return server.DeleteSliver(slice_urn, creds)
+ return server.DeleteSliver(slice_urn, creds, unique_call_id())
# start named slice
def start(self, opts, args):
# start named slice
def start(self, opts, args):
if DEBUG: print "Received stop_slice call"
return msg_aggrMgr(SFA_STOP_SLICE)
if DEBUG: print "Received stop_slice call"
return msg_aggrMgr(SFA_STOP_SLICE)
-def delete_slice(cred, xrn):
+def DeleteSliver(cred, xrn, call_id):
+ if Callids().already_handled(call_id): return ""
- if DEBUG: print "Received delete_slice call"
+ if DEBUG: print "Received DeleteSliver call"
return msg_aggrMgr(SFA_DELETE_SLICE)
def reset_slices(cred, xrn):
return msg_aggrMgr(SFA_DELETE_SLICE)
def reset_slices(cred, xrn):
# XX not implemented at this interface
return 1
# XX not implemented at this interface
return 1
-def delete_slice(api, xrn, creds):
- hrn, type = urn_to_hrn(xrn)
+def DeleteSliver(api, xrn, creds, call_id):
+ if Callids().already_handled(call_id): return ""
+ (hrn, type) = urn_to_hrn(xrn)
slicename = hrn_to_pl_slicename(hrn)
slices = api.plshell.GetSlices(api.plauth, {'name': slicename})
if not slices:
slicename = hrn_to_pl_slicename(hrn)
slices = api.plshell.GetSlices(api.plauth, {'name': slicename})
if not slices:
-def delete_slice(api, xrn, creds):
- hrn, type = urn_to_hrn(xrn)
+def DeleteSliver(api, xrn, creds, call_id):
+ if Callids().already_handled(call_id): return ""
+ (hrn, type) = urn_to_hrn(xrn)
slicename = hrn_to_pl_slicename(hrn)
slices = api.plshell.GetSlices(api.plauth, {'name': slicename})
if not slices:
slicename = hrn_to_pl_slicename(hrn)
slices = api.plshell.GetSlices(api.plauth, {'name': slicename})
if not slices:
def stop_slice(api, slicename):
return
def stop_slice(api, slicename):
return
-def delete_slice(api, slicename):
+def DeleteSliver(api, slicename, call_id):
return
def reset_slice(api, slicename):
return
def reset_slice(api, slicename):
slicename = PlXrn(xrn, type='slice').pl_slicename()
api.nodemanager.Stop(slicename)
slicename = PlXrn(xrn, type='slice').pl_slicename()
api.nodemanager.Stop(slicename)
-def delete_slice(api, xrn, creds):
+def DeleteSliver(api, xrn, creds, call_id):
slicename = PlXrn(xrn, type='slice').pl_slicename()
api.nodemanager.Destroy(slicename)
slicename = PlXrn(xrn, type='slice').pl_slicename()
api.nodemanager.Destroy(slicename)
return ticket.save_to_string(save_parents=True)
return ticket.save_to_string(save_parents=True)
-def delete_slice(api, xrn, creds):
- hrn, type = urn_to_hrn(xrn)
-
+def DeleteSliver(api, xrn, creds, call_id):
+ if Callids().already_handled(call_id): return ""
+ (hrn, type) = urn_to_hrn(xrn)
# get the callers hrn
valid_cred = api.auth.checkCredentials(creds, 'deletesliver', hrn)[0]
caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn()
# get the callers hrn
valid_cred = api.auth.checkCredentials(creds, 'deletesliver', hrn)[0]
caller_hrn = Credential(string=valid_cred).get_gid_caller().get_hrn()
if caller_hrn == aggregate and aggregate != api.hrn:
continue
server = api.aggregates[aggregate]
if caller_hrn == aggregate and aggregate != api.hrn:
continue
server = api.aggregates[aggregate]
- threads.run(server.DeleteSliver, xrn, credential)
+ threads.run(server.DeleteSliver, xrn, credential, call_id)
threads.get_results()
return 1
threads.get_results()
return 1
-### $Id: stop_slice.py 17732 2010-04-19 21:10:45Z tmack $
-### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/stop_slice.py $
-
from sfa.util.faults import *
from sfa.util.xrn import urn_to_hrn
from sfa.util.method import Method
from sfa.util.faults import *
from sfa.util.xrn import urn_to_hrn
from sfa.util.method import Method
Parameter(str, "Human readable name of slice to delete (hrn or urn)"),
Mixed(Parameter(str, "Credential string"),
Parameter(type([str]), "List of credentials")),
Parameter(str, "Human readable name of slice to delete (hrn or urn)"),
Mixed(Parameter(str, "Credential string"),
Parameter(type([str]), "List of credentials")),
+ Parameter(str, "call_id"),
]
returns = Parameter(int, "1 if successful")
]
returns = Parameter(int, "1 if successful")
- def call(self, xrn, creds):
+ def call(self, xrn, creds, call_id=""):
hrn, type = urn_to_hrn(xrn)
valid_creds = self.api.auth.checkCredentials(creds, 'deletesliver', hrn)
hrn, type = urn_to_hrn(xrn)
valid_creds = self.api.auth.checkCredentials(creds, 'deletesliver', hrn)
self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name))
manager = self.api.get_interface_manager()
self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name))
manager = self.api.get_interface_manager()
- manager.delete_slice(self.api, xrn, creds)
+ manager.DeleteSliver(self.api, xrn, creds, call_id)
pprint(tmack_components)
#print "removing %(slicehrn)s from all nodes" % locals()
pprint(tmack_components)
#print "removing %(slicehrn)s from all nodes" % locals()
-#a.delete_slice(cred, slicehrn)
+#a.DeleteSliver(cred, slicehrn)
print "adding %(slicehrn)s back to its original nodes" % locals()
a.list_resources(cred, slicehrn)
print "adding %(slicehrn)s back to its original nodes" % locals()
a.list_resources(cred, slicehrn)
def testDeleteSlice(self):
slice_credential = self.client.get_credential(self.slice['hrn'], 'slice')
def testDeleteSlice(self):
slice_credential = self.client.get_credential(self.slice['hrn'], 'slice')
- self.aggregate.delete_slice(slice_credential, self.slice['hrn'])
+ self.aggregate.DeleteSliver(slice_credential, self.slice['hrn'],"call-id-delete-slice")
def testGetTicket(self):
slice_credential = self.client.get_credential(self.slice['hrn'], 'slice')
def testGetTicket(self):
slice_credential = self.client.get_credential(self.slice['hrn'], 'slice')
self.cm.stop_slice(self.slice_cred, self.slice['hrn'])
def testDeleteSlice(self):
self.cm.stop_slice(self.slice_cred, self.slice['hrn'])
def testDeleteSlice(self):
- self.cm.delete_slice(self.slice_cred, self.slice['hrn'])
+ self.cm.DeleteSliver(self.slice_cred, self.slice['hrn'],"call-id-delete-slice-cm")
def testRestartSlice(self):
self.cm.restart_slice(self.slice_cred, self.slice['hrn'])
def testRestartSlice(self):
self.cm.restart_slice(self.slice_cred, self.slice['hrn'])
client.registry.register(auth_cred, slice_record)
return slice_record
client.registry.register(auth_cred, slice_record)
return slice_record
-def delete_slice(cleint, slice):
+def DeleteSliver(client, slice):
authority = get_authority(client.hrn)
auth_cred = client.get_credential(authority, 'authority')
if slice:
authority = get_authority(client.hrn)
auth_cred = client.get_credential(authority, 'authority')
if slice:
unittest.TextTestRunner(verbosity=2).run(suite)
# remove teset slice
unittest.TextTestRunner(verbosity=2).run(suite)
# remove teset slice
- delete_slice(client, test_slice)
+ DeleteSliver(client, test_slice)