Skip to content

Commit 9bd15ad

Browse files
authored
Merge pull request #1685 from emilymye/container_cluster_list_param_multifix
Make sure TypeList keys still have empty values
2 parents 2015b4a + 6b0dbf5 commit 9bd15ad

File tree

1 file changed

+60
-39
lines changed

1 file changed

+60
-39
lines changed

google/resource_container_cluster.go

+60-39
Original file line numberDiff line numberDiff line change
@@ -709,41 +709,25 @@ func resourceContainerClusterRead(d *schema.ResourceData, meta interface{}) erro
709709
}
710710

711711
d.Set("name", cluster.Name)
712-
713-
d.Set("network_policy", flattenNetworkPolicy(cluster.NetworkPolicy))
714-
712+
if err := d.Set("network_policy", flattenNetworkPolicy(cluster.NetworkPolicy)); err != nil {
713+
return err
714+
}
715715
d.Set("zone", cluster.Zone)
716716

717717
locations := schema.NewSet(schema.HashString, convertStringArrToInterface(cluster.Locations))
718718
locations.Remove(cluster.Zone) // Remove the original zone since we only store additional zones
719719
d.Set("additional_zones", locations)
720720

721721
d.Set("endpoint", cluster.Endpoint)
722-
723-
if cluster.MaintenancePolicy != nil {
724-
d.Set("maintenance_policy", flattenMaintenancePolicy(cluster.MaintenancePolicy))
725-
}
726-
727-
masterAuth := []map[string]interface{}{
728-
{
729-
"username": cluster.MasterAuth.Username,
730-
"password": cluster.MasterAuth.Password,
731-
"client_certificate": cluster.MasterAuth.ClientCertificate,
732-
"client_key": cluster.MasterAuth.ClientKey,
733-
"cluster_ca_certificate": cluster.MasterAuth.ClusterCaCertificate,
734-
},
722+
if err := d.Set("maintenance_policy", flattenMaintenancePolicy(cluster.MaintenancePolicy)); err != nil {
723+
return err
735724
}
736-
if len(cluster.MasterAuth.ClientCertificate) == 0 {
737-
masterAuth[0]["client_certificate_config"] = []map[string]interface{}{
738-
{"issue_client_certificate": false},
739-
}
725+
if err := d.Set("master_auth", flattenMasterAuth(cluster.MasterAuth)); err != nil {
726+
return err
740727
}
741-
d.Set("master_auth", masterAuth)
742-
743-
if cluster.MasterAuthorizedNetworksConfig != nil {
744-
d.Set("master_authorized_networks_config", flattenMasterAuthorizedNetworksConfig(cluster.MasterAuthorizedNetworksConfig))
728+
if err := d.Set("master_authorized_networks_config", flattenMasterAuthorizedNetworksConfig(cluster.MasterAuthorizedNetworksConfig)); err != nil {
729+
return err
745730
}
746-
747731
d.Set("initial_node_count", cluster.InitialNodeCount)
748732
d.Set("master_version", cluster.CurrentMasterVersion)
749733
d.Set("node_version", cluster.CurrentNodeVersion)
@@ -759,31 +743,32 @@ func resourceContainerClusterRead(d *schema.ResourceData, meta interface{}) erro
759743
return err
760744
}
761745
d.Set("project", project)
762-
if cluster.AddonsConfig != nil {
763-
d.Set("addons_config", flattenClusterAddonsConfig(cluster.AddonsConfig))
746+
if err := d.Set("addons_config", flattenClusterAddonsConfig(cluster.AddonsConfig)); err != nil {
747+
764748
}
749+
765750
nps, err := flattenClusterNodePools(d, config, cluster.NodePools)
766751
if err != nil {
767752
return err
768753
}
769-
d.Set("node_pool", nps)
754+
if err := d.Set("node_pool", nps); err != nil {
755+
return err
756+
}
770757

771-
if cluster.IpAllocationPolicy != nil {
772-
if err := d.Set("ip_allocation_policy", flattenIPAllocationPolicy(cluster.IpAllocationPolicy)); err != nil {
773-
return err
774-
}
758+
if err := d.Set("ip_allocation_policy", flattenIPAllocationPolicy(cluster.IpAllocationPolicy)); err != nil {
759+
return err
775760
}
776761

777-
if igUrls, err := getInstanceGroupUrlsFromManagerUrls(config, cluster.InstanceGroupUrls); err != nil {
762+
igUrls, err := getInstanceGroupUrlsFromManagerUrls(config, cluster.InstanceGroupUrls)
763+
if err != nil {
764+
return err
765+
}
766+
if err := d.Set("instance_group_urls", igUrls); err != nil {
778767
return err
779-
} else {
780-
d.Set("instance_group_urls", igUrls)
781768
}
782769

783-
if cluster.PodSecurityPolicyConfig != nil {
784-
if err := d.Set("pod_security_policy_config", flattenPodSecurityPolicyConfig(cluster.PodSecurityPolicyConfig)); err != nil {
785-
return err
786-
}
770+
if err := d.Set("pod_security_policy_config", flattenPodSecurityPolicyConfig(cluster.PodSecurityPolicyConfig)); err != nil {
771+
return err
787772
}
788773

789774
d.Set("private_cluster", cluster.PrivateCluster)
@@ -1386,6 +1371,9 @@ func flattenNetworkPolicy(c *containerBeta.NetworkPolicy) []map[string]interface
13861371

13871372
func flattenClusterAddonsConfig(c *containerBeta.AddonsConfig) []map[string]interface{} {
13881373
result := make(map[string]interface{})
1374+
if c == nil {
1375+
return nil
1376+
}
13891377
if c.HorizontalPodAutoscaling != nil {
13901378
result["horizontal_pod_autoscaling"] = []map[string]interface{}{
13911379
{
@@ -1433,6 +1421,9 @@ func flattenClusterNodePools(d *schema.ResourceData, config *Config, c []*contai
14331421
}
14341422

14351423
func flattenIPAllocationPolicy(c *containerBeta.IPAllocationPolicy) []map[string]interface{} {
1424+
if c == nil {
1425+
return nil
1426+
}
14361427
return []map[string]interface{}{
14371428
{
14381429
"cluster_secondary_range_name": c.ClusterSecondaryRangeName,
@@ -1442,6 +1433,9 @@ func flattenIPAllocationPolicy(c *containerBeta.IPAllocationPolicy) []map[string
14421433
}
14431434

14441435
func flattenMaintenancePolicy(mp *containerBeta.MaintenancePolicy) []map[string]interface{} {
1436+
if mp == nil {
1437+
return nil
1438+
}
14451439
return []map[string]interface{}{
14461440
{
14471441
"daily_maintenance_window": []map[string]interface{}{
@@ -1454,7 +1448,31 @@ func flattenMaintenancePolicy(mp *containerBeta.MaintenancePolicy) []map[string]
14541448
}
14551449
}
14561450

1451+
func flattenMasterAuth(ma *containerBeta.MasterAuth) []map[string]interface{} {
1452+
if ma == nil {
1453+
return nil
1454+
}
1455+
masterAuth := []map[string]interface{}{
1456+
{
1457+
"username": ma.Username,
1458+
"password": ma.Password,
1459+
"client_certificate": ma.ClientCertificate,
1460+
"client_key": ma.ClientKey,
1461+
"cluster_ca_certificate": ma.ClusterCaCertificate,
1462+
},
1463+
}
1464+
if len(ma.ClientCertificate) == 0 {
1465+
masterAuth[0]["client_certificate_config"] = []map[string]interface{}{
1466+
{"issue_client_certificate": false},
1467+
}
1468+
}
1469+
return masterAuth
1470+
}
1471+
14571472
func flattenMasterAuthorizedNetworksConfig(c *containerBeta.MasterAuthorizedNetworksConfig) []map[string]interface{} {
1473+
if c == nil {
1474+
return nil
1475+
}
14581476
if len(c.CidrBlocks) == 0 {
14591477
return nil
14601478
}
@@ -1473,6 +1491,9 @@ func flattenMasterAuthorizedNetworksConfig(c *containerBeta.MasterAuthorizedNetw
14731491
}
14741492

14751493
func flattenPodSecurityPolicyConfig(c *containerBeta.PodSecurityPolicyConfig) []map[string]interface{} {
1494+
if c == nil {
1495+
return nil
1496+
}
14761497
return []map[string]interface{}{
14771498
{
14781499
"enabled": c.Enabled,

0 commit comments

Comments
 (0)