Add enable-fwaas to relation data
Add enable-fwaas to neutron-plugin-api relation data so
that neutron-openvswitch updates neutron-l3-agent
configuration accordingly.
Synced charmhelpers to get related changes
https://github.com/juju/charm-helpers/pull/640
Partial-Bug: #1934129
(cherry picked from commit 69af89a615
)
Change-Id: I5019c5ed3b8ab556d4900f1fe46dee69f5f09ee7
This commit is contained in:
parent
ea7e7dd2c6
commit
33de9d5f3b
|
@ -25,7 +25,10 @@ import socket
|
|||
import time
|
||||
|
||||
from base64 import b64decode
|
||||
from subprocess import check_call, CalledProcessError
|
||||
from subprocess import (
|
||||
check_call,
|
||||
check_output,
|
||||
CalledProcessError)
|
||||
|
||||
import six
|
||||
|
||||
|
@ -1781,6 +1784,10 @@ class NeutronAPIContext(OSContextGenerator):
|
|||
'rel_key': 'enable-port-forwarding',
|
||||
'default': False,
|
||||
},
|
||||
'enable_fwaas': {
|
||||
'rel_key': 'enable-fwaas',
|
||||
'default': False,
|
||||
},
|
||||
'global_physnet_mtu': {
|
||||
'rel_key': 'global-physnet-mtu',
|
||||
'default': 1500,
|
||||
|
@ -1815,6 +1822,11 @@ class NeutronAPIContext(OSContextGenerator):
|
|||
if ctxt['enable_port_forwarding']:
|
||||
l3_extension_plugins.append('port_forwarding')
|
||||
|
||||
if ctxt['enable_fwaas']:
|
||||
l3_extension_plugins.append('fwaas_v2')
|
||||
if ctxt['enable_nfg_logging']:
|
||||
l3_extension_plugins.append('fwaas_v2_log')
|
||||
|
||||
ctxt['l3_extension_plugins'] = l3_extension_plugins
|
||||
|
||||
return ctxt
|
||||
|
@ -2578,14 +2590,22 @@ class OVSDPDKDeviceContext(OSContextGenerator):
|
|||
return format(mask, '#04x')
|
||||
|
||||
def socket_memory(self):
|
||||
"""Formatted list of socket memory configuration per NUMA node
|
||||
"""Formatted list of socket memory configuration per socket.
|
||||
|
||||
:returns: socket memory configuration per NUMA node
|
||||
:returns: socket memory configuration per socket.
|
||||
:rtype: str
|
||||
"""
|
||||
lscpu_out = check_output(
|
||||
['lscpu', '-p=socket']).decode('UTF-8').strip()
|
||||
sockets = set()
|
||||
for line in lscpu_out.split('\n'):
|
||||
try:
|
||||
sockets.add(int(line))
|
||||
except ValueError:
|
||||
# lscpu output is headed by comments so ignore them.
|
||||
pass
|
||||
sm_size = config('dpdk-socket-memory')
|
||||
node_regex = '/sys/devices/system/node/node*'
|
||||
mem_list = [str(sm_size) for _ in glob.glob(node_regex)]
|
||||
mem_list = [str(sm_size) for _ in sockets]
|
||||
if mem_list:
|
||||
return ','.join(mem_list)
|
||||
else:
|
||||
|
|
|
@ -27,6 +27,7 @@ from charmhelpers.core.hookenv import (
|
|||
log,
|
||||
DEBUG,
|
||||
ERROR,
|
||||
WARNING,
|
||||
)
|
||||
from charmhelpers.contrib.openstack import context
|
||||
from charmhelpers.contrib.hahelpers.cluster import (
|
||||
|
@ -282,6 +283,28 @@ def is_port_forwarding_enabled():
|
|||
return False
|
||||
|
||||
|
||||
def is_fwaas_enabled():
|
||||
"""
|
||||
Check if Firewall as a service feature should be enabled.
|
||||
|
||||
returns: True if enable-fwaas config item is True,
|
||||
otherwise False.
|
||||
:rtype: boolean
|
||||
"""
|
||||
if config('enable-fwaas'):
|
||||
|
||||
cmp_release = CompareOpenStackReleases(os_release('neutron-server'))
|
||||
if cmp_release < 'stein' or cmp_release > 'ussuri':
|
||||
log("The fwaas option is set to true but will be ignored "
|
||||
"and disabled for releases outside of Stein to Ussuri.",
|
||||
WARNING)
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def is_vlan_trunking_requested_and_valid():
|
||||
"""Check whether VLAN trunking should be enabled by checking whether
|
||||
it has been requested and, if it has, is it supported in the current
|
||||
|
|
|
@ -107,6 +107,7 @@ from neutron_api_context import (
|
|||
get_l2population,
|
||||
get_l3ha,
|
||||
get_overlay_network_type,
|
||||
is_fwaas_enabled,
|
||||
is_nfg_logging_enabled,
|
||||
is_nsg_logging_enabled,
|
||||
is_qos_requested_and_valid,
|
||||
|
@ -554,6 +555,7 @@ def neutron_plugin_api_relation_joined(rid=None):
|
|||
'enable-nsg-logging': is_nsg_logging_enabled(),
|
||||
'enable-nfg-logging': is_nfg_logging_enabled(),
|
||||
'enable-port-forwarding': is_port_forwarding_enabled(),
|
||||
'enable-fwaas': is_fwaas_enabled(),
|
||||
'overlay-network-type': get_overlay_network_type(),
|
||||
'addr': unit_get('private-address'),
|
||||
'polling-interval': config('polling-interval'),
|
||||
|
|
|
@ -272,6 +272,28 @@ class GeneralTests(CharmTestCase):
|
|||
self.test_config.set('enable-port-forwarding', True)
|
||||
self.assertFalse(context.is_port_forwarding_enabled())
|
||||
|
||||
def test_is_fwaas_enabled(self):
|
||||
# Test pre-stein release
|
||||
self.os_release.return_value = 'rocky'
|
||||
self.test_config.set('enable-fwaas', True)
|
||||
self.assertFalse(context.is_fwaas_enabled())
|
||||
self.test_config.set('enable-fwaas', False)
|
||||
self.assertFalse(context.is_fwaas_enabled())
|
||||
|
||||
# Test any series between stein - ussuri
|
||||
self.os_release.return_value = 'ussuri'
|
||||
self.test_config.set('enable-fwaas', True)
|
||||
self.assertTrue(context.is_fwaas_enabled())
|
||||
self.test_config.set('enable-fwaas', False)
|
||||
self.assertFalse(context.is_fwaas_enabled())
|
||||
|
||||
# Test post-ussuri release
|
||||
self.os_release.return_value = 'victoria'
|
||||
self.test_config.set('enable-fwaas', True)
|
||||
self.assertFalse(context.is_fwaas_enabled())
|
||||
self.test_config.set('enable-fwaas', False)
|
||||
self.assertFalse(context.is_fwaas_enabled())
|
||||
|
||||
|
||||
class IdentityServiceContext(CharmTestCase):
|
||||
|
||||
|
|
|
@ -91,6 +91,7 @@ TO_PATCH = [
|
|||
'is_nsg_logging_enabled',
|
||||
'is_nfg_logging_enabled',
|
||||
'is_port_forwarding_enabled',
|
||||
'is_fwaas_enabled',
|
||||
'remove_old_packages',
|
||||
'services',
|
||||
'service_restart',
|
||||
|
@ -144,6 +145,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
self.is_nsg_logging_enabled.return_value = False
|
||||
self.is_nfg_logging_enabled.return_value = False
|
||||
self.is_port_forwarding_enabled.return_value = False
|
||||
self.is_fwaas_enabled.return_value = True
|
||||
|
||||
def _fake_relids(self, rel_name):
|
||||
return [randrange(100) for _count in range(2)]
|
||||
|
@ -542,6 +544,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
'enable-nsg-logging': False,
|
||||
'enable-nfg-logging': False,
|
||||
'enable-port-forwarding': False,
|
||||
'enable-fwaas': True,
|
||||
'global-physnet-mtu': 1500,
|
||||
'physical-network-mtus': None,
|
||||
}
|
||||
|
@ -588,6 +591,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
'enable-nsg-logging': True,
|
||||
'enable-nfg-logging': False,
|
||||
'enable-port-forwarding': False,
|
||||
'enable-fwaas': True,
|
||||
'global-physnet-mtu': 1500,
|
||||
'physical-network-mtus': None,
|
||||
}
|
||||
|
@ -640,6 +644,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
'enable-nsg-logging': False,
|
||||
'enable-nfg-logging': True,
|
||||
'enable-port-forwarding': False,
|
||||
'enable-fwaas': True,
|
||||
'global-physnet-mtu': 1500,
|
||||
'physical-network-mtus': None,
|
||||
}
|
||||
|
@ -691,6 +696,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
'enable-nsg-logging': False,
|
||||
'enable-nfg-logging': False,
|
||||
'enable-port-forwarding': True,
|
||||
'enable-fwaas': True,
|
||||
'global-physnet-mtu': 1500,
|
||||
'physical-network-mtus': None,
|
||||
}
|
||||
|
@ -742,6 +748,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
'enable-nsg-logging': False,
|
||||
'enable-nfg-logging': False,
|
||||
'enable-port-forwarding': False,
|
||||
'enable-fwaas': True,
|
||||
'global-physnet-mtu': 1500,
|
||||
'physical-network-mtus': None,
|
||||
}
|
||||
|
@ -788,6 +795,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
'enable-nsg-logging': False,
|
||||
'enable-nfg-logging': False,
|
||||
'enable-port-forwarding': False,
|
||||
'enable-fwaas': True,
|
||||
'global-physnet-mtu': 1500,
|
||||
'physical-network-mtus': None,
|
||||
}
|
||||
|
@ -836,6 +844,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
'enable-nsg-logging': False,
|
||||
'enable-nfg-logging': False,
|
||||
'enable-port-forwarding': False,
|
||||
'enable-fwaas': True,
|
||||
'global-physnet-mtu': 1500,
|
||||
'physical-network-mtus': None,
|
||||
}
|
||||
|
@ -883,6 +892,7 @@ class NeutronAPIHooksTests(CharmTestCase):
|
|||
'enable-nsg-logging': False,
|
||||
'enable-nfg-logging': False,
|
||||
'enable-port-forwarding': False,
|
||||
'enable-fwaas': True,
|
||||
'global-physnet-mtu': 1500,
|
||||
'physical-network-mtus': None,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue