diff --git a/lib/cmdlib.py b/lib/cmdlib.py index a8f9d176ea5a9825428530cc9fb2937f7ef1830f..7f5f3d529754d67df3f51e09ed5a4507edba3d03 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -4750,8 +4750,10 @@ class LURenameInstance(LogicalUnit): _OP_REQP = [ ("instance_name", _TNonEmptyString), ("new_name", _TNonEmptyString), + ("ignore_ip", _TBool), + ("check_name", _TBool), ] - _OP_DEFS = [("ignore_ip", False)] + _OP_DEFS = [("ignore_ip", False), ("check_name", True)] def BuildHooksEnv(self): """Build hooks env. @@ -4779,9 +4781,12 @@ class LURenameInstance(LogicalUnit): self.instance = instance # new name verification - name_info = utils.GetHostInfo(self.op.new_name) + if self.op.check_name: + name_info = utils.GetHostInfo(self.op.new_name) + self.op.new_name = name_info.name + + new_name = self.op.new_name - self.op.new_name = new_name = name_info.name instance_list = self.cfg.GetInstanceList() if new_name in instance_list: raise errors.OpPrereqError("Instance '%s' is already in the cluster" % diff --git a/lib/opcodes.py b/lib/opcodes.py index 7a7edd9686a27804e68b1722b2ddb80c674b6bdf..c2cc5cf9c1367515b47857c5e7e96a0416254bcb 100644 --- a/lib/opcodes.py +++ b/lib/opcodes.py @@ -502,7 +502,7 @@ class OpRenameInstance(OpCode): """Rename an instance.""" OP_ID = "OP_INSTANCE_RENAME" __slots__ = [ - "instance_name", "ignore_ip", "new_name", + "instance_name", "ignore_ip", "new_name", "check_name", ]