From d84319a8f221c1350b77903ad74f06430ef18f70 Mon Sep 17 00:00:00 2001 From: hkavya26 Date: Tue, 27 Jul 2021 20:47:55 +0530 Subject: [PATCH] Fix: Convert string to int types for units and failover units --- ibm/data_source_ibm_hpcs.go | 4 ++-- ibm/resource_ibm_hpcs.go | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ibm/data_source_ibm_hpcs.go b/ibm/data_source_ibm_hpcs.go index 9919fbc498..8811331b7f 100644 --- a/ibm/data_source_ibm_hpcs.go +++ b/ibm/data_source_ibm_hpcs.go @@ -238,10 +238,10 @@ func dataSourceIBMHPCSRead(context context.Context, d *schema.ResourceData, meta } if instance.Parameters != nil { if units, ok := instance.Parameters["units"]; ok { - d.Set("units", units) + d.Set("units", convertInterfaceToInt(units)) } if failover_units, ok := instance.Parameters["failover_units"]; ok { - d.Set("failover_units", failover_units) + d.Set("failover_units", convertInterfaceToInt(failover_units)) } } servicePlan, err := rsCatRepo.GetServicePlanName(instance.ResourcePlanID) diff --git a/ibm/resource_ibm_hpcs.go b/ibm/resource_ibm_hpcs.go index 177891d9aa..d20cc8fae1 100644 --- a/ibm/resource_ibm_hpcs.go +++ b/ibm/resource_ibm_hpcs.go @@ -10,6 +10,8 @@ import ( "fmt" "log" "os" + "reflect" + "strconv" "strings" "time" @@ -505,10 +507,10 @@ func resourceIBMHPCSRead(context context.Context, d *schema.ResourceData, meta i d.Set("service_endpoints", endpoint) } if units, ok := instance.Parameters["units"]; ok { - d.Set("units", units) + d.Set("units", convertInterfaceToInt(units)) } if failover_units, ok := instance.Parameters["failover_units"]; ok { - d.Set("failover_units", failover_units) + d.Set("failover_units", convertInterfaceToInt(failover_units)) } } // Set Extensions @@ -894,3 +896,15 @@ func hsmClient(d *schema.ResourceData, meta interface{}) (tkesdk.CommonInputs, e return ci, err } + +func convertInterfaceToInt(raw interface{}) int { + v := reflect.ValueOf(raw) + if v.Kind() == reflect.String { + rawnum, err := strconv.Atoi(raw.(string)) + if err != nil { + log.Println("[ERROR] Error converting string to integer") + } + return rawnum + } + return raw.(int) +}