Skip to content
Snippets Groups Projects
Unverified Commit 1fbbdd0e authored by Łukasz Łopatowski's avatar Łukasz Łopatowski Committed by GitHub
Browse files

Merge pull request #20 from nmaas-platform/17-implement-new-api-methods-for-pod-logs-access

Added support for container names for pod logs access
parents 59276e1f 1c18b3d1
No related branches found
No related tags found
No related merge requests found
...@@ -25,6 +25,7 @@ message Credentials { ...@@ -25,6 +25,7 @@ message Credentials {
message PodInfo { message PodInfo {
string name = 1; string name = 1;
string displayName = 2; string displayName = 2;
repeated string containers = 3;
} }
message InstanceRequest { message InstanceRequest {
......
...@@ -640,7 +640,10 @@ func (s *podServiceServer) RetrievePodList(ctx context.Context, req *v1.Instance ...@@ -640,7 +640,10 @@ func (s *podServiceServer) RetrievePodList(ctx context.Context, req *v1.Instance
logLine(fmt.Sprintf("Filtering pods by deployment %s", depl.Uid)) logLine(fmt.Sprintf("Filtering pods by deployment %s", depl.Uid))
for _, pod := range allPods.Items { for _, pod := range allPods.Items {
if (strings.HasPrefix(pod.Name, depl.Uid + "-")) { if (strings.HasPrefix(pod.Name, depl.Uid + "-")) {
newPod := &v1.PodInfo{Name: pod.Name, DisplayName: pod.Name,} newPod := &v1.PodInfo{Name: pod.Name, DisplayName: pod.Name, Containers: make([]string, 0)}
for container := range pod.Spec.Containers {
newPod.Containers = append(newPod.Containers, pod.Spec.Containers[container].Name)
}
matchingPods = append(matchingPods, newPod) matchingPods = append(matchingPods, newPod)
} }
} }
...@@ -672,8 +675,15 @@ func (s *podServiceServer) RetrievePodLogs(ctx context.Context, req *v1.PodReque ...@@ -672,8 +675,15 @@ func (s *podServiceServer) RetrievePodLogs(ctx context.Context, req *v1.PodReque
} }
//collecting logs from given pod //collecting logs from given pod
logLine(fmt.Sprintf("Collecting logs from pod %s in namespace %s", pod.Name, depl.Namespace)) var opts apiv1.PodLogOptions
logsRequest := s.kubeAPI.CoreV1().Pods(depl.Namespace).GetLogs(pod.Name, &apiv1.PodLogOptions{}) if len(pod.Containers) == 0 {
opts = apiv1.PodLogOptions{}
} else {
opts = apiv1.PodLogOptions{Container: pod.Containers[0]}
}
logLine(fmt.Sprintf("Collecting logs from pod/container %s/%s in namespace %s", pod.Name, opts.Container, depl.Namespace))
logsRequest := s.kubeAPI.CoreV1().Pods(depl.Namespace).GetLogs(pod.Name, &opts)
podLogs, err := logsRequest.Stream(ctx) podLogs, err := logsRequest.Stream(ctx)
if err != nil { if err != nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment