Send the router its default gateway IP

Each router may have multiple public IPs, but we only want it to
use a single default gateway. We work out what that value should
be in the rug, and send it to the appliance so the appliance
does not have to figure it out for itself.

Change-Id: Ie8ae8a866ee46ed9b0b3d5ef79c2a4fadf1b7f0a
make it clear the new behavior is only for v4

Change-Id: Ia040c367121751ad5f50d76fedb77e30d9c0a238
Add tests for get_default_v4_gateway

Change-Id: I5366a773833f2f1029b4936e1cbfe294767c77f3
one more test case for ipv4 gateway

Change-Id: I6aa63566ddb6a0a25c724a727efb0f4470475e22
fix pep8 issues

Change-Id: If042eded3f98f17b087047c1707e20f68e495603
Merge pull request #143 from dhellmann/bug/dhc-2072

Send the router its default gateway IP
Synchronize the neutron router status via an akanda-quantum API extension.
Change the JSON key in the API call.
ACK notifications, even if we don't use them

Always acknowledge incoming notifications so the AMQP queue
doesn't get backed up with unacknowledged messages.

Change-Id: I2eb050ecbda74623edd490d805f42857959d6c54
Merge pull request #145 from dhellmann/ack-notifications

ACK notifications, even if we don't use them
Harden UUID parsing

If the scheduler sees a UUID that is not formatted properly,
it should ignore the message as invalid.

Change-Id: I4aff1cd035bc80902dfc37f693f33aad6cdc146d
protect against None in target

Change-Id: I672417fdf389a0df69fc3de9431dabe5852710f3
Merge pull request #146 from dhellmann/harden-uuid-handling

Harden UUID parsing
Log but otherwise ignore errors in main loop

Don't let the main loop break out on an unhandled exception.
Log it, and keep trying.

Change-Id: Ie382a00fb4b657ffe8875ab4089b31dde241dc28
Merge pull request #147 from dhellmann/harden-main-loop

Log but otherwise ignore errors in main loop
Look at subnets, not interfaces, for gateway

Look at the subnet settings to determine the IPs we have on each
network, instead of looking at the interface settings which might not
yet be populated fully.

Change-Id: I2318c3037cd9a2cd959bd238835a0d605560c110
remove obsolete code

Change-Id: I9c094e84cbe9b83f31c5863bda0af8721d09e2ea
Merge pull request #148 from dhellmann/handle-missing-addresses

Look at subnets, not interfaces, for gateway
Merge pull request #144 from ryanpetrello/update-router-status

Synchronize the neutron router status via an akanda-quantum API extension
Ignore errors updating the router status

We want the router status to be correct, but we don't want a failure to
update the status to cause other issues within the RUG. Log and discard
any exceptions that come from talking to the neutron API extension for
updating the router status.

Change-Id: I47e34a31b783e3c41f227deb48607947eb505456