Merge "Skips kubernetes service without selector"
This commit is contained in:
commit
b29c54c0f5
@ -44,6 +44,11 @@ class LBaaSSpecHandler(k8s_base.ResourceEventHandler):
|
||||
def on_present(self, service):
|
||||
lbaas_spec = self._get_lbaas_spec(service)
|
||||
|
||||
if self._should_ignore(service):
|
||||
LOG.debug("Skiping Kubernetes service without a selector as "
|
||||
"Kubernetes does not create an endpoint object for it.")
|
||||
return
|
||||
|
||||
if self._has_lbaas_spec_changes(service, lbaas_spec):
|
||||
lbaas_spec = self._generate_lbaas_spec(service)
|
||||
self._set_lbaas_spec(service, lbaas_spec)
|
||||
@ -53,6 +58,12 @@ class LBaaSSpecHandler(k8s_base.ResourceEventHandler):
|
||||
if spec.get('type') == 'ClusterIP':
|
||||
return spec.get('clusterIP')
|
||||
|
||||
def _should_ignore(self, service):
|
||||
return not(self._has_selector(service))
|
||||
|
||||
def _has_selector(self, service):
|
||||
return service['spec'].get('selector')
|
||||
|
||||
def _get_subnet_id(self, service, project_id, ip):
|
||||
subnets_mapping = self._drv_subnets.get_subnets(service, project_id)
|
||||
subnet_ids = {
|
||||
|
@ -55,6 +55,7 @@ class TestLBaaSSpecHandler(test_base.TestCase):
|
||||
m_handler._get_lbaas_spec.return_value = old_spec
|
||||
m_handler._has_lbaas_spec_changes.return_value = True
|
||||
m_handler._generate_lbaas_spec.return_value = new_spec
|
||||
m_handler._should_ignore.return_value = False
|
||||
|
||||
h_lbaas.LBaaSSpecHandler.on_present(m_handler, svc_event)
|
||||
|
||||
@ -71,6 +72,7 @@ class TestLBaaSSpecHandler(test_base.TestCase):
|
||||
m_handler = mock.Mock(spec=h_lbaas.LBaaSSpecHandler)
|
||||
m_handler._get_lbaas_spec.return_value = old_spec
|
||||
m_handler._has_lbaas_spec_changes.return_value = False
|
||||
m_handler._should_ignore.return_value = False
|
||||
|
||||
h_lbaas.LBaaSSpecHandler.on_present(m_handler, svc_event)
|
||||
|
||||
@ -80,6 +82,21 @@ class TestLBaaSSpecHandler(test_base.TestCase):
|
||||
m_handler._generate_lbaas_spec.assert_not_called()
|
||||
m_handler._set_lbaas_spec.assert_not_called()
|
||||
|
||||
def test_on_present_no_selector(self):
|
||||
svc_event = mock.sentinel.svc_event
|
||||
old_spec = mock.sentinel.old_spec
|
||||
|
||||
m_handler = mock.Mock(spec=h_lbaas.LBaaSSpecHandler)
|
||||
m_handler._get_lbaas_spec.return_value = old_spec
|
||||
m_handler._should_ignore.return_value = True
|
||||
|
||||
h_lbaas.LBaaSSpecHandler.on_present(m_handler, svc_event)
|
||||
|
||||
m_handler._get_lbaas_spec.assert_called_once_with(svc_event)
|
||||
m_handler._has_lbaas_spec_changes.assert_not_called()
|
||||
m_handler._generate_lbaas_spec.assert_not_called()
|
||||
m_handler._set_lbaas_spec.assert_not_called()
|
||||
|
||||
def test_get_service_ip(self):
|
||||
svc_body = {'spec': {'type': 'ClusterIP',
|
||||
'clusterIP': mock.sentinel.cluster_ip}}
|
||||
|
Loading…
Reference in New Issue
Block a user