From 8aaa9421eccc8ab001e68cd7f94467ec9d7a87e2 Mon Sep 17 00:00:00 2001 From: Shobha M Date: Tue, 20 Feb 2024 10:42:10 +0530 Subject: [PATCH] Make meta data converter mapping generic and populate provisioner meta info Signed-off-by: Shobha M --- .../resources/common/objectmeta_schema.go | 12 +++++------ .../provisioner/converter_mapping.go | 2 +- .../provisioner_data_source_test.go | 20 +++++++++---------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/internal/resources/common/objectmeta_schema.go b/internal/resources/common/objectmeta_schema.go index b9e19124b..14739da50 100644 --- a/internal/resources/common/objectmeta_schema.go +++ b/internal/resources/common/objectmeta_schema.go @@ -171,17 +171,17 @@ func GetTypeIntMapData(data map[string]interface{}) map[string]int { } // GetMetaConverterMap returns mapping for converter. -func GetMetaConverterMap(modelPathSeparator string) *converter.BlockToStruct { +func GetMetaConverterMap(modelPathSeparator string, modelPath ...string) *converter.BlockToStruct { var MetaConverterMap = &converter.BlockToStruct{ AnnotationsKey: &converter.Map{ - converter.AllMapKeysFieldMarker: converter.BuildModelPath(modelPathSeparator, "meta", "annotations", converter.AllMapKeysFieldMarker), + converter.AllMapKeysFieldMarker: converter.BuildModelPath(modelPathSeparator, append(modelPath, "meta", "annotations", converter.AllMapKeysFieldMarker)...), }, LabelsKey: &converter.Map{ - converter.AllMapKeysFieldMarker: converter.BuildModelPath(modelPathSeparator, "meta", "labels", converter.AllMapKeysFieldMarker), + converter.AllMapKeysFieldMarker: converter.BuildModelPath(modelPathSeparator, append(modelPath, "meta", "labels", converter.AllMapKeysFieldMarker)...), }, - DescriptionKey: converter.BuildModelPath(modelPathSeparator, "meta", "description"), - resourceVersionKey: converter.BuildModelPath(modelPathSeparator, "meta", "resourceVersion"), - uidKey: converter.BuildModelPath(modelPathSeparator, "meta", "uid"), + DescriptionKey: converter.BuildModelPath(modelPathSeparator, append(modelPath, "meta", "description")...), + resourceVersionKey: converter.BuildModelPath(modelPathSeparator, append(modelPath, "meta", "resourceVersion")...), + uidKey: converter.BuildModelPath(modelPathSeparator, append(modelPath, "meta", "uid")...), } return MetaConverterMap diff --git a/internal/resources/provisioner/converter_mapping.go b/internal/resources/provisioner/converter_mapping.go index 97ee5339b..586ade8a2 100644 --- a/internal/resources/provisioner/converter_mapping.go +++ b/internal/resources/provisioner/converter_mapping.go @@ -24,7 +24,7 @@ var tfDataModelMap = &tfModelConverterHelper.BlockToStruct{ { managementClusterNameKey: tfModelConverterHelper.BuildDefaultModelPath(provisionerArrayField, "fullName", "managementClusterName"), nameKey: tfModelConverterHelper.BuildDefaultModelPath(provisionerArrayField, "fullName", "name"), - common.MetaKey: common.GetMetaConverterMap(tfModelConverterHelper.DefaultModelPathSeparator), + common.MetaKey: common.GetMetaConverterMap(tfModelConverterHelper.DefaultModelPathSeparator, provisionerArrayField), }, }, } diff --git a/internal/resources/provisioner/provisioner_data_source_test.go b/internal/resources/provisioner/provisioner_data_source_test.go index 9d3c46abe..ced157480 100644 --- a/internal/resources/provisioner/provisioner_data_source_test.go +++ b/internal/resources/provisioner/provisioner_data_source_test.go @@ -67,8 +67,7 @@ func checkDataSourceAttributes(dataSourceName, resourceName string) resource.Tes resource.TestCheckResourceAttrSet(dataSourceName, "id"), } - // TODO: Add the meta check after TMC-54016 fix. - // check = append(check, metaDataSourceAttributeCheck(dataSourceName, resourceName)...) + check = append(check, metaDataSourceAttributeCheck(dataSourceName, resourceName)...) return resource.ComposeTestCheckFunc(check...) } @@ -84,12 +83,11 @@ func verifyProvisionerDataSource(name string) resource.TestCheckFunc { } } -// TODO: Add the meta check after TMC-54016 fix. -// func metaDataSourceAttributeCheck(dataSourceName, resourceName string) []resource.TestCheckFunc { -// return []resource.TestCheckFunc{ -// resource.TestCheckResourceAttrPair(dataSourceName, "meta.0.description", resourceName, "meta.0.description"), -// resource.TestCheckResourceAttrPair(dataSourceName, "meta.0.labels.key1", resourceName, "meta.0.labels.key1"), -// resource.TestCheckResourceAttrPair(dataSourceName, "meta.0.labels.key2", resourceName, "meta.0.labels.key2"), -// resource.TestCheckResourceAttrSet(dataSourceName, "meta.0.uid"), -// } -//} +func metaDataSourceAttributeCheck(dataSourceName, resourceName string) []resource.TestCheckFunc { + return []resource.TestCheckFunc{ + resource.TestCheckResourceAttrPair(dataSourceName, "provisioners.0.meta.0.description", resourceName, "meta.0.description"), + resource.TestCheckResourceAttrPair(dataSourceName, "provisioners.0.meta.0.labels.key1", resourceName, "meta.0.labels.key1"), + resource.TestCheckResourceAttrPair(dataSourceName, "provisioners.0.meta.0.labels.key2", resourceName, "meta.0.labels.key2"), + resource.TestCheckResourceAttrSet(dataSourceName, "provisioners.0.meta.0.uid"), + } +}