Skip to content

Commit 38f5e00

Browse files
check if dataproc cluster config is nil (#7917) (#5689)
* check if dataproc cluster config is nil * rm assumption that virtual configs don't have a config defined * check virtual config is not null as well * add check for cluster config as well Signed-off-by: Modular Magician <[email protected]>
1 parent e2b860c commit 38f5e00

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

.changelog/7917.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
dataproc: fixed crash when reading `google_dataproc_cluster.virtual_cluster_config`
3+
```

google-beta/resource_dataproc_cluster.go

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2087,32 +2087,33 @@ func resourceDataprocClusterRead(d *schema.ResourceData, meta interface{}) error
20872087
}
20882088

20892089
var cfg []map[string]interface{}
2090+
cfg, err = flattenClusterConfig(d, cluster.Config)
20902091

2091-
if cluster.Config != nil {
2092-
cfg, err = flattenClusterConfig(d, cluster.Config)
2093-
2094-
if err != nil {
2095-
return err
2096-
}
2097-
2098-
err = d.Set("cluster_config", cfg)
2099-
} else {
2100-
cfg, err = flattenVirtualClusterConfig(d, cluster.VirtualClusterConfig)
2092+
if err != nil {
2093+
return err
2094+
}
21012095

2102-
if err != nil {
2103-
return err
2104-
}
2096+
err = d.Set("cluster_config", cfg)
2097+
virtualCfg, err := flattenVirtualClusterConfig(d, cluster.VirtualClusterConfig)
21052098

2106-
err = d.Set("virtual_cluster_config", cfg)
2099+
if err != nil {
2100+
return err
21072101
}
21082102

2103+
err = d.Set("virtual_cluster_config", virtualCfg)
2104+
21092105
if err != nil {
21102106
return err
21112107
}
2108+
21122109
return nil
21132110
}
21142111

21152112
func flattenVirtualClusterConfig(d *schema.ResourceData, cfg *dataproc.VirtualClusterConfig) ([]map[string]interface{}, error) {
2113+
if cfg == nil {
2114+
return []map[string]interface{}{}, nil
2115+
}
2116+
21162117
data := map[string]interface{}{
21172118
"staging_bucket": d.Get("virtual_cluster_config.0.staging_bucket"),
21182119
"auxiliary_services_config": flattenAuxiliaryServicesConfig(d, cfg.AuxiliaryServicesConfig),
@@ -2229,6 +2230,9 @@ func flattenKubernetesSoftwareConfig(d *schema.ResourceData, cfg *dataproc.Kuber
22292230
}
22302231

22312232
func flattenClusterConfig(d *schema.ResourceData, cfg *dataproc.ClusterConfig) ([]map[string]interface{}, error) {
2233+
if cfg == nil {
2234+
return []map[string]interface{}{}, nil
2235+
}
22322236

22332237
data := map[string]interface{}{
22342238
"staging_bucket": d.Get("cluster_config.0.staging_bucket").(string),
@@ -2421,6 +2425,9 @@ func flattenInitializationActions(nia []*dataproc.NodeInitializationAction) ([]m
24212425
}
24222426

24232427
func flattenGceClusterConfig(d *schema.ResourceData, gcc *dataproc.GceClusterConfig) []map[string]interface{} {
2428+
if gcc == nil {
2429+
return []map[string]interface{}{}
2430+
}
24242431

24252432
gceConfig := map[string]interface{}{
24262433
"tags": schema.NewSet(schema.HashString, tpgresource.ConvertStringArrToInterface(gcc.Tags)),

0 commit comments

Comments
 (0)