Pass typed options to dynamic client

pull/6/head
Jordan Liggitt 2017-02-19 15:10:05 -05:00
parent 3a73d23e33
commit 308fdcd13f
No known key found for this signature in database
GPG Key ID: 24E7ADF9A3B42012
6 changed files with 16 additions and 16 deletions

View File

@ -460,7 +460,7 @@ func gcListWatcher(client *dynamic.Client, resource schema.GroupVersionResource)
apiResource := metav1.APIResource{Name: resource.Resource} apiResource := metav1.APIResource{Name: resource.Resource}
return client.ParameterCodec(dynamic.VersionedParameterEncoderWithV1Fallback). return client.ParameterCodec(dynamic.VersionedParameterEncoderWithV1Fallback).
Resource(&apiResource, metav1.NamespaceAll). Resource(&apiResource, metav1.NamespaceAll).
List(&options) List(options)
}, },
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
// APIResource.Kind is not used by the dynamic client, so // APIResource.Kind is not used by the dynamic client, so
@ -470,7 +470,7 @@ func gcListWatcher(client *dynamic.Client, resource schema.GroupVersionResource)
apiResource := metav1.APIResource{Name: resource.Resource} apiResource := metav1.APIResource{Name: resource.Resource}
return client.ParameterCodec(dynamic.VersionedParameterEncoderWithV1Fallback). return client.ParameterCodec(dynamic.VersionedParameterEncoderWithV1Fallback).
Resource(&apiResource, metav1.NamespaceAll). Resource(&apiResource, metav1.NamespaceAll).
Watch(&options) Watch(options)
}, },
} }
} }

View File

