On Tue, Apr 20, 2010 at 10:59 AM, Iustin Pop <[email protected]> wrote:
[+ balazs ] > 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. > Yes, I don't like it either! :( Maybe we can improve this in a later patch series? Actually during testing of this patch series I changed the string representation to something which I thought was "nicer" and broke it already. So maybe it's something worth fixing! :) Guido -- Subscription settings: http://groups.google.com/group/ganeti-devel/subscribe?hl=en
