Allow disk attachment with external storage
[ganeti-github.git] / lib / cmdlib / instance_set_params.py
index 911203e..b402483 100644 (file)
@@ -399,7 +399,11 @@ class LUInstanceSetParams(LogicalUnit):
                                  errors.ECODE_INVAL)
 
     instance_nodes = self.cfg.GetInstanceNodes(self.instance.uuid)
-    if not set(instance_nodes).issubset(set(disk.nodes)):
+    # Make sure we do not attach disks to instances on wrong nodes. If the
+    # instance is diskless, that instance is associated only to the primary
+    # node, whereas the disk can be associated to two nodes in the case of DRBD,
+    # hence, we have a subset check here.
+    if disk.nodes and not set(instance_nodes).issubset(set(disk.nodes)):
       raise errors.OpPrereqError("Disk nodes are %s while the instance's nodes"
                                  " are %s" %
                                  (disk.nodes, instance_nodes),