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) -- 1.7.0.3 -- Subscription settings: http://groups.google.com/group/ganeti-devel/subscribe?hl=en
