From 93371f5ea539ff6205f0b9f96056a484268f110c Mon Sep 17 00:00:00 2001 From: Faiyaz Ahmed Date: Mon, 16 Jul 2007 20:52:20 +0000 Subject: [PATCH] Delegation fix. Slivers weren't being created once ticket was delivered. --- api.py | 6 +++++- database.py | 4 +--- sm.py | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/api.py b/api.py index 96fafe7..5f32350 100644 --- a/api.py +++ b/api.py @@ -52,11 +52,14 @@ def Ticket(tkt): """Ticket(tkt): deliver a ticket""" try: data = ticket.verify(tkt) + name = data['slivers'][0]['name'] if data != None: deliver_ticket(data) - logger.log('Got ticket') + logger.log('Ticket delivered for %s' % name) + Create(database.db.get(name)) except Exception, err: raise xmlrpclib.Fault(102, 'Ticket error: ' + str(err)) + logger.log_exc() @export_to_api(0) def GetXIDs(): @@ -149,6 +152,7 @@ class APIRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): if method_name not in ('ReCreate', 'Help', 'Ticket', 'GetXIDs', 'GetSSHKeys'): target_name = args[0] target_rec = database.db.get(target_name) + print target_rec if not (target_rec and target_rec['type'].startswith('sliver.')): raise xmlrpclib.Fault(102, 'Invalid argument: the first argument must be a sliver name.') if not (caller_name, method_name) in target_rec['delegations']: diff --git a/database.py b/database.py index be304d3..46a4e47 100644 --- a/database.py +++ b/database.py @@ -104,10 +104,8 @@ class Database(dict): if rec['instantiation'] == 'plc-instantiated': accounts.get(name).ensure_created(rec) if rec['instantiation'] == 'nm-controller': accounts.get(name).ensure_created(rec) - #try: bwmon.GetSlivers(self) - #except: logger.log_exc() + # Wake up bwmom to update limits. bwmon.lock.set() - # request a database dump global dump_requested dump_requested = True db_cond.notify() diff --git a/sm.py b/sm.py index 11c9ee7..eb45362 100644 --- a/sm.py +++ b/sm.py @@ -158,7 +158,7 @@ def GetSlivers(data, fullupdate=True): rec['initscript'] = initscripts_by_id[is_id] else: rec['initscript'] = '' - rec.setdefault('delegations', []) + rec.setdefault('delegations', attr_dict.get("delegations", [])) # extract the implied rspec rspec = {} -- 2.43.0