Hardware utils must get 'vendor' from sysfs
fuel-agent should use the same source for 'vendor' of block device as fuel-nailgun-agent uses. Otherwise, we could end up with situation when block device is being filtered out during provisioning due to 'vendor' mismatch. In that case, provisiong will fail. Change-Id: If503e13e259bb123d95312ee37ce661905ea185f Closes-Bug: #1487133
This commit is contained in:
parent
f2df59bb3f
commit
4c2ab9d6c6
@ -199,10 +199,13 @@ supports-register-dump: yes
|
||||
mock_file.read.return_value = 'running\n'
|
||||
elif arg == '/sys/block/fake/device/timeout':
|
||||
mock_file.read.return_value = '30\n'
|
||||
elif arg == '/sys/block/fake/device/vendor':
|
||||
mock_file.read.return_value = 'VENDORNAME \n'
|
||||
mock_with.__enter__.return_value = mock_file
|
||||
return mock_with
|
||||
mock_open.side_effect = with_side_effect
|
||||
expected = {'removable': '0', 'state': 'running', 'timeout': '30'}
|
||||
expected = {'removable': '0', 'state': 'running', 'timeout': '30',
|
||||
'vendor': 'VENDORNAME'}
|
||||
self.assertEqual(expected, hu.extrareport('/dev/fake'))
|
||||
|
||||
@mock.patch('six.moves.builtins.open')
|
||||
@ -391,18 +394,18 @@ E: UDEV_LOG=3""", '')
|
||||
'/dev/wrong_vendor_id',
|
||||
'/dev/right_vendor_id']
|
||||
mock_isdisk.return_value = True
|
||||
mock_ureport.side_effect = [
|
||||
{},
|
||||
{'ID_VENDOR': 'Cisco'},
|
||||
{'ID_VENDOR': 'IBM'},
|
||||
mock_ureport.return_value = {}
|
||||
mock_ereport.side_effect = [
|
||||
{'removable': '1'},
|
||||
{'removable': '1', 'vendor': 'Cisco'},
|
||||
{'removable': '1', 'vendor': 'IBM'},
|
||||
]
|
||||
mock_ereport.return_value = {'removable': '1'}
|
||||
mock_breport.return_value = {'key1': 'value1'}
|
||||
expected = [{
|
||||
'device': '/dev/right_vendor_id',
|
||||
'uspec': {'ID_VENDOR': 'IBM'},
|
||||
'uspec': {},
|
||||
'bspec': {'key1': 'value1'},
|
||||
'espec': {'removable': '1'}
|
||||
'espec': {'removable': '1', 'vendor': 'IBM'},
|
||||
}]
|
||||
self.assertEqual(hu.list_block_devices(), expected)
|
||||
self.assertEqual(
|
||||
|
@ -234,7 +234,7 @@ def extrareport(dev):
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
for key in ('state', 'timeout'):
|
||||
for key in ('state', 'timeout', 'vendor'):
|
||||
try:
|
||||
with open('/sys/block/{0}/device/{1}'.format(name, key)) as file:
|
||||
spec[key] = file.read().strip()
|
||||
@ -295,7 +295,7 @@ def list_block_devices(disks=True):
|
||||
# inserted into removable device.
|
||||
# Accept only devices from REMOVABLE_VENDORS list
|
||||
if (espec.get('removable') == '1' and
|
||||
uspec.get('ID_VENDOR') not in REMOVABLE_VENDORS):
|
||||
espec.get('vendor') not in REMOVABLE_VENDORS):
|
||||
continue
|
||||
bspec = blockdevreport(device)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user