Bug 1599065 - Could not find the following items in the 'ironic.hardware.types' entrypoint: fake
Summary: Could not find the following items in the 'ironic.hardware.types' entrypoint:...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: documentation
Version: 13.0 (Queens)
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: RHOS Documentation Team
QA Contact: RHOS Documentation Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-07-08 12:29 UTC by Johan Swensson
Modified: 2022-03-23 14:18 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-03-23 14:18:12 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Johan Swensson 2018-07-08 12:29:49 UTC
Description of problem:
When deploying an undercloud for a lab environment where no IPMI hardware is available fake(fake_pxe previously) is commonly used.

This option does not seem to work as documented.

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


How reproducible:
Every time

Steps to Reproduce:
1. Configure undercloud.conf with enabled_hardware_types = fake or set the same option in /etc/ironic/ironic.conf


Actual results:
openstack-ironic-conductor fail to start with the following error

2018-07-08 14:31:36.758 8831 WARNING oslo_config.cfg [-] Option "enabled_drivers" from group "DEFAULT" is deprecated for removal (Hardware types should be used instead of classic drivers. They are enabled via the enabled_hardware_types option.).  Its value may be silently ignored in the future.
2018-07-08 14:31:36.769 8831 WARNING oslo_config.cfg [-] Option "api_url" from group "conductor" is deprecated for removal (Use [service_catalog]endpoint_override option instead if required to use a specific ironic api address, for example in noauth mode.).  Its value may be silently ignored in the future.
2018-07-08 14:31:38.059 8831 INFO ironic.drivers.modules.ipmitool [req-5b392377-c4ee-4da2-aeb3-799b63e88960 - - - - -] Option timing is supported by ipmitool
2018-07-08 14:31:38.080 8831 INFO ironic.drivers.modules.ipmitool [req-5b392377-c4ee-4da2-aeb3-799b63e88960 - - - - -] Option single_bridge is supported by ipmitool
2018-07-08 14:31:38.101 8831 INFO ironic.drivers.modules.ipmitool [req-5b392377-c4ee-4da2-aeb3-799b63e88960 - - - - -] Option dual_bridge is supported by ipmitool
2018-07-08 14:31:38.141 8831 WARNING ironic.common.driver_factory [req-5b392377-c4ee-4da2-aeb3-799b63e88960 - - - - -] Driver "pxe_ilo" is UNSUPPORTED. It has been deprecated and may be removed in a future release.
2018-07-08 14:31:38.142 8831 WARNING ironic.common.driver_factory [req-5b392377-c4ee-4da2-aeb3-799b63e88960 - - - - -] Driver "pxe_drac" is UNSUPPORTED. It has been deprecated and may be removed in a future release.
2018-07-08 14:31:38.142 8831 WARNING ironic.common.driver_factory [req-5b392377-c4ee-4da2-aeb3-799b63e88960 - - - - -] Driver "pxe_ipmitool" is UNSUPPORTED. It has been deprecated and may be removed in a future release.
2018-07-08 14:31:38.142 8831 INFO ironic.common.driver_factory [req-5b392377-c4ee-4da2-aeb3-799b63e88960 - - - - -] Loaded the following drivers: ['pxe_ilo', 'pxe_drac', 'pxe_ipmitool']
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service [req-5b392377-c4ee-4da2-aeb3-799b63e88960 - - - - -] Error starting thread.: DriverNotFoundInEntrypoint: Could not find the following items in the 'ironic.hardware.types' entrypoint: fake.
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service Traceback (most recent call last):
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/oslo_service/service.py", line 729, in run_service
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     service.start()
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/ironic/common/rpc_service.py", line 54, in start
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     self.manager.init_host(admin_context)
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/ironic/conductor/base_manager.py", line 121, in init_host
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     hardware_types = driver_factory.hardware_types()
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/ironic/common/driver_factory.py", line 389, in hardware_types
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     return _get_all_drivers(HardwareTypesFactory())
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/ironic/common/driver_factory.py", line 450, in __init__
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     self.__class__._init_extension_manager()
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 274, in inner
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     return f(*args, **kwargs)
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/ironic/common/driver_factory.py", line 520, in _init_extension_manager
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     on_missing_entrypoints_callback=missing_callback))
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/stevedore/named.py", line 85, in __init__
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     on_missing_entrypoints_callback(self._missing_names)
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service   File "/usr/lib/python2.7/site-packages/ironic/common/driver_factory.py", line 511, in missing_callback
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service     names=names, entrypoint=cls._entrypoint_name)
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service DriverNotFoundInEntrypoint: Could not find the following items in the 'ironic.hardware.types' entrypoint: fake.
2018-07-08 14:31:38.145 8831 ERROR oslo_service.service 