@ -341,7 +341,7 @@ func (d *namespacedResourcesDeleter) deleteCollection(
// resource deletions generically. it will ensure all resources in the namespace are purged prior to releasing // resource deletions generically. it will ensure all resources in the namespace are purged prior to releasing
// namespace itself. // namespace itself.
orphanDependents := false orphanDependents := false
err := dynamicClient.Resource(&apiResource, namespace).DeleteCollection(&metav1.DeleteOptions{OrphanDependents: &orphanDependents}, &metav1.ListOptions{}) err := dynamicClient.Resource(&apiResource, namespace).DeleteCollection(&metav1.DeleteOptions{OrphanDependents: &orphanDependents}, metav1.ListOptions{})
if err == nil { if err == nil {
return true, nil return true, nil
@ -379,7 +379,7 @@ func (d *namespacedResourcesDeleter) listCollection(
} }
apiResource := metav1.APIResource{Name: gvr.Resource, Namespaced: true} apiResource := metav1.APIResource{Name: gvr.Resource, Namespaced: true}
obj, err := dynamicClient.Resource(&apiResource, namespace).List(&metav1.ListOptions{}) obj, err := dynamicClient.Resource(&apiResource, namespace).List(metav1.ListOptions{})
if err == nil { if err == nil {
unstructuredList, ok := obj.(*unstructured.UnstructuredList) unstructuredList, ok := obj.(*unstructured.UnstructuredList)
if !ok { if !ok {

View File

@ -112,7 +112,7 @@ type ResourceClient struct {
} }
// List returns a list of objects for this resource. // List returns a list of objects for this resource.
func (rc *ResourceClient) List(opts runtime.Object) (runtime.Object, error) { func (rc *ResourceClient) List(opts metav1.ListOptions) (runtime.Object, error) {
parameterEncoder := rc.parameterCodec parameterEncoder := rc.parameterCodec
if parameterEncoder == nil { if parameterEncoder == nil {
parameterEncoder = defaultParameterEncoder parameterEncoder = defaultParameterEncoder
@ -120,7 +120,7 @@ func (rc *ResourceClient) List(opts runtime.Object) (runtime.Object, error) {
return rc.cl.Get(). return rc.cl.Get().
NamespaceIfScoped(rc.ns, rc.resource.Namespaced). NamespaceIfScoped(rc.ns, rc.resource.Namespaced).
Resource(rc.resource.Name). Resource(rc.resource.Name).
VersionedParams(opts, parameterEncoder). VersionedParams(&opts, parameterEncoder).
Do(). Do().
Get() Get()
} }
@ -149,7 +149,7 @@ func (rc *ResourceClient) Delete(name string, opts *metav1.DeleteOptions) error
} }
// DeleteCollection deletes a collection of objects. // DeleteCollection deletes a collection of objects.
func (rc *ResourceClient) DeleteCollection(deleteOptions *metav1.DeleteOptions, listOptions runtime.Object) error { func (rc *ResourceClient) DeleteCollection(deleteOptions *metav1.DeleteOptions, listOptions metav1.ListOptions) error {
parameterEncoder := rc.parameterCodec parameterEncoder := rc.parameterCodec
if parameterEncoder == nil { if parameterEncoder == nil {
parameterEncoder = defaultParameterEncoder parameterEncoder = defaultParameterEncoder
@ -157,7 +157,7 @@ func (rc *ResourceClient) DeleteCollection(deleteOptions *metav1.DeleteOptions,
return rc.cl.Delete(). return rc.cl.Delete().
NamespaceIfScoped(rc.ns, rc.resource.Namespaced). NamespaceIfScoped(rc.ns, rc.resource.Namespaced).
Resource(rc.resource.Name). Resource(rc.resource.Name).
VersionedParams(listOptions, parameterEncoder). VersionedParams(&listOptions, parameterEncoder).
Body(deleteOptions). Body(deleteOptions).
Do(). Do().
Error() Error()
@ -192,7 +192,7 @@ func (rc *ResourceClient) Update(obj *unstructured.Unstructured) (*unstructured.
} }
// Watch returns a watch.Interface that watches the resource. // Watch returns a watch.Interface that watches the resource.
func (rc *ResourceClient) Watch(opts runtime.Object) (watch.Interface, error) { func (rc *ResourceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
parameterEncoder := rc.parameterCodec parameterEncoder := rc.parameterCodec
if parameterEncoder == nil { if parameterEncoder == nil {
parameterEncoder = defaultParameterEncoder parameterEncoder = defaultParameterEncoder
@ -201,7 +201,7 @@ func (rc *ResourceClient) Watch(opts runtime.Object) (watch.Interface, error) {
Prefix("watch"). Prefix("watch").
NamespaceIfScoped(rc.ns, rc.resource.Namespaced). NamespaceIfScoped(rc.ns, rc.resource.Namespaced).
Resource(rc.resource.Name). Resource(rc.resource.Name).
VersionedParams(opts, parameterEncoder). VersionedParams(&opts, parameterEncoder).
Watch() Watch()
} }

View File

@ -136,7 +136,7 @@ func TestList(t *testing.T) {
} }
defer srv.Close() defer srv.Close()
got, err := cl.Resource(resource, tc.namespace).List(&metav1.ListOptions{}) got, err := cl.Resource(resource, tc.namespace).List(metav1.ListOptions{})
if err != nil { if err != nil {
t.Errorf("unexpected error when listing %q: %v", tc.name, err) t.Errorf("unexpected error when listing %q: %v", tc.name, err)
continue continue
@ -293,7 +293,7 @@ func TestDeleteCollection(t *testing.T) {
} }
defer srv.Close() defer srv.Close()
err = cl.Resource(resource, tc.namespace).DeleteCollection(nil, &metav1.ListOptions{}) err = cl.Resource(resource, tc.namespace).DeleteCollection(nil, metav1.ListOptions{})
if err != nil { if err != nil {
t.Errorf("unexpected error when deleting collection %q: %v", tc.name, err) t.Errorf("unexpected error when deleting collection %q: %v", tc.name, err)
continue continue
@ -469,7 +469,7 @@ func TestWatch(t *testing.T) {
} }
defer srv.Close() defer srv.Close()
watcher, err := cl.Resource(resource, tc.namespace).Watch(&metav1.ListOptions{}) watcher, err := cl.Resource(resource, tc.namespace).Watch(metav1.ListOptions{})
if err != nil { if err != nil {
t.Errorf("unexpected error when watching %q: %v", tc.name, err) t.Errorf("unexpected error when watching %q: %v", tc.name, err)
continue continue

View File

@ -363,7 +363,7 @@ func SkipIfMissingResource(clientPool dynamic.ClientPool, gvr schema.GroupVersio
Failf("Unexpected error getting dynamic client for %v: %v", gvr.GroupVersion(), err) Failf("Unexpected error getting dynamic client for %v: %v", gvr.GroupVersion(), err)
} }
apiResource := metav1.APIResource{Name: gvr.Resource, Namespaced: true} apiResource := metav1.APIResource{Name: gvr.Resource, Namespaced: true}
_, err = dynamicClient.Resource(&apiResource, namespace).List(&metav1.ListOptions{}) _, err = dynamicClient.Resource(&apiResource, namespace).List(metav1.ListOptions{})
if err != nil { if err != nil {
// not all resources support list, so we ignore those // not all resources support list, so we ignore those
if apierrs.IsMethodNotSupported(err) || apierrs.IsNotFound(err) || apierrs.IsForbidden(err) { if apierrs.IsMethodNotSupported(err) || apierrs.IsNotFound(err) || apierrs.IsForbidden(err) {
@ -1080,7 +1080,7 @@ func hasRemainingContent(c clientset.Interface, clientPool dynamic.ClientPool, n
Logf("namespace: %s, resource: %s, ignored listing per whitelist", namespace, apiResource.Name) Logf("namespace: %s, resource: %s, ignored listing per whitelist", namespace, apiResource.Name)
continue continue
} }
obj, err := dynamicClient.Resource(&apiResource, namespace).List(&metav1.ListOptions{}) obj, err := dynamicClient.Resource(&apiResource, namespace).List(metav1.ListOptions{})
if err != nil { if err != nil {
// not all resources support list, so we ignore those // not all resources support list, so we ignore those
if apierrs.IsMethodNotSupported(err) || apierrs.IsNotFound(err) || apierrs.IsForbidden(err) { if apierrs.IsMethodNotSupported(err) || apierrs.IsNotFound(err) || apierrs.IsForbidden(err) {

View File

@ -93,7 +93,7 @@ func TestDynamicClient(t *testing.T) {
} }
// check dynamic list // check dynamic list
obj, err := dynamicClient.Resource(&resource, ns.Name).List(&metav1.ListOptions{}) obj, err := dynamicClient.Resource(&resource, ns.Name).List(metav1.ListOptions{})
unstructuredList, ok := obj.(*unstructured.UnstructuredList) unstructuredList, ok := obj.(*unstructured.UnstructuredList)
if !ok { if !ok {
t.Fatalf("expected *unstructured.UnstructuredList, got %#v", obj) t.Fatalf("expected *unstructured.UnstructuredList, got %#v", obj)