Add namespace info to created ports

This patch add information about the namespace the pod is running on
at the Neutron port name (when port_debug set to True). For debugging
it may be nice to differentiate between ports belonging to pods with
the same name but in different namespaces

Depends-on: Idab7e0fe9ecc6e23a2d27d89b81ac9bd4ad8ca68
Change-Id: I783f2ff58ff079a45d79f380645ed064d19032f3
This commit is contained in:
Luis Tomas Bolivar 2018-02-27 14:16:25 +01:00
parent db9d28da79
commit 41173016f2
4 changed files with 21 additions and 9 deletions

View File

@ -132,7 +132,7 @@ class NeutronPodVIFDriver(base.PodVIFDriver):
return ids[0]
def _get_port_name(self, pod):
return pod['metadata']['name']
return "%(namespace)s/%(name)s" % pod['metadata']
def _get_device_id(self, pod):
return pod['metadata']['uid']

View File

@ -223,6 +223,9 @@ class BaseVIFPool(base.VIFPoolDriver):
except IOError:
LOG.exception("I/O error creating the health check file.")
def _get_port_name(self, pod):
return "%(namespace)s/%(name)s" % pod['metadata']
class NeutronVIFPool(BaseVIFPool):
"""Manages VIFs for Bare Metal Kubernetes Pods."""
@ -241,7 +244,7 @@ class NeutronVIFPool(BaseVIFPool):
port_id,
{
"port": {
'name': pod['metadata']['name'],
'name': self._get_port_name(pod),
'device_id': pod['metadata']['uid']
}
})
@ -370,7 +373,7 @@ class NestedVIFPool(BaseVIFPool):
port_id,
{
"port": {
'name': pod['metadata']['name'],
'name': self._get_port_name(pod),
}
})
# check if the pool needs to be populated

View File

@ -327,9 +327,10 @@ class NeutronPodVIFDriver(test_base.TestCase):
cls = neutron_vif.NeutronPodVIFDriver
m_driver = mock.Mock(spec=cls)
pod_name = mock.sentinel.pod_name
pod = {'metadata': {'name': pod_name}}
port_name = 'default/' + str(pod_name)
pod = {'metadata': {'name': pod_name, 'namespace': 'default'}}
self.assertEqual(pod_name, cls._get_port_name(m_driver, pod))
self.assertEqual(port_name, cls._get_port_name(m_driver, pod))
def test_get_device_id(self):
cls = neutron_vif.NeutronPodVIFDriver

View File

@ -59,6 +59,10 @@ def get_pod_obj():
}}
def get_pod_name(pod):
return "%(namespace)s/%(name)s" % pod['metadata']
def get_port_obj(port_id=None, device_owner=None, ip_address=None):
port_obj = {
'allowed_address_pairs': [],
@ -333,6 +337,7 @@ class NeutronVIFPool(test_base.TestCase):
m_driver._available_ports_pools = {
pool_key: collections.deque([port_id])}
m_driver._existing_vifs = {port_id: port}
m_driver._get_port_name.return_value = get_pod_name(pod)
oslo_cfg.CONF.set_override('ports_pool_min',
5,
@ -353,7 +358,7 @@ class NeutronVIFPool(test_base.TestCase):
port_id,
{
"port": {
'name': pod['metadata']['name'],
'name': get_pod_name(pod),
'device_id': pod['metadata']['uid']
}
})
@ -375,6 +380,7 @@ class NeutronVIFPool(test_base.TestCase):
m_driver._available_ports_pools = {
pool_key: collections.deque([port_id])}
m_driver._existing_vifs = {port_id: port}
m_driver._get_port_name.return_value = get_pod_name(pod)
oslo_cfg.CONF.set_override('ports_pool_min',
5,
@ -392,7 +398,7 @@ class NeutronVIFPool(test_base.TestCase):
port_id,
{
"port": {
'name': pod['metadata']['name'],
'name': get_pod_name(pod),
'device_id': pod['metadata']['uid']
}
})
@ -713,6 +719,7 @@ class NestedVIFPool(test_base.TestCase):
m_driver._available_ports_pools = {
pool_key: collections.deque([port_id])}
m_driver._existing_vifs = {port_id: port}
m_driver._get_port_name.return_value = get_pod_name(pod)
oslo_cfg.CONF.set_override('ports_pool_min',
5,
@ -730,7 +737,7 @@ class NestedVIFPool(test_base.TestCase):
port_id,
{
"port": {
'name': pod['metadata']['name'],
'name': get_pod_name(pod),
}
})
m_eventlet.assert_not_called()
@ -751,6 +758,7 @@ class NestedVIFPool(test_base.TestCase):
m_driver._available_ports_pools = {
pool_key: collections.deque([port_id])}
m_driver._existing_vifs = {port_id: port}
m_driver._get_port_name.return_value = get_pod_name(pod)
oslo_cfg.CONF.set_override('ports_pool_min',
5,
@ -768,7 +776,7 @@ class NestedVIFPool(test_base.TestCase):
port_id,
{
"port": {
'name': pod['metadata']['name'],
'name': get_pod_name(pod),
}
})
m_eventlet.assert_called_once()