Add check for duplicate MACs in instance add
authorIustin Pop <iustin@google.com>
Tue, 8 Sep 2009 12:29:26 +0000 (14:29 +0200)
committerIustin Pop <iustin@google.com>
Tue, 8 Sep 2009 15:22:34 +0000 (17:22 +0200)
Currently LUAddInstance doesn't check for duplicate MACs, and it fails
during the Exec() phase when trying to add the instance to the config
(ConfigWriter checks for this). This patch copies the code from
LUModifyInstance (which already does it).

This fixed issue #70.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: Olivier Tharan <olive@google.com>

lib/cmdlib.py

index e65aef8..65aada0 100644 (file)
@@ -4592,6 +4592,12 @@ class LUCreateInstance(LogicalUnit):
         if not utils.IsValidMac(mac.lower()):
           raise errors.OpPrereqError("Invalid MAC address specified: %s" %
                                      mac)
+        else:
+          # or validate/reserve the current one
+          if self.cfg.IsMacInUse(mac):
+            raise errors.OpPrereqError("MAC address %s already in use"
+                                       " in cluster" % mac)
+
       # bridge verification
       bridge = nic.get("bridge", None)
       if bridge is None: