Quellcode durchsuchen

Fix get pod endpoint not returning 404

jnfrati vor 4 Jahren
Ursprung
Commit
b6d935f765
2 geänderte Dateien mit 8 neuen und 2 gelöschten Zeilen
  1. 1 1
      api/server/handlers/namespace/get_pod.go
  2. 7 1
      internal/kubernetes/agent.go

+ 1 - 1
api/server/handlers/namespace/get_pod.go

@@ -57,7 +57,7 @@ func (c *GetPodHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 
 	pod, err := agent.GetPodByName(name, namespace)
 
-	if targetErr := kubernetes.IsNotFoundError; errors.Is(err, targetErr) {
+	if errors.Is(err, kubernetes.IsNotFoundError) {
 		c.HandleAPIError(w, r, apierrors.NewErrPassThroughToClient(
 			fmt.Errorf("pod %s/%s was not found", namespace, name),
 			http.StatusNotFound,

+ 7 - 1
internal/kubernetes/agent.go

@@ -521,11 +521,17 @@ func (a *Agent) GetPodsByLabel(selector string, namespace string) (*v1.PodList,
 // GetPodByName retrieves a single instance of pod with given name
 func (a *Agent) GetPodByName(name string, namespace string) (*v1.Pod, error) {
 	// Get pod by name
-	return a.Clientset.CoreV1().Pods(namespace).Get(
+	pod, err := a.Clientset.CoreV1().Pods(namespace).Get(
 		context.TODO(),
 		name,
 		metav1.GetOptions{},
 	)
+
+	if err != nil && errors.IsNotFound(err) {
+		return nil, IsNotFoundError
+	}
+
+	return pod, nil
 }
 
 // DeletePod deletes a pod by name and namespace