|  | 
| 14 | 14 | package code_test | 
| 15 | 15 | 
 | 
| 16 | 16 | import ( | 
|  | 17 | +	"fmt" | 
| 17 | 18 | 	"testing" | 
| 18 | 19 | 
 | 
| 19 | 20 | 	"github.com/stretchr/testify/assert" | 
| @@ -4326,3 +4327,328 @@ func TestSetSDK_WAFv2_RuleGroup_Create(t *testing.T) { | 
| 4326 | 4327 | 		code.SetSDK(crd.Config(), crd, model.OpTypeCreate, "r.ko", "res", 1), | 
| 4327 | 4328 | 	) | 
| 4328 | 4329 | } | 
|  | 4330 | + | 
|  | 4331 | +func TestSetSDK_Lambda_Function_EnvironmentVariable_MapOfSecrets_Create(t *testing.T) { | 
|  | 4332 | +	assert := assert.New(t) | 
|  | 4333 | +	require := require.New(t) | 
|  | 4334 | + | 
|  | 4335 | +	lambdaModel := testutil.NewModelForServiceWithOptions(t, "lambda", &testutil.TestingModelOptions{ | 
|  | 4336 | +		GeneratorConfigFile: "generator-environment-vars-secret.yaml", | 
|  | 4337 | +	}) | 
|  | 4338 | + | 
|  | 4339 | +	crd := testutil.GetCRDByName(t, lambdaModel, "Function") | 
|  | 4340 | +	require.NotNil(crd) | 
|  | 4341 | + | 
|  | 4342 | +	expected := ` | 
|  | 4343 | +	if r.ko.Spec.Code != nil { | 
|  | 4344 | +		f0 := &svcsdktypes.FunctionCode{} | 
|  | 4345 | +		if r.ko.Spec.Code.ImageURI != nil { | 
|  | 4346 | +			f0.ImageUri = r.ko.Spec.Code.ImageURI | 
|  | 4347 | +		} | 
|  | 4348 | +		if r.ko.Spec.Code.S3Bucket != nil { | 
|  | 4349 | +			f0.S3Bucket = r.ko.Spec.Code.S3Bucket | 
|  | 4350 | +		} | 
|  | 4351 | +		if r.ko.Spec.Code.S3Key != nil { | 
|  | 4352 | +			f0.S3Key = r.ko.Spec.Code.S3Key | 
|  | 4353 | +		} | 
|  | 4354 | +		if r.ko.Spec.Code.S3ObjectVersion != nil { | 
|  | 4355 | +			f0.S3ObjectVersion = r.ko.Spec.Code.S3ObjectVersion | 
|  | 4356 | +		} | 
|  | 4357 | +		if r.ko.Spec.Code.ZipFile != nil { | 
|  | 4358 | +			f0.ZipFile = r.ko.Spec.Code.ZipFile | 
|  | 4359 | +		} | 
|  | 4360 | +		res.Code = f0 | 
|  | 4361 | +	} | 
|  | 4362 | +	if r.ko.Spec.CodeSigningConfigARN != nil { | 
|  | 4363 | +		res.CodeSigningConfigArn = r.ko.Spec.CodeSigningConfigARN | 
|  | 4364 | +	} | 
|  | 4365 | +	if r.ko.Spec.DeadLetterConfig != nil { | 
|  | 4366 | +		f2 := &svcsdktypes.DeadLetterConfig{} | 
|  | 4367 | +		if r.ko.Spec.DeadLetterConfig.TargetARN != nil { | 
|  | 4368 | +			f2.TargetArn = r.ko.Spec.DeadLetterConfig.TargetARN | 
|  | 4369 | +		} | 
|  | 4370 | +		res.DeadLetterConfig = f2 | 
|  | 4371 | +	} | 
|  | 4372 | +	if r.ko.Spec.Description != nil { | 
|  | 4373 | +		res.Description = r.ko.Spec.Description | 
|  | 4374 | +	} | 
|  | 4375 | +	if r.ko.Spec.Environment != nil { | 
|  | 4376 | +		f4 := &svcsdktypes.Environment{} | 
|  | 4377 | +		if r.ko.Spec.Environment.Variables != nil { | 
|  | 4378 | +			f4f0 := map[string]string{} | 
|  | 4379 | +			for f4f0key, f4f0valiter := range r.ko.Spec.Environment.Variables { | 
|  | 4380 | +				var f4f0val string | 
|  | 4381 | +				if f4f0valiter != nil { | 
|  | 4382 | +					tmpSecret, err := rm.rr.SecretValueFromReference(ctx, f4f0valiter) | 
|  | 4383 | +					if err != nil { | 
|  | 4384 | +						return nil, ackrequeue.Needed(err) | 
|  | 4385 | +					} | 
|  | 4386 | +					if tmpSecret != "" { | 
|  | 4387 | +						f4f0val = tmpSecret | 
|  | 4388 | +					} | 
|  | 4389 | +				} | 
|  | 4390 | +				f4f0[f4f0key] = f4f0val | 
|  | 4391 | +			} | 
|  | 4392 | +			f4.Variables = f4f0 | 
|  | 4393 | +		} | 
|  | 4394 | +		res.Environment = f4 | 
|  | 4395 | +	} | 
|  | 4396 | +	if r.ko.Spec.FileSystemConfigs != nil { | 
|  | 4397 | +		f5 := []svcsdktypes.FileSystemConfig{} | 
|  | 4398 | +		for _, f5iter := range r.ko.Spec.FileSystemConfigs { | 
|  | 4399 | +			f5elem := &svcsdktypes.FileSystemConfig{} | 
|  | 4400 | +			if f5iter.ARN != nil { | 
|  | 4401 | +				f5elem.Arn = f5iter.ARN | 
|  | 4402 | +			} | 
|  | 4403 | +			if f5iter.LocalMountPath != nil { | 
|  | 4404 | +				f5elem.LocalMountPath = f5iter.LocalMountPath | 
|  | 4405 | +			} | 
|  | 4406 | +			f5 = append(f5, *f5elem) | 
|  | 4407 | +		} | 
|  | 4408 | +		res.FileSystemConfigs = f5 | 
|  | 4409 | +	} | 
|  | 4410 | +	if r.ko.Spec.FunctionName != nil { | 
|  | 4411 | +		res.FunctionName = r.ko.Spec.FunctionName | 
|  | 4412 | +	} | 
|  | 4413 | +	if r.ko.Spec.Handler != nil { | 
|  | 4414 | +		res.Handler = r.ko.Spec.Handler | 
|  | 4415 | +	} | 
|  | 4416 | +	if r.ko.Spec.ImageConfig != nil { | 
|  | 4417 | +		f8 := &svcsdktypes.ImageConfig{} | 
|  | 4418 | +		if r.ko.Spec.ImageConfig.Command != nil { | 
|  | 4419 | +			f8.Command = aws.ToStringSlice(r.ko.Spec.ImageConfig.Command) | 
|  | 4420 | +		} | 
|  | 4421 | +		if r.ko.Spec.ImageConfig.EntryPoint != nil { | 
|  | 4422 | +			f8.EntryPoint = aws.ToStringSlice(r.ko.Spec.ImageConfig.EntryPoint) | 
|  | 4423 | +		} | 
|  | 4424 | +		if r.ko.Spec.ImageConfig.WorkingDirectory != nil { | 
|  | 4425 | +			f8.WorkingDirectory = r.ko.Spec.ImageConfig.WorkingDirectory | 
|  | 4426 | +		} | 
|  | 4427 | +		res.ImageConfig = f8 | 
|  | 4428 | +	} | 
|  | 4429 | +	if r.ko.Spec.KMSKeyARN != nil { | 
|  | 4430 | +		res.KMSKeyArn = r.ko.Spec.KMSKeyARN | 
|  | 4431 | +	} | 
|  | 4432 | +	if r.ko.Spec.Layers != nil { | 
|  | 4433 | +		res.Layers = aws.ToStringSlice(r.ko.Spec.Layers) | 
|  | 4434 | +	} | 
|  | 4435 | +	if r.ko.Spec.MemorySize != nil { | 
|  | 4436 | +		memorySizeCopy0 := *r.ko.Spec.MemorySize | 
|  | 4437 | +		if memorySizeCopy0 > math.MaxInt32 || memorySizeCopy0 < math.MinInt32 { | 
|  | 4438 | +			return nil, fmt.Errorf("error: field MemorySize is of type int32") | 
|  | 4439 | +		} | 
|  | 4440 | +		memorySizeCopy := int32(memorySizeCopy0) | 
|  | 4441 | +		res.MemorySize = &memorySizeCopy | 
|  | 4442 | +	} | 
|  | 4443 | +	if r.ko.Spec.PackageType != nil { | 
|  | 4444 | +		res.PackageType = svcsdktypes.PackageType(*r.ko.Spec.PackageType) | 
|  | 4445 | +	} | 
|  | 4446 | +	if r.ko.Spec.Publish != nil { | 
|  | 4447 | +		res.Publish = *r.ko.Spec.Publish | 
|  | 4448 | +	} | 
|  | 4449 | +	if r.ko.Spec.Role != nil { | 
|  | 4450 | +		res.Role = r.ko.Spec.Role | 
|  | 4451 | +	} | 
|  | 4452 | +	if r.ko.Spec.Runtime != nil { | 
|  | 4453 | +		res.Runtime = svcsdktypes.Runtime(*r.ko.Spec.Runtime) | 
|  | 4454 | +	} | 
|  | 4455 | +	if r.ko.Spec.Tags != nil { | 
|  | 4456 | +		res.Tags = aws.ToStringMap(r.ko.Spec.Tags) | 
|  | 4457 | +	} | 
|  | 4458 | +	if r.ko.Spec.Timeout != nil { | 
|  | 4459 | +		timeoutCopy0 := *r.ko.Spec.Timeout | 
|  | 4460 | +		if timeoutCopy0 > math.MaxInt32 || timeoutCopy0 < math.MinInt32 { | 
|  | 4461 | +			return nil, fmt.Errorf("error: field Timeout is of type int32") | 
|  | 4462 | +		} | 
|  | 4463 | +		timeoutCopy := int32(timeoutCopy0) | 
|  | 4464 | +		res.Timeout = &timeoutCopy | 
|  | 4465 | +	} | 
|  | 4466 | +	if r.ko.Spec.TracingConfig != nil { | 
|  | 4467 | +		f18 := &svcsdktypes.TracingConfig{} | 
|  | 4468 | +		if r.ko.Spec.TracingConfig.Mode != nil { | 
|  | 4469 | +			f18.Mode = svcsdktypes.TracingMode(*r.ko.Spec.TracingConfig.Mode) | 
|  | 4470 | +		} | 
|  | 4471 | +		res.TracingConfig = f18 | 
|  | 4472 | +	} | 
|  | 4473 | +	if r.ko.Spec.VPCConfig != nil { | 
|  | 4474 | +		f19 := &svcsdktypes.VpcConfig{} | 
|  | 4475 | +		if r.ko.Spec.VPCConfig.SecurityGroupIDs != nil { | 
|  | 4476 | +			f19.SecurityGroupIds = aws.ToStringSlice(r.ko.Spec.VPCConfig.SecurityGroupIDs) | 
|  | 4477 | +		} | 
|  | 4478 | +		if r.ko.Spec.VPCConfig.SubnetIDs != nil { | 
|  | 4479 | +			f19.SubnetIds = aws.ToStringSlice(r.ko.Spec.VPCConfig.SubnetIDs) | 
|  | 4480 | +		} | 
|  | 4481 | +		res.VpcConfig = f19 | 
|  | 4482 | +	} | 
|  | 4483 | +` | 
|  | 4484 | +	actual := code.SetSDK(crd.Config(), crd, model.OpTypeCreate, "r.ko", "res", 1) | 
|  | 4485 | +	fmt.Print(actual) | 
|  | 4486 | + | 
|  | 4487 | +	assert.Equal(expected, actual) | 
|  | 4488 | +} | 
|  | 4489 | + | 
|  | 4490 | +func TestSetSDK_Lambda_Function_EnvironmentVariable_MapOfSecrets_Update(t *testing.T) { | 
|  | 4491 | +	assert := assert.New(t) | 
|  | 4492 | +	require := require.New(t) | 
|  | 4493 | + | 
|  | 4494 | +	lambdaModel := testutil.NewModelForServiceWithOptions(t, "lambda", &testutil.TestingModelOptions{ | 
|  | 4495 | +		GeneratorConfigFile: "generator-environment-vars-secret.yaml", | 
|  | 4496 | +	}) | 
|  | 4497 | + | 
|  | 4498 | +	crd := testutil.GetCRDByName(t, lambdaModel, "Function") | 
|  | 4499 | +	require.NotNil(crd) | 
|  | 4500 | + | 
|  | 4501 | +	expected := ` | 
|  | 4502 | +	if r.ko.Spec.DeadLetterConfig != nil { | 
|  | 4503 | +		f0 := &svcsdktypes.DeadLetterConfig{} | 
|  | 4504 | +		if r.ko.Spec.DeadLetterConfig.TargetARN != nil { | 
|  | 4505 | +			f0.TargetArn = r.ko.Spec.DeadLetterConfig.TargetARN | 
|  | 4506 | +		} | 
|  | 4507 | +		res.DeadLetterConfig = f0 | 
|  | 4508 | +	} | 
|  | 4509 | +	if r.ko.Spec.Description != nil { | 
|  | 4510 | +		res.Description = r.ko.Spec.Description | 
|  | 4511 | +	} | 
|  | 4512 | +	if r.ko.Spec.Environment != nil { | 
|  | 4513 | +		f2 := &svcsdktypes.Environment{} | 
|  | 4514 | +		if r.ko.Spec.Environment.Variables != nil { | 
|  | 4515 | +			f2f0 := map[string]string{} | 
|  | 4516 | +			for f2f0key, f2f0valiter := range r.ko.Spec.Environment.Variables { | 
|  | 4517 | +				var f2f0val string | 
|  | 4518 | +				if f2f0valiter != nil { | 
|  | 4519 | +					tmpSecret, err := rm.rr.SecretValueFromReference(ctx, f2f0valiter) | 
|  | 4520 | +					if err != nil { | 
|  | 4521 | +						return nil, ackrequeue.Needed(err) | 
|  | 4522 | +					} | 
|  | 4523 | +					if tmpSecret != "" { | 
|  | 4524 | +						f2f0val = tmpSecret | 
|  | 4525 | +					} | 
|  | 4526 | +				} | 
|  | 4527 | +				f2f0[f2f0key] = f2f0val | 
|  | 4528 | +			} | 
|  | 4529 | +			f2.Variables = f2f0 | 
|  | 4530 | +		} | 
|  | 4531 | +		res.Environment = f2 | 
|  | 4532 | +	} | 
|  | 4533 | +	if r.ko.Status.EphemeralStorage != nil { | 
|  | 4534 | +		f3 := &svcsdktypes.EphemeralStorage{} | 
|  | 4535 | +		if r.ko.Status.EphemeralStorage.Size != nil { | 
|  | 4536 | +			sizeCopy0 := *r.ko.Status.EphemeralStorage.Size | 
|  | 4537 | +			if sizeCopy0 > math.MaxInt32 || sizeCopy0 < math.MinInt32 { | 
|  | 4538 | +				return nil, fmt.Errorf("error: field Size is of type int32") | 
|  | 4539 | +			} | 
|  | 4540 | +			sizeCopy := int32(sizeCopy0) | 
|  | 4541 | +			f3.Size = &sizeCopy | 
|  | 4542 | +		} | 
|  | 4543 | +		res.EphemeralStorage = f3 | 
|  | 4544 | +	} | 
|  | 4545 | +	if r.ko.Spec.FileSystemConfigs != nil { | 
|  | 4546 | +		f4 := []svcsdktypes.FileSystemConfig{} | 
|  | 4547 | +		for _, f4iter := range r.ko.Spec.FileSystemConfigs { | 
|  | 4548 | +			f4elem := &svcsdktypes.FileSystemConfig{} | 
|  | 4549 | +			if f4iter.ARN != nil { | 
|  | 4550 | +				f4elem.Arn = f4iter.ARN | 
|  | 4551 | +			} | 
|  | 4552 | +			if f4iter.LocalMountPath != nil { | 
|  | 4553 | +				f4elem.LocalMountPath = f4iter.LocalMountPath | 
|  | 4554 | +			} | 
|  | 4555 | +			f4 = append(f4, *f4elem) | 
|  | 4556 | +		} | 
|  | 4557 | +		res.FileSystemConfigs = f4 | 
|  | 4558 | +	} | 
|  | 4559 | +	if r.ko.Spec.FunctionName != nil { | 
|  | 4560 | +		res.FunctionName = r.ko.Spec.FunctionName | 
|  | 4561 | +	} | 
|  | 4562 | +	if r.ko.Spec.Handler != nil { | 
|  | 4563 | +		res.Handler = r.ko.Spec.Handler | 
|  | 4564 | +	} | 
|  | 4565 | +	if r.ko.Spec.ImageConfig != nil { | 
|  | 4566 | +		f7 := &svcsdktypes.ImageConfig{} | 
|  | 4567 | +		if r.ko.Spec.ImageConfig.Command != nil { | 
|  | 4568 | +			f7.Command = aws.ToStringSlice(r.ko.Spec.ImageConfig.Command) | 
|  | 4569 | +		} | 
|  | 4570 | +		if r.ko.Spec.ImageConfig.EntryPoint != nil { | 
|  | 4571 | +			f7.EntryPoint = aws.ToStringSlice(r.ko.Spec.ImageConfig.EntryPoint) | 
|  | 4572 | +		} | 
|  | 4573 | +		if r.ko.Spec.ImageConfig.WorkingDirectory != nil { | 
|  | 4574 | +			f7.WorkingDirectory = r.ko.Spec.ImageConfig.WorkingDirectory | 
|  | 4575 | +		} | 
|  | 4576 | +		res.ImageConfig = f7 | 
|  | 4577 | +	} | 
|  | 4578 | +	if r.ko.Spec.KMSKeyARN != nil { | 
|  | 4579 | +		res.KMSKeyArn = r.ko.Spec.KMSKeyARN | 
|  | 4580 | +	} | 
|  | 4581 | +	if r.ko.Spec.Layers != nil { | 
|  | 4582 | +		res.Layers = aws.ToStringSlice(r.ko.Spec.Layers) | 
|  | 4583 | +	} | 
|  | 4584 | +	if r.ko.Status.LoggingConfig != nil { | 
|  | 4585 | +		f10 := &svcsdktypes.LoggingConfig{} | 
|  | 4586 | +		if r.ko.Status.LoggingConfig.ApplicationLogLevel != nil { | 
|  | 4587 | +			f10.ApplicationLogLevel = svcsdktypes.ApplicationLogLevel(*r.ko.Status.LoggingConfig.ApplicationLogLevel) | 
|  | 4588 | +		} | 
|  | 4589 | +		if r.ko.Status.LoggingConfig.LogFormat != nil { | 
|  | 4590 | +			f10.LogFormat = svcsdktypes.LogFormat(*r.ko.Status.LoggingConfig.LogFormat) | 
|  | 4591 | +		} | 
|  | 4592 | +		if r.ko.Status.LoggingConfig.LogGroup != nil { | 
|  | 4593 | +			f10.LogGroup = r.ko.Status.LoggingConfig.LogGroup | 
|  | 4594 | +		} | 
|  | 4595 | +		if r.ko.Status.LoggingConfig.SystemLogLevel != nil { | 
|  | 4596 | +			f10.SystemLogLevel = svcsdktypes.SystemLogLevel(*r.ko.Status.LoggingConfig.SystemLogLevel) | 
|  | 4597 | +		} | 
|  | 4598 | +		res.LoggingConfig = f10 | 
|  | 4599 | +	} | 
|  | 4600 | +	if r.ko.Spec.MemorySize != nil { | 
|  | 4601 | +		memorySizeCopy0 := *r.ko.Spec.MemorySize | 
|  | 4602 | +		if memorySizeCopy0 > math.MaxInt32 || memorySizeCopy0 < math.MinInt32 { | 
|  | 4603 | +			return nil, fmt.Errorf("error: field MemorySize is of type int32") | 
|  | 4604 | +		} | 
|  | 4605 | +		memorySizeCopy := int32(memorySizeCopy0) | 
|  | 4606 | +		res.MemorySize = &memorySizeCopy | 
|  | 4607 | +	} | 
|  | 4608 | +	if r.ko.Status.RevisionID != nil { | 
|  | 4609 | +		res.RevisionId = r.ko.Status.RevisionID | 
|  | 4610 | +	} | 
|  | 4611 | +	if r.ko.Spec.Role != nil { | 
|  | 4612 | +		res.Role = r.ko.Spec.Role | 
|  | 4613 | +	} | 
|  | 4614 | +	if r.ko.Spec.Runtime != nil { | 
|  | 4615 | +		res.Runtime = svcsdktypes.Runtime(*r.ko.Spec.Runtime) | 
|  | 4616 | +	} | 
|  | 4617 | +	if r.ko.Status.SnapStart != nil { | 
|  | 4618 | +		f15 := &svcsdktypes.SnapStart{} | 
|  | 4619 | +		if r.ko.Status.SnapStart.ApplyOn != nil { | 
|  | 4620 | +			f15.ApplyOn = svcsdktypes.SnapStartApplyOn(*r.ko.Status.SnapStart.ApplyOn) | 
|  | 4621 | +		} | 
|  | 4622 | +		res.SnapStart = f15 | 
|  | 4623 | +	} | 
|  | 4624 | +	if r.ko.Spec.Timeout != nil { | 
|  | 4625 | +		timeoutCopy0 := *r.ko.Spec.Timeout | 
|  | 4626 | +		if timeoutCopy0 > math.MaxInt32 || timeoutCopy0 < math.MinInt32 { | 
|  | 4627 | +			return nil, fmt.Errorf("error: field Timeout is of type int32") | 
|  | 4628 | +		} | 
|  | 4629 | +		timeoutCopy := int32(timeoutCopy0) | 
|  | 4630 | +		res.Timeout = &timeoutCopy | 
|  | 4631 | +	} | 
|  | 4632 | +	if r.ko.Spec.TracingConfig != nil { | 
|  | 4633 | +		f17 := &svcsdktypes.TracingConfig{} | 
|  | 4634 | +		if r.ko.Spec.TracingConfig.Mode != nil { | 
|  | 4635 | +			f17.Mode = svcsdktypes.TracingMode(*r.ko.Spec.TracingConfig.Mode) | 
|  | 4636 | +		} | 
|  | 4637 | +		res.TracingConfig = f17 | 
|  | 4638 | +	} | 
|  | 4639 | +	if r.ko.Spec.VPCConfig != nil { | 
|  | 4640 | +		f18 := &svcsdktypes.VpcConfig{} | 
|  | 4641 | +		if r.ko.Spec.VPCConfig.SecurityGroupIDs != nil { | 
|  | 4642 | +			f18.SecurityGroupIds = aws.ToStringSlice(r.ko.Spec.VPCConfig.SecurityGroupIDs) | 
|  | 4643 | +		} | 
|  | 4644 | +		if r.ko.Spec.VPCConfig.SubnetIDs != nil { | 
|  | 4645 | +			f18.SubnetIds = aws.ToStringSlice(r.ko.Spec.VPCConfig.SubnetIDs) | 
|  | 4646 | +		} | 
|  | 4647 | +		res.VpcConfig = f18 | 
|  | 4648 | +	} | 
|  | 4649 | +` | 
|  | 4650 | + | 
|  | 4651 | +	actual := code.SetSDK(crd.Config(), crd, model.OpTypeUpdate, "r.ko", "res", 1) | 
|  | 4652 | + | 
|  | 4653 | +	assert.Equal(expected, actual) | 
|  | 4654 | +} | 
0 commit comments