When installing nova from source, you may run into issues when trying to run any of the nova services that look like this:

2013-01-10 15:13:16 9880 DEBUG nova.openstack.common.lockutils [-] Got file lock “iptables” at /var/lock/nova/nova-iptables for method “_apply”… inner /usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/openstack/common/lockutils.py:219
2013-01-10 15:13:16 9880 DEBUG nova.utils [-] Running cmd (subprocess): iptables-save -c -t filter execute /usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/utils.py:205
2013-01-10 15:13:16 9880 ERROR nova.service [-] Unhandled exception
2013-01-10 15:13:16 9880 TRACE nova.service Traceback (most recent call last):
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/service.py”, line 284, in _start_child
2013-01-10 15:13:16 9880 TRACE nova.service self._child_process(wrap.server)
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/service.py”, line 261, in _child_process
2013-01-10 15:13:16 9880 TRACE nova.service launcher.run_server(server)
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/service.py”, line 124, in run_server
2013-01-10 15:13:16 9880 TRACE nova.service server.start()
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/service.py”, line 596, in start
2013-01-10 15:13:16 9880 TRACE nova.service self.manager.init_host()
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/api/manager.py”, line 39, in init_host
2013-01-10 15:13:16 9880 TRACE nova.service self.network_driver.metadata_accept()
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/network/linux_net.py”, line 545, in metadata_accept
2013-01-10 15:13:16 9880 TRACE nova.service iptables_manager.apply()
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/network/linux_net.py”, line 358, in apply
2013-01-10 15:13:16 9880 TRACE nova.service self._apply()
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/openstack/common/lockutils.py”, line 220, in inner
2013-01-10 15:13:16 9880 TRACE nova.service retval = f(*args, **kwargs)
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/network/linux_net.py”, line 378, in _apply
2013-01-10 15:13:16 9880 TRACE nova.service attempts=5)
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/network/linux_net.py”, line 1021, in _execute
2013-01-10 15:13:16 9880 TRACE nova.service return utils.execute(*cmd, **kwargs)
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib/python2.6/site-packages/nova-2013.1-py2.6.egg/nova/utils.py”, line 226, in execute
2013-01-10 15:13:16 9880 TRACE nova.service result = obj.communicate()
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib64/python2.6/subprocess.py”, line 729, in communicate
2013-01-10 15:13:16 9880 TRACE nova.service stdout, stderr = self._communicate(input, endtime)
2013-01-10 15:13:16 9880 TRACE nova.service File “/usr/lib64/python2.6/subprocess.py”, line 1330, in _communicate
2013-01-10 15:13:16 9880 TRACE nova.service self.wait(timeout=self._remaining_time(endtime))
2013-01-10 15:13:16 9880 TRACE nova.service TypeError: wait() got an unexpected keyword argument ‘timeout’

This typically means that you have allowed PyPi (pip) to install the Python eventlet module. Unfortunately, this is not compatible with the CentOS/RHEL version of Python 2.6. To check, run:

# rpm -qf $(python -c ‘import eventlet as e; print e.__file__’)

If you see something like the following, it most likely means that you have an incompatible eventlet module:

file /usr/lib/python2.6/site-packages/eventlet/__init__.pyc is not owned by any package

To fix the issue, simply install with yum:

# yum install python-eventlet
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.its.dal.ca
* epel: epel.mirror.constant.com
* extras: mirror.its.dal.ca
* updates: mirror.its.dal.ca
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package python-eventlet.noarch 0:0.9.17-2.el6 will be installed
–> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================================================================
Installing:
python-eventlet noarch 0.9.17-2.el6 epel 262 k

Transaction Summary
====================================================================================================================================================================================
Install 1 Package(s)

Total download size: 262 k
Installed size: 1.1 M
Is this ok [y/N]: y
Downloading Packages:
python-eventlet-0.9.17-2.el6.noarch.rpm | 262 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : python-eventlet-0.9.17-2.el6.noarch 1/1
Verifying : python-eventlet-0.9.17-2.el6.noarch 1/1

Installed:
python-eventlet.noarch 0:0.9.17-2.el6

Complete!

And now verify (your version number may be different):

# rpm -qf $(python -c ‘import eventlet as e; print e.__file__’)
python-eventlet-0.9.17-2.el6.noarch

You should now be good to run your nova services!

Sorry, comments are closed.