Simplify shouldDelegateList
When ResourceVersionMatch is set to NotOlderThan, there is no need to handle continue or resourceVersion="". The validation in apimachinery will not pass and return: * "resourceVersionMatch is forbidden when continue is provided" * "resourceVersionMatch is forbidden unless resourceVersion is provided" Kubernetes-commit: a0cc02e264ead76dfb0ae75a505e4d2e54219def
This commit is contained in:
		
							parent
							
								
									ae901d5b33
								
							
						
					
					
						commit
						6ed423348f
					
				|  | @ -249,25 +249,26 @@ func shouldDelegateList(opts storage.ListOptions) bool { | |||
| 	case metav1.ResourceVersionMatchExact: | ||||
| 		return true | ||||
| 	case metav1.ResourceVersionMatchNotOlderThan: | ||||
| 		return false | ||||
| 	case "": | ||||
| 		// Legacy exact match
 | ||||
| 		if opts.Predicate.Limit > 0 && len(opts.ResourceVersion) > 0 && opts.ResourceVersion != "0" { | ||||
| 			return true | ||||
| 		} | ||||
| 		// Continue
 | ||||
| 		if len(opts.Predicate.Continue) > 0 { | ||||
| 			return true | ||||
| 		} | ||||
| 		// Consistent Read
 | ||||
| 		if opts.ResourceVersion == "" { | ||||
| 			consistentListFromCacheEnabled := utilfeature.DefaultFeatureGate.Enabled(features.ConsistentListFromCache) | ||||
| 			requestWatchProgressSupported := etcdfeature.DefaultFeatureSupportChecker.Supports(storage.RequestWatchProgress) | ||||
| 			return !consistentListFromCacheEnabled || !requestWatchProgressSupported | ||||
| 		} | ||||
| 		return false | ||||
| 	default: | ||||
| 		return true | ||||
| 	} | ||||
| 	// Continue
 | ||||
| 	if len(opts.Predicate.Continue) > 0 { | ||||
| 		return true | ||||
| 	} | ||||
| 	// Consistent Read
 | ||||
| 	if opts.ResourceVersion == "" { | ||||
| 		consistentListFromCacheEnabled := utilfeature.DefaultFeatureGate.Enabled(features.ConsistentListFromCache) | ||||
| 		requestWatchProgressSupported := etcdfeature.DefaultFeatureSupportChecker.Supports(storage.RequestWatchProgress) | ||||
| 		return !consistentListFromCacheEnabled || !requestWatchProgressSupported | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
| 
 | ||||
| func (c *CacheDelegator) GuaranteedUpdate(ctx context.Context, key string, destination runtime.Object, ignoreNotFound bool, preconditions *storage.Preconditions, tryUpdate storage.UpdateFunc, cachedExistingObject runtime.Object) error { | ||||
|  |  | |||
|  | @ -169,23 +169,24 @@ func shouldListFromStorage(query url.Values, opts *metav1.ListOptions) bool { | |||
| 	case metav1.ResourceVersionMatchExact: | ||||
| 		return true | ||||
| 	case metav1.ResourceVersionMatchNotOlderThan: | ||||
| 		return false | ||||
| 	case "": | ||||
| 		// Legacy exact match
 | ||||
| 		if opts.Limit > 0 && len(opts.ResourceVersion) > 0 && opts.ResourceVersion != "0" { | ||||
| 			return true | ||||
| 		} | ||||
| 		// Continue
 | ||||
| 		if len(opts.Continue) > 0 { | ||||
| 			return true | ||||
| 		} | ||||
| 		// Consistent Read
 | ||||
| 		if opts.ResourceVersion == "" { | ||||
| 			consistentListFromCacheEnabled := utilfeature.DefaultFeatureGate.Enabled(features.ConsistentListFromCache) | ||||
| 			requestWatchProgressSupported := etcdfeature.DefaultFeatureSupportChecker.Supports(storage.RequestWatchProgress) | ||||
| 			return !consistentListFromCacheEnabled || !requestWatchProgressSupported | ||||
| 		} | ||||
| 		return false | ||||
| 	default: | ||||
| 		return true | ||||
| 	} | ||||
| 	// Continue
 | ||||
| 	if len(opts.Continue) > 0 { | ||||
| 		return true | ||||
| 	} | ||||
| 	// Consistent Read
 | ||||
| 	if opts.ResourceVersion == "" { | ||||
| 		consistentListFromCacheEnabled := utilfeature.DefaultFeatureGate.Enabled(features.ConsistentListFromCache) | ||||
| 		requestWatchProgressSupported := etcdfeature.DefaultFeatureSupportChecker.Supports(storage.RequestWatchProgress) | ||||
| 		return !consistentListFromCacheEnabled || !requestWatchProgressSupported | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue