MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / validateVersion

Method validateVersion

rest/config.go:755–1148  ·  view source on GitHub ↗
(ctx context.Context, isEnterpriseEdition, validateOIDCConfig, validateReplications bool)

Source from the content-addressed store, hash-verified

753}
754
755func (dbConfig *DbConfig) validateVersion(ctx context.Context, isEnterpriseEdition, validateOIDCConfig, validateReplications bool) error {
756
757 var multiError *base.MultiError
758 // Make sure a non-zero compact_interval_days config is within the valid range
759 if val := dbConfig.CompactIntervalDays; val != nil && *val != 0 &&
760 (*val < db.CompactIntervalMinDays || *val > db.CompactIntervalMaxDays) {
761 multiError = multiError.Append(fmt.Errorf(rangeValueErrorMsg, "compact_interval_days",
762 fmt.Sprintf("%g-%g", db.CompactIntervalMinDays, db.CompactIntervalMaxDays)))
763 }
764
765 if dbConfig.CacheConfig != nil {
766
767 if dbConfig.CacheConfig.ChannelCacheConfig != nil {
768
769 // EE: channel cache
770 if !isEnterpriseEdition {
771 if val := dbConfig.CacheConfig.ChannelCacheConfig.MaxNumber; val != nil {
772 base.WarnfCtx(ctx, eeOnlyWarningMsg, "cache.channel_cache.max_number", *val, db.DefaultChannelCacheMaxNumber)
773 dbConfig.CacheConfig.ChannelCacheConfig.MaxNumber = nil
774 }
775 if val := dbConfig.CacheConfig.ChannelCacheConfig.HighWatermarkPercent; val != nil {
776 base.WarnfCtx(ctx, eeOnlyWarningMsg, "cache.channel_cache.compact_high_watermark_pct", *val, db.DefaultCompactHighWatermarkPercent)
777 dbConfig.CacheConfig.ChannelCacheConfig.HighWatermarkPercent = nil
778 }
779 if val := dbConfig.CacheConfig.ChannelCacheConfig.LowWatermarkPercent; val != nil {
780 base.WarnfCtx(ctx, eeOnlyWarningMsg, "cache.channel_cache.compact_low_watermark_pct", *val, db.DefaultCompactLowWatermarkPercent)
781 dbConfig.CacheConfig.ChannelCacheConfig.LowWatermarkPercent = nil
782 }
783 }
784
785 if dbConfig.CacheConfig.ChannelCacheConfig.MaxNumPending != nil && *dbConfig.CacheConfig.ChannelCacheConfig.MaxNumPending < 1 {
786 multiError = multiError.Append(fmt.Errorf(minValueErrorMsg, "cache.channel_cache.max_num_pending", 1))
787 }
788 if dbConfig.CacheConfig.ChannelCacheConfig.MaxWaitPending != nil && *dbConfig.CacheConfig.ChannelCacheConfig.MaxWaitPending < 1 {
789 multiError = multiError.Append(fmt.Errorf(minValueErrorMsg, "cache.channel_cache.max_wait_pending", 1))
790 }
791 if dbConfig.CacheConfig.ChannelCacheConfig.MaxWaitSkipped != nil && *dbConfig.CacheConfig.ChannelCacheConfig.MaxWaitSkipped < 1 {
792 multiError = multiError.Append(fmt.Errorf(minValueErrorMsg, "cache.channel_cache.max_wait_skipped", 1))
793 }
794 if dbConfig.CacheConfig.ChannelCacheConfig.MaxLength != nil && *dbConfig.CacheConfig.ChannelCacheConfig.MaxLength < 1 {
795 multiError = multiError.Append(fmt.Errorf(minValueErrorMsg, "cache.channel_cache.max_length", 1))
796 }
797 if dbConfig.CacheConfig.ChannelCacheConfig.MinLength != nil && *dbConfig.CacheConfig.ChannelCacheConfig.MinLength < 1 {
798 multiError = multiError.Append(fmt.Errorf(minValueErrorMsg, "cache.channel_cache.min_length", 1))
799 }
800 if dbConfig.CacheConfig.ChannelCacheConfig.ExpirySeconds != nil && *dbConfig.CacheConfig.ChannelCacheConfig.ExpirySeconds < 1 {
801 multiError = multiError.Append(fmt.Errorf(minValueErrorMsg, "cache.channel_cache.expiry_seconds", 1))
802 }
803 if dbConfig.CacheConfig.ChannelCacheConfig.MaxNumber != nil && *dbConfig.CacheConfig.ChannelCacheConfig.MaxNumber < db.MinimumChannelCacheMaxNumber {
804 multiError = multiError.Append(fmt.Errorf(minValueErrorMsg, "cache.channel_cache.max_number", db.MinimumChannelCacheMaxNumber))
805 }
806
807 // Compact watermark validation
808 hwm := db.DefaultCompactHighWatermarkPercent
809 lwm := db.DefaultCompactLowWatermarkPercent
810 if dbConfig.CacheConfig.ChannelCacheConfig.HighWatermarkPercent != nil {
811 if *dbConfig.CacheConfig.ChannelCacheConfig.HighWatermarkPercent < 1 || *dbConfig.CacheConfig.ChannelCacheConfig.HighWatermarkPercent > 100 {
812 multiError = multiError.Append(fmt.Errorf(rangeValueErrorMsg, "cache.channel_cache.compact_high_watermark_pct", "0-100"))

Callers 1

validateMethod · 0.95

Calls 15

AppendMethod · 0.95
AutoImportEnabledMethod · 0.95
UseXattrsMethod · 0.95
ConflictsAllowedMethod · 0.95
useGSIMethod · 0.95
ErrorOrNilMethod · 0.95
WarnfCtxFunction · 0.92
ValidateDatabaseNameFunction · 0.92
ValDefaultFunction · 0.92
UDFunction · 0.92
ValidateFunctionsFunction · 0.92
AuditIDTypeAlias · 0.92

Tested by

no test coverage detected