LGTM, thanks

On Wed, 27 May 2015 at 18:26 'Klaus Aehlig' via ganeti-devel <
[email protected]> wrote:

> When creating instances, we can only choose from those nodes where
> we have both, the NODE and the NODE_RES lock. So, when opportunistically
> allocating locks, at the level of NODE_RES, there is no point in
> considering
> more nodes than those we have the node lock for. This change not only
> avoids acquiring locks we cannot use, it also make the opportunistic
> minimal lock requirement more useful.
>
> Signed-off-by: Klaus Aehlig <[email protected]>
> ---
>  lib/cmdlib/instance_create.py | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/lib/cmdlib/instance_create.py b/lib/cmdlib/instance_create.py
> index c6e83eb..e32e55f 100644
> --- a/lib/cmdlib/instance_create.py
> +++ b/lib/cmdlib/instance_create.py
> @@ -429,6 +429,12 @@ class LUInstanceCreate(LogicalUnit):
>            self.needed_locks[locking.LEVEL_NODE]))
>      self.share_locks[locking.LEVEL_NODEGROUP] = 1
>
> +  def DeclareLocks(self, level):
> +    if level == locking.LEVEL_NODE_RES:
> +      if self.op.opportunistic_locking:
> +        self.needed_locks[locking.LEVEL_NODE_RES] = \
> +          CopyLockList(list(self.owned_locks(locking.LEVEL_NODE)))
> +
>    def _RunAllocator(self):
>      """Run the allocator based on input opcode.
>
> --
> 2.2.0.rc0.207.ga3a616c
>
>

Reply via email to