Use elevated context in disassociate_floating_ip

The call to service_get_by_host_and_topic would raise AdminRequired
in the case that a non-admin tried to disassociate a floating ip
from their instance and multi_host was on. Using an elevated
context for the db lookup enables the host lookup to happend and
allows a user to disassociate their floating ips.

Fixes bug 1074437

Change-Id: I3d47b5a48eae21ea913120bd00728a0b8132da81
(cherry picked from commit eedd98477d)
This commit is contained in:
Brian Waldon 2012-11-02 10:47:34 -07:00 committed by Vishvananda Ishaya
parent e7877868b1
commit 3ede373f28
1 changed files with 1 additions and 1 deletions

View File

@ -608,7 +608,7 @@ class FloatingIP(object):
instance = self.db.instance_get_by_uuid(context,
fixed_ip['instance_uuid'])
service = self.db.service_get_by_host_and_topic(
context, instance['host'], 'network')
context.elevated(), instance['host'], 'network')
if service and utils.service_is_up(service):
host = instance['host']
else: