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
}