From db39eaa9d071adf8b556ebafc6f7c673bbb1216a Mon Sep 17 00:00:00 2001 From: HemanthDogiparthi12 Date: Fri, 27 Sep 2024 12:05:42 +0100 Subject: [PATCH] Verify instancestate --- .../genesyscloud_resource_exporter.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/genesyscloud/tfexporter/genesyscloud_resource_exporter.go b/genesyscloud/tfexporter/genesyscloud_resource_exporter.go index a9ebbeb4a..fcbe55505 100644 --- a/genesyscloud/tfexporter/genesyscloud_resource_exporter.go +++ b/genesyscloud/tfexporter/genesyscloud_resource_exporter.go @@ -1019,7 +1019,14 @@ func (g *GenesysCloudResourceExporter) getResourcesForType(resType string, provi // will block until it can acquire a pooled client config object. instanceState, err := getResourceState(ctx, res, id, resMeta, meta) + if instanceState == nil { + log.Printf("Resource %s no longer exists. Skipping.", resMeta.Name) + removeChan <- id // Mark for removal from the map + return nil + } + resourceType := "" + if g.isDataSource(resType, resMeta.Name) { g.exMutex.Lock() res = provider.DataSourcesMap[resType] @@ -1034,8 +1041,10 @@ func (g *GenesysCloudResourceExporter) getResourcesForType(resType string, provi attributes := make(map[string]string) for attr, _ := range schemaMap { - if value, ok := instanceState.Attributes[attr]; ok { - attributes[attr] = value + if instanceState.Attributes != nil { + if value, ok := instanceState.Attributes[attr]; ok { + attributes[attr] = value + } } } instanceState.Attributes = attributes @@ -1047,12 +1056,6 @@ func (g *GenesysCloudResourceExporter) getResourcesForType(resType string, provi return fmt.Errorf(errString) } - if instanceState == nil { - log.Printf("Resource %s no longer exists. Skipping.", resMeta.Name) - removeChan <- id // Mark for removal from the map - return nil - } - resourceChan <- resourceExporter.ResourceInfo{ State: instanceState, Name: resMeta.Name,