OpenStack Auto Assign Floating IP Not Working in Diablo

Being able to spin up instances in OpenStack is one thing, but they’re not much use if you can’t connect to them using the public network you’ve assigned to it.

Unfortunately in Diablo, the flag –auto_assign_floating_ip=true causes instances to be stuck at pending, and the nova-network.log spews out the something like the following snippet:

(nova.rpc): TRACE:     raise exception.FloatingIpNotFoundForAddress(address=address)
(nova.rpc): TRACE: FloatingIpNotFoundForAddress: Floating ip not found for address
<nova.db.sqlalchemy.models.FloatingIp object at 0x2fc5d90>.

This is down to a bug introduced in Diablo,

The fix is simple though (tested on Ubuntu 11.10 running Python 2.7):

  1. wget -O
  2. unzip
  3. mv /usr/lib/python2.7/dist-packages/nova/network/{,.orig}
  4. cp /usr/lib/python2.7/dist-packages/nova/network/
  5. restart nova-network
  6. restart nova-compute


Update 08/01/2012:  Alternatively you can use the oneiric-proposed repository that has the fix in for Diablo:

Add the following to /etc/apt/sources.list

 deb oneiric-proposed main restricted universe multiverse

Then run

apt-get update
apt-get -y dist-upgrade

Then reboot your host.