Expected results:
Feature should work as documented.

Additional info:
https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html/director_installation_and_usage/appe-power_management_drivers#sect-Fake_PXE_Driver

Comment 1 Julia Kreger 2018-07-11 15:33:04 UTC
Greetings. Looks like the documentation is wrong. For the hardware type, it is "fake-hardware", not "fake" which was the "classic drivers" driver name.

Comment 2 Johan Swensson 2018-07-31 10:37:48 UTC
Using fake-hardware doesn't seem to work either.

I get this in ironic-conductor.log

2018-07-31 12:35:29.840 12080 ERROR ironic.conductor.base_manager [req-87b6e263-9f76-4256-91cf-028606267596 - - - - -] Failed to register hardware types. For hardware type 'fake-hardware', no default value found for deploy interface.: NoValidDefaultForInterface: For hardware type 'fake-hardware', no default value found for deploy interface.

And trying to import nodes gives this error:

Started Mistral Workflow tripleo.baremetal.v1.register_or_update. Execution ID: fe5c3441-0de0-4472-9519-e056474ac0a4
Waiting for messages on queue 'tripleo' with no timeout.

No valid host was found. Reason: No conductor service registered which supports driver fake-hardware. (HTTP 400)
Exception registering nodes: No valid host was found. Reason: No conductor service registered which supports driver fake-hardware. (HTTP 400)

Comment 3 Julia Kreger 2018-07-31 12:09:32 UTC
So the default interface used is a union of the enabled interfaces with the hardware-type, so you'll need to set enabled_deploy_interfaces to at least include fake in the list, along with the other interfaces. The setup.cfg in the ironic repo lists all of the *_interfaces along with the individual possible values. https://git.openstack.org/cgit/openstack/ironic/tree/setup.cfg?h=11.0.0


Alternatively, if those are not set or not matching the nodes your trying to create, you may need a default_<interface>_interface setting, such as default_deploy_interface = fake setting.

Comment 4 Travis Dillon 2018-11-13 18:47:10 UTC
Julia's answer appears correct. I added manual-management to the enable_hardware_types and the error went away. Hosts are not enrolling properly. 

enabled_hardware_types = manual-management,ipmi,redfish,ilo,idrac

I alse test adding to discovery_default_driver and it worked properly as well:

discovery_default_driver = manual-management

Comment 5 Mohammed Salih 2019-01-10 11:25:03 UTC
We have tried what Travis has done, but still having the same issue. Can anyone please update with a correct way of doing it ?

Comment 6 Manabu Ori 2019-01-25 07:15:59 UTC
Hi,

I found another bugzilla[1] which says manual-management is not yet supported in OSP13.
I also would like to know how to set up fake driver in OSP13.

https://bugzilla.redhat.com/show_bug.cgi?id=1607720

Comment 8 Irina 2022-03-23 14:18:12 UTC
This bug has been closed as NOTABUG because the requested content seems to already exist in our documentation. If you believe this bug has been closed in error, please re-open and provide a comment telling us what additional documentation you require, and provide a link to your active support case. Thank you for your help!


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