[hopem,r=]

Sync charmhelpers to get fix for LP 1500386
This commit is contained in:
Edward Hope-Morley 2015-09-28 12:18:48 +01:00
parent 65ee4923e9
commit 7e62da4e49
4 changed files with 28 additions and 11 deletions

View File

@ -1364,7 +1364,7 @@ class DataPortContext(NeutronPortContext):
normalized.update({port: port for port in resolved
if port in ports})
if resolved:
return {bridge: normalized[port] for port, bridge in
return {normalized[port]: bridge for port, bridge in
six.iteritems(portmap) if port in normalized.keys()}
return None
@ -1375,8 +1375,8 @@ class PhyNICMTUContext(DataPortContext):
def __call__(self):
ctxt = {}
mappings = super(PhyNICMTUContext, self).__call__()
if mappings and mappings.values():
ports = mappings.values()
if mappings and mappings.keys():
ports = mappings.keys()
napi_settings = NeutronAPIContext()()
mtu = napi_settings.get('network_device_mtu')
all_ports = set()

View File

@ -310,10 +310,10 @@ def parse_bridge_mappings(mappings):
def parse_data_port_mappings(mappings, default_bridge='br-data'):
"""Parse data port mappings.
Mappings must be a space-delimited list of port:bridge mappings.
Mappings must be a space-delimited list of bridge:port.
Returns dict of the form {port:bridge} where port may be an mac address or
interface name.
Returns dict of the form {port:bridge} where ports may be mac addresses or
interface names.
"""
# NOTE(dosaboy): we use rvalue for key to allow multiple values to be

View File

@ -751,11 +751,12 @@ def configure_ovs():
bridgemaps = parse_bridge_mappings(config('bridge-mappings'))
for provider, br in bridgemaps.iteritems():
add_bridge(br)
if not portmaps or br not in portmaps:
if not portmaps:
continue
add_bridge_port(br, portmaps[br], promisc=True)
for port, _br in portmaps.iteritems():
if _br == br:
add_bridge_port(br, port, promisc=True)
# Ensure this runs so that mtu is applied to data-port interfaces if
# provided.

View File

@ -221,9 +221,10 @@ class TestQuantumUtils(CharmTestCase):
call('br-ex'),
call('br-data')
])
self.assertTrue(self.add_bridge_port.called)
calls = [call('br-data', 'eth0', promisc=True)]
self.add_bridge_port.assert_has_calls(calls)
# Now test with bridge:port format
# Now test with bridge:port format and bogus bridge
self.test_config.set('data-port', 'br-foo:eth0')
self.add_bridge.reset_mock()
self.add_bridge_port.reset_mock()
@ -236,6 +237,21 @@ class TestQuantumUtils(CharmTestCase):
# Not called since we have a bogus bridge in data-ports
self.assertFalse(self.add_bridge_port.called)
# Now test with bridge:port format
self.test_config.set('bridge-mappings', 'net1:br1')
self.test_config.set('data-port', 'br1:eth0.100 br1:eth0.200')
self.add_bridge.reset_mock()
self.add_bridge_port.reset_mock()
neutron_utils.configure_ovs()
self.add_bridge.assert_has_calls([
call('br-int'),
call('br-ex'),
call('br1')
])
calls = [call('br1', 'eth0.100', promisc=True),
call('br1', 'eth0.200', promisc=True)]
self.add_bridge_port.assert_has_calls(calls)
@patch.object(neutron_utils, 'git_install_requested')
def test_do_openstack_upgrade(self, git_requested):
git_requested.return_value = False