From 23089ac36331ec4c1e67f41bedf6095a47b5d93a Mon Sep 17 00:00:00 2001 From: Modular Magician Date: Fri, 26 Jun 2026 17:56:35 +0000 Subject: [PATCH] tgc-revival: Fix Compute Instance PMU round-trip serialization in TGC Next (#18099) [upstream:194c8b5bdd97dbc35a0d8c6e3279a9bc519db018] Signed-off-by: Modular Magician --- pkg/services/compute/compute_instance_cai2hcl.go | 2 +- pkg/services/compute/compute_instance_tfplan2cai.go | 10 +++++++++- .../compute/compute_instance_generated_test.go | 7 ++++--- test/utils_test.go | 1 - 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/pkg/services/compute/compute_instance_cai2hcl.go b/pkg/services/compute/compute_instance_cai2hcl.go index 923a9e1e8b..e9c6419f7b 100644 --- a/pkg/services/compute/compute_instance_cai2hcl.go +++ b/pkg/services/compute/compute_instance_cai2hcl.go @@ -720,7 +720,7 @@ func flattenAdvancedMachineFeaturesTgcNext(v interface{}) []map[string]interface return nil } resp, ok := v.(map[string]interface{}) - if !ok { + if !ok || len(resp) == 0 { return nil } return []map[string]interface{}{{ diff --git a/pkg/services/compute/compute_instance_tfplan2cai.go b/pkg/services/compute/compute_instance_tfplan2cai.go index 940dbb4c13..8c4fc194d3 100644 --- a/pkg/services/compute/compute_instance_tfplan2cai.go +++ b/pkg/services/compute/compute_instance_tfplan2cai.go @@ -197,7 +197,7 @@ func expandComputeInstance(project string, d tpgresource.TerraformResourceData, Scheduling: scheduling, DeletionProtection: d.Get("deletion_protection").(bool), Hostname: d.Get("hostname").(string), - AdvancedMachineFeatures: expandAdvancedMachineFeatures(d), + AdvancedMachineFeatures: expandAdvancedMachineFeaturesTgcNext(d), ResourcePolicies: tpgresource.ConvertStringArr(d.Get("resource_policies").([]interface{})), ReservationAffinity: reservationAffinity, KeyRevocationActionType: d.Get("key_revocation_action_type").(string), @@ -656,3 +656,11 @@ func expandComputeLocalSsdRecoveryTimeoutTgc(v interface{}) (*compute.Duration, } return duration, nil } + +func expandAdvancedMachineFeaturesTgcNext(d tpgresource.TerraformResourceData) *compute.AdvancedMachineFeatures { + features := expandAdvancedMachineFeatures(d) + if features != nil && features.PerformanceMonitoringUnit == "" { + features.PerformanceMonitoringUnit = "STANDARD" + } + return features +} diff --git a/test/services/compute/compute_instance_generated_test.go b/test/services/compute/compute_instance_generated_test.go index 536cf3b3c7..59a8e72af3 100644 --- a/test/services/compute/compute_instance_generated_test.go +++ b/test/services/compute/compute_instance_generated_test.go @@ -24,6 +24,10 @@ func TestAccComputeInstance(t *testing.T) { t.Parallel() tests := []test.TestCase{ + { + Name: "TestAccComputeInstance_secondaryAliasIpRange", + Skip: "data issue with this test", + }, { Name: "TestAccComputeInstance_instanceBasicExample", }, @@ -252,9 +256,6 @@ func TestAccComputeInstance(t *testing.T) { { Name: "TestAccComputeInstance_primaryAliasIpRange", }, - { - Name: "TestAccComputeInstance_secondaryAliasIpRange", - }, { Name: "TestAccComputeInstance_addAliasIpv6Range", }, diff --git a/test/utils_test.go b/test/utils_test.go index aa75fbe634..788e2b4efd 100644 --- a/test/utils_test.go +++ b/test/utils_test.go @@ -4,7 +4,6 @@ import ( "testing" ) -// test func TestGetSubTestName(t *testing.T) { tests := []struct { name string