X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=api_calls.py;h=128a11ffa01c0b16f4aa053a006deccfe20f8494;hb=fac3b5e83cd67c043ef6e25a9411e9e0b76b69e1;hp=cd97e137ccc08511602fde520dcc4a39928db1ac;hpb=913c1a15c8497f01dbf0b7f7e837cf5ee38481bf;p=nodemanager.git diff --git a/api_calls.py b/api_calls.py index cd97e13..128a11f 100644 --- a/api_calls.py +++ b/api_calls.py @@ -121,6 +121,24 @@ def Ticket(ticket): except Exception, err: raise xmlrpclib.Fault(102, 'Ticket error: ' + str(err)) +@export_to_docbook(roles=['self'], + accepts=[Parameter(str, 'A ticket returned from GetSlivers()')], + returns=Parameter(int, '1 if successful')) +@export_to_api(1) +def AdminTicket(ticket): + """Admin interface to create slivers based on ticket returned by GetSlivers(). + """ + try: + data, = xmlrpclib.loads(ticket)[0] + name = data['slivers'][0]['name'] + if data != None: + deliver_ticket(data) + logger.log('Admin Ticket delivered for %s' % name) + Create(database.db.get(name)) + except Exception, err: + raise xmlrpclib.Fault(102, 'Ticket error: ' + str(err)) + + @export_to_docbook(roles=['self'], accepts=[], returns={'sliver_name' : Parameter(int, 'the associated xid')})