Yesterday, 2017-03-23, a new version of pysnmp (4.3.5) was released. Apparently it became incompatible with pyasn1 version enforced by openstack's global requirements and constraints (0.1.9) which manifests itself in the following manner:
when proliantutils is installed without forcing constraints, no driver defined in ironic package can be loaded by its entrypoint (even fake) with the following error:
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service [req-dced91c7-5599-46cf-9834-bfeb74c4af38 - - - - -] Error starting thread.
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service Traceback (most recent call last):
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/oslo_service/service.py", line 722, in run_service
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service service.start()
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/ironic/common/rpc_service.py", line 55, in start
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service self.manager.init_host(admin_context)
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/ironic/conductor/base_manager.py", line 115, in init_host
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service drivers = driver_factory.drivers()
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/ironic/common/driver_factory.py", line 364, in drivers
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service return _get_all_drivers(DriverFactory())
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/ironic/common/driver_factory.py", line 433, in __init__
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service self.__class__._init_extension_manager()
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 271, in inner
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service return f(*args, **kwargs)
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/ironic/common/driver_factory.py", line 501, in _init_extension_manager
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service propagate_map_exceptions=True))
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/stevedore/dispatch.py", line 168, in __init__
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service verify_requirements=verify_requirements,
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/stevedore/enabled.py", line 72, in __init__
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service verify_requirements=verify_requirements,
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/stevedore/extension.py", line 106, in __init__
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service verify_requirements)
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/stevedore/extension.py", line 194, in _load_plugins
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service self._on_load_failure_callback(self, ep, err)
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service File "/usr/local/lib/python2.7/dist-packages/ironic/common/driver_factory.py", line 489, in _catch_driver_not_found
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service raise exception.DriverLoadError(driver=ep.name, reason=exc)
Mar 24 13:50:15 ubuntu1604 ironic-conductor[13463]: 2017-03-24 13:50:15.004 13463 ERROR oslo_service.service DriverLoadError: Driver, hardware type or interface fake could not be loaded. Reason: 'module' object has no attribute 'noValue'.
We need to start enforcing global constraints from openstack/requirements everywhere.
Making a note that pysnmp 4.3.9 and pyasn1 0.3.1 are out (presumably fixing the above regression) also reflected in the updated openstack/ requirements constraints.