SetDiskID() before accepting an instance
authorDimitris Aragiorgis <dimara@grnet.gr>
Mon, 9 Dec 2013 12:00:27 +0000 (14:00 +0200)
committerMichele Tartara <mtartara@google.com>
Mon, 9 Dec 2013 12:51:50 +0000 (12:51 +0000)
commita63985f3d1612d7e4c05f9eeb65572e7c9ef11f2
treeb34c075541b2f5690053c6b87fb0f43384b5d0bd
parent8b9887c5a88a9d648ee26ff6fbba10f0e0136dbc
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: Dimitris Aragiorgis <dimara@grnet.gr>
Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Michele Tartara <mtartara@google.com>
lib/cmdlib/instance_migration.py