func SettingsMatch()

in pkg/controller/direct/sql/sqlinstance_equality.go [107:209]


func SettingsMatch(desired *api.Settings, actual *api.Settings) bool {
	if desired == nil && actual == nil {
		return true
	}
	if !PointersMatch(desired, actual) {
		return false
	}
	if desired.ActivationPolicy != actual.ActivationPolicy {
		return false
	}
	if !ActiveDirectoryConfigsMatch(desired.ActiveDirectoryConfig, actual.ActiveDirectoryConfig) {
		return false
	}
	if !AdvancedMachineFeaturesMatch(desired.AdvancedMachineFeatures, actual.AdvancedMachineFeatures) {
		return false
	}
	if !reflect.DeepEqual(desired.AuthorizedGaeApplications, actual.AuthorizedGaeApplications) {
		return false
	}
	if desired.AvailabilityType != actual.AvailabilityType {
		return false
	}
	if !BackupConfigurationsMatch(desired.BackupConfiguration, actual.BackupConfiguration) {
		return false
	}
	if desired.Collation != actual.Collation {
		return false
	}
	if desired.ConnectorEnforcement != actual.ConnectorEnforcement {
		return false
	}
	// Ignore CrashSafeReplicationEnabled. It is only applicable to first-gen instances.
	if !DataCacheConfigsMatch(desired.DataCacheConfig, actual.DataCacheConfig) {
		return false
	}
	if desired.DataDiskSizeGb != actual.DataDiskSizeGb {
		return false
	}
	if desired.DataDiskType != actual.DataDiskType {
		return false
	}
	if !DatabaseFlagListsMatch(desired.DatabaseFlags, actual.DatabaseFlags) {
		return false
	}
	// Ignore DatabaseReplicationEnabled. It is not supported in KRM API.
	if desired.DeletionProtectionEnabled != actual.DeletionProtectionEnabled {
		return false
	}
	if !DenyMaintenancePeriodListsMatch(desired.DenyMaintenancePeriods, actual.DenyMaintenancePeriods) {
		return false
	}
	if desired.Edition != actual.Edition {
		return false
	}
	// Ignore EnableDataplexIntegration. It is not supported in KRM API.
	// Ignore EnableGoogleMlIntegration. It is not supported in KRM API.
	if !InsightsConfigsMatch(desired.InsightsConfig, actual.InsightsConfig) {
		return false
	}
	if !IpConfigurationsMatch(desired.IpConfiguration, actual.IpConfiguration) {
		return false
	}
	// Ignore Kind. It is sometimes not set in API responses.
	if !LocationPreferencesMatch(desired.LocationPreference, actual.LocationPreference) {
		return false
	}
	if !MaintenanceWindowsMatch(desired.MaintenanceWindow, actual.MaintenanceWindow) {
		return false
	}
	if !PasswordValidationPoliciesMatch(desired.PasswordValidationPolicy, actual.PasswordValidationPolicy) {
		return false
	}
	if desired.PricingPlan != actual.PricingPlan {
		return false
	}
	if desired.ReplicationType != actual.ReplicationType {
		return false
	}
	if desired.SettingsVersion != actual.SettingsVersion {
		return false
	}
	if !SqlServerAuditConfigsMatch(desired.SqlServerAuditConfig, actual.SqlServerAuditConfig) {
		return false
	}
	if !StorageAutoResizesMatch(desired.StorageAutoResize, actual.StorageAutoResize) {
		return false
	}
	if desired.StorageAutoResizeLimit != actual.StorageAutoResizeLimit {
		return false
	}
	if desired.Tier != actual.Tier {
		return false
	}
	if desired.TimeZone != actual.TimeZone {
		return false
	}
	if !reflect.DeepEqual(desired.UserLabels, actual.UserLabels) {
		return false
	}
	// Ignore ForceSendFields. Assume it is set correctly in desired.
	// Ignore NullFields. Assume it is set correctly in desired.
	return true
}