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

Reply via email to