Allow resource.Builder to modify requests per client
Gives the builder a hook point to add settings to each request. These settings are applied before the request is created and so are unable to view the request. Intended to set controls on a per request basis.
This commit is contained in:
@@ -58,6 +58,7 @@ type Builder struct {
|
||||
selectAll bool
|
||||
includeUninitialized bool
|
||||
limitChunks int64
|
||||
requestTransforms []RequestTransform
|
||||
|
||||
resources []string
|
||||
|
||||
@@ -354,6 +355,13 @@ func (b *Builder) RequestChunksOf(chunkSize int64) *Builder {
|
||||
return b
|
||||
}
|
||||
|
||||
// TransformRequests alters API calls made by clients requested from this builder. Pass
|
||||
// an empty list to clear modifiers.
|
||||
func (b *Builder) TransformRequests(opts ...RequestTransform) *Builder {
|
||||
b.requestTransforms = opts
|
||||
return b
|
||||
}
|
||||
|
||||
// SelectEverythingParam
|
||||
func (b *Builder) SelectAllParam(selectAll bool) *Builder {
|
||||
if selectAll && (b.labelSelector != nil || b.fieldSelector != nil) {
|
||||
@@ -656,6 +664,7 @@ func (b *Builder) visitBySelector() *Result {
|
||||
result.err = err
|
||||
return result
|
||||
}
|
||||
client = NewClientWithOptions(client, b.requestTransforms...)
|
||||
selectorNamespace := b.namespace
|
||||
if mapping.Scope.Name() != meta.RESTScopeNameNamespace {
|
||||
selectorNamespace = ""
|
||||
@@ -705,6 +714,7 @@ func (b *Builder) visitByResource() *Result {
|
||||
result.err = err
|
||||
return result
|
||||
}
|
||||
client = NewClientWithOptions(client, b.requestTransforms...)
|
||||
clients[s] = client
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user