Bug 1404116 - root hints vendor / model / size does not work for virtual environment.
Summary: root hints vendor / model / size does not work for virtual environment.
Keywords:
Status: CLOSED DUPLICATE of bug 1398288
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-ironic-python-agent
Version: 10.0 (Newton)
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
: ---
Assignee: Lucas Alvares Gomes
QA Contact: Raviv Bar-Tal
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-13 06:19 UTC by Jaison Raju
Modified: 2016-12-13 10:02 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-12-13 09:53:33 UTC
Target Upstream Version:


Attachments (Terms of Use)
introspection / ironic logs (14.97 MB, application/x-bzip)
2016-12-13 07:45 UTC, Jaison Raju
no flags Details

Description Jaison Raju 2016-12-13 06:19:49 UTC
Description of problem:
In virtual environment , i have emulated root disk as scsi disk & 7 other disks as virtio on ceph nodes .
Introspection fails for ceph nodes with following error .
-------------------------------------------------------
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.831 390 ERROR root [-] Unexpected error dispatching get_os_install_device to manager <ironic_python_agent.hardware.GenericHardwareManager object at 0x307d090>: Error finding the disk or partition device to deploy the image onto: No suitable device was found for deployment using these hints {u'vendor': u'ATA'}
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.831 390 ERROR root Traceback (most recent call last):
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.831 390 ERROR root   File "/usr/lib/python2.7/site-packages/ironic_python_agent/hardware.py", line 1062, in dispatch_to_managers
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.831 390 ERROR root     return getattr(manager, method)(*args, **kwargs)
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.831 390 ERROR root   File "/usr/lib/python2.7/site-packages/ironic_python_agent/hardware.py", line 688, in get_os_install_device
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.831 390 ERROR root     "deployment using these hints %s" % root_device_hints)
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.831 390 ERROR root DeviceNotFound: Error finding the disk or partition device to deploy the image onto: No suitable device was found for deployment using these hints {u'vendor': u'ATA'}
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.831 390 ERROR root
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.833 390 ERROR root [-] Command execution error: Error finding the disk or partition device to deploy the image onto: No suitable device was found for deployment using these hints {u'vendor': u'ATA'}
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.833 390 ERROR root Traceback (most recent call last):
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.833 390 ERROR root   File "/usr/lib/python2.7/site-packages/ironic_python_agent/extensions/base.py", line 251, in execute_command
Dec 08 21:33:24 host-192-0-2-12 ironic-python-agent[390]: 2016-12-08 21:33:24.833 390 ERROR root     result = ext.execute(command_part, **kwargs)

------------------------------------------------------------------------------

This failure is only seen for 'vendor / model / size' & not for name .
The config known to fail :
   55  for i in `cat ceph.txt`; do ironic node-update $i replace properties/root_device='{"vendor":"ATA"}' ; done
   68  for i in `cat ceph.txt`; do ironic node-update $i replace properties/root_device='{"model":"QEMU HARDDISK"}' ; done
   96  for i in `cat ceph.txt`; do ironic node-update $i replace properties/root_device='{"size":"44"}' ; done
The config known to work :
   86  for i in `cat ceph.txt`; do ironic node-update $i replace properties/root_device='{"name":"/dev/sda"}' ; done

Version-Release number of selected component (if applicable):
2016-11-10.3

How reproducible:
Always on virtual environment deployed via instack-virt-setup .
Not on baremetal ironic nodes .

Steps to Reproduce:
1. Deploy virtual env with instack-virt-setup .
2. Add one or more disk to one vm .
3. deploy undercloud + images .
4. introspect the node. 
5. check data in introspected data & set root hints with either 'vendor / model / size'  .

Actual results:
Introspection fails.

Expected results:
Introspection should work if the data matches the 'vendor / model / size' for previous introspection data .

Additional info:
PFA logs . 
I am not quite sure if this is a bug , but this is a part of script that i used for RHOS7/8/9 & it worked well on virtual environments .
I tested on baremetal using vendor root hint but that worked .

Comment 1 Jaison Raju 2016-12-13 07:45:27 UTC
Created attachment 1231091 [details]
introspection / ironic logs

Comment 2 Dmitry Tantsur 2016-12-13 09:53:33 UTC

*** This bug has been marked as a duplicate of bug 1398288 ***

Comment 3 Lucas Alvares Gomes 2016-12-13 10:02:29 UTC
@Jaison,

Ok, this is already marked as duplicated... But can you please enable the debug in IPA so that it will log the device's property as well as the value of the root device hint it's trying to match ?

To do it just add "ipa-debug=1" to the kernel command line*

* You can edit the /etc/ironic/ironic.conf file and append it to the "pxe_append_params" config option


Note You need to log in before you can comment on or make changes to this bug.