From 23f15879f56af4a174aaa3457ff47d1d2e8d62d6 Mon Sep 17 00:00:00 2001 From: Nathanial Acosta Date: Thu, 6 Aug 2026 11:27:12 -0400 Subject: [PATCH] Adjust import logic for integration_models to use --replace flag --- internal/runners/integration_models.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/runners/integration_models.go b/internal/runners/integration_models.go index 70ada718..e4e5f43f 100644 --- a/internal/runners/integration_models.go +++ b/internal/runners/integration_models.go @@ -8,6 +8,7 @@ import ( "fmt" "github.com/itential/ipctl/internal/config" + "github.com/itential/ipctl/internal/flags" "github.com/itential/ipctl/internal/logging" "github.com/itential/ipctl/pkg/client" "github.com/itential/ipctl/pkg/services" @@ -133,12 +134,27 @@ func (r *IntegrationModelRunner) Clear(in Request) (*Response, error) { func (r *IntegrationModelRunner) Import(in Request) (*Response, error) { logging.Trace() + common := in.Common.(*flags.AssetImportCommon) + var schema map[string]interface{} if err := importUnmarshalFromRequest(in, &schema); err != nil { return nil, err } + if common.Replace { + info, _ := schema["info"].(map[string]interface{}) + title, _ := info["title"].(string) + version, _ := info["version"].(string) + versionId := fmt.Sprintf("%s:%s", title, version) + + if existing, err := r.service.Get(versionId); err == nil && existing != nil { + if err := r.service.Delete(versionId); err != nil { + return nil, err + } + } + } + res, err := r.service.Create(schema) if err != nil { return nil, err