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

Reply via email to