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

POR-2017 call ccp to create deployment target (#3857)

ianedwards 2 лет назад
Родитель
Сommit
7af75c86f2
3 измененных файлов с 20 добавлено и 37 удалено
  1. 17 34
      api/server/handlers/deployment_target/create.go
  2. 1 1
      go.mod
  3. 2 2
      go.sum

+ 17 - 34
api/server/handlers/deployment_target/create.go

@@ -3,7 +3,8 @@ package deployment_target
 import (
 	"net/http"
 
-	"github.com/google/uuid"
+	"connectrpc.com/connect"
+	porterv1 "github.com/porter-dev/api-contracts/generated/go/porter/v1"
 	"github.com/porter-dev/porter/api/server/handlers"
 	"github.com/porter-dev/porter/api/server/shared"
 	"github.com/porter-dev/porter/api/server/shared/apierrors"
@@ -66,51 +67,33 @@ func (c *CreateDeploymentTargetHandler) ServeHTTP(w http.ResponseWriter, r *http
 		return
 	}
 
-	var res *CreateDeploymentTargetResponse
+	createReq := connect.NewRequest(&porterv1.CreateDeploymentTargetRequest{
+		ProjectId: int64(project.ID),
+		ClusterId: int64(cluster.ID),
+		Name:      request.Selector,
+		Namespace: request.Selector,
+		IsPreview: request.Preview,
+	})
 
-	existingDeploymentTarget, err := c.Repo().DeploymentTarget().DeploymentTargetBySelectorAndSelectorType(
-		project.ID,
-		cluster.ID,
-		request.Selector,
-		string(models.DeploymentTargetSelectorType_Namespace),
-	)
+	ccpResp, err := c.Config().ClusterControlPlaneClient.CreateDeploymentTarget(ctx, createReq)
 	if err != nil {
-		err := telemetry.Error(ctx, span, err, "error checking for existing deployment target")
+		err := telemetry.Error(ctx, span, err, "error creating deployment target")
 		c.HandleAPIError(w, r, apierrors.NewErrPassThroughToClient(err, http.StatusInternalServerError))
 		return
 	}
-
-	if existingDeploymentTarget.ID != uuid.Nil {
-		res = &CreateDeploymentTargetResponse{
-			DeploymentTargetID: existingDeploymentTarget.ID.String(),
-		}
-		c.WriteResult(w, r, res)
-		return
-	}
-
-	deploymentTarget := &models.DeploymentTarget{
-		ProjectID:    int(project.ID),
-		ClusterID:    int(cluster.ID),
-		Selector:     request.Selector,
-		SelectorType: models.DeploymentTargetSelectorType_Namespace,
-		Preview:      request.Preview,
-		VanityName:   request.Selector,
-		Metadata:     make(map[string]interface{}),
-	}
-	deploymentTarget, err = c.Repo().DeploymentTarget().CreateDeploymentTarget(deploymentTarget)
-	if err != nil {
-		err := telemetry.Error(ctx, span, err, "error creating deployment target")
+	if ccpResp == nil || ccpResp.Msg == nil {
+		err := telemetry.Error(ctx, span, err, "ccp resp msg is nil")
 		c.HandleAPIError(w, r, apierrors.NewErrPassThroughToClient(err, http.StatusInternalServerError))
 		return
 	}
-	if deploymentTarget.ID == uuid.Nil {
-		err := telemetry.Error(ctx, span, nil, "deployment target id is nil")
+	if ccpResp.Msg.DeploymentTargetId == "" {
+		err := telemetry.Error(ctx, span, err, "deployment target id is empty")
 		c.HandleAPIError(w, r, apierrors.NewErrPassThroughToClient(err, http.StatusInternalServerError))
 		return
 	}
 
-	res = &CreateDeploymentTargetResponse{
-		DeploymentTargetID: deploymentTarget.ID.String(),
+	res := &CreateDeploymentTargetResponse{
+		DeploymentTargetID: ccpResp.Msg.DeploymentTargetId,
 	}
 
 	c.WriteResult(w, r, res)

+ 1 - 1
go.mod

@@ -82,7 +82,7 @@ require (
 	github.com/matryer/is v1.4.0
 	github.com/nats-io/nats.go v1.24.0
 	github.com/open-policy-agent/opa v0.44.0
-	github.com/porter-dev/api-contracts v0.2.23
+	github.com/porter-dev/api-contracts v0.2.24
 	github.com/riandyrn/otelchi v0.5.1
 	github.com/santhosh-tekuri/jsonschema/v5 v5.0.1
 	github.com/stefanmcshane/helm v0.0.0-20221213002717-88a4a2c6e77d

+ 2 - 2
go.sum

@@ -1516,8 +1516,8 @@ github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/polyfloyd/go-errorlint v0.0.0-20210722154253-910bb7978349/go.mod h1:wi9BfjxjF/bwiZ701TzmfKu6UKC357IOAtNr0Td0Lvw=
-github.com/porter-dev/api-contracts v0.2.23 h1:AGyidwLoZedNB/iUIg/wgXXi/00BsMN4P8B4wTgv+f8=
-github.com/porter-dev/api-contracts v0.2.23/go.mod h1:fX6JmP5QuzxDLvqP3evFOTXjI4dHxsG0+VKNTjImZU8=
+github.com/porter-dev/api-contracts v0.2.24 h1:0Jas/m7l+FD+1VRGYg8lq6vxTZ77A79X4A1wZcTVrEI=
+github.com/porter-dev/api-contracts v0.2.24/go.mod h1:fX6JmP5QuzxDLvqP3evFOTXjI4dHxsG0+VKNTjImZU8=
 github.com/porter-dev/switchboard v0.0.3 h1:dBuYkiVLa5Ce7059d6qTe9a1C2XEORFEanhbtV92R+M=
 github.com/porter-dev/switchboard v0.0.3/go.mod h1:xSPzqSFMQ6OSbp42fhCi4AbGbQbsm6nRvOkrblFeXU4=
 github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=