mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +00:00 
			
		
		
		
	Refactored runtime.Object helper functions into subpkg
Organized functions that abstract the access of k8s.io/apimachinery/pkg/runtime.Objects into a framework subpackge. Signed-off-by: Jorge Alarcon Ochoa <alarcj137@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 alejandrox1
						alejandrox1
					
				
			
			
				
	
			
			
			
						parent
						
							5a7b978c74
						
					
				
				
					commit
					4147d727a6
				
			| @@ -34,10 +34,7 @@ go_library( | |||||||
|     importpath = "k8s.io/kubernetes/test/e2e/framework", |     importpath = "k8s.io/kubernetes/test/e2e/framework", | ||||||
|     deps = [ |     deps = [ | ||||||
|         "//pkg/api/v1/pod:go_default_library", |         "//pkg/api/v1/pod:go_default_library", | ||||||
|         "//pkg/apis/apps:go_default_library", |  | ||||||
|         "//pkg/apis/batch:go_default_library", |  | ||||||
|         "//pkg/apis/core:go_default_library", |         "//pkg/apis/core:go_default_library", | ||||||
|         "//pkg/apis/extensions:go_default_library", |  | ||||||
|         "//pkg/apis/storage/v1/util:go_default_library", |         "//pkg/apis/storage/v1/util:go_default_library", | ||||||
|         "//pkg/client/conditions:go_default_library", |         "//pkg/client/conditions:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
| @@ -60,9 +57,7 @@ go_library( | |||||||
|         "//pkg/volume/util:go_default_library", |         "//pkg/volume/util:go_default_library", | ||||||
|         "//staging/src/k8s.io/api/apps/v1:go_default_library", |         "//staging/src/k8s.io/api/apps/v1:go_default_library", | ||||||
|         "//staging/src/k8s.io/api/apps/v1beta2:go_default_library", |         "//staging/src/k8s.io/api/apps/v1beta2:go_default_library", | ||||||
|         "//staging/src/k8s.io/api/batch/v1:go_default_library", |  | ||||||
|         "//staging/src/k8s.io/api/core/v1:go_default_library", |         "//staging/src/k8s.io/api/core/v1:go_default_library", | ||||||
|         "//staging/src/k8s.io/api/extensions/v1beta1:go_default_library", |  | ||||||
|         "//staging/src/k8s.io/api/policy/v1beta1:go_default_library", |         "//staging/src/k8s.io/api/policy/v1beta1:go_default_library", | ||||||
|         "//staging/src/k8s.io/api/rbac/v1:go_default_library", |         "//staging/src/k8s.io/api/rbac/v1:go_default_library", | ||||||
|         "//staging/src/k8s.io/api/storage/v1:go_default_library", |         "//staging/src/k8s.io/api/storage/v1:go_default_library", | ||||||
| @@ -109,6 +104,7 @@ go_library( | |||||||
|         "//test/e2e/framework/metrics:go_default_library", |         "//test/e2e/framework/metrics:go_default_library", | ||||||
|         "//test/e2e/framework/node:go_default_library", |         "//test/e2e/framework/node:go_default_library", | ||||||
|         "//test/e2e/framework/pod:go_default_library", |         "//test/e2e/framework/pod:go_default_library", | ||||||
|  |         "//test/e2e/framework/resource:go_default_library", | ||||||
|         "//test/e2e/framework/ssh:go_default_library", |         "//test/e2e/framework/ssh:go_default_library", | ||||||
|         "//test/e2e/framework/testfiles:go_default_library", |         "//test/e2e/framework/testfiles:go_default_library", | ||||||
|         "//test/e2e/manifest:go_default_library", |         "//test/e2e/manifest:go_default_library", | ||||||
| @@ -160,6 +156,7 @@ filegroup( | |||||||
|         "//test/e2e/framework/providers/openstack:all-srcs", |         "//test/e2e/framework/providers/openstack:all-srcs", | ||||||
|         "//test/e2e/framework/providers/vsphere:all-srcs", |         "//test/e2e/framework/providers/vsphere:all-srcs", | ||||||
|         "//test/e2e/framework/replicaset:all-srcs", |         "//test/e2e/framework/replicaset:all-srcs", | ||||||
|  |         "//test/e2e/framework/resource:all-srcs", | ||||||
|         "//test/e2e/framework/ssh:all-srcs", |         "//test/e2e/framework/ssh:all-srcs", | ||||||
|         "//test/e2e/framework/testfiles:all-srcs", |         "//test/e2e/framework/testfiles:all-srcs", | ||||||
|         "//test/e2e/framework/timer:all-srcs", |         "//test/e2e/framework/timer:all-srcs", | ||||||
|   | |||||||
| @@ -4,35 +4,27 @@ go_library( | |||||||
|     name = "go_default_library", |     name = "go_default_library", | ||||||
|     srcs = [ |     srcs = [ | ||||||
|         "resource.go", |         "resource.go", | ||||||
|         "runtimeobject.go", |  | ||||||
|         "wait.go", |         "wait.go", | ||||||
|     ], |     ], | ||||||
|     importpath = "k8s.io/kubernetes/test/e2e/framework/pod", |     importpath = "k8s.io/kubernetes/test/e2e/framework/pod", | ||||||
|     visibility = ["//visibility:public"], |     visibility = ["//visibility:public"], | ||||||
|     deps = [ |     deps = [ | ||||||
|         "//pkg/api/v1/pod:go_default_library", |         "//pkg/api/v1/pod:go_default_library", | ||||||
|         "//pkg/apis/apps:go_default_library", |  | ||||||
|         "//pkg/apis/batch:go_default_library", |  | ||||||
|         "//pkg/apis/core:go_default_library", |  | ||||||
|         "//pkg/apis/extensions:go_default_library", |  | ||||||
|         "//pkg/client/conditions:go_default_library", |         "//pkg/client/conditions:go_default_library", | ||||||
|         "//pkg/controller:go_default_library", |         "//pkg/controller:go_default_library", | ||||||
|         "//pkg/kubelet/pod:go_default_library", |         "//pkg/kubelet/pod:go_default_library", | ||||||
|         "//pkg/kubelet/util/format:go_default_library", |         "//pkg/kubelet/util/format:go_default_library", | ||||||
|         "//staging/src/k8s.io/api/apps/v1:go_default_library", |  | ||||||
|         "//staging/src/k8s.io/api/batch/v1:go_default_library", |  | ||||||
|         "//staging/src/k8s.io/api/core/v1:go_default_library", |         "//staging/src/k8s.io/api/core/v1:go_default_library", | ||||||
|         "//staging/src/k8s.io/api/extensions/v1beta1:go_default_library", |  | ||||||
|         "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", |         "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", | ||||||
|         "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", |         "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", | ||||||
|         "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", |         "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", | ||||||
|         "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", |  | ||||||
|         "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", |         "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", | ||||||
|         "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", |         "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", | ||||||
|         "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", |         "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", | ||||||
|         "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", |         "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", | ||||||
|         "//staging/src/k8s.io/client-go/kubernetes:go_default_library", |         "//staging/src/k8s.io/client-go/kubernetes:go_default_library", | ||||||
|         "//test/e2e/framework/log:go_default_library", |         "//test/e2e/framework/log:go_default_library", | ||||||
|  |         "//test/e2e/framework/resource:go_default_library", | ||||||
|         "//test/utils:go_default_library", |         "//test/utils:go_default_library", | ||||||
|         "//test/utils/image:go_default_library", |         "//test/utils/image:go_default_library", | ||||||
|         "//vendor/github.com/onsi/ginkgo:go_default_library", |         "//vendor/github.com/onsi/ginkgo:go_default_library", | ||||||
|   | |||||||
| @@ -38,6 +38,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/kubelet/util/format" | 	"k8s.io/kubernetes/pkg/kubelet/util/format" | ||||||
| 	e2elog "k8s.io/kubernetes/test/e2e/framework/log" | 	e2elog "k8s.io/kubernetes/test/e2e/framework/log" | ||||||
|  | 	e2eresource "k8s.io/kubernetes/test/e2e/framework/resource" | ||||||
| 	testutils "k8s.io/kubernetes/test/utils" | 	testutils "k8s.io/kubernetes/test/utils" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -456,15 +457,15 @@ func PodsResponding(c clientset.Interface, ns, name string, wantName bool, pods | |||||||
|  |  | ||||||
| // WaitForControlledPodsRunning waits up to 10 minutes for pods to become Running. | // WaitForControlledPodsRunning waits up to 10 minutes for pods to become Running. | ||||||
| func WaitForControlledPodsRunning(c clientset.Interface, ns, name string, kind schema.GroupKind) error { | func WaitForControlledPodsRunning(c clientset.Interface, ns, name string, kind schema.GroupKind) error { | ||||||
| 	rtObject, err := getRuntimeObjectForKind(c, kind, ns, name) | 	rtObject, err := e2eresource.GetRuntimeObjectForKind(c, kind, ns, name) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	selector, err := getSelectorFromRuntimeObject(rtObject) | 	selector, err := e2eresource.GetSelectorFromRuntimeObject(rtObject) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	replicas, err := getReplicasFromRuntimeObject(rtObject) | 	replicas, err := e2eresource.GetReplicasFromRuntimeObject(rtObject) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| @@ -477,11 +478,11 @@ func WaitForControlledPodsRunning(c clientset.Interface, ns, name string, kind s | |||||||
|  |  | ||||||
| // WaitForControlledPods waits up to podListTimeout for getting pods of the specified controller name and return them. | // WaitForControlledPods waits up to podListTimeout for getting pods of the specified controller name and return them. | ||||||
| func WaitForControlledPods(c clientset.Interface, ns, name string, kind schema.GroupKind) (pods *v1.PodList, err error) { | func WaitForControlledPods(c clientset.Interface, ns, name string, kind schema.GroupKind) (pods *v1.PodList, err error) { | ||||||
| 	rtObject, err := getRuntimeObjectForKind(c, kind, ns, name) | 	rtObject, err := e2eresource.GetRuntimeObjectForKind(c, kind, ns, name) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	selector, err := getSelectorFromRuntimeObject(rtObject) | 	selector, err := e2eresource.GetSelectorFromRuntimeObject(rtObject) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|   | |||||||
							
								
								
									
										37
									
								
								test/e2e/framework/resource/BUILD
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								test/e2e/framework/resource/BUILD
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | load("@io_bazel_rules_go//go:def.bzl", "go_library") | ||||||
|  |  | ||||||
|  | go_library( | ||||||
|  |     name = "go_default_library", | ||||||
|  |     srcs = ["runtimeobj.go"], | ||||||
|  |     importpath = "k8s.io/kubernetes/test/e2e/framework/resource", | ||||||
|  |     visibility = ["//visibility:public"], | ||||||
|  |     deps = [ | ||||||
|  |         "//pkg/apis/apps:go_default_library", | ||||||
|  |         "//pkg/apis/batch:go_default_library", | ||||||
|  |         "//pkg/apis/core:go_default_library", | ||||||
|  |         "//pkg/apis/extensions:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/api/apps/v1:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/api/batch/v1:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/api/core/v1:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/api/extensions/v1beta1:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", | ||||||
|  |         "//staging/src/k8s.io/client-go/kubernetes:go_default_library", | ||||||
|  |     ], | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | filegroup( | ||||||
|  |     name = "package-srcs", | ||||||
|  |     srcs = glob(["**"]), | ||||||
|  |     tags = ["automanaged"], | ||||||
|  |     visibility = ["//visibility:private"], | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | filegroup( | ||||||
|  |     name = "all-srcs", | ||||||
|  |     srcs = [":package-srcs"], | ||||||
|  |     tags = ["automanaged"], | ||||||
|  |     visibility = ["//visibility:public"], | ||||||
|  | ) | ||||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package pod | package resource | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| @@ -34,9 +34,9 @@ import ( | |||||||
| 	extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" | 	extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // TODO: This function is generic enough and used enough that it should be | // GetRuntimeObjectForKind returns a runtime.Object based on its GroupKind, | ||||||
| // moved to its own subpkg. | // namespace and name. | ||||||
| func getRuntimeObjectForKind(c clientset.Interface, kind schema.GroupKind, ns, name string) (runtime.Object, error) { | func GetRuntimeObjectForKind(c clientset.Interface, kind schema.GroupKind, ns, name string) (runtime.Object, error) { | ||||||
| 	switch kind { | 	switch kind { | ||||||
| 	case api.Kind("ReplicationController"): | 	case api.Kind("ReplicationController"): | ||||||
| 		return c.CoreV1().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) | 		return c.CoreV1().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) | ||||||
| @@ -53,9 +53,8 @@ func getRuntimeObjectForKind(c clientset.Interface, kind schema.GroupKind, ns, n | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // TODO: This function is generic enough and used enough that it should be | // GetSelectorFromRuntimeObject returns the labels for the given object. | ||||||
| // moved to its own subpkg. | func GetSelectorFromRuntimeObject(obj runtime.Object) (labels.Selector, error) { | ||||||
| func getSelectorFromRuntimeObject(obj runtime.Object) (labels.Selector, error) { |  | ||||||
| 	switch typed := obj.(type) { | 	switch typed := obj.(type) { | ||||||
| 	case *v1.ReplicationController: | 	case *v1.ReplicationController: | ||||||
| 		return labels.SelectorFromSet(typed.Spec.Selector), nil | 		return labels.SelectorFromSet(typed.Spec.Selector), nil | ||||||
| @@ -78,9 +77,9 @@ func getSelectorFromRuntimeObject(obj runtime.Object) (labels.Selector, error) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // TODO: This function is generic enough and used enough that it should be | // GetReplicasFromRuntimeObject returns the number of replicas for the given | ||||||
| // moved to its own subpkg. | // object. | ||||||
| func getReplicasFromRuntimeObject(obj runtime.Object) (int32, error) { | func GetReplicasFromRuntimeObject(obj runtime.Object) (int32, error) { | ||||||
| 	switch typed := obj.(type) { | 	switch typed := obj.(type) { | ||||||
| 	case *v1.ReplicationController: | 	case *v1.ReplicationController: | ||||||
| 		if typed.Spec.Replicas != nil { | 		if typed.Spec.Replicas != nil { | ||||||
| @@ -48,9 +48,7 @@ import ( | |||||||
| 	gomegatypes "github.com/onsi/gomega/types" | 	gomegatypes "github.com/onsi/gomega/types" | ||||||
|  |  | ||||||
| 	appsv1 "k8s.io/api/apps/v1" | 	appsv1 "k8s.io/api/apps/v1" | ||||||
| 	batchv1 "k8s.io/api/batch/v1" |  | ||||||
| 	v1 "k8s.io/api/core/v1" | 	v1 "k8s.io/api/core/v1" | ||||||
| 	extensionsv1beta1 "k8s.io/api/extensions/v1beta1" |  | ||||||
| 	apierrs "k8s.io/apimachinery/pkg/api/errors" | 	apierrs "k8s.io/apimachinery/pkg/api/errors" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/fields" | 	"k8s.io/apimachinery/pkg/fields" | ||||||
| @@ -74,10 +72,6 @@ import ( | |||||||
| 	clientcmdapi "k8s.io/client-go/tools/clientcmd/api" | 	clientcmdapi "k8s.io/client-go/tools/clientcmd/api" | ||||||
| 	watchtools "k8s.io/client-go/tools/watch" | 	watchtools "k8s.io/client-go/tools/watch" | ||||||
| 	podutil "k8s.io/kubernetes/pkg/api/v1/pod" | 	podutil "k8s.io/kubernetes/pkg/api/v1/pod" | ||||||
| 	appsinternal "k8s.io/kubernetes/pkg/apis/apps" |  | ||||||
| 	batchinternal "k8s.io/kubernetes/pkg/apis/batch" |  | ||||||
| 	api "k8s.io/kubernetes/pkg/apis/core" |  | ||||||
| 	extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" |  | ||||||
| 	"k8s.io/kubernetes/pkg/client/conditions" | 	"k8s.io/kubernetes/pkg/client/conditions" | ||||||
| 	"k8s.io/kubernetes/pkg/controller" | 	"k8s.io/kubernetes/pkg/controller" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/service" | 	"k8s.io/kubernetes/pkg/controller/service" | ||||||
| @@ -91,6 +85,7 @@ import ( | |||||||
| 	e2elog "k8s.io/kubernetes/test/e2e/framework/log" | 	e2elog "k8s.io/kubernetes/test/e2e/framework/log" | ||||||
| 	e2enode "k8s.io/kubernetes/test/e2e/framework/node" | 	e2enode "k8s.io/kubernetes/test/e2e/framework/node" | ||||||
| 	e2epod "k8s.io/kubernetes/test/e2e/framework/pod" | 	e2epod "k8s.io/kubernetes/test/e2e/framework/pod" | ||||||
|  | 	e2eresource "k8s.io/kubernetes/test/e2e/framework/resource" | ||||||
| 	e2essh "k8s.io/kubernetes/test/e2e/framework/ssh" | 	e2essh "k8s.io/kubernetes/test/e2e/framework/ssh" | ||||||
| 	testutils "k8s.io/kubernetes/test/utils" | 	testutils "k8s.io/kubernetes/test/utils" | ||||||
| 	imageutils "k8s.io/kubernetes/test/utils/image" | 	imageutils "k8s.io/kubernetes/test/utils/image" | ||||||
| @@ -2226,94 +2221,11 @@ func ScaleResource( | |||||||
| 	return e2epod.WaitForControlledPodsRunning(clientset, ns, name, kind) | 	return e2epod.WaitForControlledPodsRunning(clientset, ns, name, kind) | ||||||
| } | } | ||||||
|  |  | ||||||
| func getRuntimeObjectForKind(c clientset.Interface, kind schema.GroupKind, ns, name string) (runtime.Object, error) { |  | ||||||
| 	switch kind { |  | ||||||
| 	case api.Kind("ReplicationController"): |  | ||||||
| 		return c.CoreV1().ReplicationControllers(ns).Get(name, metav1.GetOptions{}) |  | ||||||
| 	case extensionsinternal.Kind("ReplicaSet"), appsinternal.Kind("ReplicaSet"): |  | ||||||
| 		return c.AppsV1().ReplicaSets(ns).Get(name, metav1.GetOptions{}) |  | ||||||
| 	case extensionsinternal.Kind("Deployment"), appsinternal.Kind("Deployment"): |  | ||||||
| 		return c.AppsV1().Deployments(ns).Get(name, metav1.GetOptions{}) |  | ||||||
| 	case extensionsinternal.Kind("DaemonSet"): |  | ||||||
| 		return c.AppsV1().DaemonSets(ns).Get(name, metav1.GetOptions{}) |  | ||||||
| 	case batchinternal.Kind("Job"): |  | ||||||
| 		return c.BatchV1().Jobs(ns).Get(name, metav1.GetOptions{}) |  | ||||||
| 	default: |  | ||||||
| 		return nil, fmt.Errorf("Unsupported kind when getting runtime object: %v", kind) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func getSelectorFromRuntimeObject(obj runtime.Object) (labels.Selector, error) { |  | ||||||
| 	switch typed := obj.(type) { |  | ||||||
| 	case *v1.ReplicationController: |  | ||||||
| 		return labels.SelectorFromSet(typed.Spec.Selector), nil |  | ||||||
| 	case *extensionsv1beta1.ReplicaSet: |  | ||||||
| 		return metav1.LabelSelectorAsSelector(typed.Spec.Selector) |  | ||||||
| 	case *appsv1.ReplicaSet: |  | ||||||
| 		return metav1.LabelSelectorAsSelector(typed.Spec.Selector) |  | ||||||
| 	case *extensionsv1beta1.Deployment: |  | ||||||
| 		return metav1.LabelSelectorAsSelector(typed.Spec.Selector) |  | ||||||
| 	case *appsv1.Deployment: |  | ||||||
| 		return metav1.LabelSelectorAsSelector(typed.Spec.Selector) |  | ||||||
| 	case *extensionsv1beta1.DaemonSet: |  | ||||||
| 		return metav1.LabelSelectorAsSelector(typed.Spec.Selector) |  | ||||||
| 	case *appsv1.DaemonSet: |  | ||||||
| 		return metav1.LabelSelectorAsSelector(typed.Spec.Selector) |  | ||||||
| 	case *batchv1.Job: |  | ||||||
| 		return metav1.LabelSelectorAsSelector(typed.Spec.Selector) |  | ||||||
| 	default: |  | ||||||
| 		return nil, fmt.Errorf("Unsupported kind when getting selector: %v", obj) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func getReplicasFromRuntimeObject(obj runtime.Object) (int32, error) { |  | ||||||
| 	switch typed := obj.(type) { |  | ||||||
| 	case *v1.ReplicationController: |  | ||||||
| 		if typed.Spec.Replicas != nil { |  | ||||||
| 			return *typed.Spec.Replicas, nil |  | ||||||
| 		} |  | ||||||
| 		return 0, nil |  | ||||||
| 	case *extensionsv1beta1.ReplicaSet: |  | ||||||
| 		if typed.Spec.Replicas != nil { |  | ||||||
| 			return *typed.Spec.Replicas, nil |  | ||||||
| 		} |  | ||||||
| 		return 0, nil |  | ||||||
| 	case *appsv1.ReplicaSet: |  | ||||||
| 		if typed.Spec.Replicas != nil { |  | ||||||
| 			return *typed.Spec.Replicas, nil |  | ||||||
| 		} |  | ||||||
| 		return 0, nil |  | ||||||
| 	case *extensionsv1beta1.Deployment: |  | ||||||
| 		if typed.Spec.Replicas != nil { |  | ||||||
| 			return *typed.Spec.Replicas, nil |  | ||||||
| 		} |  | ||||||
| 		return 0, nil |  | ||||||
| 	case *appsv1.Deployment: |  | ||||||
| 		if typed.Spec.Replicas != nil { |  | ||||||
| 			return *typed.Spec.Replicas, nil |  | ||||||
| 		} |  | ||||||
| 		return 0, nil |  | ||||||
| 	case *extensionsv1beta1.DaemonSet: |  | ||||||
| 		return 0, nil |  | ||||||
| 	case *appsv1.DaemonSet: |  | ||||||
| 		return 0, nil |  | ||||||
| 	case *batchv1.Job: |  | ||||||
| 		// TODO: currently we use pause pods so that's OK. When we'll want to switch to Pods |  | ||||||
| 		// that actually finish we need a better way to do this. |  | ||||||
| 		if typed.Spec.Parallelism != nil { |  | ||||||
| 			return *typed.Spec.Parallelism, nil |  | ||||||
| 		} |  | ||||||
| 		return 0, nil |  | ||||||
| 	default: |  | ||||||
| 		return -1, fmt.Errorf("Unsupported kind when getting number of replicas: %v", obj) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // DeleteResourceAndWaitForGC deletes only given resource and waits for GC to delete the pods. | // DeleteResourceAndWaitForGC deletes only given resource and waits for GC to delete the pods. | ||||||
| func DeleteResourceAndWaitForGC(c clientset.Interface, kind schema.GroupKind, ns, name string) error { | func DeleteResourceAndWaitForGC(c clientset.Interface, kind schema.GroupKind, ns, name string) error { | ||||||
| 	ginkgo.By(fmt.Sprintf("deleting %v %s in namespace %s, will wait for the garbage collector to delete the pods", kind, name, ns)) | 	ginkgo.By(fmt.Sprintf("deleting %v %s in namespace %s, will wait for the garbage collector to delete the pods", kind, name, ns)) | ||||||
|  |  | ||||||
| 	rtObject, err := getRuntimeObjectForKind(c, kind, ns, name) | 	rtObject, err := e2eresource.GetRuntimeObjectForKind(c, kind, ns, name) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if apierrs.IsNotFound(err) { | 		if apierrs.IsNotFound(err) { | ||||||
| 			e2elog.Logf("%v %s not found: %v", kind, name, err) | 			e2elog.Logf("%v %s not found: %v", kind, name, err) | ||||||
| @@ -2321,11 +2233,11 @@ func DeleteResourceAndWaitForGC(c clientset.Interface, kind schema.GroupKind, ns | |||||||
| 		} | 		} | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	selector, err := getSelectorFromRuntimeObject(rtObject) | 	selector, err := e2eresource.GetSelectorFromRuntimeObject(rtObject) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	replicas, err := getReplicasFromRuntimeObject(rtObject) | 	replicas, err := e2eresource.GetReplicasFromRuntimeObject(rtObject) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user