From 1a4b82c7c106361d3757e713cf65880751e5906b Mon Sep 17 00:00:00 2001 From: Faiyaz Ahmed Date: Wed, 21 Nov 2007 14:41:17 +0000 Subject: [PATCH] Added ReCreate. Also added try catch to api eval of rpc method. --- api.py | 3 ++- api_calls.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/api.py b/api.py index 0491dc2..34f4823 100644 --- a/api.py +++ b/api.py @@ -68,7 +68,8 @@ class APIRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): 'Invalid argument: the first argument must be a sliver name.') if not caller_name in (target_name, target_rec['delegations']): raise xmlrpclib.Fault(108, 'Permission denied.') - result = method(target_rec, *args[1:]) + try: result = method(target_rec, *args[1:]) + except Exception, err: raise xmlrpclib.Fault(104, 'Error in call: %s' %err) else: result = method(*args) if result == None: result = 1 return result diff --git a/api_calls.py b/api_calls.py index fa13792..656bf1f 100644 --- a/api_calls.py +++ b/api_calls.py @@ -176,6 +176,18 @@ def Stop(sliver_name): rec = sliver_name accounts.get(rec['name']).stop() +@export_to_docbook(roles=['nm-controller', 'self'], + accepts=[Parameter(str, 'A sliver/slice name.')], + returns=Parameter(int, '1 if successful')) + +@export_to_api(1) +def ReCreate(sliver_name): + """Stop, Destroy, Create, Start sliver in order to reinstall it.""" + Stop(sliver_name) + Destroy(sliver_name) + Create(sliver_name) + Start(sliver_name) + @export_to_docbook(roles=['nm-controller', 'self'], accepts=[Parameter(str, 'A sliver/slice name.')], returns=Parameter(dict, "A resource specification")) -- 2.43.0