@@ -310,23 +310,38 @@ func resourceDataflowFlexTemplateJobCreate(d *schema.ResourceData, meta interfac
310
310
func resourceDataflowFlexJobSetupEnv(d *schema.ResourceData, config *transport_tpg.Config) (dataflow.FlexTemplateRuntimeEnvironment, map[string]string, error) {
311
311
312
312
updatedParameters := tpgresource.ExpandStringMap(d, "parameters")
313
- if err := hasIllegalParametersErr(d); err != nil {
314
- return dataflow.FlexTemplateRuntimeEnvironment{}, updatedParameters, err
315
- }
316
313
317
314
additionalExperiments := tpgresource.ConvertStringSet(d.Get("additional_experiments").(*schema.Set))
318
315
319
316
var autoscalingAlgorithm string
320
317
autoscalingAlgorithm, updatedParameters = dataflowFlexJobTypeTransferVar("autoscaling_algorithm", "autoscalingAlgorithm", updatedParameters, d)
321
318
322
- numWorkers, err := parseInt64("num_workers", d)
323
- if err != nil {
324
- return dataflow.FlexTemplateRuntimeEnvironment{}, updatedParameters, err
319
+ var numWorkers int
320
+ if p, ok := d.GetOk("parameters.numWorkers"); ok {
321
+ number, err := strconv.Atoi(p.(string))
322
+ if err != nil {
323
+ return dataflow.FlexTemplateRuntimeEnvironment{}, updatedParameters, fmt.Errorf("parameters.numWorkers must have a valid integer assigned to it, current value is %s", p.(string))
324
+ }
325
+ delete(updatedParameters, "numWorkers")
326
+ numWorkers = number
327
+ } else {
328
+ if v, ok := d.GetOk("num_workers"); ok {
329
+ numWorkers = v.(int)
330
+ }
325
331
}
326
332
327
- maxNumWorkers, err := parseInt64("max_workers", d)
328
- if err != nil {
329
- return dataflow.FlexTemplateRuntimeEnvironment{}, updatedParameters, err
333
+ var maxNumWorkers int
334
+ if p, ok := d.GetOk("parameters.maxNumWorkers"); ok {
335
+ number, err := strconv.Atoi(p.(string))
336
+ if err != nil {
337
+ return dataflow.FlexTemplateRuntimeEnvironment{}, updatedParameters, fmt.Errorf("parameters.maxNumWorkers must have a valid integer assigned to it, current value is %s", p.(string))
338
+ }
339
+ delete(updatedParameters, "maxNumWorkers")
340
+ maxNumWorkers = number
341
+ } else {
342
+ if v, ok := d.GetOk("max_workers"); ok {
343
+ maxNumWorkers = v.(int)
344
+ }
330
345
}
331
346
332
347
network, updatedParameters := dataflowFlexJobTypeTransferVar("network", "network", updatedParameters, d)
@@ -345,10 +360,23 @@ func resourceDataflowFlexJobSetupEnv(d *schema.ResourceData, config *transport_t
345
360
346
361
ipConfiguration, updatedParameters := dataflowFlexJobTypeTransferVar("ip_configuration", "ipConfiguration", updatedParameters, d)
347
362
348
- enableStreamingEngine, err := parseBool("enable_streaming_engine", d)
349
- if err != nil {
350
- return dataflow.FlexTemplateRuntimeEnvironment{}, updatedParameters, err
351
- }
363
+ var enableStreamingEngine bool
364
+ if p, ok := d.GetOk("parameters.enableStreamingEngine"); ok {
365
+ delete(updatedParameters, "enableStreamingEngine")
366
+ e := strings.ToLower(p.(string))
367
+ switch e {
368
+ case "true":
369
+ enableStreamingEngine = true
370
+ case "false":
371
+ enableStreamingEngine = false
372
+ default:
373
+ return dataflow.FlexTemplateRuntimeEnvironment{}, nil, fmt.Errorf("error when handling parameters.enableStreamingEngine value: expected value to be true or false but got value `%s`", e)
374
+ }
375
+ } else {
376
+ if v, ok := d.GetOk("enable_streaming_engine"); ok {
377
+ enableStreamingEngine = v.(bool)
378
+ }
379
+ }
352
380
353
381
sdkContainerImage, updatedParameters := dataflowFlexJobTypeTransferVar("sdk_container_image", "sdkContainerImage", updatedParameters, d)
354
382
@@ -357,8 +385,8 @@ func resourceDataflowFlexJobSetupEnv(d *schema.ResourceData, config *transport_t
357
385
env := dataflow.FlexTemplateRuntimeEnvironment{
358
386
AdditionalUserLabels: tpgresource.ExpandStringMap(d, "effective_labels"),
359
387
AutoscalingAlgorithm: autoscalingAlgorithm,
360
- NumWorkers: numWorkers,
361
- MaxWorkers: maxNumWorkers,
388
+ NumWorkers: int64( numWorkers) ,
389
+ MaxWorkers: int64( maxNumWorkers) ,
362
390
Network: network,
363
391
ServiceAccountEmail: serviceAccountEmail,
364
392
Subnetwork: subnetwork,
@@ -812,44 +840,4 @@ func dataflowFlexJobTypeParameterOverride(ename, pname string, d *schema.Resourc
812
840
return nil
813
841
}
814
842
815
- func hasIllegalParametersErr(d *schema.ResourceData) error {
816
- pKey := "parameters"
817
- errFmt := "%s must not include Dataflow options, found: %s"
818
- for k := range ResourceDataflowFlexTemplateJob().Schema {
819
- if _, notOk := d.GetOk(fmt.Sprintf("%s.%s", pKey, k)); notOk {
820
- return fmt.Errorf(errFmt, pKey, k)
821
- }
822
- kk := tpgresource.SnakeToPascalCase(k)
823
- kk = strings.ToLower(kk)
824
- if _, notOk := d.GetOk(fmt.Sprintf("%s.%s", pKey, kk)); notOk {
825
- return fmt.Errorf(errFmt, pKey, kk)
826
- }
827
- }
828
- return nil
829
- }
830
-
831
- func parseInt64(name string, d *schema.ResourceData) (int64, error) {
832
- v, ok := d.GetOk(name)
833
- if !ok {
834
- return 0, nil
835
- }
836
- vv, err := strconv.ParseInt(fmt.Sprint(v), 10, 64)
837
- if err != nil {
838
- return 0, fmt.Errorf("illegal value assigned to %s, got: %s", name, v)
839
- }
840
- return vv, nil
841
- }
842
-
843
- func parseBool(name string, d *schema.ResourceData) (bool, error) {
844
- v, ok := d.GetOk(name)
845
- if !ok {
846
- return false, nil
847
- }
848
- vv, err := strconv.ParseBool(fmt.Sprint(v))
849
- if err != nil {
850
- return false, fmt.Errorf("illegal value assigned to %s, got: %s", name, v)
851
- }
852
- return vv, nil
853
- }
854
-
855
843
{{ end }}
0 commit comments