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):
|
def on_present(self, service):
|
||||||
lbaas_spec = self._get_lbaas_spec(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):
|
if self._has_lbaas_spec_changes(service, lbaas_spec):
|
||||||
lbaas_spec = self._generate_lbaas_spec(service)
|
lbaas_spec = self._generate_lbaas_spec(service)
|
||||||
self._set_lbaas_spec(service, lbaas_spec)
|
self._set_lbaas_spec(service, lbaas_spec)
|
||||||
@ -53,6 +58,12 @@ class LBaaSSpecHandler(k8s_base.ResourceEventHandler):
|
|||||||
if spec.get('type') == 'ClusterIP':
|
if spec.get('type') == 'ClusterIP':
|
||||||
return spec.get('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):
|
def _get_subnet_id(self, service, project_id, ip):
|
||||||
subnets_mapping = self._drv_subnets.get_subnets(service, project_id)
|
subnets_mapping = self._drv_subnets.get_subnets(service, project_id)
|
||||||
subnet_ids = {
|
subnet_ids = {
|
||||||
|
@ -55,6 +55,7 @@ class TestLBaaSSpecHandler(test_base.TestCase):
|
|||||||
m_handler._get_lbaas_spec.return_value = old_spec
|
m_handler._get_lbaas_spec.return_value = old_spec
|
||||||
m_handler._has_lbaas_spec_changes.return_value = True
|
m_handler._has_lbaas_spec_changes.return_value = True
|
||||||
m_handler._generate_lbaas_spec.return_value = new_spec
|
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)
|
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 = mock.Mock(spec=h_lbaas.LBaaSSpecHandler)
|
||||||
m_handler._get_lbaas_spec.return_value = old_spec
|
m_handler._get_lbaas_spec.return_value = old_spec
|
||||||
m_handler._has_lbaas_spec_changes.return_value = False
|
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)
|
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._generate_lbaas_spec.assert_not_called()
|
||||||
m_handler._set_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):
|
def test_get_service_ip(self):
|
||||||
svc_body = {'spec': {'type': 'ClusterIP',
|
svc_body = {'spec': {'type': 'ClusterIP',
|
||||||
'clusterIP': mock.sentinel.cluster_ip}}
|
'clusterIP': mock.sentinel.cluster_ip}}
|
||||||
|
Loading…
Reference in New Issue
Block a user