commit 0283234e837d9faf807e6e8da6ec6321ee56b31a
Author: Nikola Dipanov <email address hidden>
Date: Tue Jun 9 10:05:14 2015 +0100
libvirt: Always default device names at boot
Up until now, libvirt would default it's own device names unless they
were specified by the user at boot. This could lead to inconsistencies,
so the soft approach was to discourage users from passing in explicit
device names, by documenting the fact that they will not be honoured,
but not override them.
It turns out that this approach causes more trouble, especially when we
add attaching volumes into the mix. So the approach now is to make
libvirt _always_ override what is passed in. That way even if the user
specifies a device name, the attach will not fail due to a device name
collision (a common problem - see related bug), and Nova book keeping
will match what we can see in the instance on most OSes.
In order to get there we now make sure boot starts acting like that
before we switch attach_volume over too, so that there is consistent
behavior.
Also - make tests for defaulting device names more realistic as they now
actually run the code instead of just making sure the right methods get
called.
UpgradeImpact: After this commit, supplying a device name for any of
the block devices specified as part of the `nova boot` call will not be
honoured by any libvirt compute nodes.
Reviewed: https:/ /review. openstack. org/189632 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=0283234e837 d9faf807e6e8da6 ec6321ee56b31a
Committed: https:/
Submitter: Jenkins
Branch: master
commit 0283234e837d9fa f807e6e8da6ec63 21ee56b31a
Author: Nikola Dipanov <email address hidden>
Date: Tue Jun 9 10:05:14 2015 +0100
libvirt: Always default device names at boot
Up until now, libvirt would default it's own device names unless they
were specified by the user at boot. This could lead to inconsistencies,
so the soft approach was to discourage users from passing in explicit
device names, by documenting the fact that they will not be honoured,
but not override them.
It turns out that this approach causes more trouble, especially when we
add attaching volumes into the mix. So the approach now is to make
libvirt _always_ override what is passed in. That way even if the user
specifies a device name, the attach will not fail due to a device name
collision (a common problem - see related bug), and Nova book keeping
will match what we can see in the instance on most OSes.
In order to get there we now make sure boot starts acting like that
before we switch attach_volume over too, so that there is consistent
behavior.
Also - make tests for defaulting device names more realistic as they now
actually run the code instead of just making sure the right methods get
called.
UpgradeImpact: After this commit, supplying a device name for any of
the block devices specified as part of the `nova boot` call will not be
honoured by any libvirt compute nodes.
Change-Id: I76a7cfd995db6c 04f7af48ff8c9ac dd55750ed76
Related-bug: #1075971