Selaa lähdekoodia

debugging check origin with log line (#2863)

Stefan McShane 3 vuotta sitten
vanhempi
sitoutus
fd8de4596a

+ 18 - 0
api/server/handlers/api_contract/update.go

@@ -1,7 +1,9 @@
 package api_contract
 
 import (
+	"database/sql"
 	"encoding/base64"
+	"errors"
 	"fmt"
 	"net/http"
 
@@ -47,6 +49,22 @@ func (c *APIContractUpdateHandler) ServeHTTP(w http.ResponseWriter, r *http.Requ
 		return
 	}
 
+	existingClusters, err := c.Config().Repo.Cluster().ListClustersByProjectID(uint(apiContract.Cluster.ProjectId))
+	if err != nil {
+		if !errors.Is(err, sql.ErrNoRows) {
+			e := fmt.Errorf("error listing clusters for given project ID: %w", err)
+			c.HandleAPIError(w, r, apierrors.NewErrInternal(e))
+			return
+		}
+	}
+	for _, cluster := range existingClusters {
+		if cluster.Name == apiContract.Cluster.GetEksKind().ClusterName {
+			e := fmt.Errorf("cluster already exists in project %d called %s", cluster.ProjectID, cluster.Name)
+			c.HandleAPIError(w, r, apierrors.NewErrInternal(e))
+			return
+		}
+	}
+
 	if !project.CapiProvisionerEnabled && !c.Config().EnableCAPIProvisioner {
 		// return dummy data if capi provisioner disabled in project settings, and as env var
 		// TODO: remove this stub when we can spin up all services locally, easily

+ 5 - 0
api/server/shared/config/loader/loader.go

@@ -230,6 +230,11 @@ func (e *EnvConfigLoader) LoadConfig() (res *config.Config, err error) {
 			ReadBufferSize:  1024,
 			WriteBufferSize: 1024,
 			CheckOrigin: func(r *http.Request) bool {
+				var err error
+				defer func() {
+					// TODO: this is only used to collect data for removing the `request origin not allowed by Upgrader.CheckOrigin` error
+					res.Logger.Info().Msgf("error: %s, host: %s, origin: %s, serverURL: %s", err.Error(), r.Host, r.Header.Get("Origin"), sc.ServerURL)
+				}()
 				origin := r.Header.Get("Origin")
 
 				// // check if the server url is localhost, and allow all localhost origins