Improve readability of vif handler on_present skip reason

Change-Id: Ic55b90eec7ba4050a2c75ef5f2d5a750bcc628db
This commit is contained in:
Luis Tomas Bolivar 2019-09-03 11:40:10 +02:00
parent ff7b449529
commit ce5551bacf
2 changed files with 13 additions and 12 deletions

View File

@ -79,7 +79,8 @@ class VIFHandler(k8s_base.ResourceEventHandler):
drivers.ServiceSecurityGroupsDriver.get_instance())
def on_present(self, pod):
if driver_utils.is_host_network(pod) or not self._is_pending_node(pod):
if (driver_utils.is_host_network(pod) or
not self._is_pod_scheduled(pod)):
# REVISIT(ivc): consider an additional configurable check that
# would allow skipping pods to enable heterogeneous environments
# where certain pods/namespaces/nodes can be managed by other
@ -193,8 +194,8 @@ class VIFHandler(k8s_base.ResourceEventHandler):
return True
@staticmethod
def _is_pending_node(pod):
"""Checks if Pod is in PENDGING status and has node assigned."""
def _is_pod_scheduled(pod):
"""Checks if Pod is in PENDING status and has node assigned."""
try:
return (pod['spec']['nodeName'] and
pod['status']['phase'] == constants.K8S_POD_STATUS_PENDING)

View File

@ -69,13 +69,13 @@ class TestVIFHandler(test_base.TestCase):
self._release_vif = self._handler._drv_vif_pool.release_vif
self._activate_vif = self._handler._drv_vif_pool.activate_vif
self._set_pod_state = self._handler._set_pod_state
self._is_pending_node = self._handler._is_pending_node
self._is_pod_scheduled = self._handler._is_pod_scheduled
self._request_additional_vifs = \
self._multi_vif_drv.request_additional_vifs
self._request_vif.return_value = self._vif
self._request_additional_vifs.return_value = self._additioan_vifs
self._is_pending_node.return_value = True
self._is_pod_scheduled.return_value = True
self._get_project.return_value = self._project_id
self._get_subnets.return_value = self._subnets
self._get_security_groups.return_value = self._security_groups
@ -124,20 +124,20 @@ class TestVIFHandler(test_base.TestCase):
self.assertEqual(lbaas_driver, handler._drv_lbaas)
self.assertEqual(svc_sg_driver, handler._drv_svc_sg)
def test_is_pending_node(self):
self.assertTrue(h_vif.VIFHandler._is_pending_node(self._pod))
def test_is_pod_scheduled(self):
self.assertTrue(h_vif.VIFHandler._is_pod_scheduled(self._pod))
def test_is_not_pending(self):
self._pod['status']['phase'] = 'Unknown'
self.assertFalse(h_vif.VIFHandler._is_pending_node(self._pod))
self.assertFalse(h_vif.VIFHandler._is_pod_scheduled(self._pod))
def test_is_pending_no_node(self):
self._pod['spec']['nodeName'] = None
self.assertFalse(h_vif.VIFHandler._is_pending_node(self._pod))
self.assertFalse(h_vif.VIFHandler._is_pod_scheduled(self._pod))
def test_unset_pending(self):
self.assertFalse(h_vif.VIFHandler._is_pending_node({'spec': {},
'status': {}}))
self.assertFalse(h_vif.VIFHandler._is_pod_scheduled({'spec': {},
'status': {}}))
@mock.patch('kuryr_kubernetes.controller.drivers.utils.'
'update_port_pci_info')
@ -175,7 +175,7 @@ class TestVIFHandler(test_base.TestCase):
def test_on_present_not_pending(self, m_get_pod_state, m_host_network):
m_get_pod_state.return_value = self._state
m_host_network.return_value = False
self._is_pending_node.return_value = False
self._is_pod_scheduled.return_value = False
h_vif.VIFHandler.on_present(self._handler, self._pod)