Example #1
0
 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)
Example #4
0
 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
Example #5
0
 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))
Example #6
0
 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))
Example #7
0
 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))