Просмотр исходного кода

Merge pull request #1259 from porter-dev/staging

Release not found + infra logs -> production
abelanger5 4 лет назад
Родитель
Сommit
17deb9b66d
2 измененных файлов с 14 добавлено и 3 удалено
  1. 13 1
      api/server/authz/release.go
  2. 1 2
      internal/kubernetes/provisioner/resource_stream.go

+ 13 - 1
api/server/authz/release.go

@@ -2,7 +2,9 @@ package authz
 
 import (
 	"context"
+	"fmt"
 	"net/http"
+	"strings"
 
 	"github.com/porter-dev/porter/api/server/shared/apierrors"
 	"github.com/porter-dev/porter/api/server/shared/config"
@@ -52,7 +54,17 @@ func (p *ReleaseScopedMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Reque
 	release, err := helmAgent.GetRelease(name, int(version), false)
 
 	if err != nil {
-		apierrors.HandleAPIError(p.config, w, r, apierrors.NewErrInternal(err))
+		// ugly casing since at the time of this commit Helm doesn't have an errors package.
+		// so we rely on the Helm error containing "not found"
+		if strings.Contains(err.Error(), "not found") {
+			apierrors.HandleAPIError(p.config, w, r, apierrors.NewErrPassThroughToClient(
+				fmt.Errorf("release not found"),
+				http.StatusNotFound,
+			))
+		} else {
+			apierrors.HandleAPIError(p.config, w, r, apierrors.NewErrInternal(err))
+		}
+
 		return
 	}
 

+ 1 - 2
internal/kubernetes/provisioner/resource_stream.go

@@ -18,7 +18,7 @@ func ResourceStream(client *redis.Client, streamName string, conn *websocket.Con
 
 			if err != nil {
 				defer conn.Close()
-				errorchan <- err
+				errorchan <- nil
 				return
 			}
 		}
@@ -28,7 +28,6 @@ func ResourceStream(client *redis.Client, streamName string, conn *websocket.Con
 		lastID := "0-0"
 
 		for {
-
 			xstream, err := client.XRead(
 				context.Background(),
 				&redis.XReadArgs{