"Service VM" - _get_available_networks does extra filtering
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Critical
|
Gary Kotton |
Bug Description
Bug in Nova – the code filters the result by tenant_id although neutron will also do so by itself. In Neutron, if the credentials are for an Admin, than the filter is elevated to return the lits of all networks which is extactly what we would like to get for Service VMs.
Original Function:
https:/
Proposed Fix:
def _get_available_
"""Return a network list available for the tenant.
The list contains networks owned by the tenant and public networks.
If net_ids specified, it returns all network that the user
Is eligible to see also filtered by networks with requested IDs only.
"""
neutron = neutronv2.
# If user has specified to attach an instance only to specific
# networks, add them to **search_opts
# This usually happens when creating a VM and specifying
# that it should connect to specific networks.
# In this case we rely on neutron to do the correct filtering by tenant
# if it is a non-admin tenant.
# If it is an admin-tenant, neutron will elevate and return all networks
# which then get filtered by net_ids
if net_ids:
nets = neutron.
else:
# (1) Retrieve non-public network list owned by the tenant.
nets = neutron.
# (2) Retrieve public network list.
nets += neutron.
lambda x: x['id'],
nets,
return nets
Changed in nova: | |
milestone: | none → havana-rc1 |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | havana-rc1 → 2013.2 |
This bug is a "show stopper" for Radware LBaaS driver