From 5643553a8b83f9c56ab5313e855df5f1f46e79e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergen=20Yal=C3=A7=C4=B1n?= Date: Thu, 25 Jan 2024 15:00:10 +0300 Subject: [PATCH] Add customConverter struct for supporting the Custom Converters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sergen Yalçın --- pkg/config/conversion/conversions.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkg/config/conversion/conversions.go b/pkg/config/conversion/conversions.go index 2b22ea09..0b327ffd 100644 --- a/pkg/config/conversion/conversions.go +++ b/pkg/config/conversion/conversions.go @@ -116,3 +116,27 @@ func NewFieldRenameConversion(sourceVersion, sourceField, targetVersion, targetF targetField: targetField, } } + +type customConverter func(src, target resource.Managed) error + +type customConversion struct { + baseConversion + customConverter customConverter +} + +func (cc *customConversion) ConvertTerraformed(src, target resource.Managed) (bool, error) { + if !cc.Applicable(src, target) { + return false, nil + } + if err := cc.customConverter(src, target); err != nil { + return false, err + } + return true, nil +} + +func NewCustomConverter(sourceVersion, targetVersion string, converter func(src, target resource.Managed) error) Conversion { + return &customConversion{ + baseConversion: newBaseConversion(sourceVersion, targetVersion), + customConverter: converter, + } +}