Added ReCreate. Also added try catch to api eval of rpc method.
[nodemanager.git] / api_calls.py
index 5804258..656bf1f 100644 (file)
@@ -21,7 +21,9 @@ import xmlrpclib
 try:
        from PLC.Parameter import Parameter, Mixed
 except:
-       pass
+    def Parameter(a = None, b = None): pass
+    def Mixed(a = None, b = None, c = None): pass
+
 
 import accounts
 import logger
@@ -174,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"))