Run instance root device determination fix.
Legacy bdm in incoming parameters contains a number of devices specified by their names (e.g. "vdb" or "/dev/vdc"). Current code considers "vda" as root device and doesn't work on "/dev/vda", for example. This fix extracts the last significant character (digits are skipped in "..sda1") from the name like "a", "b", "c" and selects the root device by checking for "a". Change-Id: Iebaa117bb747d30ac9ceabd8805740dec9d1355c Closes-Bug: #1322180
This commit is contained in:
@@ -453,6 +453,16 @@ def strip_prefix(device_name):
|
||||
return _pref.sub('', device_name)
|
||||
|
||||
|
||||
_nums = re.compile('\d+')
|
||||
|
||||
|
||||
def get_device_letter(device_name):
|
||||
letter = strip_prefix(device_name)
|
||||
# NOTE(vish): delete numbers in case we have something like
|
||||
# /dev/sda1
|
||||
return _nums.sub('', letter)
|
||||
|
||||
|
||||
def instance_block_mapping(instance, bdms):
|
||||
root_device_name = instance['root_device_name']
|
||||
# NOTE(clayg): remove this when xenapi is setting default_root_device
|
||||
|
Reference in New Issue
Block a user