On Mon, Apr 19, 2010 at 04:54:40PM +0100, Guido Trotter wrote: > We can't guarantee to keep the LockedObject around, when ReleaseUid is > called (because that might happen, for example, after a ganeti > shutdown/restart). So we'll support releasing on just an integer uid. > > Signed-off-by: Guido Trotter <[email protected]> > --- > lib/uidpool.py | 8 ++++++-- > 1 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/lib/uidpool.py b/lib/uidpool.py > index 1ad9435..b1e2155 100644 > --- a/lib/uidpool.py > +++ b/lib/uidpool.py > @@ -322,9 +322,13 @@ def RequestUnusedUid(all_uids): > def ReleaseUid(uid): > """This should be called when the given user-id is no longer in use. > > + @type uid: LockedUid or integer > + @param uid: the uid to release back to the pool > + > """ > - # Make sure we release the exclusive lock, if there is any > - uid.Unlock() > + if isinstance(uid, LockedUid): > + # Make sure we release the exclusive lock, if there is any > + uid.Unlock() > try: > uid_path = utils.PathJoin(constants.UIDPOOL_LOCKDIR, str(uid)) > os.remove(uid_path)
Hmm, I just realize that we rely on the str() representation to match the uid number. Not optimal IMHO :), but anyway. LGTM. -- Subscription settings: http://groups.google.com/group/ganeti-devel/subscribe?hl=en
