On Mon, May 30, 2011 at 5:14 PM, Michael Hanselmann <[email protected]> wrote:
> LUNodeEvacStrategy has been replaced with LUNodeEvacuate.
> ---
>  lib/cmdlib.py  |   47 -----------------------------------------------
>  lib/opcodes.py |   10 ----------
>  2 files changed, 0 insertions(+), 57 deletions(-)
>
> diff --git a/lib/cmdlib.py b/lib/cmdlib.py
> index fbec6a4..7184ff3 100644
> --- a/lib/cmdlib.py
> +++ b/lib/cmdlib.py
> @@ -9713,53 +9713,6 @@ class LURepairNodeStorage(NoHooksLU):
>                  (self.op.name, self.op.node_name))
>
>
> -class LUNodeEvacStrategy(NoHooksLU):
> -  """Computes the node evacuation strategy.
> -
> -  """
> -  REQ_BGL = False
> -
> -  def CheckArguments(self):
> -    _CheckIAllocatorOrNode(self, "iallocator", "remote_node")
> -
> -  def ExpandNames(self):
> -    self.op.nodes = _GetWantedNodes(self, self.op.nodes)
> -    self.needed_locks = locks = {}
> -    if self.op.remote_node is None:
> -      locks[locking.LEVEL_NODE] = locking.ALL_SET
> -    else:
> -      self.op.remote_node = _ExpandNodeName(self.cfg, self.op.remote_node)
> -      locks[locking.LEVEL_NODE] = self.op.nodes + [self.op.remote_node]
> -
> -  def Exec(self, feedback_fn):
> -    instances = []
> -    for node in self.op.nodes:
> -      instances.extend(_GetNodeSecondaryInstances(self.cfg, node))
> -    if not instances:
> -      return []
> -
> -    if self.op.remote_node is not None:
> -      result = []
> -      for i in instances:
> -        if i.primary_node == self.op.remote_node:
> -          raise errors.OpPrereqError("Node %s is the primary node of"
> -                                     " instance %s, cannot use it as"
> -                                     " secondary" %
> -                                     (self.op.remote_node, i.name),
> -                                     errors.ECODE_INVAL)
> -        result.append([i.name, self.op.remote_node])
> -    else:
> -      ial = IAllocator(self.cfg, self.rpc,
> -                       mode=constants.IALLOCATOR_MODE_MEVAC,
> -                       evac_nodes=self.op.nodes)
> -      ial.Run(self.op.iallocator, validate=True)
> -      if not ial.success:
> -        raise errors.OpExecError("No valid evacuation solution: %s" % 
> ial.info,
> -                                 errors.ECODE_NORES)
> -      result = ial.result
> -    return result
> -
> -
>  class LUNodeEvacuate(NoHooksLU):
>   """Evacuates instances off a list of nodes.
>
> diff --git a/lib/opcodes.py b/lib/opcodes.py
> index 8839eec..2bc8923 100644
> --- a/lib/opcodes.py
> +++ b/lib/opcodes.py
> @@ -887,16 +887,6 @@ class OpNodeMigrate(OpCode):
>     ]
>
>
> -class OpNodeEvacStrategy(OpCode):
> -  """Compute the evacuation strategy for a list of nodes."""
> -  OP_DSC_FIELD = "nodes"
> -  OP_PARAMS = [
> -    ("nodes", ht.NoDefault, ht.TListOf(ht.TNonEmptyString), None),
> -    ("remote_node", None, ht.TMaybeString, None),
> -    ("iallocator", None, ht.TMaybeString, None),
> -    ]
> -
> -
>  class OpNodeEvacuate(OpCode):
>   """Evacuate instances off a number of nodes."""
>   OP_DSC_FIELD = "nodes"
> --
> 1.7.3.5

LGTM, thanks!

René

Reply via email to