Skip to content
Snippets Groups Projects
Commit 816bbd64 authored by Lukasz Lopatowski's avatar Lukasz Lopatowski
Browse files

Added action for checking if service exists

parent 863e256f
Branches develop
No related tags found
No related merge requests found
...@@ -36,7 +36,7 @@ message InfoServiceResponse { ...@@ -36,7 +36,7 @@ message InfoServiceResponse {
string api = 1; string api = 1;
Status status = 2; Status status = 2;
string message = 3; string message = 3;
string info = 4; string info = 4;
} }
message InstanceCredentialsRequest { message InstanceCredentialsRequest {
...@@ -65,4 +65,5 @@ service ReadinessService { ...@@ -65,4 +65,5 @@ service ReadinessService {
service InformationService { service InformationService {
rpc RetrieveServiceIp(InstanceRequest) returns (InfoServiceResponse); rpc RetrieveServiceIp(InstanceRequest) returns (InfoServiceResponse);
} rpc CheckServiceExists(InstanceRequest) returns (InfoServiceResponse);
\ No newline at end of file }
#!/bin/bash #!/bin/bash
TAG=1.3.2 TAG=1.4.1
WHAT=janitor WHAT=janitor
sudo docker build --rm -t artifactory.software.geant.org/nmaas-docker-local/nmaas-$WHAT:$TAG . sudo docker build --rm -t artifactory.software.geant.org/nmaas-docker-local/nmaas-$WHAT:$TAG .
sudo docker push artifactory.software.geant.org/nmaas-docker-local/nmaas-$WHAT:$TAG sudo docker push artifactory.software.geant.org/nmaas-docker-local/nmaas-$WHAT:$TAG
...@@ -550,3 +550,31 @@ func (s *informationServiceServer) RetrieveServiceIp(ctx context.Context, req *v ...@@ -550,3 +550,31 @@ func (s *informationServiceServer) RetrieveServiceIp(ctx context.Context, req *v
} }
} }
func (s *informationServiceServer) CheckServiceExists(ctx context.Context, req *v1.InstanceRequest) (*v1.InfoServiceResponse, error) {
log.Printf("Entered CheckServiceExists method")
// check if the API version requested by client is supported by server
if err := checkAPI(req.Api, apiVersion); err != nil {
return nil, err
}
depl := req.Deployment
//check if given k8s namespace exists
_, err := s.kubeAPI.CoreV1().Namespaces().Get(ctx, depl.Namespace, metav1.GetOptions{})
if err != nil {
return prepareInfoResponse(v1.Status_FAILED, namespaceNotFound, ""), err
}
log.Printf("About to read service %s details from namespace %s", depl.Uid, depl.Namespace)
ser, err := s.kubeAPI.CoreV1().Services(depl.Namespace).Get(ctx, depl.Uid, metav1.GetOptions{})
if err != nil {
return prepareInfoResponse(v1.Status_FAILED, "Service not found!", ""), err
}
return prepareInfoResponse(v1.Status_OK, "", ser.Name), err
}
...@@ -197,6 +197,46 @@ func TestInformationServiceServer_RetrieveServiceIp(t *testing.T) { ...@@ -197,6 +197,46 @@ func TestInformationServiceServer_RetrieveServiceIp(t *testing.T) {
} }
} }
func TestInformationServiceServer_CheckServiceExists(t *testing.T) {
client := testclient.NewSimpleClientset()
server := NewInformationServiceServer(client)
//Fail on API version check
res, err := server.CheckServiceExists(context.Background(), &illegal_req)
if err == nil || res != nil {
t.Fail()
}
//Fail on namespace check
freq := v1.InstanceRequest{Api:apiVersion, Deployment:&fake_ns_inst}
res, err = server.CheckServiceExists(context.Background(), &freq)
if err == nil || res.Status != v1.Status_FAILED {
t.Fail()
}
//create mock namespace
ns := corev1.Namespace{}
ns.Name = "test-namespace"
_, _ = client.CoreV1().Namespaces().Create(context.Background(), &ns, metav1.CreateOptions{})
//Fail on loading services
res, err = server.CheckServiceExists(context.Background(), &req)
if err == nil || res.Status != v1.Status_FAILED || res.Message != "Service not found!" {
t.Fail()
}
//create mock service without ingress
s1 := corev1.Service{}
s1.Name = "test-uid"
_, _ = client.CoreV1().Services("test-namespace").Create(context.Background(), &s1, metav1.CreateOptions{})
//Pass
res, err = server.CheckServiceExists(context.Background(), &req)
if res.Status != v1.Status_OK {
t.Fail()
}
}
func TestCertManagerServiceServer_DeleteIfExists(t *testing.T) { func TestCertManagerServiceServer_DeleteIfExists(t *testing.T) {
client := testclient.NewSimpleClientset() client := testclient.NewSimpleClientset()
server := NewCertManagerServiceServer(client) server := NewCertManagerServiceServer(client)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment