github.com/cilium/cilium@v1.16.2/pkg/endpoint/endpoint_status_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package endpoint
     5  
     6  import (
     7  	"context"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/cilium/cilium/api/v1/models"
    13  	v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2"
    14  	testipcache "github.com/cilium/cilium/pkg/testutils/ipcache"
    15  )
    16  
    17  func TestGetCiliumEndpointStatus(t *testing.T) {
    18  	s := setupEndpointSuite(t)
    19  
    20  	e, err := NewEndpointFromChangeModel(context.TODO(), s, s, testipcache.NewMockIPCache(), &FakeEndpointProxy{}, s.mgr, &models.EndpointChangeRequest{
    21  		Addressing: &models.AddressPair{
    22  			IPV4: "192.168.1.100",
    23  			IPV6: "f00d::a10:0:0:abcd",
    24  		},
    25  		ContainerID:   "ContainerID",
    26  		ContainerName: "ContainerName",
    27  		K8sPodName:    "PodName",
    28  		K8sNamespace:  "Namespace",
    29  		ID:            200,
    30  		Labels: models.Labels{
    31  			"k8s:io.cilium.k8s.policy.cluster=default",
    32  			"k8s:io.cilium.k8s.policy.serviceaccount=default",
    33  			"k8s:io.kubernetes.pod.namespace=default",
    34  			"k8s:name=probe",
    35  		},
    36  		State: models.EndpointStateWaitingDashForDashIdentity.Pointer(),
    37  	})
    38  	require.Nil(t, err)
    39  
    40  	status := e.GetCiliumEndpointStatus()
    41  
    42  	require.Equal(t, int64(200), status.ID)
    43  	require.Equal(t, string(models.EndpointStateWaitingDashForDashIdentity), status.State)
    44  	require.Nil(t, status.Log)
    45  	require.Equal(t, &models.EndpointIdentifiers{
    46  		ContainerID:     "ContainerID",
    47  		CniAttachmentID: "ContainerID",
    48  		ContainerName:   "ContainerName",
    49  		K8sNamespace:    "Namespace",
    50  		K8sPodName:      "PodName",
    51  		PodName:         "Namespace/PodName",
    52  	}, status.ExternalIdentifiers)
    53  	require.Nil(t, status.Identity)
    54  	require.Equal(t, &v2.EndpointNetworking{Addressing: []*v2.AddressPair{{IPV4: "192.168.1.100", IPV6: "f00d::a10:0:0:abcd"}}, NodeIP: "<nil>"}, status.Networking)
    55  	require.Equal(t, v2.EncryptionSpec{Key: 0}, status.Encryption)
    56  	require.Equal(t, models.NamedPorts{}, status.NamedPorts)
    57  }