Skip to content

Commit 9b09847

Browse files
Madhu-1mergify[bot]
authored andcommitted
sidecar: add GetFenceClients RPC
added GetFenceClients RPC to the sidecar service to make RPC call to the csi driver Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
1 parent 934304e commit 9b09847

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

internal/sidecar/service/networkfence.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,48 @@ func getCIDRS(cidr []string) []*fence.CIDR {
115115
}
116116
return cidrs
117117
}
118+
119+
// GetFenceClients fetches required information from kubernetes cluster and calls
120+
// CSI-Addons GetFenceClients service.
121+
func (ns *NetworkFenceServer) GetFenceClients(
122+
ctx context.Context,
123+
req *proto.FenceClientsRequest) (*proto.FenceClientsResponse, error) {
124+
data := map[string]string{}
125+
var err error
126+
// Get the secrets from the k8s cluster if secret name or namespace is provided
127+
if req.GetSecretName() != "" || req.GetSecretNamespace() != "" {
128+
data, err = kube.GetSecret(ctx, ns.kubeClient, req.GetSecretName(), req.GetSecretNamespace())
129+
if err != nil {
130+
klog.Errorf("Failed to get secret %s in namespace %s: %v", req.GetSecretName(), req.GetSecretNamespace(), err)
131+
return nil, status.Error(codes.InvalidArgument, err.Error())
132+
}
133+
}
134+
135+
getFenceClientRequest := fence.GetFenceClientsRequest{
136+
Parameters: req.GetParameters(),
137+
Secrets: data,
138+
}
139+
140+
resp, err := ns.controllerClient.GetFenceClients(ctx, &getFenceClientRequest)
141+
if err != nil {
142+
klog.Errorf("Failed to get fence clients: %v", err)
143+
return nil, err
144+
}
145+
response := &proto.FenceClientsResponse{}
146+
for _, client := range resp.Clients {
147+
response.Clients = append(response.Clients, &proto.ClientDetails{
148+
Id: client.Id,
149+
Cidrs: cidrsFromFenceCIDR(client.Addresses),
150+
})
151+
}
152+
153+
return response, nil
154+
}
155+
156+
func cidrsFromFenceCIDR(cidr []*fence.CIDR) []string {
157+
cidrs := []string{}
158+
for _, c := range cidr {
159+
cidrs = append(cidrs, c.Cidr)
160+
}
161+
return cidrs
162+
}

0 commit comments

Comments
 (0)