func populateDefaultsForEnvironmentConfig()

in pkg/controller/direct/composer/environment_controller.go [283:383]


func populateDefaultsForEnvironmentConfig(desired, actual *composerpb.EnvironmentConfig) {
	if actual == nil {
		return // If actual is nil, nothing to populate from.
	}

	// Populate output-only fields
	if desired.AirflowByoidUri == "" && actual.AirflowByoidUri != "" {
		desired.AirflowByoidUri = actual.AirflowByoidUri
	}
	if desired.AirflowUri == "" && actual.AirflowUri != "" {
		desired.AirflowUri = actual.AirflowUri
	}
	if desired.DagGcsPrefix == "" && actual.DagGcsPrefix != "" {
		desired.DagGcsPrefix = actual.DagGcsPrefix
	}
	if desired.GkeCluster == "" && actual.GkeCluster != "" {
		desired.GkeCluster = actual.GkeCluster
	}

	// Handle other fields.
	if actual.DataRetentionConfig != nil {
		if desired.DataRetentionConfig == nil {
			desired.DataRetentionConfig = actual.DataRetentionConfig
		}
		if actual.DataRetentionConfig.AirflowMetadataRetentionConfig != nil {
			if desired.DataRetentionConfig.AirflowMetadataRetentionConfig == nil {
				desired.DataRetentionConfig.AirflowMetadataRetentionConfig = actual.DataRetentionConfig.AirflowMetadataRetentionConfig
			}
		}
		if actual.DataRetentionConfig.TaskLogsRetentionConfig != nil {
			if desired.DataRetentionConfig.TaskLogsRetentionConfig == nil {
				desired.DataRetentionConfig.TaskLogsRetentionConfig = actual.DataRetentionConfig.TaskLogsRetentionConfig
			}
		}
	}

	//if actual.DatabaseConfig != nil {
	//	if desired.DatabaseConfig == nil {
	//		desired.DatabaseConfig = &pb.DatabaseConfig{}
	//	}
	//	if desired.DatabaseConfig.MachineType == "" && actual.DatabaseConfig.MachineType != "" {
	//		desired.DatabaseConfig.MachineType = actual.DatabaseConfig.MachineType
	//	}
	//}

	//if actual.EncryptionConfig != nil {
	//	if desired.EncryptionConfig == nil {
	//		desired.EncryptionConfig = &pb.EncryptionConfig{}
	//	}
	//}

	if desired.EnvironmentSize == composerpb.EnvironmentConfig_ENVIRONMENT_SIZE_UNSPECIFIED {
		desired.EnvironmentSize = actual.EnvironmentSize
	}
	if desired.MaintenanceWindow == nil {
		desired.MaintenanceWindow = actual.MaintenanceWindow
	}

	if desired.NodeConfig == nil {
		desired.NodeConfig = actual.NodeConfig
	}

	if actual.PrivateEnvironmentConfig != nil {
		if desired.PrivateEnvironmentConfig == nil {
			desired.PrivateEnvironmentConfig = actual.PrivateEnvironmentConfig
		}
		if desired.PrivateEnvironmentConfig.CloudComposerNetworkIpv4ReservedRange == "" {
			desired.PrivateEnvironmentConfig.CloudComposerNetworkIpv4ReservedRange = actual.PrivateEnvironmentConfig.CloudComposerNetworkIpv4ReservedRange
		}
		if desired.PrivateEnvironmentConfig.WebServerIpv4ReservedRange == "" {
			desired.PrivateEnvironmentConfig.WebServerIpv4ReservedRange = actual.PrivateEnvironmentConfig.WebServerIpv4ReservedRange
		}
		if actual.PrivateEnvironmentConfig.PrivateClusterConfig != nil {
			if desired.PrivateEnvironmentConfig.PrivateClusterConfig == nil {
				desired.PrivateEnvironmentConfig.PrivateClusterConfig = actual.PrivateEnvironmentConfig.PrivateClusterConfig
			}
			if desired.PrivateEnvironmentConfig.PrivateClusterConfig.MasterIpv4ReservedRange == "" {
				desired.PrivateEnvironmentConfig.PrivateClusterConfig.MasterIpv4ReservedRange = actual.PrivateEnvironmentConfig.PrivateClusterConfig.MasterIpv4ReservedRange
			}
		}
	}

	if actual.SoftwareConfig != nil {
		if desired.SoftwareConfig == nil {
			desired.SoftwareConfig = actual.SoftwareConfig
		}
		if desired.SoftwareConfig.CloudDataLineageIntegration == nil {
			desired.SoftwareConfig.CloudDataLineageIntegration = &composerpb.CloudDataLineageIntegration{}
		}
		if desired.SoftwareConfig.ImageVersion == "" {
			desired.SoftwareConfig.ImageVersion = actual.SoftwareConfig.ImageVersion
		}
	}

	if desired.WebServerNetworkAccessControl == nil {
		desired.WebServerNetworkAccessControl = actual.WebServerNetworkAccessControl
	}
	if desired.WorkloadsConfig == nil {
		desired.WorkloadsConfig = actual.WorkloadsConfig
	}
}