Skip to content

Commit

Permalink
Migrate ListRuntimeObjectsForKind to use dynamic client only
Browse files Browse the repository at this point in the history
  • Loading branch information
mborsz committed Feb 11, 2020
1 parent 5c47df1 commit 666b17e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 86 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,6 @@ func (w *waitForControlledPodsRunningMeasurement) getObjectCountAndMaxVersion()
var desiredCount int
var maxResourceVersion uint64
objects, err := runtimeobjects.ListRuntimeObjectsForKind(
w.clusterFramework.GetClientSets().GetClient(),
w.clusterFramework.GetDynamicClients().GetClient(),
w.gvr, w.kind, w.selector.Namespace, w.selector.LabelSelector, w.selector.FieldSelector)
if err != nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,99 +38,23 @@ import (
)

// ListRuntimeObjectsForKind returns objects of given kind that satisfy given namespace, labelSelector and fieldSelector.
// TODO(mborsz): Use dynamic client in all cases.
func ListRuntimeObjectsForKind(c clientset.Interface, d dynamic.Interface, gvr schema.GroupVersionResource, kind, namespace, labelSelector, fieldSelector string) ([]runtime.Object, error) {
func ListRuntimeObjectsForKind(d dynamic.Interface, gvr schema.GroupVersionResource, kind, namespace, labelSelector, fieldSelector string) ([]runtime.Object, error) {
var runtimeObjectsList []runtime.Object
var listFunc func() error
listOpts := metav1.ListOptions{
LabelSelector: labelSelector,
FieldSelector: fieldSelector,
}
switch kind {
case "ReplicationController":
listFunc = func() error {
list, err := c.CoreV1().ReplicationControllers(namespace).List(listOpts)
if err != nil {
return err
}
runtimeObjectsList = make([]runtime.Object, len(list.Items))
for i := range list.Items {
runtimeObjectsList[i] = &list.Items[i]
}
return nil
}
case "ReplicaSet":
listFunc = func() error {
list, err := c.AppsV1().ReplicaSets(namespace).List(listOpts)
if err != nil {
return err
}
runtimeObjectsList = make([]runtime.Object, len(list.Items))
for i := range list.Items {
runtimeObjectsList[i] = &list.Items[i]
}
return nil
}
case "Deployment":
listFunc = func() error {
list, err := c.AppsV1().Deployments(namespace).List(listOpts)
if err != nil {
return err
}
runtimeObjectsList = make([]runtime.Object, len(list.Items))
for i := range list.Items {
runtimeObjectsList[i] = &list.Items[i]
}
return nil
}
case "StatefulSet":
listFunc = func() error {
list, err := c.AppsV1().StatefulSets(namespace).List(listOpts)
if err != nil {
return err
}
runtimeObjectsList = make([]runtime.Object, len(list.Items))
for i := range list.Items {
runtimeObjectsList[i] = &list.Items[i]
}
return nil
}
case "DaemonSet":
listFunc = func() error {
list, err := c.AppsV1().DaemonSets(namespace).List(listOpts)
if err != nil {
return err
}
runtimeObjectsList = make([]runtime.Object, len(list.Items))
for i := range list.Items {
runtimeObjectsList[i] = &list.Items[i]
}
return nil
}
case "Job":
listFunc = func() error {
list, err := c.BatchV1().Jobs(namespace).List(listOpts)
if err != nil {
return err
}
runtimeObjectsList = make([]runtime.Object, len(list.Items))
for i := range list.Items {
runtimeObjectsList[i] = &list.Items[i]
}
return nil
listFunc = func() error {
list, err := d.Resource(gvr).List(listOpts)
if err != nil {
return err
}
default:
listFunc = func() error {
list, err := d.Resource(gvr).List(listOpts)
if err != nil {
return err
}
runtimeObjectsList = make([]runtime.Object, len(list.Items))
for i := range list.Items {
runtimeObjectsList[i] = &list.Items[i]
}
return nil
runtimeObjectsList = make([]runtime.Object, len(list.Items))
for i := range list.Items {
runtimeObjectsList[i] = &list.Items[i]
}
return nil
}

if err := client.RetryWithExponentialBackOff(client.RetryFunction(listFunc)); err != nil {
Expand Down

0 comments on commit 666b17e

Please sign in to comment.