diff --git a/kuryr_kubernetes/controller/drivers/neutron_vif.py b/kuryr_kubernetes/controller/drivers/neutron_vif.py index b45b0acb7..fc9a1ee54 100644 --- a/kuryr_kubernetes/controller/drivers/neutron_vif.py +++ b/kuryr_kubernetes/controller/drivers/neutron_vif.py @@ -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'] diff --git a/kuryr_kubernetes/controller/drivers/vif_pool.py b/kuryr_kubernetes/controller/drivers/vif_pool.py index f86a9a80e..840f5acc6 100644 --- a/kuryr_kubernetes/controller/drivers/vif_pool.py +++ b/kuryr_kubernetes/controller/drivers/vif_pool.py @@ -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 diff --git a/kuryr_kubernetes/tests/unit/controller/drivers/test_neutron_vif.py b/kuryr_kubernetes/tests/unit/controller/drivers/test_neutron_vif.py index 58c293688..de279cd7a 100644 --- a/kuryr_kubernetes/tests/unit/controller/drivers/test_neutron_vif.py +++ b/kuryr_kubernetes/tests/unit/controller/drivers/test_neutron_vif.py @@ -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 diff --git a/kuryr_kubernetes/tests/unit/controller/drivers/test_vif_pool.py b/kuryr_kubernetes/tests/unit/controller/drivers/test_vif_pool.py index f80e1347d..313a976c8 100644 --- a/kuryr_kubernetes/tests/unit/controller/drivers/test_vif_pool.py +++ b/kuryr_kubernetes/tests/unit/controller/drivers/test_vif_pool.py @@ -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()