def test_has_port_changes(self, m_get_service_ports): service = { 'metadata': { 'selfLink': "" }, 'spec': { 'ports': [ { 'port': 1, 'name': 'X', 'protocol': 'TCP', 'targetPort': '1' } ] } } lb_crd_spec = { 'spec': { 'ports': [ { 'name': 'Y', 'protocol': 'TCP', 'port': 2, 'targetPort': 2 } ] } } ret = utils.has_port_changes(service, lb_crd_spec) self.assertTrue(ret)
def test_has_port_changes__no_changes(self, m_get_service_ports): service = mock.MagicMock() m_get_service_ports.return_value = [{ 'port': 1, 'name': 'X', 'protocol': 'TCP', 'targetPort': '1' }, { 'port': 2, 'name': 'Y', 'protocol': 'TCP', 'targetPort': '2' }] lbaas_spec = mock.MagicMock() lbaas_spec.ports = [ obj_lbaas.LBaaSPortSpec(name='X', protocol='TCP', port=1, targetPort=1), obj_lbaas.LBaaSPortSpec(name='Y', protocol='TCP', port=2, targetPort=2), ] ret = utils.has_port_changes(service, lbaas_spec) self.assertFalse(ret)
def test_has_port_changes_more_ports(self, m_get_service_ports): service = { 'apiVersion': 'v1', 'kind': 'Service', 'metadata': { 'name': 'serv-1', 'namespace': 'ns1' }, 'spec': { 'ports': [{ 'port': 1, 'name': 'X', 'protocol': 'TCP', 'targetPort': '1' }] } } lb_crd_spec = { 'spec': { 'ports': [{ 'name': 'X', 'protocol': 'TCP', 'port': 1, 'targetPort': 1 }, { 'name': 'Y', 'protocol': 'TCP', 'port': 2, 'targetPort': 2 }] } } ret = utils.has_port_changes(service, lb_crd_spec) self.assertTrue(ret)
def _svc_handler_annotations_updated(self, endpoints, lbaas_spec): svc_link = self._get_service_link(endpoints) k8s = clients.get_kubernetes_client() service = k8s.get(svc_link) if utils.has_port_changes(service, lbaas_spec): # NOTE(ltomasbo): Ensuring lbaas_spec annotated on the endpoints # is in sync with the service status, i.e., upon a service # modification it will ensure endpoint modifications are not # handled until the service handler has performed its annotations return False return True
def _has_lbaas_spec_changes(self, service, loadbalancer_crd): return (self._has_ip_changes(service, loadbalancer_crd) or utils.has_port_changes(service, loadbalancer_crd) or self._has_timeout_changes(service, loadbalancer_crd))
def _has_lbaas_spec_changes(self, service, lbaas_spec): return (self._has_ip_changes(service, lbaas_spec) or utils.has_port_changes(service, lbaas_spec))
def _has_lbaas_spec_changes(self, endpoints, loadbalancer_crd): return (self._has_ip_changes(endpoints, loadbalancer_crd) or utils.has_port_changes(endpoints, loadbalancer_crd))