Commit a63985f3 authored by Dimitris Aragiorgis's avatar Dimitris Aragiorgis Committed by Michele Tartara
Browse files

SetDiskID() before accepting an instance



SetDiskID() fills physical_id slot of a Disk object.

LUInstanceSetParams() does not invoke SetDiskID() upon creation of a
new disk. As a result the physical_id slot of the Disk object in
config data is missing.

In case of ext disk template, in AcceptInstance() we invoke
_GatherAndLinkBlockDevices(). This takes `instance` as an argument
which includes current disks info. So, after adding a disk,
migration of ext instances will fail because FindDevice() expects
the physical_id slot.

With this patch we invoke SetDiskID() for every disk of the instance
before accept_instance() RPC.

Fixes Issue 633.
Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
Signed-off-by: default avatarMichele Tartara <mtartara@google.com>
Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
parent 8b9887c5
......@@ -709,6 +709,9 @@ class TLMigrateInstance(Tasklet):
self._WaitUntilSync()
self.feedback_fn("* preparing %s to accept the instance" % target_node)
# This fills physical_id slot that may be missing on newly created disks
for disk in instance.disks:
self.cfg.SetDiskID(disk, target_node)
result = self.rpc.call_accept_instance(target_node,
instance,
migration_info,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment